settings, line assert_equals(cues.length, 46); // Test starts with simple valid values var valid_values = [ -1, 0, 0, 1, 100, 101, 65536, 4294967296, 18446744073709552000, 10000000000000000000000000000000000, 1.5, Number.MAX_VALUE, -1 * Number.MAX_VALUE, Number.MIN_VALUE, 0, // Less than Number.MIN_VALUE ]; valid_values.forEach(function(valid, index) { assert_equals(cues[index].line, valid, 'Failed with cue ' + index); assert_true(cues[index].snapToLines, 'Failed with cue ' + index); }); // Then a set of invalid ones var invalid_length = 23; for (var i = 0; i < invalid_length; i++) { var index = valid_values.length + i; assert_equals(cues[index].line, 'auto', 'Failed with cue ' + index); assert_true(cues[index].snapToLines, 'Failed with cue ' + index); } // Then more specific tests var index = valid_values.length + invalid_length; assert_equals(cues[index].line, 0); assert_false(cues[index].snapToLines); assert_equals(cues[index + 1].line, 0); assert_false(cues[index + 1].snapToLines); assert_equals(cues[index + 2].line, 100); assert_false(cues[index + 2].snapToLines); assert_equals(cues[index + 2].lineAlign, 'start'); assert_equals(cues[index + 3].line, 100); assert_false(cues[index + 3].snapToLines); assert_equals(cues[index + 3].lineAlign, 'start'); assert_equals(cues[index + 4].line, 100); assert_false(cues[index + 4].snapToLines); assert_equals(cues[index + 4].lineAlign, 'center'); assert_equals(cues[index + 5].line, 100); assert_false(cues[index + 5].snapToLines); assert_equals(cues[index + 5].lineAlign, 'end'); assert_equals(cues[index + 6].line, Number.MIN_VALUE); assert_false(cues[index + 6].snapToLines); assert_equals(cues[index + 7].line, 0); assert_false(cues[index + 7].snapToLines); === WEBVTT NOTE valid 00:00:00.000 --> 00:00:01.000 line:-1 valid0 00:00:00.000 --> 00:00:01.000 line:0 valid1 00:00:00.000 --> 00:00:01.000 line:-0 valid2 00:00:00.000 --> 00:00:01.000 line:1 valid3 00:00:00.000 --> 00:00:01.000 line:100 valid4 00:00:00.000 --> 00:00:01.000 line:101 valid5 00:00:00.000 --> 00:00:01.000 line:65536 valid6 00:00:00.000 --> 00:00:01.000 line:4294967296 valid7 00:00:00.000 --> 00:00:01.000 line:18446744073709552000 valid8 00:00:00.000 --> 00:00:01.000 line:10000000000000000000000000000000000 valid9 00:00:00.000 --> 00:00:01.000 line:1.5 valid10 Number.MAX_VALUE 00:00:00.000 --> 00:00:01.000 line:179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 valid11 -1 * Number.MAX_VALUE 00:00:00.000 --> 00:00:01.000 line:-179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 valid12 Number.MIN_VALUE 00:00:00.000 --> 00:00:01.000 line:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005 valid13 Less than Number.MIN_VALUE 00:00:00.000 --> 00:00:01.000 line:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002 valid14 NOTE invalid 00:00:00.000 --> 00:00:01.000 line:65536% invalid15 00:00:00.000 --> 00:00:01.000 line:4294967296% invalid16 00:00:00.000 --> 00:00:01.000 line:18446744073709552000% invalid17 00:00:00.000 --> 00:00:01.000 line:10000000000000000000000000000000000% invalid18 00:00:00.000 --> 00:00:01.000 line:-0% invalid19 00:00:00.000 --> 00:00:01.000 line:101% invalid20 00:00:00.000 --> 00:00:01.000 line:1%- invalid21 00:00:00.000 --> 00:00:01.000 line:1- invalid22 00:00:00.000 --> 00:00:01.000 line:%1 invalid23 00:00:00.000 --> 00:00:01.000 line:1%% invalid24 00:00:00.000 --> 00:00:01.000 line:0%0 invalid25 00:00:00.000 --> 00:00:01.000 line: 0% invalid26 00:00:00.000 --> 00:00:01.000 line:0%x invalid27 00:00:00.000 --> 00:00:01.000 line:- invalid28 00:00:00.000 --> 00:00:01.000 line:% invalid29 00:00:00.000 --> 00:00:01.000 line:1..5 invalid30 00:00:00.000 --> 00:00:01.000 line:.5 invalid31 00:00:00.000 --> 00:00:01.000 line:5. invalid32 Greater than Number.MAX_VALUE 00:00:00.000 --> 00:00:01.000 line:179769313486231590000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 invalid33 Less than -1 * Number.MAX_VALUE 00:00:00.000 --> 00:00:01.000 line:-179769313486231590000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 invalid34 exponential notation 00:00:00.000 --> 00:00:01.000 line:1e2 invalid35 00:00:00.000 --> 00:00:01.000 line:100%,middle invalid36 00:00:00.000 --> 00:00:01.000 line:100%, invalid37 NOTE extra 00:00:00.000 --> 00:00:01.000 line:0% text38 00:00:00.000 --> 00:00:01.000 line:00% text39 00:00:00.000 --> 00:00:01.000 line:100% text40 00:00:00.000 --> 00:00:01.000 line:100%,start text41 00:00:00.000 --> 00:00:01.000 line:100%,center text42 00:00:00.000 --> 00:00:01.000 line:100%,end text43 Number.MIN_VALUE % 00:00:00.000 --> 00:00:01.000 line:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005% text44 Less than Number.MIN_VALUE % 00:00:00.000 --> 00:00:01.000 line:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002% text45