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)
This commit is contained in:
parent
4a8e0bd466
commit
26a3342d2a
7 changed files with 519 additions and 105 deletions
335
libtextsecure/test/sendmessage_test.js
Normal file
335
libtextsecure/test/sendmessage_test.js
Normal file
|
@ -0,0 +1,335 @@
|
|||
/* 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);
|
||||
});
|
||||
});
|
||||
});
|
Loading…
Add table
Add a link
Reference in a new issue