| <!DOCTYPE html> |
| <title>Test that ::cue pseudo-element properties are applied to WebVTT node objects only.</title> |
| <script src="../media-controls.js"></script> |
| <script src="../../resources/testharness.js"></script> |
| <script src="../../resources/testharnessreport.js"></script> |
| <style> |
| ::cue { word-spacing: 100px; } |
| ::cue(c) { padding-left: 10px; color: red; } |
| .cue { |
| display: inline; |
| background-color: green; |
| } |
| </style> |
| <video> |
| <track src="captions-webvtt/allowlist.vtt" kind="captions" default> |
| </video> |
| <div class="cue"></div> |
| <script> |
| async_test(function(t) { |
| var video = document.querySelector("video"); |
| video.src = "../content/test.ogv"; |
| |
| video.onseeked = t.step_func_done(function() { |
| var cueNode = textTrackCueElementByIndex(video, 0).firstChild.firstElementChild; |
| var cueStyle = getComputedStyle(cueNode); |
| assert_equals(cueStyle.color, "rgb(255, 0, 0)"); |
| assert_equals(cueStyle.padding, "0px"); |
| assert_equals(cueStyle.wordSpacing, "0px"); |
| |
| cueNode = cueNode.nextElementSibling; |
| cueStyle = getComputedStyle(cueNode); |
| assert_equals(cueStyle.color, "rgb(255, 0, 0)"); |
| assert_equals(cueStyle.padding, "0px"); |
| assert_equals(cueStyle.wordSpacing, "0px"); |
| |
| cueNode = cueNode.nextElementSibling; |
| cueStyle = getComputedStyle(cueNode); |
| assert_equals(cueStyle.color, "rgb(255, 0, 0)"); |
| assert_equals(cueStyle.padding, "0px"); |
| assert_equals(cueStyle.wordSpacing, "0px"); |
| |
| // Test that filtering doesn't apply to elements with class "cue" outside WebVTT scope. |
| cueNode = document.getElementsByClassName("cue")[0]; |
| assert_equals(getComputedStyle(cueNode).display, "inline"); |
| }); |
| |
| video.currentTime = 0.1; |
| }); |
| |
| </script> |