| Index: LayoutTests/presentation/availablechange-event.html
|
| diff --git a/LayoutTests/presentation/availablechange-event.html b/LayoutTests/presentation/availablechange-event.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..f9b86690e427eaab24afed7e966020d32f38914b
|
| --- /dev/null
|
| +++ b/LayoutTests/presentation/availablechange-event.html
|
| @@ -0,0 +1,89 @@
|
| +<!DOCTYPE html>
|
| +<html>
|
| +<head>
|
| + <title>Tests the Presentation API's availablechange event's expected behavior.</title>
|
| +</head>
|
| +<body>
|
| +<script src="../resources/testharness.js"></script>
|
| +<script src="../resources/testharnessreport.js"></script>
|
| +<script>
|
| +
|
| +var becomeAvailableTest = async_test("Test that availablechange event is fired when the screen availability becomes true.");
|
| +var becomeUnavailableTest = async_test("Test that availablechange event is fired when the screen availability becomes false.");
|
| +var noChangeTest = async_test("Test that availablechange event is not fired when the screen availability does not change.");
|
| +
|
| +// Count the number of calls received from the EventHandler set on navigator.presentation.availablechange.
|
| +var availableChangeEventHandlerCalls = 0;
|
| +// Count the number of calls received from the listener set with navigator.presentation.addEventListener().
|
| +var availableChangeEventListenerCalls = 0;
|
| +// The last availability value set by the event handler.
|
| +var availableChangeEventHandlerValue = null;
|
| +// The last availability value set by the listener.
|
| +var availableChangeEventListenerValue = null;
|
| +
|
| +navigator.presentation.onavailablechange = function(e) {
|
| + availableChangeEventHandlerCalls++;
|
| + availableChangeEventHandlerValue = e.available;
|
| +};
|
| +
|
| +navigator.presentation.addEventListener('availablechange', function(e) {
|
| + availableChangeEventListenerCalls++;
|
| + availableChangeEventListenerValue = e.available;
|
| +});
|
| +
|
| +function runBecomeAvailableTest() {
|
| + assert_equals(availableChangeEventHandlerValue, null);
|
| + assert_equals(availableChangeEventListenerValue, null);
|
| + window.testRunner.setMockScreenAvailability(true);
|
| +
|
| + setTimeout(function() {
|
| + becomeAvailableTest.step(function() {
|
| + assert_equals(availableChangeEventHandlerValue, true);
|
| + assert_equals(availableChangeEventListenerValue, true);
|
| + assert_equals(availableChangeEventHandlerCalls, 1);
|
| + assert_equals(availableChangeEventListenerCalls, 1);
|
| + });
|
| + becomeAvailableTest.done();
|
| + runBecomeUnavailableTest();
|
| + });
|
| +}
|
| +
|
| +function runBecomeUnavailableTest() {
|
| + assert_equals(availableChangeEventHandlerValue, true);
|
| + assert_equals(availableChangeEventListenerValue, true);
|
| + window.testRunner.setMockScreenAvailability(false);
|
| +
|
| + setTimeout(function() {
|
| + becomeUnavailableTest.step(function() {
|
| + assert_equals(availableChangeEventHandlerValue, false);
|
| + assert_equals(availableChangeEventListenerValue, false);
|
| + assert_equals(availableChangeEventHandlerCalls, 2);
|
| + assert_equals(availableChangeEventListenerCalls, 2);
|
| + });
|
| + becomeUnavailableTest.done();
|
| + runNoChangeTest();
|
| + });
|
| +}
|
| +
|
| +function runNoChangeTest() {
|
| + assert_equals(availableChangeEventHandlerValue, false);
|
| + assert_equals(availableChangeEventListenerValue, false);
|
| + window.testRunner.setMockScreenAvailability(false);
|
| +
|
| + setTimeout(function() {
|
| + noChangeTest.step(function() {
|
| + assert_equals(availableChangeEventHandlerValue, false);
|
| + assert_equals(availableChangeEventListenerValue, false);
|
| + assert_equals(availableChangeEventHandlerCalls, 2);
|
| + assert_equals(availableChangeEventListenerCalls, 2);
|
| + });
|
| +
|
| + noChangeTest.done();
|
| + });
|
| +}
|
| +
|
| +runBecomeAvailableTest();
|
| +
|
| +</script>
|
| +</body>
|
| +</html>
|
|
|