Update WPT tests for embedded content
[WebKit-https.git] / LayoutTests / imported / w3c / web-platform-tests / html / semantics / embedded-content / the-video-element / intrinsic_sizes.htm
1 <!doctype html>
2 <html>
3 <head>
4 <title>video element - intrinsic sizes</title>
5 <script src="/resources/testharness.js"></script>
6 <script src="/resources/testharnessreport.js"></script>
7 <script src="/common/media.js"></script>
8 </head>
9 <body>
10 <p><a href="https://html.spec.whatwg.org/multipage/#the-video-element">spec reference</a></p>
11 <video id="v1"></video>
12 <video id="v2" width="400"></video>
13 <video id="v3" height="100"></video>
14 <video id="v4"></video>
15 <video id="v5" poster="/media/poster.png"></video>
16 <div id="log"></div>
17 <script>
18 test(function() {
19   var s = getComputedStyle(document.getElementById("v1"));
20   assert_equals(s.width, "300px");
21   assert_equals(s.height, "150px");
22 }, "default object size is 300x150");
23
24 test(function() {
25   var s = getComputedStyle(document.getElementById("v2"));
26   assert_equals(s.width, "400px");
27   assert_equals(s.height, "200px");
28 }, "default height is half the width");
29
30 test(function() {
31   var s = getComputedStyle(document.getElementById("v3"));
32   assert_equals(s.width, "200px");
33   assert_equals(s.height, "100px");
34 }, "default width is twice the height");
35
36 async_test(function(t) {
37   var v = document.getElementById("v4");
38   var s = getComputedStyle(v);
39   v.src = getVideoURI("/media/movie_5") + "?" + new Date() + Math.random();
40   v.onerror = t.unreached_func();
41   v.onloadedmetadata = t.step_func(function() {
42     assert_equals(s.width, '320px');
43     assert_equals(s.height, '240px');
44     v.removeAttribute("src");
45     v.load();
46     // Dimensions should be updated only on next layout.
47     assert_equals(s.width, '320px');
48     assert_equals(s.height, '240px');
49     requestAnimationFrame(t.step_func_done(function() {
50       assert_equals(s.width, "300px");
51       assert_equals(s.height, "150px");
52     }));
53   });
54 }, "default object size after src is removed");
55
56 async_test(function(t) {
57   var v = document.getElementById("v5");
58   var s = getComputedStyle(v);
59   v.onerror = t.unreached_func();
60   onload = t.step_func(function() {
61     assert_equals(s.width, '102px');
62     assert_equals(s.height, '77px');
63     v.removeAttribute("poster");
64     // Dimensions should be updated only on next layout.
65     assert_equals(s.width, '102px');
66     assert_equals(s.height, '77px');
67     requestAnimationFrame(t.step_func_done(function() {
68       assert_equals(s.width, "300px");
69       assert_equals(s.height, "150px");
70     }));
71   });
72 }, "default object size after poster is removed");
73 </script>
74 </body>
75 </html>