VulpesOS/gaia/apps/system/test/marionette/trusted_window_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

81 lines
2.1 KiB
JavaScript
Executable file

'use strict';
var Service = require('./lib/system');
var Server = require('../../../../shared/test/integration/server');
var FAKE_APP_URL = 'app://fakeapp.gaiamobile.org';
marionette('trusted window tests', function() {
var system, frame, server;
var client = marionette.client({
profile: {
apps: {
'fakeapp.gaiamobile.org': __dirname + '/../apps/fakeapp'
}
},
desiredCapabilities: { raisesAccessibilityExceptions: false }
});
suiteSetup(function(done) {
Server.create(__dirname + '/fixtures/', function(err, _server) {
server = _server;
done();
});
});
suiteTeardown(function() {
server.stop();
});
setup(function() {
system = new Service(client);
system.waitForFullyLoaded();
client.apps.launch(FAKE_APP_URL);
frame = system.waitForLaunch(FAKE_APP_URL);
});
function getCurrentAppId() {
client.executeScript(function() {
return window.wrappedJSObject
.Service.query('getTopMostWindow').instanceID;
});
}
function launchTrusted(requestId, chromeId, url, name) {
client.switchToFrame();
// Fire an trusted window in system app.
client.executeScript(function(requestId, chromeId, url) {
var frame = document.createElement('iframe');
frame.src = url;
window.wrappedJSObject.dispatchEvent(
new CustomEvent('launchtrusted', {
detail: {
name: 'test',
requestId: requestId,
chromeId: chromeId,
frame: frame
}
}));
}, [requestId, chromeId, url, name]);
}
test('launch/close trusted window', function() {
var fakeRequestId = 'request123';
var fakeChromeEventId = 'chrome321';
var url = server.url('empty.html');
launchTrusted(fakeRequestId, fakeChromeEventId, url, 'test');
var trustedWindow;
client.waitFor(function() {
trustedWindow = system.trustedWindow;
return trustedWindow.displayed();
});
system.trustedWindowChrome.tap(25, 25);
client.waitFor(function() {
return getCurrentAppId() !== 'trustedwindow';
});
});
});