dom/bluetooth/tests/marionette/test_dom_BluetoothAdapter_setters.js

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/dom/bluetooth/tests/marionette/test_dom_BluetoothAdapter_setters.js	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,85 @@
     1.4 +/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*-
     1.5 + * vim: sw=2 ts=2 sts=2 et filetype=javascript
     1.6 + * This Source Code Form is subject to the terms of the Mozilla Public
     1.7 + * License, v. 2.0. If a copy of the MPL was not distributed with this file,
     1.8 + * You can obtain one at http://mozilla.org/MPL/2.0/. */
     1.9 +
    1.10 +///////////////////////////////////////////////////////////////////////////////
    1.11 +// Test Purpose:
    1.12 +//   To verify that all setters of BluetoothAdapter (except for pairing related
    1.13 +//   APIs) can change properties correctly.
    1.14 +//
    1.15 +// Test Coverage:
    1.16 +//   - BluetoothAdapter.setName()
    1.17 +//   - BluetoothAdapter.setDiscoverable()
    1.18 +//   - BluetoothAdapter.setDiscoverableTimeout()
    1.19 +//
    1.20 +///////////////////////////////////////////////////////////////////////////////
    1.21 +
    1.22 +MARIONETTE_TIMEOUT = 60000;
    1.23 +MARIONETTE_HEAD_JS = 'head.js';
    1.24 +
    1.25 +const BT_DEVICE_NAME = "User friendly name of local BT device";
    1.26 +
    1.27 +function setName(aAdapter, aName) {
    1.28 +  let deferred = Promise.defer();
    1.29 +
    1.30 +  let request = aAdapter.setName(aName);
    1.31 +  request.onsuccess = function () {
    1.32 +    log("  setName succeed: " + aName);
    1.33 +    is(aAdapter.name, aName, "aAdapter.name");
    1.34 +    deferred.resolve();
    1.35 +  }
    1.36 +  request.onerror = function () {
    1.37 +    ok(false, "setName failed")
    1.38 +    deferred.reject();
    1.39 +  }
    1.40 +
    1.41 +  return deferred.promise;
    1.42 +}
    1.43 +
    1.44 +function setDiscoverable(aAdapter, aIsDiscoverable) {
    1.45 +  let deferred = Promise.defer();
    1.46 +
    1.47 +  let request = aAdapter.setDiscoverable(aIsDiscoverable);
    1.48 +  request.onsuccess = function () {
    1.49 +    log("  setDiscoverable succeed: " + aIsDiscoverable);
    1.50 +    is(aAdapter.discoverable, aIsDiscoverable, "aAdapter.discoverable");
    1.51 +    deferred.resolve();
    1.52 +  }
    1.53 +  request.onerror = function () {
    1.54 +    ok(false, "setDiscoverable failed")
    1.55 +    deferred.reject();
    1.56 +  }
    1.57 +
    1.58 +  return deferred.promise;
    1.59 +}
    1.60 +
    1.61 +function setDiscoverableTimeout(aAdapter, aTimeout) {
    1.62 +  let deferred = Promise.defer();
    1.63 +
    1.64 +  let request = aAdapter.setDiscoverableTimeout(aTimeout);
    1.65 +  request.onsuccess = function () {
    1.66 +    log("  setDiscoverableTimeout succeed: " + aTimeout);
    1.67 +    is(aAdapter.discoverableTimeout, aTimeout, "aAdapter.discoverableTimeout");
    1.68 +    deferred.resolve();
    1.69 +  }
    1.70 +  request.onerror = function () {
    1.71 +    ok(false, "setDiscoverableTimeout failed")
    1.72 +    deferred.reject();
    1.73 +  }
    1.74 +
    1.75 +  return deferred.promise;
    1.76 +}
    1.77 +
    1.78 +startBluetoothTest(true, function testCaseMain(aAdapter) {
    1.79 +  log("Testing BluetoothAdapter setters ...");
    1.80 +
    1.81 +  return Promise.resolve()
    1.82 +    .then( () => setName(aAdapter, BT_DEVICE_NAME) )
    1.83 +    .then( () => setDiscoverableTimeout(aAdapter, 180) )
    1.84 +    .then( () => setDiscoverable(aAdapter, true) )
    1.85 +    .then( () => setName(aAdapter, EMULATOR_NAME) )
    1.86 +    .then( () => setDiscoverable(aAdapter, false) )
    1.87 +    .then( () => setDiscoverableTimeout(aAdapter, 120) );
    1.88 +});

mercurial