Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
219 lines
6.7 KiB
JavaScript
Executable file
219 lines
6.7 KiB
JavaScript
Executable file
/* global requireApp, suite, test, suiteSetup, suiteTeardown, setup, teardown */
|
|
/* global assert, MockNavigatorSettings, toneUpgrader */
|
|
'use strict';
|
|
|
|
requireApp('system/shared/test/unit/mocks/mock_navigator_moz_settings.js');
|
|
requireApp('system/js/tone_upgrader.js');
|
|
|
|
suite('system/ToneUpgrader', function() {
|
|
var realSettings;
|
|
|
|
suiteSetup(function() {
|
|
realSettings = navigator.mozSettings;
|
|
navigator.mozSettings = MockNavigatorSettings;
|
|
});
|
|
|
|
suiteTeardown(function() {
|
|
navigator.mozSettings = realSettings;
|
|
});
|
|
|
|
suite('Built-in ringtone', function() {
|
|
var type, expectedInfo;
|
|
|
|
setup(function() {
|
|
type = 'ringtone';
|
|
expectedInfo = {
|
|
settingsBase: 'dialer.ringtone',
|
|
baseURL: '/shared/resources/media/ringtones/',
|
|
name: 'ringer_firefox',
|
|
filename: 'ringer_firefox.opus',
|
|
mimetype: 'audio/ogg'
|
|
};
|
|
});
|
|
|
|
teardown(function() {});
|
|
|
|
suite('ToneUpgrader.getInfo()', function() {
|
|
test('with ringtone type', function() {
|
|
var testInfo = toneUpgrader.getInfo(type);
|
|
|
|
for (var property in testInfo) {
|
|
assert.equal(testInfo[property], expectedInfo[property]);
|
|
}
|
|
});
|
|
});
|
|
|
|
suite('ToneUpgrader.setDefault()', function() {
|
|
var toneName, toneIdKey, toneDefaultIdKey;
|
|
|
|
setup(function() {
|
|
toneName = expectedInfo.settingsBase + '.name';
|
|
toneIdKey = expectedInfo.settingsBase + '.id';
|
|
toneDefaultIdKey = expectedInfo.settingsBase + '.default.id';
|
|
});
|
|
|
|
teardown(function() {
|
|
for (var property in MockNavigatorSettings.mSettings) {
|
|
MockNavigatorSettings.mSettings[property] = '';
|
|
}
|
|
});
|
|
|
|
test('with ringtone type', function(done) {
|
|
toneUpgrader.setDefault(type).then(function() {
|
|
var mSettings = MockNavigatorSettings.mSettings;
|
|
var info = expectedInfo;
|
|
var prefix = 'builtin:';
|
|
assert.equal(mSettings[toneName].l10nID, info.name + '2');
|
|
assert.equal(mSettings[toneIdKey], prefix + type + '/' + info.name);
|
|
assert.equal(mSettings[toneDefaultIdKey], prefix + info.name);
|
|
}, function() {
|
|
assert.isTrue(false, 'Failed to set the default ringtone!');
|
|
}).then(done, done);
|
|
});
|
|
});
|
|
|
|
suite('ToneUpgrader.perform()', function() {
|
|
var toneIdKey;
|
|
|
|
setup(function() {
|
|
toneIdKey = toneUpgrader.getInfo(type).settingsBase + '.id';
|
|
MockNavigatorSettings.mSettings[toneIdKey] = 'builtin:one_of_the_tones';
|
|
});
|
|
|
|
teardown(function() {
|
|
MockNavigatorSettings.mSettings[toneIdKey] = '';
|
|
});
|
|
|
|
test('with ringtone type', function(done) {
|
|
toneUpgrader.perform(type).then(function() {
|
|
assert.isTrue(true, 'Succeed to perform upgrading the ringtone!');
|
|
}, function() {
|
|
assert.isTrue(false, 'Failed to perform upgrading the ringtone!');
|
|
}).then(done, done);
|
|
});
|
|
});
|
|
});
|
|
|
|
suite('Customized ringtone', function() {
|
|
var type;
|
|
var toneIdKey;
|
|
|
|
setup(function() {
|
|
type = 'ringtone';
|
|
toneIdKey = toneUpgrader.getInfo(type).settingsBase + '.id';
|
|
MockNavigatorSettings.mSettings[toneIdKey] = 'I_am_a_customized_tone';
|
|
});
|
|
|
|
teardown(function() {
|
|
MockNavigatorSettings.mSettings[toneIdKey] = '';
|
|
});
|
|
|
|
test('ToneUpgrader.perform() with customized ringtone', function(done) {
|
|
toneUpgrader.perform(type).then(function() {
|
|
assert.isTrue(true, 'Succeed to perform upgrading the ringtone!');
|
|
}, function() {
|
|
assert.isTrue(false, 'Failed to perform upgrading the ringtone!');
|
|
}).then(done, done);
|
|
});
|
|
});
|
|
|
|
suite('Built-in alerttone', function() {
|
|
var type, expectedInfo;
|
|
|
|
setup(function() {
|
|
type = 'alerttone';
|
|
expectedInfo = {
|
|
settingsBase: 'notification.ringtone',
|
|
baseURL: '/shared/resources/media/notifications/',
|
|
name: 'notifier_firefox',
|
|
filename: 'notifier_firefox.opus',
|
|
mimetype: 'audio/ogg'
|
|
};
|
|
});
|
|
|
|
teardown(function() {});
|
|
|
|
suite('ToneUpgrader.getInfo()', function() {
|
|
test('with alerttone type', function() {
|
|
var testInfo = toneUpgrader.getInfo(type);
|
|
|
|
for (var property in testInfo) {
|
|
assert.equal(testInfo[property], expectedInfo[property]);
|
|
}
|
|
});
|
|
});
|
|
|
|
suite('ToneUpgrader.setDefault()', function() {
|
|
var toneName, toneIdKey, toneDefaultIdKey;
|
|
|
|
setup(function() {
|
|
toneName = expectedInfo.settingsBase + '.name';
|
|
toneIdKey = expectedInfo.settingsBase + '.id';
|
|
toneDefaultIdKey = expectedInfo.settingsBase + '.default.id';
|
|
});
|
|
|
|
teardown(function() {
|
|
for (var property in MockNavigatorSettings.mSettings) {
|
|
MockNavigatorSettings.mSettings[property] = '';
|
|
}
|
|
});
|
|
|
|
test('with alerttone type', function(done) {
|
|
toneUpgrader.setDefault(type).then(function() {
|
|
var mSettings = MockNavigatorSettings.mSettings;
|
|
var info = expectedInfo;
|
|
var prefix = 'builtin:';
|
|
assert.equal(mSettings[toneName].l10nID, info.name + '2');
|
|
assert.equal(mSettings[toneIdKey], prefix + type + '/' + info.name);
|
|
assert.equal(mSettings[toneDefaultIdKey], prefix + info.name);
|
|
}, function() {
|
|
assert.isTrue(false, 'Failed to set the default alerttone!');
|
|
}).then(done, done);
|
|
});
|
|
});
|
|
|
|
suite('ToneUpgrader.perform()', function() {
|
|
var toneIdKey;
|
|
|
|
setup(function() {
|
|
toneIdKey = toneUpgrader.getInfo(type).settingsBase + '.id';
|
|
MockNavigatorSettings.mSettings[toneIdKey] = 'builtin:one_of_the_tones';
|
|
});
|
|
|
|
teardown(function() {
|
|
MockNavigatorSettings.mSettings[toneIdKey] = '';
|
|
});
|
|
|
|
test('with alerttone type', function(done) {
|
|
toneUpgrader.perform(type).then(function() {
|
|
assert.isTrue(true, 'Succeed to perform upgrading the alerttone!');
|
|
}, function() {
|
|
assert.isTrue(false, 'Failed to perform upgrading the alerttone!');
|
|
}).then(done, done);
|
|
});
|
|
});
|
|
});
|
|
|
|
suite('Customized alerttone', function() {
|
|
var type;
|
|
var toneIdKey;
|
|
|
|
setup(function() {
|
|
type = 'alerttone';
|
|
toneIdKey = toneUpgrader.getInfo(type).settingsBase + '.id';
|
|
MockNavigatorSettings.mSettings[toneIdKey] = 'I_am_a_customized_tone';
|
|
});
|
|
|
|
teardown(function() {
|
|
MockNavigatorSettings.mSettings[toneIdKey] = '';
|
|
});
|
|
|
|
test('ToneUpgrader.perform() with customized alerttone', function(done) {
|
|
toneUpgrader.perform(type).then(function() {
|
|
assert.isTrue(true, 'Succeed to perform upgrading the ringtone!');
|
|
}, function() {
|
|
assert.isTrue(false, 'Failed to perform upgrading the ringtone!');
|
|
}).then(done, done);
|
|
});
|
|
});
|
|
});
|