Index: LayoutTests/media/activation-behavior.html |
diff --git a/LayoutTests/media/activation-behavior.html b/LayoutTests/media/activation-behavior.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..cef7256d7e98ca86e1182c0f5c3607b270c4adb2 |
--- /dev/null |
+++ b/LayoutTests/media/activation-behavior.html |
@@ -0,0 +1,95 @@ |
+<!doctype html> |
+<title>activation behavior</title> |
+<script src="../resources/testharness.js"></script> |
+<script src="../resources/testharnessreport.js"></script> |
+<script src="media-file.js"></script> |
+<div id="log"></div> |
+<script> |
+function activation_behavior_test(tagName, src) |
+{ |
+ async_test(function(t) |
+ { |
+ var e = document.createElement(tagName); |
+ e.controls = true; |
+ e.src = src; |
+ e.preload = 'auto'; |
+ e.oncanplay = t.step_func(function() |
+ { |
+ assert_greater_than(e.readyState, e.HAVE_CURRENT_DATA, 'element readyState'); |
+ e.controller = new MediaController(); |
+ assert_false(e.controller.paused, 'controller paused state before click'); |
+ assert_true(e.paused, 'element paused state before click'); |
+ e.click(); |
+ assert_false(e.controller.paused, 'controller paused state after click'); |
+ assert_false(e.paused, 'element paused state after click'); |
+ t.done(); |
+ }); |
+ }, tagName + ' activation behavior for restrained media controller'); |
+ |
+ test(function() |
+ { |
+ var e = document.createElement(tagName); |
+ e.controls = true; |
+ e.controller = new MediaController(); |
+ e.controller.pause(); |
+ assert_true(e.controller.paused, 'controller paused state before click'); |
+ assert_true(e.paused, 'element paused state before click'); |
+ e.click(); |
+ assert_false(e.controller.paused, 'controller paused state after click'); |
+ assert_true(e.paused, 'element paused state after click'); |
+ }, tagName + ' activation behavior for paused media controller'); |
+ |
+ test(function() |
+ { |
+ var e = document.createElement(tagName); |
+ e.controls = true; |
+ e.controller = new MediaController(); |
+ e.controller.play(); |
+ assert_false(e.controller.paused, 'controller paused state before click'); |
+ assert_false(e.paused, 'element paused state before click'); |
+ e.click(); |
+ assert_true(e.controller.paused, 'controller paused state after click'); |
+ assert_false(e.paused, 'element paused state after click'); |
acolwell GONE FROM CHROMIUM
2014/03/21 23:30:12
This is really weird. I'm surprised that calling p
philipj_slow
2014/03/23 03:42:49
MediaController is non-trivial, I was surprised as
|
+ }, tagName + ' activation behavior for playing media controller'); |
+ |
+ test(function() |
+ { |
+ var e = document.createElement(tagName); |
+ e.controls = true; |
+ assert_true(e.paused, 'paused state before click()'); |
+ e.click(); |
+ assert_false(e.paused, 'paused state after click()'); |
+ }, tagName + ' activation behavior for paused media element'); |
+ |
+ test(function() |
+ { |
+ var e = document.createElement(tagName); |
+ e.controls = true; |
+ e.play(); |
+ assert_false(e.paused, 'paused state before click()'); |
+ e.click(); |
+ assert_true(e.paused, 'paused state after click()'); |
+ }, tagName + ' activation behavior for playing media element'); |
+ |
+ test(function() |
+ { |
+ var e = document.createElement(tagName); |
+ e.controls = true; |
+ e.onclick = function(ev) { ev.preventDefault(); }; |
+ assert_true(e.paused, 'paused state before click()'); |
+ e.click(); |
+ assert_true(e.paused, 'paused state after click()'); |
+ }, tagName + ' activation behavior for canceled event'); |
+ |
+ test(function() |
+ { |
+ var e = document.createElement(tagName); |
+ assert_true(e.paused, 'paused state before click()'); |
+ e.click(); |
+ assert_true(e.paused, 'paused state after click()'); |
+ }, tagName + ' activation behavior without controls'); |
+} |
+ |
+activation_behavior_test('audio', findMediaFile('audio', 'content/test')); |
+activation_behavior_test('video', findMediaFile('video', 'content/test')); |
+</script> |