Chromium Code Reviews| 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..7d176f2afccf8a90091fbc5eece407025238c206 |
| --- /dev/null |
| +++ b/LayoutTests/presentation/availablechange-event.html |
| @@ -0,0 +1,87 @@ |
| +<!DOCTYPE html> |
| +<html> |
|
Peter Beverloo
2015/02/09 18:37:24
nit: <title> with a brief description of the test.
whywhat
2015/02/13 16:57:37
Done.
|
| +<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 runNoChangeTest() { |
|
Peter Beverloo
2015/02/09 18:37:24
nit: I'd prefer runBecomeAvailableTest, runBecomeU
whywhat
2015/02/13 16:57:36
Done.
|
| + 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(); |
| + }); |
| +} |
| + |
| +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 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(); |
| + }); |
| +} |
| + |
| +runBecomeAvailableTest(); |
| + |
| +</script> |
| +</body> |
| +</html> |