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
83
84
85
86
87
88
89
90
|
/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
function run_test() {
test_isTextMimeType();
test_parseCookieHeader();
}
function test_isTextMimeType() {
Assert.equal(NetworkHelper.isTextMimeType("text/plain"), true);
Assert.equal(NetworkHelper.isTextMimeType("application/javascript"), true);
Assert.equal(NetworkHelper.isTextMimeType("application/json"), true);
Assert.equal(NetworkHelper.isTextMimeType("text/css"), true);
Assert.equal(NetworkHelper.isTextMimeType("text/html"), true);
Assert.equal(NetworkHelper.isTextMimeType("image/svg+xml"), true);
Assert.equal(NetworkHelper.isTextMimeType("application/xml"), true);
// Test custom JSON subtype
Assert.equal(
NetworkHelper.isTextMimeType("application/vnd.tent.posts-feed.v0+json"),
true
);
Assert.equal(
NetworkHelper.isTextMimeType("application/vnd.tent.posts-feed.v0-json"),
true
);
// Test custom XML subtype
Assert.equal(
NetworkHelper.isTextMimeType("application/vnd.tent.posts-feed.v0+xml"),
true
);
Assert.equal(
NetworkHelper.isTextMimeType("application/vnd.tent.posts-feed.v0-xml"),
false
);
// Test case-insensitive
Assert.equal(
NetworkHelper.isTextMimeType("application/vnd.BIG-CORP+json"),
true
);
// Test non-text type
Assert.equal(NetworkHelper.isTextMimeType("image/png"), false);
// Test invalid types
Assert.equal(NetworkHelper.isTextMimeType("application/foo-+json"), false);
Assert.equal(NetworkHelper.isTextMimeType("application/-foo+json"), false);
Assert.equal(
NetworkHelper.isTextMimeType("application/foo--bar+json"),
false
);
// Test we do not cause internal errors with unoptimized regex. Bug 961097
Assert.equal(
NetworkHelper.isTextMimeType("application/vnd.google.safebrowsing-chunk"),
false
);
}
function test_parseCookieHeader() {
let result = NetworkHelper.parseSetCookieHeaders(["Test=1; SameSite=Strict"]);
Assert.deepEqual(result, [{ name: "Test", value: "1", samesite: "Strict" }]);
result = NetworkHelper.parseSetCookieHeaders(["Test=1; SameSite=strict"]);
Assert.deepEqual(result, [{ name: "Test", value: "1", samesite: "Strict" }]);
result = NetworkHelper.parseSetCookieHeaders(["Test=1; SameSite=STRICT"]);
Assert.deepEqual(result, [{ name: "Test", value: "1", samesite: "Strict" }]);
result = NetworkHelper.parseSetCookieHeaders(["Test=1; SameSite=None"]);
Assert.deepEqual(result, [{ name: "Test", value: "1", samesite: "None" }]);
result = NetworkHelper.parseSetCookieHeaders(["Test=1; SameSite=NONE"]);
Assert.deepEqual(result, [{ name: "Test", value: "1", samesite: "None" }]);
result = NetworkHelper.parseSetCookieHeaders(["Test=1; SameSite=lax"]);
Assert.deepEqual(result, [{ name: "Test", value: "1", samesite: "Lax" }]);
result = NetworkHelper.parseSetCookieHeaders(["Test=1; SameSite=Lax"]);
Assert.deepEqual(result, [{ name: "Test", value: "1", samesite: "Lax" }]);
result = NetworkHelper.parseSetCookieHeaders([
"Test=1; SameSite=Lax",
"Foo=2; SameSite=None",
]);
Assert.deepEqual(result, [
{ name: "Test", value: "1", samesite: "Lax" },
{ name: "Foo", value: "2", samesite: "None" },
]);
}
|