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,223 @@
/* global MockNavigatorSettings
*/
'use strict';
require('/shared/test/unit/mocks/mock_navigator_moz_settings.js');
suite('Network Alerts - cellbroadcast system message handling', function() {
var handlerStub;
var realSettings = navigator.mozSettings;
var CMAS_KEY = 'cmas.enabled';
var getStub, setStub;
function mockMessage(opt = {}) {
var message = {
serviceId: 0,
cdmaServiceCategory: null,
body: 'Some body'
};
for (var key in opt) {
message[key] = opt[key];
}
return message;
}
suiteSetup(function(done) {
if (!window.navigator.mozSetMessageHandler) {
window.navigator.mozSetMessageHandler = function() {};
}
sinon.stub(window.navigator, 'mozSetMessageHandler');
handlerStub = window.navigator.mozSetMessageHandler;
require('/js/index.js', done);
});
setup(function() {
this.sinon.stub(window, 'close');
this.sinon.stub(window, 'open');
getStub = sinon.stub().returns(Promise.resolve());
setStub = sinon.stub().returns(Promise.resolve());
this.sinon.stub(MockNavigatorSettings, 'createLock').returns({
get: getStub,
set: setStub
});
navigator.mozSettings = MockNavigatorSettings;
});
teardown(function() {
navigator.mozSettings = realSettings;
MockNavigatorSettings.mTeardown();
});
test('do not open attention screen if error returns from settings DB',
function(done) {
var message = mockMessage({ messageId: 4371 });
getStub.returns(Promise.reject(new Error('error')));
var handler = handlerStub.withArgs('cellbroadcast-received').args[0][1];
var finished = handler(message);
finished.then(() => {
sinon.assert.notCalled(window.open);
sinon.assert.called(window.close);
}).then(done, done);
});
suite('if CMAS in settings DB is off', function() {
setup(function() {
getStub.returns(Promise.resolve({
[CMAS_KEY]: {
0: false,
1: false
}
}));
});
test('do not open attention screen', function(done) {
var message = mockMessage({ messageId: 4371 });
var handler = handlerStub.withArgs('cellbroadcast-received').args[0][1];
var finished = handler(message);
finished.then(() => {
sinon.assert.notCalled(window.open);
sinon.assert.called(window.close);
}).then(done, done);
});
[4370, 4383].forEach((presidentialId) => {
test('opens an attention screen if GSM message is a presidential alert ' +
presidentialId,
function(done) {
var message = mockMessage({ messageId: presidentialId });
var handler = handlerStub.withArgs('cellbroadcast-received').args[0][1];
var finished = handler(message);
var expectedUrl = [
'attention.html?',
'title=emergency-alert-title&',
'body=Some%20body'
].join('');
finished.then(() => {
sinon.assert.calledWith(
window.open,
expectedUrl, '_blank', 'attention'
);
sinon.assert.notCalled(window.close);
}).then(done, done);
});
});
test('opens an attention screen if CDMA message is a presidential alert ',
function(done) {
var message = mockMessage({ cdmaServiceCategory: 4096 });
var handler = handlerStub.withArgs('cellbroadcast-received').args[0][1];
var finished = handler(message);
var expectedUrl = [
'attention.html?',
'title=emergency-alert-title&',
'body=Some%20body'
].join('');
finished.then(() => {
sinon.assert.calledWith(
window.open,
expectedUrl, '_blank', 'attention'
);
sinon.assert.notCalled(window.close);
}).then(done, done);
});
});
test('opens an attention screen if GSM message is CMAS', function(done) {
var message = mockMessage({ messageId: 4371 });
getStub.returns(Promise.resolve({
[CMAS_KEY]: {
0: true,
1: false
}
}));
var handler = handlerStub.withArgs('cellbroadcast-received').args[0][1];
var finished = handler(message);
var expectedUrl = [
'attention.html?',
'title=emergency-alert-title&',
'body=Some%20body'
].join('');
finished.then(() => {
sinon.assert.calledWith(
window.open,
expectedUrl, '_blank', 'attention'
);
sinon.assert.notCalled(window.close);
}).then(done, done);
});
test('do not open attention screen if GSM message is other cellbroadcast',
function() {
var message = mockMessage({ messageId: 4401 });
handlerStub.withArgs('cellbroadcast-received').yield(message);
sinon.assert.notCalled(window.open);
sinon.assert.called(window.close);
});
test('opens an attention screen if CDMA message is CMAS', function(done) {
var message = mockMessage({ cdmaServiceCategory: 4096 });
getStub.returns(Promise.resolve({
[CMAS_KEY]: {
0: true,
1: false
}
}));
var handler = handlerStub.withArgs('cellbroadcast-received').args[0][1];
var finished = handler(message);
var expectedUrl = [
'attention.html?',
'title=emergency-alert-title&',
'body=Some%20body'
].join('');
finished.then(() => {
sinon.assert.calledWith(
window.open,
expectedUrl, '_blank', 'attention'
);
sinon.assert.notCalled(window.close);
}).then(done, done);
});
test('do not open attention screen if CDMA message is other cellbroadcast',
function() {
var message = mockMessage({ cdmaServiceCategory: 4095 });
handlerStub.withArgs('cellbroadcast-received').yield(message);
sinon.assert.notCalled(window.open);
sinon.assert.called(window.close);
});
});