diff options
Diffstat (limited to 'apps/system/test/unit/mobile_operator_test.js')
-rw-r--r-- | apps/system/test/unit/mobile_operator_test.js | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/apps/system/test/unit/mobile_operator_test.js b/apps/system/test/unit/mobile_operator_test.js new file mode 100644 index 0000000..6204217 --- /dev/null +++ b/apps/system/test/unit/mobile_operator_test.js @@ -0,0 +1,96 @@ +/* This should live in the shared directory */ + +'use strict'; + +requireApp('system/shared/js/mobile_operator.js'); + +suite('shared/MobileOperator', function() { + var MockMobileConnection; + var BRAZIL_MCC = 724; + + + setup(function() { + MockMobileConnection = { + voice: { + network: { + shortName: 'Fake short', + longName: 'Fake long', + mnc: '6' + }, + cell: { gsmLocationAreaCode: 71 } + }, + iccInfo: { spn: 'Fake SPN' } + }; + }); + + suite('Worldwide connection', function() { + test('Connection with short name', function() { + var infos = MobileOperator.userFacingInfo(MockMobileConnection); + assert.equal(infos.operator, 'Fake short'); + assert.isUndefined(infos.carrier); + assert.isUndefined(infos.region); + }); + test('Connection with long name', function() { + MockMobileConnection.voice.network.shortName = ''; + var infos = MobileOperator.userFacingInfo(MockMobileConnection); + assert.equal(infos.operator, 'Fake long'); + assert.isUndefined(infos.carrier); + assert.isUndefined(infos.region); + }); + test('Connection with SPN display', function() { + MockMobileConnection.iccInfo.isDisplaySpnRequired = true; + var infos = MobileOperator.userFacingInfo(MockMobileConnection); + assert.equal(infos.operator, 'Fake SPN'); + assert.isUndefined(infos.carrier); + assert.isUndefined(infos.region); + }); + test('Connection with SPN display and network display', function() { + MockMobileConnection.iccInfo.isDisplaySpnRequired = true; + MockMobileConnection.iccInfo.isDisplayNetworkNameRequired = true; + var infos = MobileOperator.userFacingInfo(MockMobileConnection); + assert.equal(infos.operator, 'Fake short Fake SPN'); + assert.isUndefined(infos.carrier); + assert.isUndefined(infos.region); + }); + test('Connection with roaming', function() { + MockMobileConnection.voice.roaming = true; + var infos = MobileOperator.userFacingInfo(MockMobileConnection); + assert.equal(infos.operator, 'Fake short'); + assert.isUndefined(infos.carrier); + assert.isUndefined(infos.region); + }); + test('Connection with roaming and SPN display', function() { + MockMobileConnection.voice.roaming = true; + MockMobileConnection.iccInfo.isDisplaySpnRequired = true; + var infos = MobileOperator.userFacingInfo(MockMobileConnection); + assert.equal(infos.operator, 'Fake short'); + assert.isUndefined(infos.carrier); + assert.isUndefined(infos.region); + }); + }); + suite('Brazilian connection', function() { + test('Connection ', function() { + MockMobileConnection.voice.network.mcc = BRAZIL_MCC; + var infos = MobileOperator.userFacingInfo(MockMobileConnection); + assert.equal(infos.operator, 'Fake short'); + assert.equal(infos.carrier, 'VIVO'); + assert.equal(infos.region, 'BA 71'); + }); + test('Connection with unknown mnc', function() { + MockMobileConnection.voice.network.mcc = BRAZIL_MCC; + MockMobileConnection.voice.network.mnc = 42; + var infos = MobileOperator.userFacingInfo(MockMobileConnection); + assert.equal(infos.operator, 'Fake short'); + assert.equal(infos.carrier, '72442'); + assert.equal(infos.region, 'BA 71'); + }); + test('Connection with unknown gsmLocationAreaCode', function() { + MockMobileConnection.voice.network.mcc = BRAZIL_MCC; + MockMobileConnection.voice.cell.gsmLocationAreaCode = 2; + var infos = MobileOperator.userFacingInfo(MockMobileConnection); + assert.equal(infos.operator, 'Fake short'); + assert.equal(infos.carrier, 'VIVO'); + assert.equal(infos.region, ''); + }); + }); +}); |