blob: 26a6b84f8a251676e4bcd9a927f849bd16bb8a07 [file] [log] [blame]
<!DOCTYPE html>
<title>Modifying attributes of a VTTCue</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<video>
<track id="captions" src="resources/captions.vtt" kind="captions" default>
<script>
async_test(function(t) {
var track = document.querySelector("track");
track.onload = t.step_func_done(function() {
var cues = track.track.cues;
// Test initial values.
textCue = cues.getCueById("1");
assert_equals(textCue.startTime, 0);
assert_equals(textCue.endTime, 1.0);
assert_equals(textCue.pauseOnExit, false);
assert_equals(textCue.vertical, "");
assert_equals(textCue.snapToLines, true);
assert_equals(textCue.line, "auto");
assert_equals(textCue.position, "auto");
assert_equals(textCue.size, 100);
assert_equals(textCue.align, "center");
// Modify cue values.
textCue.startTime = 1.1;
assert_equals(textCue.startTime, 1.1);
textCue.endTime = 3.9;
assert_equals(textCue.endTime, 3.9);
textCue.pauseOnExit = true;
assert_equals(textCue.pauseOnExit, true);
// http://dev.w3.org/html5/webvtt/#dfn-dom-vttcue-vertical
// On setting, the text track cue writing direction must be
// set to the value given in the first cell of the row in
// the table above whose second cell is a case-sensitive
// match for the new value.
textCue.vertical = "RL";
assert_equals(textCue.vertical, "");
textCue.vertical = "rl";
assert_equals(textCue.vertical, "rl");
textCue.snapToLines = false;
assert_equals(textCue.snapToLines, false);
// http://dev.w3.org/html5/webvtt/#dfn-vttcue-line
// On setting, the text track cue line position must be set
// to the new value; if the new value is the string "auto",
// then it must be interpreted as the special value auto.
assert_equals(textCue.line, "auto");
assert_throws_js(TypeError, function() { textCue.line = "gazonk"; });
assert_equals(textCue.line, "auto");
textCue.line = 42;
assert_equals(textCue.line, 42);
textCue.line = -2;
assert_equals(textCue.line, -2);
textCue.line = 102;
assert_equals(textCue.line, 102);
textCue.snapToLines = true;
textCue.line = -2;
assert_equals(textCue.line, -2);
textCue.line = 102;
assert_equals(textCue.line, 102);
// http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#dom-texttrackcue-line
// On setting, if the new value is negative or greater than 100,
// then throw an IndexSizeError exception.
// Otherwise, set the text track cue text position to the new value.
assert_throws_dom("IndexSizeError", function() { textCue.position = -200; });
assert_throws_dom("IndexSizeError", function() { textCue.position = 110; });
textCue.position = 11;
assert_equals(textCue.position, 11);
// http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#dom-texttrackcue-size
// On setting, if the new value is negative or greater than 100,
// then throw an IndexSizeError exception.
// Otherwise, set the text track cue size to the new value.
assert_throws_dom("IndexSizeError", function() { textCue.size = -200 });
assert_throws_dom("IndexSizeError", function() { textCue.size = 110 });
textCue.size = 57;
assert_equals(textCue.size, 57);
// http://dev.w3.org/html5/webvtt/#dfn-dom-vttcue-align
// On setting, the text track cue text alignment must be
// set to the value given in the first cell of the row
// in the table above whose second cell is a case-sensitive
// match for the new value.
textCue.align = "End";
assert_equals(textCue.align, "center");
textCue.align = "end";
assert_equals(textCue.align, "end");
});
});
</script>
</video>