michael@0: /* This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: 'use strict' michael@0: michael@0: const { Cu, Cc, Ci } = require('chrome'); michael@0: const Request = require('sdk/request').Request; michael@0: const { WindowTracker } = require('sdk/deprecated/window-utils'); michael@0: const { close, open } = require('sdk/window/helpers'); michael@0: michael@0: const XUL_URL = 'chrome://test/content/new-window.xul' michael@0: michael@0: const { Services } = Cu.import('resource://gre/modules/Services.jsm', {}); michael@0: const { NetUtil } = Cu.import('resource://gre/modules/NetUtil.jsm', {}); michael@0: michael@0: exports.testChromeSkin = function(assert, done) { michael@0: let skinURL = 'chrome://test/skin/style.css'; michael@0: michael@0: Request({ michael@0: url: skinURL, michael@0: overrideMimeType: 'text/plain', michael@0: onComplete: function (response) { michael@0: assert.equal(response.text.trim(), 'test{}', 'chrome.manifest skin folder was registered!'); michael@0: done(); michael@0: } michael@0: }).get(); michael@0: michael@0: assert.pass('requesting ' + skinURL); michael@0: } michael@0: michael@0: exports.testChromeContent = function(assert, done) { michael@0: let wt = WindowTracker({ michael@0: onTrack: function(window) { michael@0: if (window.document.documentElement.getAttribute('windowtype') === 'test:window') { michael@0: assert.pass('test xul window was opened'); michael@0: wt.unload(); michael@0: michael@0: close(window).then(done, assert.fail); michael@0: } michael@0: } michael@0: }); michael@0: michael@0: open(XUL_URL).then( michael@0: assert.pass.bind(assert, 'opened ' + XUL_URL), michael@0: assert.fail); michael@0: michael@0: assert.pass('opening ' + XUL_URL); michael@0: } michael@0: michael@0: exports.testChromeLocale = function(assert) { michael@0: let jpLocalePath = Cc['@mozilla.org/chrome/chrome-registry;1']. michael@0: getService(Ci.nsIChromeRegistry). michael@0: convertChromeURL(NetUtil.newURI('chrome://test/locale/description.properties')). michael@0: spec.replace(/(en\-US|ja\-JP)/, 'ja-JP'); michael@0: let enLocalePath = jpLocalePath.replace(/ja\-JP/, 'en-US'); michael@0: michael@0: let jpStringBundle = Services.strings.createBundle(jpLocalePath); michael@0: assert.equal(jpStringBundle.GetStringFromName('test'), michael@0: 'ใƒ†ใ‚นใƒˆ', michael@0: 'locales ja-JP folder was copied correctly'); michael@0: michael@0: let enStringBundle = Services.strings.createBundle(enLocalePath); michael@0: assert.equal(enStringBundle.GetStringFromName('test'), michael@0: 'Test', michael@0: 'locales en-US folder was copied correctly'); michael@0: } michael@0: michael@0: require('sdk/test/runner').runTestsFromModule(module);