1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
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, '');
});
});
});
|