123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- <!DOCTYPE HTML>
- <html>
- <!--
- https://bugzilla.mozilla.org/show_bug.cgi?id=868943
- -->
- <head>
- <title>Test for Bug 868943</title>
- <script type="application/javascript" src="/MochiKit/packed.js"></script>
- <script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
- <script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/EventUtils.js"></script>
- <link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css"/>
- </head>
- <body>
- <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=868943">Mozilla Bug 868943</a>
- <p id="display"></p>
- <div id="content">
- </div>
- <pre id="test">
- <script type="application/javascript">
- /** Test for Bug 868943 **/
- function testAudioPlayPause() {
- var lockState = true;
- var count = 0;
- var content = document.getElementById('content');
- var audio = document.createElement('audio');
- audio.src = "wakelock.ogg";
- content.appendChild(audio);
- var startDate;
- function testAudioPlayListener(topic, state) {
- is(topic, "cpu", "#1 Audio element locked the target == cpu");
- var locked = state == "locked-foreground" ||
- state == "locked-background";
- var s = locked ? "locked" : "unlocked";
- is(locked, lockState, "#1 Audio element " + s + " the cpu");
- count++;
- // count == 1 is when the cpu wakelock is created
- // count == 2 is when the cpu wakelock is released
- if (count == 1) {
- // The next step is to unlock the resource.
- lockState = false;
- audio.pause();
- startDate = new Date();
- return;
- }
- is(count, 2, "The count should be 2 which indicates wakelock release");
- if (count == 2) {
- var diffDate = (new Date() - startDate);
- ok(diffDate > 200, "#1 There was at least 200 milliseconds between the stop and the wakelock release");
- content.removeChild(audio);
- navigator.mozPower.removeWakeLockListener(testAudioPlayListener);
- runTests();
- }
- };
- navigator.mozPower.addWakeLockListener(testAudioPlayListener);
- audio.play();
- }
- function testAudioPlay() {
- var lockState = true;
- var count = 0;
- var content = document.getElementById('content');
- var audio = document.createElement('audio');
- audio.src = "wakelock.ogg";
- content.appendChild(audio);
- function testAudioPlayListener(topic, state) {
- is(topic, "cpu", "#2 Audio element locked the target == cpu");
- var locked = state == "locked-foreground" ||
- state == "locked-background";
- var s = locked ? "locked" : "unlocked";
- is(locked, lockState, "#2 Audio element " + s + " the cpu");
- count++;
- // count == 1 is when the cpu wakelock is created: the wakelock must be
- // created when the media element starts playing.
- // count == 2 is when the cpu wakelock is released.
- if (count == 1) {
- // The next step is to unlock the resource.
- lockState = false;
- } else if (count == 2) {
- content.removeChild(audio);
- navigator.mozPower.removeWakeLockListener(testAudioPlayListener);
- runTests();
- }
- };
- navigator.mozPower.addWakeLockListener(testAudioPlayListener);
- audio.play();
- }
- var tests = [ testAudioPlayPause, testAudioPlay ];
- function runTests() {
- if (!tests.length) {
- SimpleTest.finish();
- return;
- }
- var test = tests.pop();
- test();
- };
- SpecialPowers.pushPrefEnv({"set": [["media.wakelock_timeout", 500]]}, runTests);
- SimpleTest.waitForExplicitFinish();
- </script>
- </pre>
- </body>
- </html>
|