~osomon/firefox/firefox.disco-geckodriver

« back to all changes in this revision

Viewing changes to debian/testing/extra/xpcshell/package-tests/test_langpack_chrome.js

  • Committer: Olivier Tilloy
  • Date: 2019-06-03 13:16:42 UTC
  • Revision ID: olivier.tilloy@canonical.com-20190603131642-d0doihfpjua018ek
* Stop building firefox-testsuite (LP: #1805019)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
Cu.import("resource://gre/modules/AddonManager.jsm");
2
 
Cu.import("resource://gre/modules/FileUtils.jsm");
3
 
 
4
 
function run_test()
5
 
{
6
 
  Services.prefs.setBoolPref("intl.locale.matchOS", false);
7
 
 
8
 
  createAppInfo();
9
 
 
10
 
  Cc["@mozilla.org/addons/integration;1"].getService(Ci.nsIObserver).observe(null, "addons-startup", null);
11
 
 
12
 
  // We've started the addon manager, but need to manually register addon chrome
13
 
  // for non-restartless addons. This is normally handled in
14
 
  // toolkit/xre/nsXREDirProvider.cpp, which is not available to xpcshell. When
15
 
  // we use restartless language packs, this can go away
16
 
  let extensions_ini = Services.dirsvc.get("ProfD", Ci.nsIFile);
17
 
  extensions_ini.append("extensions.ini");
18
 
 
19
 
  let re = /langpack-[a-zA-Z\-]+@firefox.mozilla.org.xpi/;
20
 
  parser = Components.manager.getClassObjectByContractID("@mozilla.org/xpcom/ini-parser-factory;1", Ci.nsIINIParserFactory).createINIParser(extensions_ini);
21
 
  let e = parser.getKeys("ExtensionDirs");
22
 
  while (e.hasMore()) {
23
 
    let k = e.getNext();
24
 
    let file = new FileUtils.File(parser.getString("ExtensionDirs", k));
25
 
    if (file.leafName.match(re)) {
26
 
      Components.manager.addBootstrappedManifestLocation(file);
27
 
    }
28
 
  }
29
 
 
30
 
  let istream = Services.io.newChannelFromURI(Services.io.newFileURI(do_get_file("data/locales.shipped"))).open();
31
 
 
32
 
  let line = { value: "" };
33
 
  let locales = [];
34
 
  while (istream.readLine(line)) {
35
 
    if (!line.value.match(/^\s*#.*/)) {
36
 
      locales.push(line.value.replace(/^([^:]*).*/, "$1"))
37
 
    }
38
 
  }
39
 
 
40
 
  let chrome = Cc["@mozilla.org/chrome/chrome-registry;1"].getService(Ci.nsIXULChromeRegistry);
41
 
 
42
 
  locales.forEach(function(locale) {
43
 
    do_print("Testing locale " + locale);
44
 
 
45
 
    Services.strings.flushBundles();
46
 
    Services.prefs.setCharPref("general.useragent.locale", locale);
47
 
 
48
 
    do_check_eq(chrome.getSelectedLocale("global"), locale);
49
 
  });
50
 
}