signal-desktop/libtextsecure/test/sendmessage_test.js
Scott Nonnenberg 26a3342d2a Padded attachments, attachments v2
* Handle incoming padded attachments
* Attachments v2 - multipart form POST, and direct CDN GET access
* Pad outgoing attachments before encryption (disabled for now)
2019-05-16 15:43:29 -07:00

335 lines
4.5 KiB
JavaScript

/* global textsecure, WebAPI */
/* eslint-disable no-console */
const BUCKET_SIZES = [
541,
568,
596,
626,
657,
690,
725,
761,
799,
839,
881,
925,
972,
1020,
1071,
1125,
1181,
1240,
1302,
1367,
1436,
1507,
1583,
1662,
1745,
1832,
1924,
2020,
2121,
2227,
2339,
2456,
2579,
2708,
2843,
2985,
3134,
3291,
3456,
3629,
3810,
4001,
4201,
4411,
4631,
4863,
5106,
5361,
5629,
5911,
6207,
6517,
6843,
7185,
7544,
7921,
8318,
8733,
9170,
9629,
10110,
10616,
11146,
11704,
12289,
12903,
13549,
14226,
14937,
15684,
16469,
17292,
18157,
19065,
20018,
21019,
22070,
23173,
24332,
25549,
26826,
28167,
29576,
31054,
32607,
34238,
35950,
37747,
39634,
41616,
43697,
45882,
48176,
50585,
53114,
55770,
58558,
61486,
64561,
67789,
71178,
74737,
78474,
82398,
86518,
90843,
95386,
100155,
105163,
110421,
115942,
121739,
127826,
134217,
140928,
147975,
155373,
163142,
171299,
179864,
188858,
198300,
208215,
218626,
229558,
241036,
253087,
265742,
279029,
292980,
307629,
323011,
339161,
356119,
373925,
392622,
412253,
432866,
454509,
477234,
501096,
526151,
552458,
580081,
609086,
639540,
671517,
705093,
740347,
777365,
816233,
857045,
899897,
944892,
992136,
1041743,
1093831,
1148522,
1205948,
1266246,
1329558,
1396036,
1465838,
1539130,
1616086,
1696890,
1781735,
1870822,
1964363,
2062581,
2165710,
2273996,
2387695,
2507080,
2632434,
2764056,
2902259,
3047372,
3199740,
3359727,
3527714,
3704100,
3889305,
4083770,
4287958,
4502356,
4727474,
4963848,
5212040,
5472642,
5746274,
6033588,
6335268,
6652031,
6984633,
7333864,
7700558,
8085585,
8489865,
8914358,
9360076,
9828080,
10319484,
10835458,
11377231,
11946092,
12543397,
13170567,
13829095,
14520550,
15246578,
16008907,
16809352,
17649820,
18532311,
19458926,
20431872,
21453466,
22526139,
23652446,
24835069,
26076822,
27380663,
28749697,
30187181,
31696540,
33281368,
34945436,
36692708,
38527343,
40453710,
42476396,
44600216,
46830227,
49171738,
51630325,
54211841,
56922433,
59768555,
62756983,
65894832,
69189573,
72649052,
76281505,
80095580,
84100359,
88305377,
92720646,
97356678,
102224512,
107335738,
];
describe('sendmessage', () => {
let originalWebAPIConnect = null;
let sendmessage = null;
before(() => {
originalWebAPIConnect = WebAPI.connect;
WebAPI.connect = () => null;
sendmessage = new textsecure.MessageSender();
});
after(() => {
WebAPI.connect = originalWebAPIConnect;
});
describe('#_getAttachmentSizeBucket', () => {
it('properly calculates first bucket', () => {
for (let size = 0, max = BUCKET_SIZES[0]; size < max; size += 1) {
assert.strictEqual(
BUCKET_SIZES[0],
sendmessage._getAttachmentSizeBucket(size)
);
}
});
it('properly calculates entire table', () => {
let count = 0;
for (let i = 0, max = BUCKET_SIZES.length - 1; i < max; i += 1) {
// Exact
if (
BUCKET_SIZES[i] !==
sendmessage._getAttachmentSizeBucket(BUCKET_SIZES[i])
) {
count += 1;
console.log(
`${
BUCKET_SIZES[i]
} does not equal ${sendmessage._getAttachmentSizeBucket(
BUCKET_SIZES[i]
)}`
);
}
// Just under
if (
BUCKET_SIZES[i] !==
sendmessage._getAttachmentSizeBucket(BUCKET_SIZES[i] - 1)
) {
count += 1;
console.log(
`${
BUCKET_SIZES[i]
} does not equal ${sendmessage._getAttachmentSizeBucket(
BUCKET_SIZES[i] - 1
)}`
);
}
// Just over
if (
BUCKET_SIZES[i + 1] !==
sendmessage._getAttachmentSizeBucket(BUCKET_SIZES[i] + 1)
) {
count += 1;
console.log(
`${
BUCKET_SIZES[i + 1]
} does not equal ${sendmessage._getAttachmentSizeBucket(
BUCKET_SIZES[i] + 1
)}`
);
}
}
console.log(`Failures: ${count}`);
assert.strictEqual(count, 0);
});
});
});