tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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 }