зеркало из https://github.com/mozilla/gecko-dev.git
77 строки
3.0 KiB
JavaScript
77 строки
3.0 KiB
JavaScript
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
|
* You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
// Test Purpose:
|
|
// To verify that enable/disable process of BluetoothAdapter is correct.
|
|
//
|
|
// Test Procedure:
|
|
// [0] Set Bluetooth permission and enable default adapter.
|
|
// [1] Disable Bluetooth and check the correctness of 'onattributechanged'.
|
|
// [2] Enable Bluetooth and check the correctness of 'onattributechanged'.
|
|
//
|
|
// Test Coverage:
|
|
// - BluetoothAdapter.enable()
|
|
// - BluetoothAdapter.disable()
|
|
// - BluetoothAdapter.onattributechanged()
|
|
// - BluetoothAdapter.address
|
|
// - BluetoothAdapter.state
|
|
//
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
MARIONETTE_TIMEOUT = 60000;
|
|
MARIONETTE_HEAD_JS = 'head.js';
|
|
|
|
startBluetoothTest(true, function testCaseMain(aAdapter) {
|
|
log("Checking adapter attributes ...");
|
|
|
|
is(aAdapter.state, "enabled", "adapter.state");
|
|
isnot(aAdapter.address, "", "adapter.address");
|
|
|
|
// Since adapter has just been re-enabled, these properties should be 'false'.
|
|
is(aAdapter.discovering, false, "adapter.discovering");
|
|
is(aAdapter.discoverable, false, "adapter.discoverable");
|
|
// TODO: Check the correctness of name and address if we use emulator.
|
|
// is(aAdapter.name, EMULATOR_NAME, "adapter.name");
|
|
// is(aAdapter.address, EMULATOR_ADDRESS, "adapter.address");
|
|
|
|
log(" adapter.address: " + aAdapter.address);
|
|
log(" adapter.name: " + aAdapter.name);
|
|
|
|
let originalAddr = aAdapter.address;
|
|
let originalName = aAdapter.name;
|
|
|
|
return Promise.resolve()
|
|
.then(function() {
|
|
log("[1] Disable Bluetooth and check the correctness of 'onattributechanged'");
|
|
let promises = [];
|
|
promises.push(waitForAdapterStateChanged(aAdapter, ["disabling", "disabled"]));
|
|
promises.push(aAdapter.disable());
|
|
return Promise.all(promises);
|
|
})
|
|
.then(function(aResults) {
|
|
isnot(aResults[0].indexOf("address"), -1, "Indicator of 'address' changed event");
|
|
if (originalName != "") {
|
|
isnot(aResults[0].indexOf("name"), -1, "Indicator of 'name' changed event");
|
|
}
|
|
is(aAdapter.address, "", "adapter.address");
|
|
is(aAdapter.name, "", "adapter.name");
|
|
})
|
|
.then(function() {
|
|
log("[2] Enable Bluetooth and check the correctness of 'onattributechanged'");
|
|
let promises = [];
|
|
promises.push(waitForAdapterStateChanged(aAdapter, ["enabling", "enabled"]));
|
|
promises.push(aAdapter.enable());
|
|
return Promise.all(promises);
|
|
})
|
|
.then(function(aResults) {
|
|
isnot(aResults[0].indexOf("address"), -1, "Indicator of 'address' changed event");
|
|
if (originalName != "") {
|
|
isnot(aResults[0].indexOf("name"), -1, "Indicator of 'name' changed event");
|
|
}
|
|
is(aAdapter.address, originalAddr, "adapter.address");
|
|
is(aAdapter.name, originalName, "adapter.name");
|
|
})
|
|
});
|