Publish Vulpes Preview 15 sources for desktop, Android and Tundra
Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
This commit is contained in:
parent
93e3a48004
commit
b38dea0597
25901 changed files with 9982925 additions and 369 deletions
99
gaia/apps/settings/test/unit/panels/languages/language_test.js
Executable file
99
gaia/apps/settings/test/unit/panels/languages/language_test.js
Executable file
|
|
@ -0,0 +1,99 @@
|
|||
'use strict';
|
||||
|
||||
suite('Languages > ', function() {
|
||||
var mockKeyboardHelper;
|
||||
var languages;
|
||||
var realL10n;
|
||||
var realMozActivity;
|
||||
|
||||
var OSVersion = '' + Math.random();
|
||||
|
||||
var modules = [
|
||||
'shared_mocks/mock_l20n',
|
||||
'shared_mocks/mock_keyboard_helper',
|
||||
'shared_mocks/mock_moz_activity',
|
||||
'unit/mock_settings_cache',
|
||||
'panels/languages/languages'
|
||||
];
|
||||
var maps = {
|
||||
'panels/languages/languages': {
|
||||
'shared/keyboard_helper': 'shared_mocks/mock_keyboard_helper',
|
||||
'modules/settings_cache': 'unit/mock_settings_cache',
|
||||
'modules/date_time': 'MockDateTime'
|
||||
}
|
||||
};
|
||||
|
||||
suiteSetup(function(done) {
|
||||
// Create a new requirejs context
|
||||
var requireCtx = testRequire([], maps, function() {});
|
||||
var that = this;
|
||||
|
||||
// Define MockDateTime
|
||||
this.MockDateTime = {};
|
||||
define('MockDateTime', function() {
|
||||
return that.MockDateTime;
|
||||
});
|
||||
|
||||
requireCtx(modules, function(
|
||||
MockL10n, MockKeyboardHelper, MockMozActivity, MockSettingsCache,
|
||||
Languages) {
|
||||
// mock l10n
|
||||
realL10n = document.l10n;
|
||||
document.l10n = MockL10n;
|
||||
|
||||
// mock keyboard helper
|
||||
mockKeyboardHelper = MockKeyboardHelper;
|
||||
|
||||
// mock MozActivity
|
||||
realMozActivity = window.MozActivity;
|
||||
window.MozActivity = MockMozActivity;
|
||||
|
||||
// mock SettingsCache
|
||||
that.MockSettingsCache = MockSettingsCache;
|
||||
MockSettingsCache.mockSettings({
|
||||
'langpack.channel': OSVersion
|
||||
});
|
||||
|
||||
languages = Languages();
|
||||
languages.onInit({}, {
|
||||
moreLanguages: document.createElement('a'),
|
||||
langSel: document.createElement('select')
|
||||
});
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
suiteTeardown(function() {
|
||||
this.MockSettingsCache.mTeardown();
|
||||
document.l10n = realL10n;
|
||||
window.MozActivity = realMozActivity;
|
||||
});
|
||||
|
||||
suite('when localized change', function() {
|
||||
setup(function() {
|
||||
this.sinon.stub(mockKeyboardHelper, 'changeDefaultLayouts');
|
||||
this.sinon.stub(languages, 'updateDateTime');
|
||||
});
|
||||
test('we would call update() and changeDefaultLayouts()', function() {
|
||||
languages.onLocalized();
|
||||
assert.ok(languages.updateDateTime.called);
|
||||
assert.ok(mockKeyboardHelper.changeDefaultLayouts.called);
|
||||
});
|
||||
});
|
||||
|
||||
suite('when get more languages is activated', function() {
|
||||
setup(function() {
|
||||
window.MozActivity.mSetup();
|
||||
});
|
||||
teardown(function() {
|
||||
window.MozActivity.mTeardown();
|
||||
});
|
||||
test('we launch a MozActivity', function() {
|
||||
languages.showMoreLanguages();
|
||||
assert.equal(window.MozActivity.calls[0].name, 'marketplace-category');
|
||||
assert.equal(window.MozActivity.calls[0].data.slug, 'langpacks');
|
||||
assert.equal(window.MozActivity.calls[0].data.fxos_version, OSVersion);
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
130
gaia/apps/settings/test/unit/panels/languages/panel_test.js
Executable file
130
gaia/apps/settings/test/unit/panels/languages/panel_test.js
Executable file
|
|
@ -0,0 +1,130 @@
|
|||
'use strict';
|
||||
|
||||
suite('Languages Panel > ', function() {
|
||||
var realSettings;
|
||||
|
||||
var modules = [
|
||||
'panels/languages/panel',
|
||||
'shared_mocks/mock_navigator_moz_settings',
|
||||
];
|
||||
var map = {
|
||||
'*': {
|
||||
'panels/languages/languages': 'MockLanguages',
|
||||
'modules/settings_panel': 'MockSettingsPanel'
|
||||
}
|
||||
};
|
||||
|
||||
suiteSetup(function(done) {
|
||||
// Create a new requirejs context
|
||||
var requireCtx = testRequire([], map, function() {});
|
||||
var that = this;
|
||||
|
||||
// Define MockSettingsPanel
|
||||
define('MockSettingsPanel', function() {
|
||||
return function(options) {
|
||||
return {
|
||||
onBeforeShow: options.onBeforeShow,
|
||||
onBeforeHide: options.onBeforeHide
|
||||
};
|
||||
};
|
||||
});
|
||||
|
||||
// Define MockLanguages
|
||||
this.mockLanguages = {
|
||||
onLocalized: sinon.spy(),
|
||||
buildList: sinon.spy(),
|
||||
updateDateTime: sinon.spy(),
|
||||
};
|
||||
define('MockLanguages', function() {
|
||||
return function MockLanguages() {
|
||||
return that.mockLanguages;
|
||||
};
|
||||
});
|
||||
|
||||
requireCtx(modules, function(LanguagePanel, MockNavigatorSettings) {
|
||||
realSettings = window.navigator.mozSettings;
|
||||
window.navigator.mozSettings = MockNavigatorSettings;
|
||||
|
||||
that.panel = LanguagePanel();
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
suiteTeardown(function() {
|
||||
window.navigator.mozSettings = realSettings;
|
||||
});
|
||||
|
||||
suite('panel has not been opened yet', function() {
|
||||
setup(function() {
|
||||
// spies are not sandboxed in order to make them available early for
|
||||
// LanguagePanel to bind them; reset them manually here.
|
||||
this.mockLanguages.onLocalized.reset();
|
||||
this.mockLanguages.buildList.reset();
|
||||
});
|
||||
test('DOMRetranslated fires', function() {
|
||||
document.dispatchEvent(new CustomEvent('DOMRetranslated'));
|
||||
assert.isFalse(
|
||||
this.mockLanguages.onLocalized.called, 'onLocalized was never called');
|
||||
});
|
||||
test('additionallanguageschange fires', function() {
|
||||
document.dispatchEvent(new CustomEvent('additionallanguageschange'));
|
||||
assert.isFalse(
|
||||
this.mockLanguages.buildList.called, 'buildList was never called');
|
||||
});
|
||||
});
|
||||
|
||||
suite('panel is open', function() {
|
||||
setup(function() {
|
||||
this.panel.onBeforeShow();
|
||||
this.mockLanguages.onLocalized.reset();
|
||||
this.mockLanguages.buildList.reset();
|
||||
});
|
||||
teardown(function() {
|
||||
this.panel.onBeforeHide();
|
||||
});
|
||||
test('localized fires', function() {
|
||||
document.dispatchEvent(new CustomEvent('DOMRetranslated'));
|
||||
assert.ok(
|
||||
this.mockLanguages.onLocalized.called, 'onLocalized was called');
|
||||
});
|
||||
test('additionallanguageschange fires', function() {
|
||||
document.dispatchEvent(new CustomEvent('additionallanguageschange'));
|
||||
assert.ok(
|
||||
this.mockLanguages.buildList.called, 'buildList was called');
|
||||
});
|
||||
});
|
||||
|
||||
suite('screen reader was started', function() {
|
||||
setup(function() {
|
||||
this.panel.onBeforeShow();
|
||||
});
|
||||
|
||||
test('language list updated', function() {
|
||||
this.mockLanguages.buildList.reset();
|
||||
navigator.mozSettings.mTriggerObservers(
|
||||
'accessibility.screenreader', { settingValue: true });
|
||||
assert.isTrue(
|
||||
this.mockLanguages.buildList.called, 'buildList was never called');
|
||||
});
|
||||
});
|
||||
|
||||
suite('panel was closed', function() {
|
||||
setup(function() {
|
||||
this.panel.onBeforeShow();
|
||||
this.panel.onBeforeHide();
|
||||
this.mockLanguages.onLocalized.reset();
|
||||
this.mockLanguages.buildList.reset();
|
||||
});
|
||||
test('localized fires', function() {
|
||||
window.dispatchEvent(new CustomEvent('localized'));
|
||||
assert.isFalse(
|
||||
this.mockLanguages.onLocalized.called, 'onLocalized was never called');
|
||||
});
|
||||
test('additionallanguageschange fires', function() {
|
||||
document.dispatchEvent(new CustomEvent('additionallanguageschange'));
|
||||
assert.isFalse(
|
||||
this.mockLanguages.buildList.called, 'buildList was never called');
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
Loading…
Reference in a new issue