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 }