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