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:
parent
93e3a48004
commit
b38dea0597
25901 changed files with 9982925 additions and 369 deletions
689
gaia/apps/ftu/test/unit/sim_manager_test.js
Executable file
689
gaia/apps/ftu/test/unit/sim_manager_test.js
Executable file
|
|
@ -0,0 +1,689 @@
|
|||
/* global UIManager, SimManager, MobileOperator, MocksHelper,
|
||||
MockNavigatorMozIccManager, MockNavigatorMozMobileConnections,
|
||||
Navigation, MockL10n */
|
||||
|
||||
'use strict';
|
||||
|
||||
require('/shared/test/unit/mocks/mock_navigator_moz_mobile_connections.js');
|
||||
require('/shared/test/unit/mocks/mock_navigator_moz_icc_manager.js');
|
||||
require('/shared/test/unit/mocks/mock_mobile_operator.js');
|
||||
requireApp('ftu/test/unit/mock_ui_manager.js');
|
||||
require('/shared/test/unit/mocks/mock_l10n.js');
|
||||
|
||||
requireApp('ftu/js/sim_manager.js');
|
||||
requireApp('ftu/js/navigation.js');
|
||||
|
||||
require('/shared/test/unit/load_body_html_helper.js');
|
||||
|
||||
var mocksHelperForSimManager = new MocksHelper([
|
||||
'UIManager',
|
||||
'MobileOperator'
|
||||
]).init();
|
||||
|
||||
suite('sim mgmt >', function() {
|
||||
var realL10n,
|
||||
realMozIccManager,
|
||||
realMozMobileConnections;
|
||||
var navigationStub,
|
||||
iccId0,
|
||||
iccInfo0,
|
||||
req,
|
||||
getCardLockRetryCountStub;
|
||||
var l10nAttrs;
|
||||
|
||||
var setupRetryCount = function() {
|
||||
req = { result: { retryCount: 3 } };
|
||||
getCardLockRetryCountStub = sinon.stub(iccInfo0, 'getCardLockRetryCount',
|
||||
function() {
|
||||
return req;
|
||||
});
|
||||
};
|
||||
|
||||
var fireRetryCountCallback = function() {
|
||||
req.onsuccess && req.onsuccess();
|
||||
};
|
||||
|
||||
var teardownRetryCount = function() {
|
||||
getCardLockRetryCountStub.restore();
|
||||
};
|
||||
|
||||
mocksHelperForSimManager.attachTestHelpers();
|
||||
|
||||
suiteSetup(function() {
|
||||
loadBodyHTML('/index.html');
|
||||
|
||||
realMozIccManager = navigator.mozIccManager;
|
||||
navigator.mozIccManager = MockNavigatorMozIccManager;
|
||||
|
||||
realMozMobileConnections = navigator.mozMobileConnections;
|
||||
MockNavigatorMozMobileConnections[0].iccId =
|
||||
navigator.mozIccManager.iccIds[0];
|
||||
navigator.mozMobileConnections = MockNavigatorMozMobileConnections;
|
||||
|
||||
realL10n = document.l10n;
|
||||
document.l10n = MockL10n;
|
||||
|
||||
iccId0 = navigator.mozIccManager.iccIds[0];
|
||||
iccInfo0 = navigator.mozIccManager.getIccById(iccId0);
|
||||
});
|
||||
|
||||
setup(function() {
|
||||
SimManager.init();
|
||||
|
||||
UIManager.activationScreen.classList.remove('show');
|
||||
UIManager.unlockSimScreen.classList.add('show');
|
||||
|
||||
setupRetryCount();
|
||||
});
|
||||
|
||||
teardown(function() {
|
||||
teardownRetryCount();
|
||||
});
|
||||
|
||||
suiteTeardown(function() {
|
||||
document.body.innerHTML = '';
|
||||
|
||||
navigator.mozMobileConnections = realMozMobileConnections;
|
||||
realMozMobileConnections = null;
|
||||
|
||||
navigator.mozIccManager = realMozIccManager;
|
||||
realMozIccManager = null;
|
||||
|
||||
document.l10n = realL10n;
|
||||
realL10n = null;
|
||||
});
|
||||
|
||||
test('"Skip" hides the screen', function() {
|
||||
iccInfo0.cardState = 'pinRequired';
|
||||
SimManager.handleCardState();
|
||||
|
||||
fireRetryCountCallback();
|
||||
assert.isFalse(UIManager.pinRetriesLeft.classList.contains('hidden'));
|
||||
assert.isTrue(getCardLockRetryCountStub.calledOnce);
|
||||
|
||||
SimManager.skip();
|
||||
assert.isTrue(UIManager.activationScreen.classList.contains('show'));
|
||||
assert.isFalse(UIManager.unlockSimScreen.classList.contains('show'));
|
||||
assert.isTrue(UIManager.pinRetriesLeft.classList.contains('hidden'));
|
||||
});
|
||||
|
||||
test('"Back" hides the screen', function() {
|
||||
iccInfo0.cardState = 'pinRequired';
|
||||
SimManager.handleCardState();
|
||||
|
||||
fireRetryCountCallback();
|
||||
assert.isFalse(UIManager.pinRetriesLeft.classList.contains('hidden'));
|
||||
|
||||
navigationStub = sinon.stub(Navigation, 'back');
|
||||
SimManager.back();
|
||||
assert.ok(navigationStub.calledOnce);
|
||||
assert.isTrue(UIManager.activationScreen.classList.contains('show'));
|
||||
assert.isFalse(UIManager.unlockSimScreen.classList.contains('show'));
|
||||
assert.isTrue(UIManager.pinRetriesLeft.classList.contains('hidden'));
|
||||
navigationStub.restore();
|
||||
});
|
||||
|
||||
suite('Handle state changes', function() {
|
||||
|
||||
setup(function() {
|
||||
UIManager.unlockSimScreen.classList.remove('show');
|
||||
});
|
||||
|
||||
test('pinRequired shows PIN screen', function() {
|
||||
iccInfo0.cardState = 'pinRequired';
|
||||
SimManager.handleCardState();
|
||||
|
||||
assert.isTrue(UIManager.unlockSimScreen.classList.contains('show'));
|
||||
|
||||
assert.isTrue(UIManager.pincodeScreen.classList.contains('show'));
|
||||
assert.isFalse(UIManager.pukcodeScreen.classList.contains('show'));
|
||||
assert.isFalse(UIManager.xckcodeScreen.classList.contains('show'));
|
||||
|
||||
fireRetryCountCallback();
|
||||
assert.isFalse(UIManager.pinRetriesLeft.classList.contains('hidden'));
|
||||
assert.isTrue(getCardLockRetryCountStub.calledOnce);
|
||||
});
|
||||
|
||||
test('pukRequired shows PUK screen', function() {
|
||||
iccInfo0.cardState = 'pukRequired';
|
||||
SimManager.handleCardState();
|
||||
|
||||
assert.isTrue(UIManager.unlockSimScreen.classList.contains('show'));
|
||||
assert.equal(UIManager.pinLabel.getAttribute('data-l10n-id'), 'type_pin');
|
||||
|
||||
assert.isFalse(UIManager.pincodeScreen.classList.contains('show'));
|
||||
assert.isTrue(UIManager.pukcodeScreen.classList.contains('show'));
|
||||
assert.isFalse(UIManager.xckcodeScreen.classList.contains('show'));
|
||||
|
||||
fireRetryCountCallback();
|
||||
assert.isFalse(UIManager.pukRetriesLeft.classList.contains('hidden'));
|
||||
assert.isTrue(getCardLockRetryCountStub.calledOnce);
|
||||
});
|
||||
|
||||
test('networkLocked shows XCK screen', function() {
|
||||
iccInfo0.cardState = 'networkLocked';
|
||||
SimManager.handleCardState();
|
||||
|
||||
assert.isTrue(UIManager.unlockSimScreen.classList.contains('show'));
|
||||
|
||||
assert.isFalse(UIManager.pincodeScreen.classList.contains('show'));
|
||||
assert.isFalse(UIManager.pukcodeScreen.classList.contains('show'));
|
||||
assert.isTrue(UIManager.xckcodeScreen.classList.contains('show'));
|
||||
|
||||
fireRetryCountCallback();
|
||||
assert.isFalse(UIManager.xckRetriesLeft.classList.contains('hidden'));
|
||||
assert.isTrue(getCardLockRetryCountStub.calledOnce);
|
||||
});
|
||||
});
|
||||
|
||||
suite('Handle state changes DSDS', function() {
|
||||
var iccId1;
|
||||
var iccInfo1;
|
||||
|
||||
suiteSetup(function() {
|
||||
iccId1 = '98765';
|
||||
navigator.mozIccManager.addIcc(iccId1);
|
||||
iccInfo1 = navigator.mozIccManager.getIccById(iccId1);
|
||||
navigator.mozMobileConnections.mAddMobileConnection();
|
||||
navigator.mozMobileConnections[1].iccId = iccId1;
|
||||
navigator.mozMobileConnections[1].iccInfo = iccInfo1;
|
||||
|
||||
SimManager.updateIccState(iccId1);
|
||||
SimManager.simSlots = 2;
|
||||
});
|
||||
|
||||
suiteTeardown(function() {
|
||||
navigator.mozIccManager.removeIcc(iccId1);
|
||||
navigator.mozMobileConnections.mRemoveMobileConnection(1);
|
||||
SimManager.simSlots = 1;
|
||||
SimManager.icc1 = null;
|
||||
});
|
||||
|
||||
test('pinRequired DSDS screen', function() {
|
||||
iccInfo0.cardState = 'pinRequired';
|
||||
iccInfo1.cardState = 'pinRequired';
|
||||
SimManager.handleCardState();
|
||||
|
||||
assert.isTrue(UIManager.unlockSimScreen.classList.contains('show'));
|
||||
l10nAttrs = document.l10n.getAttributes(UIManager.pinLabel);
|
||||
assert.equal(l10nAttrs.id, 'pincodeLabel');
|
||||
assert.deepEqual(l10nAttrs.args, {n: 1});
|
||||
|
||||
fireRetryCountCallback();
|
||||
assert.isTrue(getCardLockRetryCountStub.calledOnce);
|
||||
assert.isFalse(UIManager.pinRetriesLeft.classList.contains('hidden'));
|
||||
|
||||
SimManager.skip();
|
||||
l10nAttrs = document.l10n.getAttributes(UIManager.pinLabel);
|
||||
assert.equal(l10nAttrs.id, 'pincodeLabel');
|
||||
assert.deepEqual(l10nAttrs.args, {n: 2});
|
||||
assert.isTrue(UIManager.pinRetriesLeft.classList.contains('hidden'));
|
||||
});
|
||||
|
||||
test('pukRequired DSDS screen', function() {
|
||||
iccInfo0.cardState = 'pukRequired';
|
||||
iccInfo1.cardState = 'pukRequired';
|
||||
SimManager.handleCardState();
|
||||
|
||||
assert.isTrue(UIManager.unlockSimScreen.classList.contains('show'));
|
||||
l10nAttrs = document.l10n.getAttributes(UIManager.pukLabel);
|
||||
assert.equal(l10nAttrs.id, 'pukcodeLabel');
|
||||
assert.deepEqual(l10nAttrs.args, {n: 1});
|
||||
|
||||
fireRetryCountCallback();
|
||||
assert.isTrue(getCardLockRetryCountStub.calledOnce);
|
||||
assert.isFalse(UIManager.pukRetriesLeft.classList.contains('hidden'));
|
||||
|
||||
SimManager.skip();
|
||||
l10nAttrs = document.l10n.getAttributes(UIManager.pukLabel);
|
||||
assert.equal(l10nAttrs.id, 'pukcodeLabel');
|
||||
assert.deepEqual(l10nAttrs.args, {n: 2});
|
||||
assert.isTrue(UIManager.pukRetriesLeft.classList.contains('hidden'));
|
||||
});
|
||||
|
||||
test('xckRequired DSDS screen', function() {
|
||||
iccInfo0.cardState = 'networkLocked';
|
||||
iccInfo1.cardState = 'networkLocked';
|
||||
SimManager.handleCardState();
|
||||
|
||||
assert.isTrue(UIManager.unlockSimScreen.classList.contains('show'));
|
||||
l10nAttrs = document.l10n.getAttributes(UIManager.xckLabel);
|
||||
assert.equal(l10nAttrs.id, 'nckcodeLabel');
|
||||
assert.deepEqual(l10nAttrs.args, {n: 1});
|
||||
|
||||
fireRetryCountCallback();
|
||||
assert.isTrue(getCardLockRetryCountStub.calledOnce);
|
||||
assert.isFalse(UIManager.xckRetriesLeft.classList.contains('hidden'));
|
||||
|
||||
SimManager.skip();
|
||||
l10nAttrs = document.l10n.getAttributes(UIManager.xckLabel);
|
||||
assert.equal(l10nAttrs.id, 'nckcodeLabel');
|
||||
assert.deepEqual(l10nAttrs.args, {n: 2});
|
||||
assert.isTrue(UIManager.xckRetriesLeft.classList.contains('hidden'));
|
||||
});
|
||||
});
|
||||
|
||||
suite('Unlocking', function() {
|
||||
|
||||
suite('PIN unlock ', function() {
|
||||
setup(function() {
|
||||
iccInfo0.cardState = 'pinRequired';
|
||||
SimManager.resetForm();
|
||||
SimManager.handleCardState();
|
||||
// start from original state each test
|
||||
UIManager.pinInput.classList.remove('onerror');
|
||||
UIManager.pinError.classList.add('hidden');
|
||||
UIManager.pinRetriesLeft.classList.add('hidden');
|
||||
});
|
||||
|
||||
suite('Unlock button > ', function() {
|
||||
teardown(function() {
|
||||
UIManager.pinInput.value = '';
|
||||
});
|
||||
test('should be disabled by default', function() {
|
||||
assert.isTrue(UIManager.unlockSimButton.disabled);
|
||||
});
|
||||
|
||||
test('should be disabled with short PIN', function() {
|
||||
UIManager.pinInput.value = 123;
|
||||
UIManager.pinInput.dispatchEvent(new CustomEvent('input'));
|
||||
assert.isTrue(UIManager.unlockSimButton.disabled);
|
||||
});
|
||||
|
||||
test('should be enabled with proper size PIN', function() {
|
||||
UIManager.pinInput.value = 1234;
|
||||
UIManager.pinInput.dispatchEvent(new CustomEvent('input'));
|
||||
assert.isFalse(UIManager.unlockSimButton.disabled);
|
||||
});
|
||||
});
|
||||
|
||||
test('too short PIN', function() {
|
||||
UIManager.pinInput.value = 123;
|
||||
SimManager.unlock();
|
||||
assert.isTrue(UIManager.pinRetriesLeft.classList.contains('hidden'));
|
||||
assert.isTrue(UIManager.pinInput.classList.contains('onerror'));
|
||||
assert.isFalse(UIManager.pinError.classList.contains('hidden'));
|
||||
assert.isFalse(SimManager.icc0.unlocked);
|
||||
});
|
||||
test('too long PIN', function() {
|
||||
UIManager.pinInput.value = 123456789;
|
||||
SimManager.unlock();
|
||||
assert.isTrue(UIManager.pinRetriesLeft.classList.contains('hidden'));
|
||||
assert.isTrue(UIManager.pinInput.classList.contains('onerror'));
|
||||
assert.isFalse(UIManager.pinError.classList.contains('hidden'));
|
||||
assert.isFalse(SimManager.icc0.unlocked);
|
||||
});
|
||||
test('wrong sim pin with > 1 retries', function() {
|
||||
SimManager.icc0.mozIcc.retryCount = 2;
|
||||
UIManager.pinInput.value = '0000'; // special failure pin value
|
||||
SimManager.unlock();
|
||||
assert.isFalse(UIManager.pinRetriesLeft.classList.contains('hidden'));
|
||||
assert.isTrue(UIManager.pinInput.classList.contains('onerror'));
|
||||
assert.isFalse(UIManager.pinError.classList.contains('hidden'));
|
||||
assert.isFalse(SimManager.icc0.unlocked);
|
||||
assert.isFalse(UIManager.activationScreen.classList.contains('show'));
|
||||
assert.isTrue(UIManager.unlockSimScreen.classList.contains('show'));
|
||||
assert.isTrue(UIManager.pinError.querySelector('.lastchance')
|
||||
.classList.contains('hidden'));
|
||||
assert.isFalse(UIManager.pinError.querySelector('.main')
|
||||
.classList.contains('hidden'));
|
||||
});
|
||||
test('wrong sim pin with exactly 1 retry', function() {
|
||||
SimManager.icc0.mozIcc.retryCount = 1;
|
||||
UIManager.pinInput.value = '0000'; // special failure pin value
|
||||
SimManager.unlock();
|
||||
assert.isFalse(UIManager.pinError.querySelector('.lastchance')
|
||||
.classList.contains('hidden'));
|
||||
assert.isTrue(UIManager.pinError.querySelector('.main')
|
||||
.classList.contains('hidden'));
|
||||
});
|
||||
test('all fields correct', function() {
|
||||
fireRetryCountCallback();
|
||||
assert.isFalse(UIManager.pinRetriesLeft.classList.contains('hidden'));
|
||||
UIManager.pinInput.value = 1234;
|
||||
SimManager.unlock();
|
||||
assert.isTrue(UIManager.pinRetriesLeft.classList.contains('hidden'));
|
||||
assert.isFalse(UIManager.pinInput.classList.contains('onerror'));
|
||||
assert.isTrue(UIManager.pinError.classList.contains('hidden'));
|
||||
assert.isTrue(SimManager.icc0.unlocked);
|
||||
assert.isTrue(UIManager.activationScreen.classList.contains('show'));
|
||||
assert.isFalse(UIManager.unlockSimScreen.classList.contains('show'));
|
||||
});
|
||||
});
|
||||
|
||||
suite('PUK unlock ', function() {
|
||||
setup(function() {
|
||||
iccInfo0.cardState = 'pukRequired';
|
||||
SimManager.resetForm();
|
||||
SimManager.handleCardState();
|
||||
// start from original state each test
|
||||
UIManager.pukInput.classList.remove('onerror');
|
||||
UIManager.pukError.classList.add('hidden');
|
||||
UIManager.pukRetriesLeft.classList.add('hidden');
|
||||
});
|
||||
|
||||
test('wrong length PUK', function() {
|
||||
UIManager.pukInput.value = 123;
|
||||
SimManager.unlock();
|
||||
|
||||
assert.isTrue(UIManager.pukRetriesLeft.classList.contains('hidden'));
|
||||
assert.isTrue(UIManager.pukInput.classList.contains('onerror'));
|
||||
assert.isFalse(UIManager.pukError.classList.contains('hidden'));
|
||||
assert.isFalse(SimManager.icc0.unlocked);
|
||||
});
|
||||
test('too short newPIN', function() {
|
||||
UIManager.pukInput.value = 12345678;
|
||||
UIManager.newpinInput.value = 123;
|
||||
SimManager.unlock();
|
||||
|
||||
assert.isTrue(UIManager.pukRetriesLeft.classList.contains('hidden'));
|
||||
assert.isTrue(UIManager.newpinInput.classList.contains('onerror'));
|
||||
assert.isFalse(UIManager.newpinError.classList.contains('hidden'));
|
||||
assert.isFalse(SimManager.icc0.unlocked);
|
||||
});
|
||||
test('too long newPIN', function() {
|
||||
UIManager.pukInput.value = 12345678;
|
||||
UIManager.newpinInput.value = 123456789;
|
||||
SimManager.unlock();
|
||||
|
||||
assert.isTrue(UIManager.pukRetriesLeft.classList.contains('hidden'));
|
||||
assert.isTrue(UIManager.newpinInput.classList.contains('onerror'));
|
||||
assert.isFalse(UIManager.newpinError.classList.contains('hidden'));
|
||||
assert.isFalse(SimManager.icc0.unlocked);
|
||||
});
|
||||
test('different PIN and confirm PIN', function() {
|
||||
UIManager.pukInput.value = 12345678;
|
||||
UIManager.newpinInput.value = 1234;
|
||||
UIManager.confirmNewpinInput.value = 4321;
|
||||
SimManager.unlock();
|
||||
|
||||
assert.isTrue(UIManager.pukRetriesLeft.classList.contains('hidden'));
|
||||
assert.isTrue(UIManager.newpinInput.classList.contains('onerror'));
|
||||
assert.isTrue(UIManager.confirmNewpinInput.classList.contains(
|
||||
'onerror'));
|
||||
assert.isFalse(UIManager.confirmNewpinError.classList.contains(
|
||||
'hidden'));
|
||||
assert.isFalse(SimManager.icc0.unlocked);
|
||||
});
|
||||
test('wrong sim puk with > 1 retries', function() {
|
||||
SimManager.icc0.mozIcc.retryCount = 2;
|
||||
UIManager.pukInput.value = '00000000'; // special failure pin value
|
||||
UIManager.newpinInput.value = 1234;
|
||||
UIManager.confirmNewpinInput.value = 1234;
|
||||
SimManager.unlock();
|
||||
assert.isFalse(UIManager.pukRetriesLeft.classList.contains('hidden'));
|
||||
assert.isTrue(UIManager.pukInput.classList.contains('onerror'));
|
||||
assert.isFalse(UIManager.pukError.classList.contains('hidden'));
|
||||
assert.isFalse(SimManager.icc0.unlocked);
|
||||
assert.isFalse(UIManager.activationScreen.classList.contains('show'));
|
||||
assert.isTrue(UIManager.unlockSimScreen.classList.contains('show'));
|
||||
assert.isTrue(UIManager.pukError.querySelector('.lastchance')
|
||||
.classList.contains('hidden'));
|
||||
assert.isFalse(UIManager.pukError.querySelector('.main')
|
||||
.classList.contains('hidden'));
|
||||
});
|
||||
test('wrong sim puk with exactly 1 retry', function() {
|
||||
SimManager.icc0.mozIcc.retryCount = 1;
|
||||
UIManager.pukInput.value = '00000000'; // special failure pin value
|
||||
UIManager.newpinInput.value = 1234;
|
||||
UIManager.confirmNewpinInput.value = 1234;
|
||||
SimManager.unlock();
|
||||
assert.isFalse(UIManager.pukError.querySelector('.lastchance')
|
||||
.classList.contains('hidden'));
|
||||
assert.isTrue(UIManager.pukError.querySelector('.main')
|
||||
.classList.contains('hidden'));
|
||||
});
|
||||
test('all fields correct', function() {
|
||||
fireRetryCountCallback();
|
||||
assert.isFalse(UIManager.pukRetriesLeft.classList.contains('hidden'));
|
||||
UIManager.pukInput.value = 12345678;
|
||||
UIManager.newpinInput.value = 1234;
|
||||
UIManager.confirmNewpinInput.value = 1234;
|
||||
SimManager.unlock();
|
||||
|
||||
assert.isTrue(UIManager.pukRetriesLeft.classList.contains('hidden'));
|
||||
assert.isFalse(UIManager.pukInput.classList.contains('onerror'));
|
||||
assert.isTrue(UIManager.pukError.classList.contains('hidden'));
|
||||
assert.isFalse(UIManager.newpinInput.classList.contains('onerror'));
|
||||
assert.isTrue(UIManager.newpinError.classList.contains('hidden'));
|
||||
assert.isFalse(UIManager.confirmNewpinInput.classList.contains(
|
||||
'onerror'));
|
||||
assert.isTrue(UIManager.confirmNewpinError.classList.contains(
|
||||
'hidden'));
|
||||
assert.isTrue(SimManager.icc0.unlocked);
|
||||
assert.isTrue(UIManager.activationScreen.classList.contains('show'));
|
||||
assert.isFalse(UIManager.unlockSimScreen.classList.contains('show'));
|
||||
});
|
||||
});
|
||||
|
||||
suite('XCK unlock ', function() {
|
||||
setup(function() {
|
||||
iccInfo0.cardState = 'networkLocked';
|
||||
SimManager.resetForm();
|
||||
SimManager.handleCardState();
|
||||
// start from original state each test
|
||||
UIManager.xckInput.classList.remove('onerror');
|
||||
UIManager.xckError.classList.add('hidden');
|
||||
UIManager.xckRetriesLeft.classList.add('hidden');
|
||||
});
|
||||
|
||||
test('too short XCK', function() {
|
||||
UIManager.xckInput.value = 1234567;
|
||||
SimManager.unlock();
|
||||
|
||||
assert.isTrue(UIManager.xckRetriesLeft.classList.contains('hidden'));
|
||||
assert.isTrue(UIManager.xckInput.classList.contains('onerror'));
|
||||
assert.isFalse(UIManager.xckError.classList.contains('hidden'));
|
||||
assert.isFalse(SimManager.icc0.unlocked);
|
||||
});
|
||||
test('too long XCK', function() {
|
||||
UIManager.xckInput.value = 12345678901234567;
|
||||
SimManager.unlock();
|
||||
|
||||
assert.isTrue(UIManager.xckRetriesLeft.classList.contains('hidden'));
|
||||
assert.isTrue(UIManager.xckInput.classList.contains('onerror'));
|
||||
assert.isFalse(UIManager.xckError.classList.contains('hidden'));
|
||||
assert.isFalse(SimManager.icc0.unlocked);
|
||||
});
|
||||
test('wrong sim XCK with > 1 retries', function() {
|
||||
SimManager.icc0.mozIcc.retryCount = 2;
|
||||
UIManager.xckInput.value = '00000000'; // special failure pin value
|
||||
SimManager.unlock();
|
||||
assert.isFalse(UIManager.xckRetriesLeft.classList.contains('hidden'));
|
||||
assert.isTrue(UIManager.xckInput.classList.contains('onerror'));
|
||||
assert.isFalse(UIManager.xckError.classList.contains('hidden'));
|
||||
assert.isFalse(SimManager.icc0.unlocked);
|
||||
assert.isFalse(UIManager.activationScreen.classList.contains('show'));
|
||||
assert.isTrue(UIManager.unlockSimScreen.classList.contains('show'));
|
||||
assert.isTrue(UIManager.xckError.querySelector('.lastchance')
|
||||
.classList.contains('hidden'));
|
||||
assert.isFalse(UIManager.xckError.querySelector('.main')
|
||||
.classList.contains('hidden'));
|
||||
});
|
||||
test('wrong sim XCK with exactly 1 retry', function() {
|
||||
SimManager.icc0.mozIcc.retryCount = 1;
|
||||
UIManager.xckInput.value = '00000000'; // special failure pin value
|
||||
SimManager.unlock();
|
||||
assert.isFalse(UIManager.xckError.querySelector('.lastchance')
|
||||
.classList.contains('hidden'));
|
||||
assert.isTrue(UIManager.xckError.querySelector('.main')
|
||||
.classList.contains('hidden'));
|
||||
});
|
||||
test('all fields correct', function() {
|
||||
fireRetryCountCallback();
|
||||
assert.isFalse(UIManager.xckRetriesLeft.classList.contains('hidden'));
|
||||
UIManager.xckInput.value = 12345678;
|
||||
SimManager.unlock();
|
||||
|
||||
assert.isTrue(UIManager.xckRetriesLeft.classList.contains('hidden'));
|
||||
assert.isFalse(UIManager.xckInput.classList.contains('onerror'));
|
||||
assert.isTrue(UIManager.xckError.classList.contains('hidden'));
|
||||
assert.isTrue(SimManager.icc0.unlocked);
|
||||
assert.isTrue(UIManager.activationScreen.classList.contains('show'));
|
||||
assert.isFalse(UIManager.unlockSimScreen.classList.contains('show'));
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
suite('No Telephony', function() {
|
||||
var realMozMobileConnections;
|
||||
|
||||
setup(function() {
|
||||
realMozMobileConnections = navigator.mozMobileConnections;
|
||||
// no telephony API
|
||||
navigator.mozMobileConnections = null;
|
||||
|
||||
SimManager.init();
|
||||
});
|
||||
|
||||
teardown(function() {
|
||||
navigator.mozMobileConnections = realMozMobileConnections;
|
||||
realMozMobileConnections = null;
|
||||
});
|
||||
|
||||
test('hide sim import section', function() {
|
||||
SimManager.skip();
|
||||
assert.isFalse(UIManager.simImport.classList.contains('show'));
|
||||
});
|
||||
});
|
||||
|
||||
suite('Operator', function() {
|
||||
setup(function() {
|
||||
iccInfo0.cardState = 'ready';
|
||||
MobileOperator.mOperator = '';
|
||||
SimManager.updateSIMInfoText(SimManager.icc0);
|
||||
});
|
||||
|
||||
test('should read locked state', function() {
|
||||
iccInfo0.cardState = 'pinRequired';
|
||||
SimManager.updateSIMInfoText(SimManager.icc0);
|
||||
|
||||
assert.equal('simPinLocked',
|
||||
UIManager.simCarrier1.getAttribute('data-l10n-id'));
|
||||
});
|
||||
|
||||
test('should read no operator when unlocked', function() {
|
||||
assert.equal(UIManager.simCarrier1.getAttribute('data-l10n-id'),
|
||||
'searchingOperator');
|
||||
});
|
||||
|
||||
test('should update the operator on voicechange', function() {
|
||||
MobileOperator.mOperator = 'Fake Operator';
|
||||
MockNavigatorMozMobileConnections[0].triggerEventListeners('voicechange');
|
||||
|
||||
assert.equal('Fake Operator', UIManager.simCarrier1.textContent);
|
||||
});
|
||||
|
||||
test('should have 1 event listener per ICC', function() {
|
||||
SimManager.updateSIMInfoText(SimManager.icc0);
|
||||
SimManager.updateSIMInfoText(SimManager.icc0);
|
||||
|
||||
assert.equal(1, SimManager.voiceChangeListeners.length);
|
||||
});
|
||||
});
|
||||
|
||||
suite('SIM2 inserted >', function() {
|
||||
var iccId1;
|
||||
var iccInfo1;
|
||||
var realIccId0;
|
||||
|
||||
setup(function() {
|
||||
iccId1 = '98765';
|
||||
navigator.mozIccManager.addIcc(iccId1);
|
||||
iccInfo1 = navigator.mozIccManager.getIccById(iccId1);
|
||||
navigator.mozMobileConnections.mAddMobileConnection();
|
||||
navigator.mozMobileConnections[1].iccId = iccId1;
|
||||
navigator.mozMobileConnections[1].iccInfo = iccInfo1;
|
||||
|
||||
SimManager.updateIccState(iccId1);
|
||||
SimManager.simSlots = 2;
|
||||
|
||||
realIccId0 = SimManager.icc0;
|
||||
SimManager.icc0 = null;
|
||||
|
||||
this.sinon.stub(Navigation, 'back');
|
||||
});
|
||||
|
||||
teardown(function() {
|
||||
navigator.mozIccManager.removeIcc(iccId1);
|
||||
navigator.mozMobileConnections.mRemoveMobileConnection(1);
|
||||
SimManager.simSlots = 1;
|
||||
SimManager.icc1 = null;
|
||||
SimManager.icc0 = realIccId0;
|
||||
});
|
||||
|
||||
test('"simUnlockBack" hides the screen', function() {
|
||||
iccInfo1.cardState = 'pinRequired';
|
||||
SimManager.handleCardState();
|
||||
|
||||
SimManager.simUnlockBack();
|
||||
assert.ok(Navigation.back.calledOnce);
|
||||
assert.isTrue(UIManager.activationScreen.classList.contains('show'));
|
||||
assert.isFalse(UIManager.unlockSimScreen.classList.contains('show'));
|
||||
assert.isTrue(UIManager.pinRetriesLeft.classList.contains('hidden'));
|
||||
});
|
||||
});
|
||||
|
||||
suite('SIM1 and SIM2 inserted >', function() {
|
||||
var iccId1;
|
||||
var iccInfo1;
|
||||
|
||||
setup(function() {
|
||||
iccId1 = '98765';
|
||||
navigator.mozIccManager.addIcc(iccId1);
|
||||
iccInfo1 = navigator.mozIccManager.getIccById(iccId1);
|
||||
navigator.mozMobileConnections.mAddMobileConnection();
|
||||
navigator.mozMobileConnections[1].iccId = iccId1;
|
||||
navigator.mozMobileConnections[1].iccInfo = iccInfo1;
|
||||
SimManager.updateIccState(iccId1);
|
||||
|
||||
SimManager.simSlots = 2;
|
||||
|
||||
this.sinon.spy(SimManager, 'skip');
|
||||
this.sinon.spy(Navigation, 'back');
|
||||
});
|
||||
|
||||
teardown(function() {
|
||||
navigator.mozIccManager.removeIcc(iccId1);
|
||||
navigator.mozMobileConnections.mRemoveMobileConnection(1);
|
||||
SimManager.simSlots = 1;
|
||||
SimManager.icc1 = null;
|
||||
});
|
||||
|
||||
test('if SIM1 is skipped, SIM2 screen should be shown', function() {
|
||||
iccInfo0.cardState = 'pinRequired';
|
||||
iccInfo1.cardState = 'pinRequired';
|
||||
SimManager.handleCardState();
|
||||
|
||||
SimManager.skip();
|
||||
assert.ok(SimManager.skip.calledOnce);
|
||||
assert.isFalse(UIManager.activationScreen.classList.contains('show'));
|
||||
assert.isTrue(UIManager.unlockSimScreen.classList.contains('show'));
|
||||
assert.equal(UIManager.pinLabel.getAttribute('data-l10n-args'),
|
||||
'{"n":2}');
|
||||
});
|
||||
|
||||
test('SIM1 is skipped and user go back', function() {
|
||||
iccInfo0.cardState = 'pinRequired';
|
||||
iccInfo1.cardState = 'pinRequired';
|
||||
SimManager.handleCardState();
|
||||
|
||||
SimManager.skip();
|
||||
assert.ok(SimManager.skip.calledOnce);
|
||||
assert.isFalse(UIManager.activationScreen.classList.contains('show'));
|
||||
assert.isTrue(UIManager.unlockSimScreen.classList.contains('show'));
|
||||
assert.equal(UIManager.pinLabel.getAttribute('data-l10n-args'),
|
||||
'{"n":2}');
|
||||
SimManager.icc0.skipped = true;
|
||||
|
||||
SimManager.simUnlockBack();
|
||||
assert.isFalse(Navigation.back.calledOnce);
|
||||
assert.isFalse(UIManager.activationScreen.classList.contains('show'));
|
||||
assert.isTrue(UIManager.unlockSimScreen.classList.contains('show'));
|
||||
assert.equal(UIManager.pinLabel.getAttribute('data-l10n-args'),
|
||||
'{"n":1}');
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
});
|
||||
Loading…
Reference in a new issue