summaryrefslogtreecommitdiffstats
path: root/comm/mailnews/mime/test/unit/test_mimeContentType.js
blob: fb40549f350be034144a199cd4cee772874901ee (plain)
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);
  }
}