Index: third_party/WebKit/LayoutTests/media/controls/video-enter-exit-fullscreen-while-hovering-shows-controls.html |
diff --git a/third_party/WebKit/LayoutTests/media/controls/video-enter-exit-fullscreen-while-hovering-shows-controls.html b/third_party/WebKit/LayoutTests/media/controls/video-enter-exit-fullscreen-while-hovering-shows-controls.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..265039fb3667fac97be3f0c163bee49941aa6e06 |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/media/controls/video-enter-exit-fullscreen-while-hovering-shows-controls.html |
@@ -0,0 +1,85 @@ |
+<!DOCTYPE html> |
+<title>Tests that video controls are shown when entering/exiting fullscreen |
+whilst hovering over the controls. Opposite of |
+video-enter-exit-fullscreen-without-hovering-doesnt-show-controls.html</title> |
+<script src="../../resources/testharness.js"></script> |
+<script src="../../resources/testharnessreport.js"></script> |
+<script src="../media-file.js"></script> |
+<script src="../media-controls.js"></script> |
+ |
+<video controls></video> |
+ |
+<script> |
+async_test(function(t) { |
+ var video = document.querySelector("video"); |
+ |
+ video.oncanplaythrough = t.step_func(function() { |
+ video.oncanplaythrough = null; |
+ |
+ var panel = mediaControlsButton(video, "panel"); |
+ |
+ // Move mouse to the play button and start playing the video. |
+ clickAtCoordinates(...mediaControlsButtonCoordinates(video, "play-button")); |
+ |
+ assert_equals(getComputedStyle(panel).opacity, "1", |
+ "Inline controls should initially show since controls " + |
+ "attribute is present"); |
+ |
+ // Get fullscreen button coordinates whilst it is visible. |
+ var inlineFullscreenButtonCoordinates = |
+ mediaControlsButtonCoordinates(video, "fullscreen-button"); |
+ |
+ // Move mouse away so it no longer hovers over controls/video. |
+ eventSender.mouseMoveTo(0, 0); |
+ |
+ runAfterHideMediaControlsTimerFired(t.step_func(function() { |
+ assert_equals(getComputedStyle(panel).opacity, "0", |
+ "Inline controls should be hidden by timer"); |
+ |
+ // Move mouse to the fullscreen button and enter fullscreen. Leave the |
+ // mouse hovering over the controls. |
+ clickAtCoordinates(...inlineFullscreenButtonCoordinates); |
+ }), video); |
+ |
+ video.onwebkitfullscreenchange = t.step_func(function() { |
+ video.onwebkitfullscreenchange = null; |
+ |
+ assert_equals(document.webkitFullscreenElement, video, |
+ "Should have entered fullscreen"); |
+ |
+ assert_equals(getComputedStyle(panel).opacity, "1", |
+ "Fullscreen controls should show after entering " + |
+ "fullscreen since mouse is hovering over controls"); |
+ |
+ // Get fullscreen button coordinates whilst it is visible. |
+ var fullscreenFullscreenButtonCoordinates = |
+ mediaControlsButtonCoordinates(video, "fullscreen-button"); |
+ |
+ // Move mouse away so it no longer hovers over controls/video. |
+ eventSender.mouseMoveTo(0, 0); |
+ |
+ runAfterHideMediaControlsTimerFired(t.step_func(function() { |
+ assert_equals(getComputedStyle(panel).opacity, "0", |
+ "Fullscreen controls should be hidden by timer"); |
+ |
+ // Move mouse to the fullscreen button and exit fullscreen. Leave the |
+ // mouse hovering over the controls. |
+ clickAtCoordinates(...fullscreenFullscreenButtonCoordinates); |
+ }), video); |
+ |
+ video.onwebkitfullscreenchange = t.step_func(function() { |
+ assert_equals(document.webkitFullscreenElement, null, |
+ "Should have exited fullscreen"); |
+ |
+ assert_equals(getComputedStyle(panel).opacity, "1", |
+ "Inline controls should show again after exiting " + |
+ "fullscreen since mouse is hovering over controls"); |
+ |
+ t.done(); |
+ }); |
+ }); |
+ }); |
+ |
+ video.src = findMediaFile("video", "../content/test-25fps"); |
+}); |
+</script> |