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,129 @@
'use strict';
var assert = require('assert');
var AppInstall = require('./lib/app_install');
var NotificationList = require('./lib/notification.js').NotificationList;
var createAppServer = require(
'../../../../apps/homescreen/test/marionette/server/parent');
marionette('Update add-on', function() {
var client = marionette.client({
profile: {
prefs: {
'dom.apps.developer_mode': true
},
settings: {
'addons.auto_update': true,
'addons.update_notify': true
}
}
});
var appInstall, server, system, notificationList;
suiteSetup(function(done) {
var app = __dirname + '/fixtures/template_addon';
createAppServer(app, client, function(err, _server) {
server = _server;
done(err);
});
});
suiteTeardown(function(done) {
server.close(done);
});
setup(function() {
appInstall = new AppInstall(client);
notificationList = new NotificationList(client);
system = client.loader.getAppClass('system');
system.waitForFullyLoaded();
client.switchToFrame();
});
test('Basic add-on update test', function() {
server.setRoot(__dirname + '/fixtures/template_addon');
appInstall.installPackage(server.webappUpdateURL);
// Update the add-on.
server.setRoot(__dirname + '/fixtures/template_addon_updated');
appInstall.stageUpdate(server.webappUpdateURL);
// We should get a notification on the first time an
// add-on is automatically installed
notificationList.waitForNotificationCount(2);
var notifications = client.findElements(NotificationList.Selector.allItems);
assert.ok(/Hello World Updated/.test(notifications[0].text()));
assert.ok(/Add-on Updates are Automatic/.test(notifications[1].text()));
// Get rid of current notifications
notificationList.clear();
// Update the add-on again
server.setRoot(__dirname + '/fixtures/template_addon_updated_again');
appInstall.stageUpdate(server.webappUpdateURL);
// On the second update, we will only get one notification for
// the addon being updated
notificationList.waitForNotificationCount(1);
notifications = client.findElements(NotificationList.Selector.allItems);
assert.ok(/Hello World Updated/.test(notifications[0].text()));
});
test('Auto update disabled test', function() {
server.setRoot(__dirname + '/fixtures/template_addon');
client.settings.set('addons.auto_update', false);
appInstall.installPackage(server.webappUpdateURL);
// Update the manifest.
server.setRoot(__dirname + '/fixtures/template_addon_updated');
// Check for an update.
appInstall.stageUpdate(server.webappUpdateURL);
// Dont wait 30 seconds for the notification to show
system.sendSystemUpdateNotification();
notificationList.waitForNotificationCount(1);
client.waitFor(function() {
var update = client.findElement(NotificationList.Selector.systemUpdate);
return /2 updates available./.test(update.text());
});
});
test('Basic add-on update with no notifications', function() {
server.setRoot(__dirname + '/fixtures/template_addon');
client.settings.set('addons.update_notify', false);
appInstall.installPackage(server.webappUpdateURL);
// Update the add-on.
server.setRoot(__dirname + '/fixtures/template_addon_updated');
appInstall.stageUpdate(server.webappUpdateURL);
// We should get a notification on the first time an
// add-on is automatically installed
notificationList.waitForNotificationCount(1);
var notifications = client.findElements(NotificationList.Selector.allItems);
assert.ok(/Add-on Updates are Automatic/.test(notifications[0].text()));
// Get rid of current notifications
notificationList.clear();
// Ensure we only search for the notification we are not expecting
// for 1 second (default is like 15)
client.setSearchTimeout(1000);
notifications = client.findElements(NotificationList.Selector.allItems);
assert.ok(notifications.length === 0);
});
});