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:
OverSu 2026-09-30 23:13:03 +02:00
commit b38dea0597
25901 changed files with 9982925 additions and 369 deletions

View file

@ -0,0 +1,132 @@
'use strict';
var assert = require('assert');
marionette('launch', function() {
// requires
var launch = require('../lib/launch').launch,
getApp = require('../lib/getapp').getApp;
var client = marionette.client();
marionette.plugin('mozApps', require('../lib/apps'));
suite('launch installed app', function() {
function waitForVisibility(iframe, callback) {
iframe.displayed(function(err, isDisplayed) {
if (err) return callback(err);
if (isDisplayed)
return callback();
setTimeout(waitForVisibility, 250, iframe, callback);
});
}
function getAppFrame(origin, callback) {
client.findElement('iframe[src*="' + origin + '"]', callback);
}
var origin = 'app://calendar.gaiamobile.org';
setup(function(done) {
launch(client.mozApps, origin, done);
});
// find iframe
var iframe;
setup(function(done) {
getAppFrame(origin, function(err, el) {
iframe = el;
done(err);
});
});
test('iframe exists', function() {
assert.ok(iframe, 'iframe exists');
});
test('iframe is visible', function(done) {
this.timeout('10s');
/**
* Wait until iframe is visible.
*/
waitForVisibility(iframe, done);
});
test('double launch does not timeout', function(done) {
client.switchToFrame();
launch(client.mozApps, origin, function() {
getAppFrame(origin, function(err, el) {
if (err) {
return done(err);
}
waitForVisibility(el, done);
});
});
});
});
suite('entrypoints', function() {
var origin = 'app://communications.gaiamobile.org';
var app;
setup(function(done) {
getApp(client.mozApps, origin, function(err, _app) {
app = _app;
done(err);
});
});
test('has entry_points', function() {
assert.ok(app.manifest.entry_points, 'entrypoints are availalbe');
});
function launchApp(entrypoint) {
var state = {};
setup(function(done) {
launch(client.mozApps, origin, entrypoint, function(err, app, el) {
state.error = err;
state.app = app;
state.frame = el;
done();
});
});
return state;
}
suite('success', function() {
// launch another app with this domain first to verify we can actually
// pick the right one.
var dialer = launchApp('dialer');
var contacts = launchApp('contacts');
test('is launched to entrypoint', function(done) {
assert.ok(!dialer.error, 'other app launched');
var entrypoint = app.manifest.entry_points.contacts;
// switch to new iframe
client.switchToFrame(contacts.frame);
// verify we are at the right entrypoint
client.getUrl(function(err, url) {
assert.ok(
url.indexOf(entrypoint.launch_path) !== -1,
url + ' contains ' + entrypoint
);
done();
});
});
});
suite('failure', function() {
var fakeapp = launchApp('nowayappisnamedthis');
test('fails with an error', function() {
assert.ok(fakeapp.error, 'has an error' + fakeapp.error);
assert.ok(fakeapp.error.message.match(/entrypoint/));
});
});
});
});