1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/dom/system/gonk/tests/marionette/test_network_active_changed.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,54 @@ 1.4 +/* Any copyright is dedicated to the Public Domain. 1.5 + * http://creativecommons.org/publicdomain/zero/1.0/ */ 1.6 + 1.7 +MARIONETTE_TIMEOUT = 60000; 1.8 +MARIONETTE_HEAD_JS = "head.js"; 1.9 + 1.10 +const SETTINGS_KEY_DATA_ENABLED = "ril.data.enabled"; 1.11 +const TOPIC_NETWORK_ACTIVE_CHANGED = "network-active-changed"; 1.12 + 1.13 +let networkManager = 1.14 + Cc["@mozilla.org/network/manager;1"].getService(Ci.nsINetworkManager); 1.15 +ok(networkManager, 1.16 + "networkManager.constructor is " + networkManager.constructor); 1.17 + 1.18 +function testInitialState() { 1.19 + return Promise.resolve() 1.20 + .then(() => getSettings(SETTINGS_KEY_DATA_ENABLED)) 1.21 + .then((enabled) => { 1.22 + is(enabled, false, "data should be off by default"); 1.23 + is(networkManager.active, null, 1.24 + "networkManager.active should be null by default"); 1.25 + }); 1.26 +} 1.27 + 1.28 +function testActiveNetworkChangedBySwitchingDataCall(aDataCallEnabled) { 1.29 + log("Test active network by switching dataCallEnabled to " + aDataCallEnabled); 1.30 + 1.31 + return Promise.resolve() 1.32 + .then(() => setSettings(SETTINGS_KEY_DATA_ENABLED, aDataCallEnabled)) 1.33 + .then(() => waitForObserverEvent(TOPIC_NETWORK_ACTIVE_CHANGED)) 1.34 + .then((subject) => { 1.35 + if (aDataCallEnabled) { 1.36 + ok(subject instanceof Ci.nsINetworkInterface, 1.37 + "subject should be an instance of nsINetworkInterface"); 1.38 + ok(subject instanceof Ci.nsIRilNetworkInterface, 1.39 + "subject should be an instance of nsIRILNetworkInterface"); 1.40 + is(subject.type, Ci.nsINetworkInterface.NETWORK_TYPE_MOBILE, 1.41 + "subject.type should be NETWORK_TYPE_MOBILE"); 1.42 + } 1.43 + 1.44 + is(subject, networkManager.active, 1.45 + "subject should be equal with networkManager.active"); 1.46 + }); 1.47 +} 1.48 + 1.49 +// Start test 1.50 +startTestBase(function() { 1.51 + return Promise.resolve() 1.52 + .then(() => testInitialState()) 1.53 + // Test active network changed by enabling data call. 1.54 + .then(() => testActiveNetworkChangedBySwitchingDataCall(true)) 1.55 + // Test active network changed by disabling data call. 1.56 + .then(() => testActiveNetworkChangedBySwitchingDataCall(false)); 1.57 +});