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,134 @@
'use strict';
var Calendar = require('./lib/calendar'),
assert = require('chai').assert;
var SHARED_PATH = __dirname + '/../../../../shared/test/integration';
marionette('alarm', function() {
var app;
var client = marionette.client({
profile: {
prefs: {
// we need to disable the keyboard to avoid intermittent failures on
// Travis (transitions might take longer to run and block UI)
'dom.mozInputMethod.enabled': false,
// Do not require the B2G-desktop app window to have focus (as per the
// system window manager) in order for it to do focus-related things.
'focusmanager.testmode': true
}
},
desiredCapabilities: { raisesAccessibilityExceptions: false }
});
suite(' > with alarm mocks', function() {
setup(function() {
app = new Calendar(client);
client.contentScript.inject(SHARED_PATH +
'/mock_navigator_mozalarms.js');
client.contentScript.inject(SHARED_PATH +
'/mock_navigator_moz_set_message_handler.js');
app.launch();
});
suite('create event with a single reminder', function() {
setup(function() {
createEventWithReminders(app, ['5 minutes before']);
app.monthDay.scrollToEvent();
});
test('should display reminder in read-only event view', function() {
var reminders = getEventReminders(app);
assert.equal(reminders.length, 1);
assert.include(reminders, '5 minutes before');
});
test('should add alarm to alarms api', function() {
var alarms = getMozAlarms(client);
assert.equal(alarms.length, 1);
});
});
suite('create an event with two valid reminders', function() {
setup(function() {
createEventWithReminders(app, ['5 minutes before',
'15 minutes before']);
app.monthDay.scrollToEvent();
});
test('should display both reminders in read-only view', function() {
var reminders = getEventReminders(app);
assert.equal(reminders.length, 2);
assert.include(reminders, '5 minutes before');
assert.include(reminders, '15 minutes before');
});
test('should only fire one alarm', function() {
var alarms = getMozAlarms(client);
assert.equal(alarms.length, 1);
});
});
});
suite('> without alarm mocks', function() {
setup(function() {
app = new Calendar(client);
app.launch();
});
suite('create two events with simultaneous reminders', function() {
setup(function() {
var startTime = Date.now() + 5000; // 5 seconds in future
app.createEvent({
title: 'First Event',
startDate: new Date(startTime),
reminders: ['At time of event']
});
app.createEvent({
title: 'Second Event',
startDate: new Date(startTime),
reminders: ['At time of event']
});
});
test('both events trigger notifications', function() {
client.switchToFrame();
client.waitFor(function() {
var notificationSelector = '#desktop-notifications-container > div';
return client.findElements(notificationSelector).length > 1;
});
});
});
});
});
function createEventWithReminders(app, reminders) {
app.createEvent({
title: 'Panic!',
location: 'The Disco',
startDate: new Date(),
reminders: reminders
});
}
function getEventReminders(app) {
var event = app.monthDay.events[0];
event.click();
app.readEvent.waitForDisplay();
return app.readEvent.alarms;
}
function getMozAlarms(client) {
var alarms;
client.waitFor(function() {
alarms = client.executeScript(function() {
return window.wrappedJSObject.navigator.__mozFakeAlarms;
});
return alarms && alarms.length;
});
return alarms;
}