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
188
gaia/apps/system/test/marionette/default_activity_test.js
Executable file
188
gaia/apps/system/test/marionette/default_activity_test.js
Executable file
|
|
@ -0,0 +1,188 @@
|
|||
/* global __dirname */
|
||||
'use strict';
|
||||
|
||||
(function() {
|
||||
var Server = require('../../../../shared/test/integration/server');
|
||||
var AppInstall = require('./lib/app_install');
|
||||
var ActivityCallerApp = require('./lib/activitycallerapp');
|
||||
var assert = require('assert');
|
||||
|
||||
var CALLER_APP = 'app://activitycaller.gaiamobile.org';
|
||||
var CALLEE_APP = 'app://activitycallee.gaiamobile.org';
|
||||
|
||||
var appInstall,
|
||||
system,
|
||||
activitycaller,
|
||||
server;
|
||||
|
||||
var setDefaultSelector = '[data-action=set-default-action]';
|
||||
|
||||
marionette('Triggering activity shows Set As Default option >', function() {
|
||||
var client = marionette.client({
|
||||
profile: {
|
||||
apps: {
|
||||
'activitycaller.gaiamobile.org': __dirname +
|
||||
'/../apps/activitycaller',
|
||||
'activitycallee.gaiamobile.org': __dirname + '/../apps/activitycallee'
|
||||
}
|
||||
},
|
||||
desiredCapabilities: { raisesAccessibilityExceptions: false }
|
||||
});
|
||||
|
||||
function getDisplayAppOrigin() {
|
||||
return client.executeScript(function() {
|
||||
return window.wrappedJSObject.Service.query('getTopMostWindow').origin;
|
||||
});
|
||||
}
|
||||
|
||||
suiteSetup(function(done) {
|
||||
var appToInstall = __dirname + '/../apps/fakeinstalledapp/';
|
||||
Server.create(appToInstall, function(err, _server) {
|
||||
server = _server;
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
suiteTeardown(function() {
|
||||
server.stop();
|
||||
});
|
||||
|
||||
setup(function() {
|
||||
appInstall = new AppInstall(client);
|
||||
system = client.loader.getAppClass('system');
|
||||
system.waitForFullyLoaded();
|
||||
activitycaller = new ActivityCallerApp(client);
|
||||
});
|
||||
|
||||
test('Default Activity chosen >', function() {
|
||||
activitycaller.launch();
|
||||
|
||||
// Try to launch CALLEE from CALLER
|
||||
activitycaller.startDefaultActivity();
|
||||
|
||||
// Check that app choice appear, showing default activity checkbox
|
||||
system.waitForActivityMenu();
|
||||
var checkbox = client.findElement(setDefaultSelector);
|
||||
assert.ok(checkbox.displayed);
|
||||
|
||||
// Activate 'Use as default' for the future
|
||||
checkbox.click();
|
||||
|
||||
// Launch CALLEE from the selection
|
||||
var selector = '[data-manifest="' + CALLEE_APP + '/manifest.webapp"]';
|
||||
client.findElement(selector).click();
|
||||
|
||||
client.switchToFrame();
|
||||
|
||||
// Check that CALLEE is open
|
||||
assert.equal(getDisplayAppOrigin(), CALLEE_APP);
|
||||
client.apps.switchToApp(CALLEE_APP);
|
||||
assert.ok(client.findElement('#default-test').displayed());
|
||||
|
||||
client.apps.close(CALLEE_APP);
|
||||
|
||||
// Try to launch CALLEE from CALLER again
|
||||
activitycaller.startDefaultActivity();
|
||||
|
||||
// the app choice doesn't appear this time
|
||||
try {
|
||||
client.findElement(setDefaultSelector);
|
||||
} catch (exception) {
|
||||
assert(exception.name === 'NoSuchElement');
|
||||
}
|
||||
|
||||
|
||||
// Check that CALLEE is open
|
||||
client.apps.switchToApp(CALLEE_APP);
|
||||
assert.ok(client.findElement('#default-test').displayed());
|
||||
});
|
||||
|
||||
test('Default Activity ignored >', function() {
|
||||
activitycaller.launch();
|
||||
|
||||
// Try to launch CALLEE from CALLER
|
||||
activitycaller.startDefaultActivity();
|
||||
|
||||
// Check that app choice appear, showing default activity checkbox
|
||||
system.waitForActivityMenu();
|
||||
var checkbox = client.findElement(setDefaultSelector);
|
||||
assert.ok(checkbox.displayed);
|
||||
|
||||
// Don't activate 'Use as default'
|
||||
|
||||
// Launch CALLEE from the selection
|
||||
var selector = '[data-manifest="' + CALLEE_APP + '/manifest.webapp"]';
|
||||
client.findElement(selector).click();
|
||||
|
||||
// Check that CALLEE is open
|
||||
client.apps.switchToApp(CALLEE_APP);
|
||||
assert.ok(client.findElement('#default-test').displayed());
|
||||
|
||||
client.apps.close(CALLEE_APP);
|
||||
client.switchToFrame();
|
||||
|
||||
// Try to launch CALLEE from CALLER again
|
||||
activitycaller.startDefaultActivity();
|
||||
|
||||
// the app choice appears again
|
||||
checkbox = client.findElement(setDefaultSelector);
|
||||
assert.ok(checkbox.displayed);
|
||||
});
|
||||
|
||||
test('Reset after new app is installed >', function() {
|
||||
activitycaller.launch();
|
||||
|
||||
// Try to launch CALLEE from CALLER
|
||||
activitycaller.startDefaultActivity();
|
||||
|
||||
// Check that app choice appear, showing default activity checkbox
|
||||
system.waitForActivityMenu();
|
||||
var checkbox = client.findElement(setDefaultSelector);
|
||||
assert.ok(checkbox.displayed);
|
||||
|
||||
// Activate 'Use as default' for the future
|
||||
checkbox.click();
|
||||
|
||||
// Launch CALLEE from the selection
|
||||
var selector = '[data-manifest="' + CALLEE_APP + '/manifest.webapp"]';
|
||||
client.findElement(selector).click();
|
||||
|
||||
client.switchToFrame();
|
||||
|
||||
// Check that CALLEE is open
|
||||
assert.equal(getDisplayAppOrigin(), CALLEE_APP);
|
||||
client.apps.switchToApp(CALLEE_APP);
|
||||
assert.ok(client.findElement('#default-test').displayed());
|
||||
|
||||
client.apps.close(CALLEE_APP);
|
||||
|
||||
// Try to launch CALLEE from CALLER again
|
||||
activitycaller.startDefaultActivity();
|
||||
|
||||
// the app choice doesn't appear this time
|
||||
try {
|
||||
client.findElement(setDefaultSelector);
|
||||
} catch (exception) {
|
||||
assert(exception.name === 'NoSuchElement');
|
||||
}
|
||||
|
||||
// Check that CALLEE is open
|
||||
client.apps.switchToApp(CALLEE_APP);
|
||||
assert.ok(client.findElement('#default-test').displayed());
|
||||
|
||||
client.apps.close(CALLEE_APP);
|
||||
client.apps.close(CALLER_APP);
|
||||
// Now we install the new app (with same activity receiver)
|
||||
var serverManifestURL = server.url('manifest.webapp');
|
||||
appInstall.install(serverManifestURL);
|
||||
|
||||
activitycaller.launch();
|
||||
activitycaller.startDefaultActivity();
|
||||
|
||||
// Check that app choice appears again
|
||||
checkbox = client.findElement(setDefaultSelector);
|
||||
assert.ok(checkbox.displayed);
|
||||
});
|
||||
});
|
||||
}());
|
||||
|
||||
Loading…
Reference in a new issue