Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(34)

Unified Diff: LayoutTests/media/activation-behavior.html

Issue 208483002: Implement the activation behavior of media elements (click to play/pause) (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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>
« no previous file with comments | « no previous file | LayoutTests/media/activation-behavior-accesskey.html » ('j') | Source/core/html/HTMLMediaElement.cpp » ('J')

Powered by Google App Engine
This is Rietveld 408576698