== Cue Settings Tests ==
Note: Hi Caitlin here are the tests I've come up with so far for the position, size and align cue settings. I have a few concerns about some of the things I saw in the parser so if you could help me test them it would be great.
Some notable things I've discovered:
*00:11.000 --> 00:13.000position:10% passes
**there is no space between the cue setting and the cue timing. this is a problem with the toy parser, because the draft requires one or more whitespace characters ([U+0020 || U+0009]) between the timestamp and the cue setting (and between each subsequent cue setting)
*00:11.000 --> 00:13.000 position:A% passes
**any character besides ' ' (space) between : and % will pass. This is another problem with the toy parser, as the draft defines that the text between ':' and '%' must be in the U+0030-U+0039 range (ASCII digits)
A few things to note about the tests:
*The first test for position is the absence of the cue setting tag, I think technically this test should work for the rest of the tests that use the :n% format as well hence its absence in the size tests.
*I have a test for each cue setting type where the ':' is missing, what do you think about this? I have been thinking that only one for all the cue settings would be enough as this simply tests the parser for whether it can split setting from value.
=== Position ===
WEBVTT
00:11.000 --> 00:13.000 :10%
*no cue setting
WEBVTT
00:11.000 --> 00:13.000 position:10%
*positive test (should succeed)
WEBVTT
00:11.000 --> 00:13.000 position:A%
*character above utf-8+0039
**NOTE: the parser currently passes this test instead of failing it
WEBVTT
00:11.000 --> 00:13.000 position:+%
*character below utf-8+0030
**NOTE: the parser currently passes this test instead of failing it
WEBVTT
00:11.000 --> 00:13.000 position10%
*':' missing in between cue setting and value
WEBVTT
00:11.000 --> 00:13.000 position:10
*'%' missing at the end
=== Size ===
WEBVTT
00:11.000 --> 00:13.000 size:10%
*positive test (should succeed)
WEBVTT
00:11.000 --> 00:13.000 size:A%
*character above utf-8+0039
**NOTE: the parser currently passes this test instead of failing it
WEBVTT
00:11.000 --> 00:13.000 size:+%
*character below utf-8+0030
**NOTE: the parser currently passes this test instead of failing it
WEBVTT
00:11.000 --> 00:13.000 size10%
*':' missing in between cue setting and value
WEBVTT
00:11.000 --> 00:13.000 size:10
*'%' missing at the end
=== Align ===
WEBVTT
00:11.000 --> 00:13.000 :start
*no cue setting
WEBVTT
00:11.000 --> 00:13.000 align:start
*positive test (should succeed)
WEBVTT
00:11.000 --> 00:13.000 align:middle
*positive test (should succeed)
WEBVTT
00:11.000 --> 00:13.000 align:end
*positive test (should succeed)
WEBVTT
00:11.000 --> 00:13.000 align:star
*test misspelling of one of the possible values
WEBVTT
00:11.000 --> 00:13.000 align:
*test missing value
These tests look okay, but just one thing to point out, the draft does require that a cue has a cue payload (eg, the text content of the subtitle), so if they weren't in the actual test files, they need to be added in so that we're only testing the pass/fail of the specific conditions we're looking at.