<!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>