VulpesOS/gaia/apps/system/test/unit/settings_helper_test.js
OverSu b38dea0597 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.
2026-09-30 23:13:03 +02:00

75 lines
2.1 KiB
JavaScript
Executable file

/* global SettingsHelper, MockNavigatorSettings */
'use strict';
requireApp('system/shared/test/unit/mocks/mock_navigator_moz_settings.js');
requireApp('system/shared/js/settings_helper.js');
suite('SettingsHelper', function() {
var realMozSettings;
var SETTINGS_KEY = 'settings.key';
suiteSetup(function() {
realMozSettings = navigator.mozSettings;
navigator.mozSettings = MockNavigatorSettings;
});
suiteTeardown(function() {
navigator.mozSettings = realMozSettings;
});
teardown(function() {
MockNavigatorSettings.mTeardown();
});
test('Should be initialized correctly without mozSettings', function(done) {
// All settings should be the same as the specified default value
// when 'settings.key' is null.
var defaultValue = 'default_value';
var settingsHelper = SettingsHelper(SETTINGS_KEY, defaultValue);
settingsHelper.get(function(value) {
assert.equal(value, defaultValue);
done();
});
});
test('Should be initialized correctly with mozSettings', function(done) {
var defaultValue = 'default_value';
MockNavigatorSettings.mSettings[SETTINGS_KEY] = defaultValue;
var settingsHepler = SettingsHelper(SETTINGS_KEY);
settingsHepler.get(function(value) {
assert.equal(value, defaultValue);
done();
});
});
test('Should set to mozSettings with correct value', function(done) {
var setValue = 'set_value';
var settingsHepler = SettingsHelper(SETTINGS_KEY);
settingsHepler.set(setValue, function() {
assert.equal(MockNavigatorSettings.mSettings[SETTINGS_KEY], setValue);
done();
});
});
test('Shoule reflect mozSettings changes', function(done) {
var settingsHepler = SettingsHelper(SETTINGS_KEY, false);
settingsHepler.get(function(value) {
// Default false
assert.equal(value, false);
var obj = {};
obj[SETTINGS_KEY] = true;
var req = MockNavigatorSettings.createLock().set(obj);
req.onsuccess = function() {
settingsHepler.get(function(value) {
assert.equal(value, true);
done();
});
};
});
});
});