mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-05 08:35:26 +00:00
54 lines
1.3 KiB
JavaScript
54 lines
1.3 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
* http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
MARIONETTE_TIMEOUT = 10000;
|
|
|
|
SpecialPowers.addPermission("fmradio", true, document);
|
|
|
|
let FMRadio = window.navigator.mozFMRadio;
|
|
|
|
function verifyInitialState() {
|
|
log("Verifying initial state.");
|
|
ok(FMRadio);
|
|
is(FMRadio.enabled, false);
|
|
enableThenDisable();
|
|
}
|
|
|
|
function enableThenDisable() {
|
|
log("Enable FM Radio and disable it immediately.");
|
|
var frequency = FMRadio.frequencyLowerBound + FMRadio.channelWidth;
|
|
var request = FMRadio.enable(frequency);
|
|
ok(request);
|
|
|
|
var failedToEnable = false;
|
|
request.onerror = function() {
|
|
failedToEnable = true;
|
|
};
|
|
|
|
var enableCompleted = false;
|
|
request.onsuccess = function() {
|
|
ok(!failedToEnable);
|
|
enableCompleted = true;
|
|
};
|
|
|
|
var disableReq = FMRadio.disable();
|
|
ok(disableReq);
|
|
|
|
disableReq.onsuccess = function() {
|
|
// There are two possibilities which depends on the system
|
|
// process scheduling (bug 911063 comment 0):
|
|
// - enable fails
|
|
// - enable's onsuccess fires before disable's onsucess
|
|
ok(failedToEnable || enableCompleted);
|
|
ok(!FMRadio.enabled);
|
|
finish();
|
|
};
|
|
|
|
disableReq.onerror = function() {
|
|
ok(false, "Disable request should not fail.");
|
|
};
|
|
}
|
|
|
|
verifyInitialState();
|
|
|