dom/system/gonk/tests/marionette/test_network_active_changed.js

changeset 0
6474c204b198
     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 +});

mercurial