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
72
gaia/apps/settings/test/unit/panels/achievements/achievements_list_test.js
Executable file
72
gaia/apps/settings/test/unit/panels/achievements/achievements_list_test.js
Executable file
|
|
@ -0,0 +1,72 @@
|
|||
'use strict';
|
||||
|
||||
/* globals loadBodyHTML*/
|
||||
|
||||
requireApp('settings/shared/test/unit/load_body_html_helper.js');
|
||||
|
||||
suite('Achievements List > ', function() {
|
||||
|
||||
var modules = [
|
||||
'unit/mock_settings_service',
|
||||
'modules/mvvm/observable_array',
|
||||
'unit/mock_list_view',
|
||||
'panels/achievements/achievements_template',
|
||||
'panels/achievements/achievements_list'
|
||||
];
|
||||
var maps = {
|
||||
'panels/achievements/achievements_list': {
|
||||
'modules/settings_service': 'unit/mock_settings_service',
|
||||
'modules/mvvm/list_view': 'unit/mock_list_view',
|
||||
'panels/achievements/achievements_template': 'MockAchievementsTemplate'
|
||||
}
|
||||
};
|
||||
var achievementsList, observableArray;
|
||||
var mockAchievement = {
|
||||
issuer: 'fxos-sharing',
|
||||
criteria: 'achievements/sharing-is-caring'
|
||||
};
|
||||
|
||||
suiteSetup(function(done) {
|
||||
loadBodyHTML('_achievements.html');
|
||||
|
||||
// Create a new requirejs context
|
||||
var requireCtx = testRequire([], maps, function() {});
|
||||
|
||||
// Define MockAchievementsTemplate
|
||||
var MockAchievementsTemplate = {};
|
||||
define('MockAchievementsTemplate', function() {
|
||||
return function() {
|
||||
return MockAchievementsTemplate;
|
||||
};
|
||||
});
|
||||
|
||||
requireCtx(modules, function(MockSettingsService, ObservableArray,
|
||||
MockListView, MockAchievementsTemplate, AchievementsList) {
|
||||
achievementsList = AchievementsList(document.body.querySelector(
|
||||
'.achievements-list'));
|
||||
observableArray = ObservableArray;
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
suite('achievements list initialized', function() {
|
||||
test('constructed', function() {
|
||||
assert.equal(achievementsList.achievements.length, 0);
|
||||
assert.isTrue(achievementsList._achievements instanceof observableArray);
|
||||
});
|
||||
});
|
||||
|
||||
suite('update achievements list', function() {
|
||||
test('add an achievement to the list', function() {
|
||||
var achievements = [mockAchievement];
|
||||
achievementsList.achievements = achievements;
|
||||
assert.equal(achievementsList.achievements.length, 1);
|
||||
});
|
||||
|
||||
test('remove last achievement from the list', function() {
|
||||
var achievements = [];
|
||||
achievementsList.achievements = achievements;
|
||||
assert.equal(achievementsList.achievements.length, 0);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
@ -0,0 +1,48 @@
|
|||
'use strict';
|
||||
|
||||
suite('Achievements Template > ', function() {
|
||||
|
||||
var modules = [
|
||||
'panels/achievements/achievements_template'
|
||||
];
|
||||
|
||||
var achievementsTemplate;
|
||||
var mockAchievement = {
|
||||
issuer: 'fxos-sharing',
|
||||
criteria: 'achievements/sharing-is-caring'
|
||||
};
|
||||
|
||||
suiteSetup(function(done) {
|
||||
var requireCtx = testRequire([], {}, function() {});
|
||||
|
||||
requireCtx(modules, function(achtemplate) {
|
||||
achievementsTemplate = achtemplate;
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
test('achievements template rendered', function() {
|
||||
var subject = achievementsTemplate(mockAchievement);
|
||||
assert.equal(subject.tagName, 'LI');
|
||||
assert.isTrue(subject.classList.contains('achievements-item'));
|
||||
|
||||
var details = subject.querySelector('.details');
|
||||
assert.ok(details);
|
||||
|
||||
var span = details.querySelector('span');
|
||||
assert.ok(span);
|
||||
assert.equal(span.getAttribute('data-l10n-id'),
|
||||
'achievements-sharing-is-caring-name');
|
||||
|
||||
var small = details.querySelector('small');
|
||||
assert.ok(small);
|
||||
assert.equal(small.getAttribute('data-l10n-id'),
|
||||
'achievements-sharing-is-caring-description');
|
||||
assert.isTrue(small.classList.contains('description'));
|
||||
|
||||
var icon = subject.querySelector('img');
|
||||
assert.ok(icon);
|
||||
assert.isTrue(icon.classList.contains('icon'));
|
||||
assert.isTrue(icon.src.indexOf('sharing-is-caring') > 0);
|
||||
});
|
||||
});
|
||||
73
gaia/apps/settings/test/unit/panels/achievements/panel_test.js
Executable file
73
gaia/apps/settings/test/unit/panels/achievements/panel_test.js
Executable file
|
|
@ -0,0 +1,73 @@
|
|||
'use strict';
|
||||
|
||||
suite('Achievements Panel > ', function() {
|
||||
|
||||
var modules = [
|
||||
'panels/achievements/panel',
|
||||
'panels/achievements/achievements_list',
|
||||
'shared/settings_listener',
|
||||
'unit/mock_settings_panel'
|
||||
];
|
||||
var map = {
|
||||
'*': {
|
||||
'modules/settings_panel': 'unit/mock_settings_panel',
|
||||
'panels/achievements/achievements_list': 'MockAchievementsList',
|
||||
'shared/settings_listener': 'shared_mocks/mock_settings_listener'
|
||||
}
|
||||
};
|
||||
|
||||
var settingsListener;
|
||||
|
||||
suiteSetup(function(done) {
|
||||
// Create a new requirejs context
|
||||
var requireCtx = testRequire([], map, function() {});
|
||||
var that = this;
|
||||
|
||||
var MockAchievementsList = {
|
||||
get achievements() {},
|
||||
set achievements(val) {}
|
||||
};
|
||||
|
||||
define('MockAchievementsList', function() {
|
||||
return function() {
|
||||
return MockAchievementsList;
|
||||
};
|
||||
});
|
||||
|
||||
requireCtx(modules, function(AchievementsPanel, MockAchievementsList,
|
||||
MockSettingsListener, MockSettingsPanel) {
|
||||
MockSettingsPanel.mInnerFunction = options => Object.assign({}, options);
|
||||
|
||||
that.panel = AchievementsPanel();
|
||||
that.achievementsList = MockAchievementsList();
|
||||
|
||||
settingsListener = MockSettingsListener;
|
||||
settingsListener.observe = sinon.spy();
|
||||
settingsListener.unobserve = sinon.spy();
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
suite('panel initialized', function() {
|
||||
setup(function() {
|
||||
this.panel.onInit(document.body);
|
||||
this.panel.onBeforeShow();
|
||||
});
|
||||
test('settings listener observer attached', function() {
|
||||
assert(settingsListener.observe.calledOnce);
|
||||
assert(settingsListener.observe.calledWith('achievements',
|
||||
this.achievementsList.achievements));
|
||||
});
|
||||
});
|
||||
|
||||
suite('panel uninitialized', function() {
|
||||
setup(function() {
|
||||
this.panel.onHide();
|
||||
});
|
||||
test('settings listener observer detached', function() {
|
||||
assert(settingsListener.unobserve.calledOnce);
|
||||
assert(settingsListener.unobserve.calledWith('achievements'));
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
Loading…
Reference in a new issue