Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
119 lines
3.4 KiB
JavaScript
Executable file
119 lines
3.4 KiB
JavaScript
Executable file
/*global MocksHelper, MockNavigatormozSetMessageHandler, Browser,
|
|
MockApplications, MockAppWindow, MockAppWindowHelper,
|
|
ActivityHandler, MockNavigatorSettings, setImmediate */
|
|
|
|
'use strict';
|
|
|
|
require('/js/browser_config_helper.js');
|
|
require('/shared/js/url_helper.js');
|
|
require('/shared/js/settings_listener.js');
|
|
require('/js/import.js');
|
|
require('/js/activity_handler.js');
|
|
require('/js/browser.js');
|
|
|
|
require('/shared/test/unit/mocks/mock_navigator_moz_set_message_handler.js');
|
|
require('/shared/test/unit/mocks/mock_navigator_moz_settings.js');
|
|
requireApp('system/test/unit/mock_lazy_loader.js');
|
|
require('/test/unit/mock_app_window.js');
|
|
require('/test/unit/mock_applications.js');
|
|
|
|
var mocksForBrowser = new MocksHelper([
|
|
'AppWindow', 'Applications', 'LazyLoader'
|
|
]).init();
|
|
|
|
suite('system/Browser', function() {
|
|
mocksForBrowser.attachTestHelpers();
|
|
|
|
var realMozSettings;
|
|
var realMozSetMessageHandler;
|
|
var subject;
|
|
var clock;
|
|
|
|
suiteSetup(function() {
|
|
realMozSettings = navigator.mozSettings;
|
|
navigator.mozSettings = MockNavigatorSettings;
|
|
realMozSetMessageHandler = navigator.mozSetMessageHandler;
|
|
navigator.mozSetMessageHandler = MockNavigatormozSetMessageHandler;
|
|
MockNavigatormozSetMessageHandler.mSetup();
|
|
window.applications = MockApplications;
|
|
var handler = new ActivityHandler();
|
|
handler.start();
|
|
subject = new Browser();
|
|
subject.start();
|
|
});
|
|
|
|
suiteTeardown(function() {
|
|
navigator.mozSetMessageHandler = realMozSetMessageHandler;
|
|
MockNavigatormozSetMessageHandler.mTeardown();
|
|
});
|
|
|
|
setup(function() {
|
|
MockNavigatorSettings.mSetup();
|
|
this.sinon.spy(MockAppWindow.prototype, 'requestOpen');
|
|
clock = this.sinon.useFakeTimers();
|
|
});
|
|
|
|
teardown(function() {
|
|
MockNavigatorSettings.mTeardown();
|
|
clock.restore();
|
|
});
|
|
|
|
test('should open a new app window with the correct config', function() {
|
|
MockNavigatormozSetMessageHandler.mTrigger('activity', {
|
|
source: {
|
|
name: 'view',
|
|
data: {
|
|
name: 'view',
|
|
type: 'url',
|
|
url: 'http://arandomurl.com'
|
|
}
|
|
}
|
|
});
|
|
|
|
assert.equal(MockAppWindowHelper.mInstances.length, 1);
|
|
var app = MockAppWindowHelper.mLatest;
|
|
assert.equal(app.oop, true);
|
|
assert.equal(app.url, 'http://arandomurl.com/');
|
|
assert.equal(app.origin, 'http://arandomurl.com/');
|
|
});
|
|
|
|
test('when private browsing is requested', function() {
|
|
MockNavigatormozSetMessageHandler.mTrigger('activity', {
|
|
source: {
|
|
name: 'view',
|
|
data: {
|
|
name: 'view',
|
|
type: 'url',
|
|
url: 'http://arandomurl.com',
|
|
isPrivate: true
|
|
}
|
|
}
|
|
});
|
|
|
|
assert.equal(MockAppWindowHelper.mInstances.length, 1);
|
|
var app = MockAppWindowHelper.mLatest;
|
|
assert.equal(app.isPrivate, true);
|
|
});
|
|
|
|
test('when private browsing is the default setting', function() {
|
|
MockNavigatorSettings.mTriggerObservers('browser.private.default',
|
|
{settingValue: true});
|
|
|
|
setImmediate(function () {
|
|
MockNavigatormozSetMessageHandler.mTrigger('activity', {
|
|
source: {
|
|
name: 'view',
|
|
data: {
|
|
name: 'view',
|
|
type: 'url',
|
|
url: 'http://arandomurl.com'
|
|
}
|
|
}
|
|
});
|
|
|
|
assert.equal(MockAppWindowHelper.mInstances.length, 1);
|
|
var app = MockAppWindowHelper.mLatest;
|
|
assert.equal(app.isPrivate, true);
|
|
});
|
|
});
|
|
});
|