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 +});