diff options
Diffstat (limited to 'dom/system/gonk/tests/marionette/test_network_active_changed.js')
-rw-r--r-- | dom/system/gonk/tests/marionette/test_network_active_changed.js | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/dom/system/gonk/tests/marionette/test_network_active_changed.js b/dom/system/gonk/tests/marionette/test_network_active_changed.js new file mode 100644 index 000000000..5886f37ed --- /dev/null +++ b/dom/system/gonk/tests/marionette/test_network_active_changed.js @@ -0,0 +1,52 @@ +/* Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ */ + +MARIONETTE_TIMEOUT = 60000; +MARIONETTE_HEAD_JS = "head.js"; + +var networkManager = + Cc["@mozilla.org/network/manager;1"].getService(Ci.nsINetworkManager); +ok(networkManager, + "networkManager.constructor is " + networkManager.constructor); + +function testInitialState() { + return getSettings(SETTINGS_KEY_DATA_ENABLED) + .then((enabled) => { + is(enabled, false, "data should be off by default"); + is(networkManager.activeNetworkInfo, null, + "networkManager.activeNetworkInfo should be null by default"); + }); +} + +function testActiveNetworkChangedBySwitchingDataCall(aDataCallEnabled) { + log("Test active network by switching dataCallEnabled to " + aDataCallEnabled); + + let promises = []; + promises.push(waitForObserverEvent(TOPIC_NETWORK_ACTIVE_CHANGED)); + promises.push(setSettings(SETTINGS_KEY_DATA_ENABLED, aDataCallEnabled)); + + return Promise.all(promises).then(function(results) { + let subject = results[0]; + + if (aDataCallEnabled) { + ok(subject instanceof Ci.nsINetworkInfo, + "subject should be an instance of nsINetworkInfo"); + ok(subject instanceof Ci.nsIRilNetworkInfo, + "subject should be an instance of nsIRilNetworkInfo"); + is(subject.type, NETWORK_TYPE_MOBILE, + "subject.type should be NETWORK_TYPE_MOBILE"); + } + + is(subject, networkManager.activeNetworkInfo, + "subject should be equal with networkManager.activeNetworkInfo"); + }); +} + +// Start test +startTestBase(function() { + return testInitialState() + // Test active network changed by enabling data call. + .then(() => testActiveNetworkChangedBySwitchingDataCall(true)) + // Test active network changed by disabling data call. + .then(() => testActiveNetworkChangedBySwitchingDataCall(false)); +}); |