| Index: LayoutTests/media/muted.html
|
| diff --git a/LayoutTests/media/muted.html b/LayoutTests/media/muted.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..41d6b538437f257f0485d329c8ad04fee0a003c7
|
| --- /dev/null
|
| +++ b/LayoutTests/media/muted.html
|
| @@ -0,0 +1,169 @@
|
| +<!doctype html>
|
| +<!-- original: https://github.com/w3c/web-platform-tests/blob/17e61b54afe98b7385c8b7777e18f5f5b903a23c/html/semantics/embedded-content/media-elements/user-interface/muted.html -->
|
| +<title>muted</title>
|
| +<script src="../resources/testharness.js"></script>
|
| +<script src="../resources/testharnessreport.js"></script>
|
| +<style>video { display: none; }</style>
|
| +<div id=log></div>
|
| +
|
| +<script>
|
| +function test_setting(e, muted, hasAttribute)
|
| +{
|
| + assert_equals(e.muted, muted);
|
| + assert_equals(e.hasAttribute('muted'), hasAttribute);
|
| +
|
| + e.muted = !e.muted;
|
| + assert_equals(e.muted, !muted);
|
| + assert_equals(e.hasAttribute('muted'), hasAttribute);
|
| +
|
| + e.muted = !e.muted;
|
| + assert_equals(e.muted, muted);
|
| + assert_equals(e.hasAttribute('muted'), hasAttribute);
|
| +}
|
| +</script>
|
| +
|
| +<!-- These tests are inside <audio>/<video> so that the steps for updating the
|
| + muted IDL attribute cannot be delayed until the end tag is parsed. -->
|
| +
|
| +<audio id=a1>
|
| +<script>
|
| +var a1 = document.getElementById('a1');
|
| +
|
| +test(function()
|
| +{
|
| + assert_false(a1.muted);
|
| +}, 'getting audio.muted (parser-created)');
|
| +
|
| +test(function()
|
| +{
|
| + test_setting(a1, false, false);
|
| +}, 'setting audio.muted (parser-created)');
|
| +</script>
|
| +</audio>
|
| +
|
| +<audio id=a2 muted>
|
| +<script>
|
| +var a2 = document.getElementById('a2');
|
| +
|
| +test(function()
|
| +{
|
| + assert_true(a2.muted);
|
| +}, 'getting audio.muted with muted="" (parser-created)');
|
| +
|
| +test(function()
|
| +{
|
| + test_setting(a2, true, true);
|
| +}, 'setting audio.muted with muted="" (parser-created)');
|
| +</script>
|
| +</audio>
|
| +
|
| +<video id=v1>
|
| +<script>
|
| +var v1 = document.getElementById('v1');
|
| +
|
| +test(function()
|
| +{
|
| + assert_false(v1.muted);
|
| +}, 'getting video.muted (parser-created)');
|
| +
|
| +test(function()
|
| +{
|
| + test_setting(v1, false, false);
|
| +}, 'setting video.muted (parser-created)');
|
| +</script>
|
| +</video>
|
| +
|
| +<video id=v2 muted>
|
| +<script>
|
| +var v2 = document.getElementById('v2');
|
| +
|
| +test(function()
|
| +{
|
| + assert_true(v2.muted);
|
| +}, 'getting video.muted with muted="" (parser-created)');
|
| +
|
| +test(function()
|
| +{
|
| + test_setting(v2, true, true);
|
| +}, 'setting video.muted with muted="" (parser-created)');
|
| +</script>
|
| +</video>
|
| +
|
| +<!-- Negative test to ensure that the load algorithm does not update the
|
| + muted IDL attribute to match the content attribute. -->
|
| +
|
| +<video id=v3 muted></video>
|
| +<script>
|
| +async_test(function(t)
|
| +{
|
| + var v = document.getElementById('v3');
|
| + assert_true(v.muted);
|
| + v.muted = false;
|
| + v.src = 'data:,'; // invokes load()
|
| + v.addEventListener('error', t.step_func(function()
|
| + {
|
| + assert_false(v.muted);
|
| + t.done();
|
| + }));
|
| +}, 'getting video.muted with muted="" after load (parser-created)');
|
| +</script>
|
| +
|
| +<script>
|
| +['audio', 'video'].forEach(function(tagName)
|
| +{
|
| + test(function()
|
| + {
|
| + var m = document.createElement(tagName);
|
| + assert_false(m.muted);
|
| + }, 'getting ' + tagName + '.muted (script-created)');
|
| +
|
| + test(function()
|
| + {
|
| + var m = document.createElement(tagName);
|
| + test_setting(m, false, false);
|
| + }, 'setting ' + tagName + '.muted (script-created)');
|
| +
|
| + test(function()
|
| + {
|
| + var m = document.createElement(tagName);
|
| + m.setAttribute('muted', '');
|
| + assert_false(m.muted);
|
| + }, 'getting ' + tagName + '.muted with muted="" (script-created)');
|
| +
|
| + test(function()
|
| + {
|
| + var m = document.createElement(tagName);
|
| + m.setAttribute('muted', '');
|
| + test_setting(m, false, true);
|
| + }, 'setting ' + tagName + '.muted with muted="" (script-created)');
|
| +
|
| + // Spec bug: https://www.w3.org/Bugs/Public/show_bug.cgi?id=25153
|
| + test(function()
|
| + {
|
| + var m = document.createElement(tagName);
|
| + m.setAttribute('muted', '');
|
| + m = m.cloneNode(false);
|
| + assert_true(m.hasAttribute('muted'));
|
| + assert_false(m.muted);
|
| + }, 'getting ' + tagName + '.muted with muted="" (cloneNode-created)');
|
| +
|
| + test(function()
|
| + {
|
| + var div = document.createElement('div');
|
| + div.innerHTML = '<' + tagName + ' muted>';
|
| + m = div.firstChild;
|
| + assert_true(m.hasAttribute('muted'));
|
| + assert_true(m.muted);
|
| + }, 'getting ' + tagName + '.muted with muted="" (innerHTML-created)');
|
| +
|
| + test(function()
|
| + {
|
| + var id = tagName;
|
| + assert_equals(document.getElementById(id), null);
|
| + document.write('<' + tagName + ' id=' + id + ' muted>');
|
| + m = document.getElementById(id);
|
| + assert_true(m.hasAttribute('muted'));
|
| + assert_true(m.muted);
|
| + }, 'getting ' + tagName + '.muted with muted="" (document.write-created)');
|
| +});
|
| +</script>
|
|
|