VulpesOS/gaia/apps/system/test/unit/browser_settings_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

91 lines
2.8 KiB
JavaScript
Executable file

'use strict';
/* global BrowserSettings, MockNavigatormozApps, MockNavigatorSettings,
MockService, MocksHelper, MockLazyLoader, IconsHelper */
requireApp('system/shared/test/unit/mocks/mock_navigator_moz_apps.js');
requireApp('system/shared/test/unit/mocks/mock_navigator_moz_settings.js');
requireApp('system/shared/test/unit/mocks/mock_service.js');
requireApp('system/test/unit/mock_lazy_loader.js');
requireApp('system/shared/test/unit/mocks/mock_icons_helper.js');
var mocksForBrowserSettings = new MocksHelper([
'Service',
'LazyLoader',
'IconsHelper'
]).init();
suite('system/BrowserSettings', function() {
mocksForBrowserSettings.attachTestHelpers();
var realNavigatorSettings;
var realNavigatormozApps;
var browserSettings;
suiteSetup(function(done) {
realNavigatormozApps = navigator.mozApps;
navigator.mozApps = MockNavigatormozApps;
realNavigatorSettings = navigator.mozSettings;
navigator.mozSettings = MockNavigatorSettings;
requireApp('system/js/browser_settings.js', function() {
browserSettings = new BrowserSettings();
browserSettings.start();
done();
});
MockLazyLoader.mLoadRightAway = true;
sinon.spy(MockLazyLoader, 'load');
});
suiteTeardown(function() {
navigator.mozApps = realNavigatormozApps;
realNavigatormozApps = null;
navigator.mozSettings = realNavigatorSettings;
realNavigatorSettings = null;
});
suite('check for settings-based procedure handlers', function() {
test('setting clear.browser.history should clear places database',
function() {
this.sinon.spy(MockService, 'request');
navigator.mozSettings.createLock().set({'clear.browser.history': true});
assert.isTrue(MockService.request.calledWith('Places:clearHistory'),
'Places database clear should be requested');
}
);
test('setting clear.browser.private-data should call clearBrowserData',
function() {
navigator.mozSettings.createLock().set({
'clear.browser.private-data': true
});
var called = false;
// Resolve DOMRequest to a fake app object
MockNavigatormozApps.mLastRequest.result = {
clearBrowserData: function() {
called = true;
}
};
MockNavigatormozApps.mLastRequest.onsuccess();
assert.isTrue(called,
'Browser data clear should be requested');
}
);
test('setting clear.browser.private-data should clear icons dataStore',
function() {
var iconsHelperStub = this.sinon.stub(IconsHelper, 'clear');
navigator.mozSettings.createLock().set({
'clear.browser.private-data': true
});
assert.isTrue(iconsHelperStub.called,
'IconsHelper.clear() should be called');
}
);
});
});