dom/mobileconnection/tests/marionette/test_mobile_icc_change.js

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

     1 /* Any copyright is dedicated to the Public Domain.
     2    http://creativecommons.org/publicdomain/zero/1.0/ */
     4 MARIONETTE_TIMEOUT = 30000;
     6 SpecialPowers.addPermission("mobileconnection", true, document);
     8 // Permission changes can't change existing Navigator.prototype
     9 // objects, so grab our objects from a new Navigator
    10 let ifr = document.createElement("iframe");
    11 let connection;
    12 ifr.onload = function() {
    13   connection = ifr.contentWindow.navigator.mozMobileConnections[0];
    14   ok(connection instanceof ifr.contentWindow.MozMobileConnection,
    15      "connection is instanceof " + connection.constructor);
    17   // The emulator's hard coded iccid value.
    18   // See it here {B2G_HOME}/external/qemu/telephony/sim_card.c.
    19   is(connection.iccId, 89014103211118510720);
    21   runNextTest();
    22 };
    23 document.body.appendChild(ifr);
    25 function waitForIccChange(callback) {
    26   connection.addEventListener("iccchange", function handler() {
    27     connection.removeEventListener("iccchange", handler);
    28     callback();
    29   });
    30 }
    32 function setRadioEnabled(enabled) {
    33   let request  = connection.setRadioEnabled(enabled);
    35   request.onsuccess = function onsuccess() {
    36     log('setRadioEnabled: ' + enabled);
    37   };
    39   request.onerror = function onerror() {
    40     ok(false, "setRadioEnabled should be ok");
    41   };
    42 }
    44 function testIccChangeOnRadioPowerOff() {
    45   // Turn off radio
    46   setRadioEnabled(false);
    48   waitForIccChange(function() {
    49     is(connection.iccId, null);
    50     runNextTest();
    51   });
    52 }
    54 function testIccChangeOnRadioPowerOn() {
    55   // Turn on radio
    56   setRadioEnabled(true);
    58   waitForIccChange(function() {
    59     // The emulator's hard coded iccid value.
    60     is(connection.iccId, 89014103211118510720);
    61     runNextTest();
    62   });
    63 }
    65 let tests = [
    66   testIccChangeOnRadioPowerOff,
    67   testIccChangeOnRadioPowerOn
    68 ];
    70 function runNextTest() {
    71   let test = tests.shift();
    72   if (!test) {
    73     cleanUp();
    74     return;
    75   }
    77   test();
    78 }
    80 function cleanUp() {
    81   SpecialPowers.removePermission("mobileconnection", document);
    83   finish();
    84 }

mercurial