tor-browser

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

test_header_Accept-Language_case.js (1383B)


      1 "use strict";
      2 
      3 var testpath = "/bug1054739";
      4 
      5 function run_test() {
      6  let intlPrefs = Services.prefs.getBranch("intl.");
      7 
      8  let oldAcceptLangPref = intlPrefs.getCharPref("accept_languages");
      9 
     10  let testData = [
     11    ["en", "en"],
     12    ["ast", "ast"],
     13    ["fr-ca", "fr-CA"],
     14    ["zh-yue", "zh-yue"],
     15    ["az-latn", "az-Latn"],
     16    ["sl-nedis", "sl-nedis"],
     17    ["zh-hant-hk", "zh-Hant-HK"],
     18    ["ZH-HANT-HK", "zh-Hant-HK"],
     19    ["en-us-x-priv", "en-US-x-priv"],
     20    ["en-us-x-twain", "en-US-x-twain"],
     21    ["de, en-US, en", "de,en-US;q=0.9,en;q=0.8"],
     22    ["de,en-us,en", "de,en-US;q=0.9,en;q=0.8"],
     23    ["en-US, en", "en-US,en;q=0.9"],
     24    ["EN-US;q=0.2, EN", "en-US,en;q=0.9"],
     25    ["en ;q=0.8, de  ", "en,de;q=0.9"],
     26    [",en,", "en"],
     27  ];
     28 
     29  for (let i = 0; i < testData.length; i++) {
     30    let acceptLangPref = testData[i][0];
     31    let expectedHeader = testData[i][1];
     32 
     33    intlPrefs.setCharPref("accept_languages", acceptLangPref);
     34    let acceptLangHeader =
     35      setupChannel(testpath).getRequestHeader("Accept-Language");
     36    equal(acceptLangHeader, expectedHeader);
     37  }
     38 
     39  intlPrefs.setCharPref("accept_languages", oldAcceptLangPref);
     40 }
     41 
     42 function setupChannel(path) {
     43  let uri = NetUtil.newURI("http://localhost:4444" + path);
     44  let chan = NetUtil.newChannel({
     45    uri,
     46    loadUsingSystemPrincipal: true,
     47  });
     48  chan.QueryInterface(Ci.nsIHttpChannel);
     49  return chan;
     50 }