1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
function run_test() {
const headers = [
{
header:
"Content-Type: text/plain\r\n" +
"Content-Disposition: inline\r\n" +
"\r\n",
result: "text/plain",
},
{
header:
"Content-Type:\r\n" +
"\tapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheet\r\n" +
"Content-Transfer-Encoding: base64\r\n" +
'Content-Disposition: attachment; filename="List.xlsx"\r\n' +
"\r\n",
result:
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
},
{
header:
"Content-Type: \r\n" +
" application/vnd.openxmlformats-officedocument.presentationml.presentation;\r\n" +
' name="Presentation.pptx"\r\n' +
"\r\n",
result:
"application/vnd.openxmlformats-officedocument.presentationml.presentation;" +
' name="Presentation.pptx"',
},
{
header:
"Content-Type:\r\n" +
"text/plain; charset=utf-8\r\n" +
"Content-Transfer-Encoding: quoted-printable\r\n" +
"Content-Disposition: inline\r\n" +
"\r\n",
result: "",
},
{
header: "Content-Type:\r\n\r\n",
result: "",
},
{
/* possible crash case for Bug 574961 */
header:
"Content-Type: \r\n" +
" " +
" " +
" " +
" " +
" " +
" " +
" " +
" " +
" \r\n",
result: "",
},
];
let mimeHdr = Cc["@mozilla.org/messenger/mimeheaders;1"].createInstance(
Ci.nsIMimeHeaders
);
for (let i = 0; i < headers.length; i++) {
mimeHdr.initialize(headers[i].header);
let receivedHeader = mimeHdr.extractHeader("Content-Type", false);
dump(
"\nTesting Content-Type: " +
receivedHeader +
" == " +
headers[i].result +
"\n"
);
Assert.equal(receivedHeader, headers[i].result);
}
}
|