|
1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- |
|
2 * vim: sw=2 ts=2 sts=2 et filetype=javascript |
|
3 * This Source Code Form is subject to the terms of the Mozilla Public |
|
4 * License, v. 2.0. If a copy of the MPL was not distributed with this file, |
|
5 * You can obtain one at http://mozilla.org/MPL/2.0/. */ |
|
6 |
|
7 /////////////////////////////////////////////////////////////////////////////// |
|
8 // Test Purpose: |
|
9 // To verify that all setters of BluetoothAdapter (except for pairing related |
|
10 // APIs) can change properties correctly. |
|
11 // |
|
12 // Test Coverage: |
|
13 // - BluetoothAdapter.setName() |
|
14 // - BluetoothAdapter.setDiscoverable() |
|
15 // - BluetoothAdapter.setDiscoverableTimeout() |
|
16 // |
|
17 /////////////////////////////////////////////////////////////////////////////// |
|
18 |
|
19 MARIONETTE_TIMEOUT = 60000; |
|
20 MARIONETTE_HEAD_JS = 'head.js'; |
|
21 |
|
22 const BT_DEVICE_NAME = "User friendly name of local BT device"; |
|
23 |
|
24 function setName(aAdapter, aName) { |
|
25 let deferred = Promise.defer(); |
|
26 |
|
27 let request = aAdapter.setName(aName); |
|
28 request.onsuccess = function () { |
|
29 log(" setName succeed: " + aName); |
|
30 is(aAdapter.name, aName, "aAdapter.name"); |
|
31 deferred.resolve(); |
|
32 } |
|
33 request.onerror = function () { |
|
34 ok(false, "setName failed") |
|
35 deferred.reject(); |
|
36 } |
|
37 |
|
38 return deferred.promise; |
|
39 } |
|
40 |
|
41 function setDiscoverable(aAdapter, aIsDiscoverable) { |
|
42 let deferred = Promise.defer(); |
|
43 |
|
44 let request = aAdapter.setDiscoverable(aIsDiscoverable); |
|
45 request.onsuccess = function () { |
|
46 log(" setDiscoverable succeed: " + aIsDiscoverable); |
|
47 is(aAdapter.discoverable, aIsDiscoverable, "aAdapter.discoverable"); |
|
48 deferred.resolve(); |
|
49 } |
|
50 request.onerror = function () { |
|
51 ok(false, "setDiscoverable failed") |
|
52 deferred.reject(); |
|
53 } |
|
54 |
|
55 return deferred.promise; |
|
56 } |
|
57 |
|
58 function setDiscoverableTimeout(aAdapter, aTimeout) { |
|
59 let deferred = Promise.defer(); |
|
60 |
|
61 let request = aAdapter.setDiscoverableTimeout(aTimeout); |
|
62 request.onsuccess = function () { |
|
63 log(" setDiscoverableTimeout succeed: " + aTimeout); |
|
64 is(aAdapter.discoverableTimeout, aTimeout, "aAdapter.discoverableTimeout"); |
|
65 deferred.resolve(); |
|
66 } |
|
67 request.onerror = function () { |
|
68 ok(false, "setDiscoverableTimeout failed") |
|
69 deferred.reject(); |
|
70 } |
|
71 |
|
72 return deferred.promise; |
|
73 } |
|
74 |
|
75 startBluetoothTest(true, function testCaseMain(aAdapter) { |
|
76 log("Testing BluetoothAdapter setters ..."); |
|
77 |
|
78 return Promise.resolve() |
|
79 .then( () => setName(aAdapter, BT_DEVICE_NAME) ) |
|
80 .then( () => setDiscoverableTimeout(aAdapter, 180) ) |
|
81 .then( () => setDiscoverable(aAdapter, true) ) |
|
82 .then( () => setName(aAdapter, EMULATOR_NAME) ) |
|
83 .then( () => setDiscoverable(aAdapter, false) ) |
|
84 .then( () => setDiscoverableTimeout(aAdapter, 120) ); |
|
85 }); |