Chromium Code Reviews| Index: third_party/WebKit/LayoutTests/media/video-defaultmuted.html |
| diff --git a/third_party/WebKit/LayoutTests/media/video-defaultmuted.html b/third_party/WebKit/LayoutTests/media/video-defaultmuted.html |
| index f58e5ce8d50c295243ea2852b6b66a012aec4c6b..179f996e4cb008f1785141f433987c4f14911351 100644 |
| --- a/third_party/WebKit/LayoutTests/media/video-defaultmuted.html |
| +++ b/third_party/WebKit/LayoutTests/media/video-defaultmuted.html |
| @@ -1,92 +1,50 @@ |
| -<!doctype html> |
| -<html> |
| - <head> |
| - <!-- TODO(foolip): Convert test to testharness.js. crbug.com/588956 |
| - (Please avoid writing new tests using video-test.js) --> |
| - <script src=video-test.js></script> |
| - <script src=media-file.js></script> |
| - <script> |
| - var index = 0; |
| - |
| - function testMuted(expectedMuted, expectedDefaultMuted) |
| - { |
| - testExpected("video.muted", expectedMuted); |
| - testExpected("video.defaultMuted", expectedDefaultMuted); |
| - } |
| - |
| - function test(defaultMuted) |
| - { |
| - consoleWrite("<br><br><b>*** Test <em>" + (defaultMuted ? "with" : "without") + "</em> 'muted' content attribute</b><br>"); |
| - |
| - run("video = document.createElement('video')"); |
| - run("video.setAttribute('controls', 'controls')"); |
| - video.setAttribute('width', '300'); |
| - if (defaultMuted) |
| - run("video.setAttribute('muted', 'muted')"); |
| - document.getElementById('parent').appendChild(video); |
| - |
| - consoleWrite("<br>*** Test before setting src, IDL attribute should default to false"); |
| - testMuted(false, defaultMuted); |
| - |
| - var loadedmetadata = function(evt) |
| - { |
| - consoleWrite("<br>EVENT(" + evt.type + ")"); |
| - |
| - consoleWrite("<br>*** After setting url, content attribute should have set IDL attribute"); |
| - testMuted(defaultMuted, defaultMuted); |
| - |
| - consoleWrite("<br>*** Change 'defaultMuted', IDL attribute should not change but content attribute should."); |
| - var newDefaultMuted = !defaultMuted; |
| - run("video.defaultMuted = " + newDefaultMuted); |
| - testMuted(defaultMuted, newDefaultMuted); |
| - testExpected("video.hasAttribute('muted')", newDefaultMuted); |
| - |
| - consoleWrite("<br>*** Change 'muted' IDL attribute, content attribute should not change"); |
| - run("video.muted = false"); |
| - testMuted(false, newDefaultMuted); |
| - testExpected("video.hasAttribute('muted')", newDefaultMuted); |
| - |
| - var action = defaultMuted ? "Remove" : "Add"; |
| - consoleWrite("<br>*** " + action + " 'muted' content attribute, it should have no effect on IDL attribute"); |
| - if (defaultMuted) |
| - run("video.removeAttribute('muted')"); |
| - else |
| - run("video.setAttribute('muted', 'muted')"); |
| - testMuted(false, video.hasAttribute('muted')); |
| - |
| - runNextTest(); |
| - } |
| - video.addEventListener('loadedmetadata', loadedmetadata); |
| - video.src = findMediaFile("audio", "content/test"); |
| - } |
| - |
| - function runNextTest() |
| - { |
| - if (video) { |
| - video.parentNode.removeChild(video); |
| - video = null; |
| - } |
| - |
| - switch (++index) |
| - { |
| - case 1: |
| - test(true); |
| - break; |
| - case 2: |
| - test(false); |
| - break; |
| - case 3: |
| - consoleWrite(""); |
| - endTest(); |
| - break; |
| - } |
| - } |
| - |
| - </script> |
| - </head> |
| - |
| - <body onload="runNextTest()"> |
| - <div id="parent"></div> |
| - <p>Test 'muted' content attribute<p> |
| - </body> |
| -</html> |
| +<!DOCTYPE html> |
| +<title>Test "muted" content attribute.</title> |
| +<script src="../resources/testharness.js"></script> |
| +<script src="../resources/testharnessreport.js"></script> |
| +<script src="media-file.js"></script> |
| +<script> |
| +function test_muted_content_attribute(defaultMuted) { |
| + async_test(function(t) { |
| + var video = document.createElement("video"); |
| + if (defaultMuted) |
| + video.setAttribute("muted", "muted"); |
| + |
| + // Test before setting src, IDL attribute should default to false. |
| + testMuted(false, defaultMuted); |
| + |
| + video.onloadedmetadata = t.step_func_done(function() { |
| + // After setting url, content attribute should have set IDL attribute. |
|
foolip
2016/07/06 09:22:22
This is actually wrong per spec, can you link to h
Srirama
2016/07/06 15:03:45
Done.
|
| + testMuted(defaultMuted, defaultMuted); |
| + |
| + // Change "defaultMuted", IDL attribute should not change but content attribute should. |
| + var newDefaultMuted = !defaultMuted; |
| + video.defaultMuted = newDefaultMuted; |
| + testMuted(defaultMuted, newDefaultMuted); |
| + assert_equals(video.hasAttribute("muted"), newDefaultMuted); |
| + |
| + // Change "muted" IDL attribute, content attribute should not change. |
| + video.muted = false; |
| + testMuted(false, newDefaultMuted); |
| + assert_equals(video.hasAttribute("muted"), newDefaultMuted); |
| + |
| + // Removing/adding "muted" content attribute should have no effect on IDL attribute. |
| + if (defaultMuted) |
| + video.removeAttribute("muted"); |
| + else |
| + video.setAttribute("muted", "muted"); |
| + testMuted(false, video.hasAttribute("muted")); |
| + }); |
| + |
| + function testMuted(expectedMuted, expectedDefaultMuted) { |
| + assert_equals(video.muted, expectedMuted); |
|
foolip
2016/07/06 09:22:22
Can you inline these two asserts everywhere instea
Srirama
2016/07/06 15:03:45
Done.
|
| + assert_equals(video.defaultMuted, expectedDefaultMuted); |
| + } |
| + |
| + video.src = findMediaFile("audio", "content/test"); |
| + }, "Test 'muted' content attribute with default value: " + (defaultMuted ? "On" : "Off")); |
| +} |
| + |
| +test_muted_content_attribute(true); |
|
foolip
2016/07/06 09:22:22
I think the structure here is not as clear as it c
Srirama
2016/07/06 15:03:45
Done.
|
| +test_muted_content_attribute(false); |
| +</script> |