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> |