| <!doctype html> |
| <html> |
| <head> |
| <title>video element - intrinsic sizes</title> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script src="/common/media.js"></script> |
| </head> |
| <body> |
| <p><a href="https://html.spec.whatwg.org/multipage/#the-video-element">spec reference</a></p> |
| <video id="v1"></video> |
| <video id="v2" width="400"></video> |
| <video id="v3" height="100"></video> |
| <video id="v4"></video> |
| <video id="v5" poster="/media/poster.png"></video> |
| <div id="log"></div> |
| <script> |
| test(function() { |
| var s = getComputedStyle(document.getElementById("v1")); |
| assert_equals(s.width, "300px"); |
| assert_equals(s.height, "150px"); |
| }, "default object size is 300x150"); |
| |
| test(function() { |
| var s = getComputedStyle(document.getElementById("v2")); |
| assert_equals(s.width, "400px"); |
| assert_equals(s.height, "200px"); |
| }, "default height is half the width"); |
| |
| test(function() { |
| var s = getComputedStyle(document.getElementById("v3")); |
| assert_equals(s.width, "200px"); |
| assert_equals(s.height, "100px"); |
| }, "default width is twice the height"); |
| |
| async_test(function(t) { |
| var v = document.getElementById("v4"); |
| var s = getComputedStyle(v); |
| v.src = getVideoURI("/media/movie_5") + "?" + new Date() + Math.random(); |
| v.onerror = t.unreached_func(); |
| v.onloadedmetadata = t.step_func(function() { |
| assert_equals(s.width, '320px'); |
| assert_equals(s.height, '240px'); |
| v.removeAttribute("src"); |
| v.load(); |
| // Dimensions should be updated only on next layout. |
| assert_equals(s.width, '320px'); |
| assert_equals(s.height, '240px'); |
| requestAnimationFrame(t.step_func_done(function() { |
| assert_equals(s.width, "300px"); |
| assert_equals(s.height, "150px"); |
| })); |
| }); |
| }, "default object size after src is removed"); |
| |
| async_test(function(t) { |
| var v = document.getElementById("v5"); |
| var s = getComputedStyle(v); |
| v.onerror = t.unreached_func(); |
| onload = t.step_func(function() { |
| assert_equals(s.width, '102px'); |
| assert_equals(s.height, '77px'); |
| v.removeAttribute("poster"); |
| // Dimensions should be updated only on next layout. |
| assert_equals(s.width, '102px'); |
| assert_equals(s.height, '77px'); |
| requestAnimationFrame(t.step_func_done(function() { |
| assert_equals(s.width, "300px"); |
| assert_equals(s.height, "150px"); |
| })); |
| }); |
| }, "default object size after poster is removed"); |
| </script> |
| </body> |
| </html> |