|
1 /* Any copyright is dedicated to the Public Domain. |
|
2 * http://creativecommons.org/publicdomain/zero/1.0/ */ |
|
3 |
|
4 MARIONETTE_TIMEOUT = 60000; |
|
5 MARIONETTE_HEAD_JS = "head.js"; |
|
6 |
|
7 const SETTINGS_KEY_DATA_ENABLED = "ril.data.enabled"; |
|
8 const TOPIC_NETWORK_ACTIVE_CHANGED = "network-active-changed"; |
|
9 |
|
10 let networkManager = |
|
11 Cc["@mozilla.org/network/manager;1"].getService(Ci.nsINetworkManager); |
|
12 ok(networkManager, |
|
13 "networkManager.constructor is " + networkManager.constructor); |
|
14 |
|
15 function testInitialState() { |
|
16 return Promise.resolve() |
|
17 .then(() => getSettings(SETTINGS_KEY_DATA_ENABLED)) |
|
18 .then((enabled) => { |
|
19 is(enabled, false, "data should be off by default"); |
|
20 is(networkManager.active, null, |
|
21 "networkManager.active should be null by default"); |
|
22 }); |
|
23 } |
|
24 |
|
25 function testActiveNetworkChangedBySwitchingDataCall(aDataCallEnabled) { |
|
26 log("Test active network by switching dataCallEnabled to " + aDataCallEnabled); |
|
27 |
|
28 return Promise.resolve() |
|
29 .then(() => setSettings(SETTINGS_KEY_DATA_ENABLED, aDataCallEnabled)) |
|
30 .then(() => waitForObserverEvent(TOPIC_NETWORK_ACTIVE_CHANGED)) |
|
31 .then((subject) => { |
|
32 if (aDataCallEnabled) { |
|
33 ok(subject instanceof Ci.nsINetworkInterface, |
|
34 "subject should be an instance of nsINetworkInterface"); |
|
35 ok(subject instanceof Ci.nsIRilNetworkInterface, |
|
36 "subject should be an instance of nsIRILNetworkInterface"); |
|
37 is(subject.type, Ci.nsINetworkInterface.NETWORK_TYPE_MOBILE, |
|
38 "subject.type should be NETWORK_TYPE_MOBILE"); |
|
39 } |
|
40 |
|
41 is(subject, networkManager.active, |
|
42 "subject should be equal with networkManager.active"); |
|
43 }); |
|
44 } |
|
45 |
|
46 // Start test |
|
47 startTestBase(function() { |
|
48 return Promise.resolve() |
|
49 .then(() => testInitialState()) |
|
50 // Test active network changed by enabling data call. |
|
51 .then(() => testActiveNetworkChangedBySwitchingDataCall(true)) |
|
52 // Test active network changed by disabling data call. |
|
53 .then(() => testActiveNetworkChangedBySwitchingDataCall(false)); |
|
54 }); |