test_network_helper.js (3262B)
1 /* Any copyright is dedicated to the Public Domain. 2 http://creativecommons.org/publicdomain/zero/1.0/ */ 3 4 "use strict"; 5 6 function run_test() { 7 test_isTextMimeType(); 8 test_parseCookieHeader(); 9 } 10 11 function test_isTextMimeType() { 12 Assert.equal(NetworkHelper.isTextMimeType("text/plain"), true); 13 Assert.equal(NetworkHelper.isTextMimeType("application/javascript"), true); 14 Assert.equal(NetworkHelper.isTextMimeType("application/json"), true); 15 Assert.equal(NetworkHelper.isTextMimeType("text/css"), true); 16 Assert.equal(NetworkHelper.isTextMimeType("text/html"), true); 17 Assert.equal(NetworkHelper.isTextMimeType("image/svg+xml"), true); 18 Assert.equal(NetworkHelper.isTextMimeType("application/xml"), true); 19 20 // Test custom JSON subtype 21 Assert.equal( 22 NetworkHelper.isTextMimeType("application/vnd.tent.posts-feed.v0+json"), 23 true 24 ); 25 Assert.equal( 26 NetworkHelper.isTextMimeType("application/vnd.tent.posts-feed.v0-json"), 27 true 28 ); 29 // Test custom XML subtype 30 Assert.equal( 31 NetworkHelper.isTextMimeType("application/vnd.tent.posts-feed.v0+xml"), 32 true 33 ); 34 Assert.equal( 35 NetworkHelper.isTextMimeType("application/vnd.tent.posts-feed.v0-xml"), 36 false 37 ); 38 // Test case-insensitive 39 Assert.equal( 40 NetworkHelper.isTextMimeType("application/vnd.BIG-CORP+json"), 41 true 42 ); 43 // Test non-text type 44 Assert.equal(NetworkHelper.isTextMimeType("image/png"), false); 45 // Test invalid types 46 Assert.equal(NetworkHelper.isTextMimeType("application/foo-+json"), false); 47 Assert.equal(NetworkHelper.isTextMimeType("application/-foo+json"), false); 48 Assert.equal( 49 NetworkHelper.isTextMimeType("application/foo--bar+json"), 50 false 51 ); 52 53 // Test we do not cause internal errors with unoptimized regex. Bug 961097 54 Assert.equal( 55 NetworkHelper.isTextMimeType("application/vnd.google.safebrowsing-chunk"), 56 false 57 ); 58 } 59 60 function test_parseCookieHeader() { 61 let result = NetworkHelper.parseSetCookieHeaders(["Test=1; SameSite=Strict"]); 62 Assert.deepEqual(result, [{ name: "Test", value: "1", samesite: "Strict" }]); 63 64 result = NetworkHelper.parseSetCookieHeaders(["Test=1; SameSite=strict"]); 65 Assert.deepEqual(result, [{ name: "Test", value: "1", samesite: "Strict" }]); 66 67 result = NetworkHelper.parseSetCookieHeaders(["Test=1; SameSite=STRICT"]); 68 Assert.deepEqual(result, [{ name: "Test", value: "1", samesite: "Strict" }]); 69 70 result = NetworkHelper.parseSetCookieHeaders(["Test=1; SameSite=None"]); 71 Assert.deepEqual(result, [{ name: "Test", value: "1", samesite: "None" }]); 72 73 result = NetworkHelper.parseSetCookieHeaders(["Test=1; SameSite=NONE"]); 74 Assert.deepEqual(result, [{ name: "Test", value: "1", samesite: "None" }]); 75 76 result = NetworkHelper.parseSetCookieHeaders(["Test=1; SameSite=lax"]); 77 Assert.deepEqual(result, [{ name: "Test", value: "1", samesite: "Lax" }]); 78 79 result = NetworkHelper.parseSetCookieHeaders(["Test=1; SameSite=Lax"]); 80 Assert.deepEqual(result, [{ name: "Test", value: "1", samesite: "Lax" }]); 81 82 result = NetworkHelper.parseSetCookieHeaders([ 83 "Test=1; SameSite=Lax", 84 "Foo=2; SameSite=None", 85 ]); 86 Assert.deepEqual(result, [ 87 { name: "Test", value: "1", samesite: "Lax" }, 88 { name: "Foo", value: "2", samesite: "None" }, 89 ]); 90 }