Add tests for CuesWithTiming.endTimeUs

#minor-release

PiperOrigin-RevId: 570988195
This commit is contained in:
ibaker 2023-10-05 05:47:45 -07:00 committed by Copybara-Service
parent 9cc75ca52e
commit 6057b59723
8 changed files with 101 additions and 0 deletions

View File

@ -76,22 +76,26 @@ public class SubtitleExtractorTest {
CuesWithTiming cues0 = decodeSample(trackOutput, 0);
assertThat(cues0.startTimeUs).isEqualTo(0);
assertThat(cues0.durationUs).isEqualTo(1_234_000);
assertThat(cues0.endTimeUs).isEqualTo(1_234_000);
assertThat(cues0.cues).hasSize(1);
assertThat(cues0.cues.get(0).text.toString()).isEqualTo("This is the first subtitle.");
CuesWithTiming cues1 = decodeSample(trackOutput, 1);
assertThat(cues1.startTimeUs).isEqualTo(2_345_000);
assertThat(cues1.durationUs).isEqualTo(2_600_000 - 2_345_000);
assertThat(cues1.endTimeUs).isEqualTo(2_600_000);
assertThat(cues1.cues).hasSize(1);
assertThat(cues1.cues.get(0).text.toString()).isEqualTo("This is the second subtitle.");
CuesWithTiming cues2 = decodeSample(trackOutput, 2);
assertThat(cues2.startTimeUs).isEqualTo(2_600_000);
assertThat(cues2.durationUs).isEqualTo(3_456_000 - 2_600_000);
assertThat(cues2.endTimeUs).isEqualTo(3_456_000);
assertThat(cues2.cues).hasSize(2);
assertThat(cues2.cues.get(0).text.toString()).isEqualTo("This is the second subtitle.");
assertThat(cues2.cues.get(1).text.toString()).isEqualTo("This is the third subtitle.");
CuesWithTiming cues3 = decodeSample(trackOutput, 3);
assertThat(cues3.startTimeUs).isEqualTo(3_456_000);
assertThat(cues3.durationUs).isEqualTo(4_567_000 - 3_456_000);
assertThat(cues3.endTimeUs).isEqualTo(4_567_000);
assertThat(cues3.cues).hasSize(1);
assertThat(cues3.cues.get(0).text.toString()).isEqualTo("This is the third subtitle.");
}
@ -122,17 +126,20 @@ public class SubtitleExtractorTest {
CuesWithTiming cues0 = decodeSample(trackOutput, 0);
assertThat(cues0.startTimeUs).isEqualTo(2_345_000L);
assertThat(cues0.durationUs).isEqualTo(2_600_000 - 2_345_000L);
assertThat(cues0.endTimeUs).isEqualTo(2_600_000);
assertThat(cues0.cues).hasSize(1);
assertThat(cues0.cues.get(0).text.toString()).isEqualTo("This is the second subtitle.");
CuesWithTiming cues1 = decodeSample(trackOutput, 1);
assertThat(cues1.startTimeUs).isEqualTo(2_600_000);
assertThat(cues1.durationUs).isEqualTo(3_456_000 - 2_600_000);
assertThat(cues1.endTimeUs).isEqualTo(3_456_000);
assertThat(cues1.cues).hasSize(2);
assertThat(cues1.cues.get(0).text.toString()).isEqualTo("This is the second subtitle.");
assertThat(cues1.cues.get(1).text.toString()).isEqualTo("This is the third subtitle.");
CuesWithTiming cues2 = decodeSample(trackOutput, 2);
assertThat(cues2.startTimeUs).isEqualTo(3_456_000);
assertThat(cues2.durationUs).isEqualTo(4_567_000L - 3_456_000);
assertThat(cues2.endTimeUs).isEqualTo(4_567_000L);
assertThat(cues2.cues).hasSize(1);
assertThat(cues2.cues.get(0).text.toString()).isEqualTo("This is the third subtitle.");
}
@ -163,17 +170,20 @@ public class SubtitleExtractorTest {
CuesWithTiming cues0 = decodeSample(trackOutput, 0);
assertThat(cues0.startTimeUs).isEqualTo(2_345_000L);
assertThat(cues0.durationUs).isEqualTo(2_600_000 - 2_345_000L);
assertThat(cues0.endTimeUs).isEqualTo(2_600_000);
assertThat(cues0.cues).hasSize(1);
assertThat(cues0.cues.get(0).text.toString()).isEqualTo("This is the second subtitle.");
CuesWithTiming cues1 = decodeSample(trackOutput, 1);
assertThat(cues1.startTimeUs).isEqualTo(2_600_000);
assertThat(cues1.durationUs).isEqualTo(3_456_000 - 2_600_000);
assertThat(cues1.endTimeUs).isEqualTo(3_456_000);
assertThat(cues1.cues).hasSize(2);
assertThat(cues1.cues.get(0).text.toString()).isEqualTo("This is the second subtitle.");
assertThat(cues1.cues.get(1).text.toString()).isEqualTo("This is the third subtitle.");
CuesWithTiming cues2 = decodeSample(trackOutput, 2);
assertThat(cues2.startTimeUs).isEqualTo(3_456_000);
assertThat(cues2.durationUs).isEqualTo(4_567_000L - 3_456_000);
assertThat(cues2.endTimeUs).isEqualTo(4_567_000L);
assertThat(cues2.cues).hasSize(1);
assertThat(cues2.cues.get(0).text.toString()).isEqualTo("This is the third subtitle.");
}

View File

@ -164,6 +164,7 @@ public final class SsaParserTest {
// Because of the length restriction, we only partially parse the third line of dialogue
assertThat(allCues.get(1).startTimeUs).isEqualTo(4560000);
assertThat(allCues.get(1).durationUs).isEqualTo(8900000 - 4560000);
assertThat(allCues.get(1).endTimeUs).isEqualTo(8900000);
assertThat(allCues.get(1).cues.get(0).text.toString()).isEqualTo("This is the third subt");
}
@ -237,41 +238,49 @@ public final class SsaParserTest {
assertThat(allCues).hasSize(8);
assertThat(allCues.get(0).startTimeUs).isEqualTo(1_000_000);
assertThat(allCues.get(0).durationUs).isEqualTo(1_000_000);
assertThat(allCues.get(0).endTimeUs).isEqualTo(2_000_000);
assertThat(Iterables.transform(allCues.get(0).cues, cue -> cue.text.toString()))
.containsExactly(firstSubtitleText);
assertThat(allCues.get(1).startTimeUs).isEqualTo(2_000_000);
assertThat(allCues.get(1).durationUs).isEqualTo(2_230_000);
assertThat(allCues.get(1).endTimeUs).isEqualTo(4_230_000);
assertThat(Iterables.transform(allCues.get(1).cues, cue -> cue.text.toString()))
.containsExactly(firstSubtitleText, secondSubtitleText);
assertThat(allCues.get(2).startTimeUs).isEqualTo(4_230_000);
assertThat(allCues.get(2).durationUs).isEqualTo(1_000_000);
assertThat(allCues.get(2).endTimeUs).isEqualTo(5_230_000);
assertThat(Iterables.transform(allCues.get(2).cues, cue -> cue.text.toString()))
.containsExactly(secondSubtitleText);
assertThat(allCues.get(3).startTimeUs).isEqualTo(6_000_000);
assertThat(allCues.get(3).durationUs).isEqualTo(2_440_000);
assertThat(allCues.get(3).endTimeUs).isEqualTo(8_440_000);
assertThat(Iterables.transform(allCues.get(3).cues, cue -> cue.text.toString()))
.containsExactly(thirdSubtitleText);
assertThat(allCues.get(4).startTimeUs).isEqualTo(8_440_000);
assertThat(allCues.get(4).durationUs).isEqualTo(1_000_000);
assertThat(allCues.get(4).endTimeUs).isEqualTo(9_440_000);
assertThat(Iterables.transform(allCues.get(4).cues, cue -> cue.text.toString()))
.containsExactly(fourthSubtitleText, fifthSubtitleText);
assertThat(allCues.get(5).startTimeUs).isEqualTo(10_720_000);
assertThat(allCues.get(5).durationUs).isEqualTo(2_500_000);
assertThat(allCues.get(5).endTimeUs).isEqualTo(13_220_000);
assertThat(Iterables.transform(allCues.get(5).cues, cue -> cue.text.toString()))
.containsExactly(sixthSubtitleText);
assertThat(allCues.get(6).startTimeUs).isEqualTo(13_220_000);
assertThat(allCues.get(6).durationUs).isEqualTo(1_000_000);
assertThat(allCues.get(6).endTimeUs).isEqualTo(14_220_000);
assertThat(Iterables.transform(allCues.get(6).cues, cue -> cue.text.toString()))
.containsExactly(sixthSubtitleText, seventhSubtitleText);
assertThat(allCues.get(7).startTimeUs).isEqualTo(14_220_000);
assertThat(allCues.get(7).durationUs).isEqualTo(1_430_000);
assertThat(allCues.get(7).endTimeUs).isEqualTo(15_650_000);
assertThat(Iterables.transform(allCues.get(7).cues, cue -> cue.text.toString()))
.containsExactly(sixthSubtitleText);
}
@ -517,6 +526,7 @@ public final class SsaParserTest {
private static void assertTypicalCue1(CuesWithTiming cuesWithTiming) {
assertThat(cuesWithTiming.startTimeUs).isEqualTo(0);
assertThat(cuesWithTiming.durationUs).isEqualTo(1230000);
assertThat(cuesWithTiming.endTimeUs).isEqualTo(1230000);
assertThat(cuesWithTiming.cues.get(0).text.toString()).isEqualTo("This is the first subtitle.");
assertThat(Objects.requireNonNull(cuesWithTiming.cues.get(0).textAlignment))
.isEqualTo(Layout.Alignment.ALIGN_CENTER);
@ -525,6 +535,7 @@ public final class SsaParserTest {
private static void assertTypicalCue2(CuesWithTiming cuesWithTiming) {
assertThat(cuesWithTiming.startTimeUs).isEqualTo(2340000);
assertThat(cuesWithTiming.durationUs).isEqualTo(3450000 - 2340000);
assertThat(cuesWithTiming.endTimeUs).isEqualTo(3450000);
assertThat(cuesWithTiming.cues.get(0).text.toString())
.isEqualTo("This is the second subtitle \nwith a newline \nand another.");
}
@ -532,6 +543,7 @@ public final class SsaParserTest {
private static void assertTypicalCue3(CuesWithTiming cuesWithTiming) {
assertThat(cuesWithTiming.startTimeUs).isEqualTo(4560000);
assertThat(cuesWithTiming.durationUs).isEqualTo(8900000 - 4560000);
assertThat(cuesWithTiming.endTimeUs).isEqualTo(8900000);
assertThat(cuesWithTiming.cues.get(0).text.toString())
.isEqualTo("This is the third subtitle, with a comma.");
}

View File

@ -250,6 +250,7 @@ public final class SubripParserTest {
assertTypicalCue1(allCues.get(0));
assertThat(allCues.get(1).startTimeUs).isEqualTo(2_000_000);
assertThat(allCues.get(1).durationUs).isEqualTo(1_000_000);
assertThat(allCues.get(1).endTimeUs).isEqualTo(3_000_000);
assertTypicalCue3(allCues.get(2));
}
@ -257,6 +258,7 @@ public final class SubripParserTest {
assertThat(cuesWithTiming.startTimeUs).isEqualTo(0);
assertThat(cuesWithTiming.cues.get(0).text.toString()).isEqualTo("This is the first subtitle.");
assertThat(cuesWithTiming.durationUs).isEqualTo(1234000);
assertThat(cuesWithTiming.endTimeUs).isEqualTo(1234000);
}
private static void assertTypicalCue2(CuesWithTiming cuesWithTiming) {
@ -264,6 +266,7 @@ public final class SubripParserTest {
assertThat(cuesWithTiming.cues.get(0).text.toString())
.isEqualTo("This is the second subtitle.\nSecond subtitle with second line.");
assertThat(cuesWithTiming.durationUs).isEqualTo(3456000 - 2345000);
assertThat(cuesWithTiming.endTimeUs).isEqualTo(3456000);
}
private static void assertTypicalCue3(CuesWithTiming cuesWithTiming) {
@ -272,6 +275,7 @@ public final class SubripParserTest {
assertThat(cuesWithTiming.cues.get(0).text.toString()).isEqualTo("This is the third subtitle.");
long expectedEndTimeUs = (((2L * 60L * 60L) + 8L) * 1000L + 901L) * 1000L;
assertThat(cuesWithTiming.durationUs).isEqualTo(expectedEndTimeUs - expectedStartTimeUs);
assertThat(cuesWithTiming.endTimeUs).isEqualTo(expectedEndTimeUs);
}
private static void assertAlignmentCue(

View File

@ -486,8 +486,10 @@ public final class TtmlParserTest {
assertThat(allCues).hasSize(2);
assertThat(allCues.get(0).startTimeUs).isEqualTo(1_000_000);
assertThat(allCues.get(0).durationUs).isEqualTo(10_000);
assertThat(allCues.get(0).endTimeUs).isEqualTo(1_010_000);
assertThat((double) allCues.get(1).startTimeUs).isWithin(1000).of(1_001_000_000);
assertThat((double) allCues.get(1).durationUs).isWithin(2000).of(1_001_000_000);
assertThat((double) allCues.get(1).endTimeUs).isWithin(2000).of(2_002_000_000);
}
@Test
@ -498,6 +500,7 @@ public final class TtmlParserTest {
assertThat(allCues.get(0).startTimeUs).isEqualTo(200_000);
assertThat(allCues.get(0).durationUs).isEqualTo(2_800_000);
assertThat(allCues.get(0).endTimeUs).isEqualTo(3_000_000);
Cue cue = Iterables.getOnlyElement(allCues.get(0).cues);
assertThat(cue.text).isNull();
assertThat(cue.bitmap).isNotNull();
@ -508,6 +511,7 @@ public final class TtmlParserTest {
assertThat(allCues.get(1).startTimeUs).isEqualTo(3_200_000);
assertThat(allCues.get(1).durationUs).isEqualTo(3_737_000);
assertThat(allCues.get(1).endTimeUs).isEqualTo(6_937_000);
cue = Iterables.getOnlyElement(allCues.get(1).cues);
assertThat(cue.text).isNull();
assertThat(cue.bitmap).isNotNull();

View File

@ -72,6 +72,7 @@ public final class Tx3gParserTest {
assertThat(cuesWithTiming.cues).isEmpty();
assertThat(cuesWithTiming.startTimeUs).isEqualTo(C.TIME_UNSET);
assertThat(cuesWithTiming.durationUs).isEqualTo(C.TIME_UNSET);
assertThat(cuesWithTiming.endTimeUs).isEqualTo(C.TIME_UNSET);
}
@Test
@ -86,6 +87,7 @@ public final class Tx3gParserTest {
assertThat(cuesWithTiming.startTimeUs).isEqualTo(C.TIME_UNSET);
assertThat(cuesWithTiming.durationUs).isEqualTo(C.TIME_UNSET);
assertThat(cuesWithTiming.endTimeUs).isEqualTo(C.TIME_UNSET);
assertThat(text.toString()).isEqualTo("CC Test");
assertThat(text).hasNoSpans();
assertFractionalLinePosition(singleCue, 0.85f);
@ -103,6 +105,7 @@ public final class Tx3gParserTest {
assertThat(cuesWithTiming.startTimeUs).isEqualTo(C.TIME_UNSET);
assertThat(cuesWithTiming.durationUs).isEqualTo(C.TIME_UNSET);
assertThat(cuesWithTiming.endTimeUs).isEqualTo(C.TIME_UNSET);
assertThat(text.toString()).isEqualTo("CC Test");
assertThat(text).hasBoldItalicSpanBetween(0, 6);
assertThat(text).hasUnderlineSpanBetween(0, 6);
@ -171,6 +174,7 @@ public final class Tx3gParserTest {
assertThat(cuesWithTiming.startTimeUs).isEqualTo(C.TIME_UNSET);
assertThat(cuesWithTiming.durationUs).isEqualTo(C.TIME_UNSET);
assertThat(cuesWithTiming.endTimeUs).isEqualTo(C.TIME_UNSET);
assertThat(text.toString()).isEqualTo("CC Test");
assertThat(text).hasNoSpans();
assertFractionalLinePosition(singleCue, 0.85f);
@ -188,6 +192,7 @@ public final class Tx3gParserTest {
assertThat(cuesWithTiming.startTimeUs).isEqualTo(C.TIME_UNSET);
assertThat(cuesWithTiming.durationUs).isEqualTo(C.TIME_UNSET);
assertThat(cuesWithTiming.endTimeUs).isEqualTo(C.TIME_UNSET);
assertThat(text.toString()).isEqualTo("你好");
assertThat(text).hasNoSpans();
assertFractionalLinePosition(singleCue, 0.85f);
@ -204,6 +209,7 @@ public final class Tx3gParserTest {
assertThat(cuesWithTiming.startTimeUs).isEqualTo(C.TIME_UNSET);
assertThat(cuesWithTiming.durationUs).isEqualTo(C.TIME_UNSET);
assertThat(cuesWithTiming.endTimeUs).isEqualTo(C.TIME_UNSET);
assertThat(text.toString()).isEqualTo("你好");
assertThat(text).hasNoSpans();
@ -223,6 +229,7 @@ public final class Tx3gParserTest {
assertThat(cuesWithTiming.startTimeUs).isEqualTo(C.TIME_UNSET);
assertThat(cuesWithTiming.durationUs).isEqualTo(C.TIME_UNSET);
assertThat(cuesWithTiming.endTimeUs).isEqualTo(C.TIME_UNSET);
assertThat(text.toString()).isEqualTo("Line 2\nLine 3");
assertThat(text).hasItalicSpanBetween(0, 5);
assertThat(text).hasUnderlineSpanBetween(7, 12);
@ -244,6 +251,7 @@ public final class Tx3gParserTest {
assertThat(cuesWithTiming.startTimeUs).isEqualTo(C.TIME_UNSET);
assertThat(cuesWithTiming.durationUs).isEqualTo(C.TIME_UNSET);
assertThat(cuesWithTiming.endTimeUs).isEqualTo(C.TIME_UNSET);
assertThat(text.toString()).isEqualTo("CC Test");
assertThat(text).hasBoldSpanBetween(0, 6);
assertThat(text).hasForegroundColorSpanBetween(0, 6).withColor(Color.GREEN);
@ -264,6 +272,7 @@ public final class Tx3gParserTest {
assertThat(cuesWithTiming.startTimeUs).isEqualTo(C.TIME_UNSET);
assertThat(cuesWithTiming.durationUs).isEqualTo(C.TIME_UNSET);
assertThat(cuesWithTiming.endTimeUs).isEqualTo(C.TIME_UNSET);
assertThat(text.toString()).isEqualTo("CC Test");
assertThat(text).hasBoldItalicSpanBetween(0, 7);
assertThat(text).hasUnderlineSpanBetween(0, 7);
@ -288,6 +297,7 @@ public final class Tx3gParserTest {
assertThat(cuesWithTiming.startTimeUs).isEqualTo(C.TIME_UNSET);
assertThat(cuesWithTiming.durationUs).isEqualTo(C.TIME_UNSET);
assertThat(cuesWithTiming.endTimeUs).isEqualTo(C.TIME_UNSET);
assertThat(text.toString()).isEqualTo("CC Test");
assertThat(text).hasBoldItalicSpanBetween(0, 7);
assertThat(text).hasUnderlineSpanBetween(0, 7);
@ -311,6 +321,7 @@ public final class Tx3gParserTest {
assertThat(cuesWithTiming.startTimeUs).isEqualTo(C.TIME_UNSET);
assertThat(cuesWithTiming.durationUs).isEqualTo(C.TIME_UNSET);
assertThat(cuesWithTiming.endTimeUs).isEqualTo(C.TIME_UNSET);
assertThat(text.toString()).isEqualTo("CC Test");
assertThat(text).hasBoldItalicSpanBetween(0, 6);
assertThat(text).hasUnderlineSpanBetween(0, 6);

View File

@ -72,10 +72,12 @@ public class LegacySubtitleUtilWebvttTest {
assertThat(cuesWithTimingsList).hasSize(2);
assertThat(cuesWithTimingsList.get(0).startTimeUs).isEqualTo(1_000_000);
assertThat(cuesWithTimingsList.get(0).durationUs).isEqualTo(1_000_000);
assertThat(cuesWithTimingsList.get(0).endTimeUs).isEqualTo(2_000_000);
assertThat(Lists.transform(cuesWithTimingsList.get(0).cues, c -> c.text))
.containsExactly(FIRST_SUBTITLE_STRING);
assertThat(cuesWithTimingsList.get(1).startTimeUs).isEqualTo(3_000_000);
assertThat(cuesWithTimingsList.get(1).durationUs).isEqualTo(1_000_000);
assertThat(cuesWithTimingsList.get(1).endTimeUs).isEqualTo(4_000_000);
assertThat(Lists.transform(cuesWithTimingsList.get(1).cues, c -> c.text))
.containsExactly(SECOND_SUBTITLE_STRING);
}
@ -88,15 +90,18 @@ public class LegacySubtitleUtilWebvttTest {
assertThat(cuesWithTimingsList).hasSize(3);
assertThat(cuesWithTimingsList.get(0).startTimeUs).isEqualTo(1_000_000);
assertThat(cuesWithTimingsList.get(0).durationUs).isEqualTo(1_000_000);
assertThat(cuesWithTimingsList.get(0).endTimeUs).isEqualTo(2_000_000);
assertThat(Lists.transform(cuesWithTimingsList.get(0).cues, c -> c.text))
.containsExactly(FIRST_SUBTITLE_STRING);
assertThat(cuesWithTimingsList.get(1).startTimeUs).isEqualTo(2_000_000);
assertThat(cuesWithTimingsList.get(1).durationUs).isEqualTo(1_000_000);
assertThat(cuesWithTimingsList.get(1).endTimeUs).isEqualTo(3_000_000);
assertThat(Lists.transform(cuesWithTimingsList.get(1).cues, c -> c.text))
.containsExactly(FIRST_SUBTITLE_STRING, SECOND_SUBTITLE_STRING)
.inOrder();
assertThat(cuesWithTimingsList.get(2).startTimeUs).isEqualTo(3_000_000);
assertThat(cuesWithTimingsList.get(2).durationUs).isEqualTo(1_000_000);
assertThat(cuesWithTimingsList.get(2).endTimeUs).isEqualTo(4_000_000);
assertThat(Lists.transform(cuesWithTimingsList.get(2).cues, c -> c.text))
.containsExactly(SECOND_SUBTITLE_STRING);
}
@ -109,6 +114,7 @@ public class LegacySubtitleUtilWebvttTest {
assertThat(cuesWithTimingsList).hasSize(1);
assertThat(cuesWithTimingsList.get(0).startTimeUs).isEqualTo(3_000_000);
assertThat(cuesWithTimingsList.get(0).durationUs).isEqualTo(1_000_000);
assertThat(cuesWithTimingsList.get(0).endTimeUs).isEqualTo(4_000_000);
assertThat(Lists.transform(cuesWithTimingsList.get(0).cues, c -> c.text))
.containsExactly(SECOND_SUBTITLE_STRING);
}
@ -121,6 +127,7 @@ public class LegacySubtitleUtilWebvttTest {
assertThat(cuesWithTimingsList).hasSize(1);
assertThat(cuesWithTimingsList.get(0).startTimeUs).isEqualTo(3_000_000);
assertThat(cuesWithTimingsList.get(0).durationUs).isEqualTo(1_000_000);
assertThat(cuesWithTimingsList.get(0).endTimeUs).isEqualTo(4_000_000);
assertThat(Lists.transform(cuesWithTimingsList.get(0).cues, c -> c.text))
.containsExactly(SECOND_SUBTITLE_STRING);
}
@ -133,6 +140,7 @@ public class LegacySubtitleUtilWebvttTest {
assertThat(cuesWithTimingsList).hasSize(1);
assertThat(cuesWithTimingsList.get(0).startTimeUs).isEqualTo(3_000_000);
assertThat(cuesWithTimingsList.get(0).durationUs).isEqualTo(1_000_000);
assertThat(cuesWithTimingsList.get(0).endTimeUs).isEqualTo(4_000_000);
assertThat(Lists.transform(cuesWithTimingsList.get(0).cues, c -> c.text))
.containsExactly(SECOND_SUBTITLE_STRING);
}
@ -145,10 +153,12 @@ public class LegacySubtitleUtilWebvttTest {
assertThat(cuesWithTimingsList).hasSize(2);
assertThat(cuesWithTimingsList.get(0).startTimeUs).isEqualTo(1_000_000);
assertThat(cuesWithTimingsList.get(0).durationUs).isEqualTo(1_000_000);
assertThat(cuesWithTimingsList.get(0).endTimeUs).isEqualTo(2_000_000);
assertThat(Lists.transform(cuesWithTimingsList.get(0).cues, c -> c.text))
.containsExactly(FIRST_SUBTITLE_STRING);
assertThat(cuesWithTimingsList.get(1).startTimeUs).isEqualTo(3_000_000);
assertThat(cuesWithTimingsList.get(1).durationUs).isEqualTo(1_000_000);
assertThat(cuesWithTimingsList.get(1).endTimeUs).isEqualTo(4_000_000);
assertThat(Lists.transform(cuesWithTimingsList.get(1).cues, c -> c.text))
.containsExactly(SECOND_SUBTITLE_STRING);
}
@ -162,11 +172,13 @@ public class LegacySubtitleUtilWebvttTest {
assertThat(cuesWithTimingsList).hasSize(2);
assertThat(cuesWithTimingsList.get(0).startTimeUs).isEqualTo(2_000_000);
assertThat(cuesWithTimingsList.get(0).durationUs).isEqualTo(1_000_000);
assertThat(cuesWithTimingsList.get(0).endTimeUs).isEqualTo(3_000_000);
assertThat(Lists.transform(cuesWithTimingsList.get(0).cues, c -> c.text))
.containsExactly(FIRST_SUBTITLE_STRING, SECOND_SUBTITLE_STRING)
.inOrder();
assertThat(cuesWithTimingsList.get(1).startTimeUs).isEqualTo(3_000_000);
assertThat(cuesWithTimingsList.get(1).durationUs).isEqualTo(1_000_000);
assertThat(cuesWithTimingsList.get(1).endTimeUs).isEqualTo(4_000_000);
assertThat(Lists.transform(cuesWithTimingsList.get(1).cues, c -> c.text))
.containsExactly(SECOND_SUBTITLE_STRING);
}
@ -181,10 +193,12 @@ public class LegacySubtitleUtilWebvttTest {
assertThat(cuesWithTimingsList).hasSize(2);
assertThat(cuesWithTimingsList.get(0).startTimeUs).isEqualTo(3_000_000);
assertThat(cuesWithTimingsList.get(0).durationUs).isEqualTo(1_000_000);
assertThat(cuesWithTimingsList.get(0).endTimeUs).isEqualTo(4_000_000);
assertThat(Lists.transform(cuesWithTimingsList.get(0).cues, c -> c.text))
.containsExactly(SECOND_SUBTITLE_STRING);
assertThat(cuesWithTimingsList.get(1).startTimeUs).isEqualTo(1_000_000);
assertThat(cuesWithTimingsList.get(1).durationUs).isEqualTo(1_000_000);
assertThat(cuesWithTimingsList.get(1).endTimeUs).isEqualTo(2_000_000);
assertThat(Lists.transform(cuesWithTimingsList.get(1).cues, c -> c.text))
.containsExactly(FIRST_SUBTITLE_STRING);
}
@ -199,15 +213,18 @@ public class LegacySubtitleUtilWebvttTest {
assertThat(cuesWithTimingsList).hasSize(3);
assertThat(cuesWithTimingsList.get(0).startTimeUs).isEqualTo(2_000_000);
assertThat(cuesWithTimingsList.get(0).durationUs).isEqualTo(1_000_000);
assertThat(cuesWithTimingsList.get(0).endTimeUs).isEqualTo(3_000_000);
assertThat(Lists.transform(cuesWithTimingsList.get(0).cues, c -> c.text))
.containsExactly(FIRST_SUBTITLE_STRING, SECOND_SUBTITLE_STRING)
.inOrder();
assertThat(cuesWithTimingsList.get(1).startTimeUs).isEqualTo(3_000_000);
assertThat(cuesWithTimingsList.get(1).durationUs).isEqualTo(1_000_000);
assertThat(cuesWithTimingsList.get(1).endTimeUs).isEqualTo(4_000_000);
assertThat(Lists.transform(cuesWithTimingsList.get(1).cues, c -> c.text))
.containsExactly(SECOND_SUBTITLE_STRING);
assertThat(cuesWithTimingsList.get(2).startTimeUs).isEqualTo(1_000_000);
assertThat(cuesWithTimingsList.get(2).durationUs).isEqualTo(1_000_000);
assertThat(cuesWithTimingsList.get(2).endTimeUs).isEqualTo(2_000_000);
assertThat(Lists.transform(cuesWithTimingsList.get(2).cues, c -> c.text))
.containsExactly(FIRST_SUBTITLE_STRING);
}

View File

@ -196,6 +196,7 @@ public final class Mp4WebvttParserTest {
assertThat(result.get(0).cues).isEmpty();
assertThat(result.get(0).startTimeUs).isEqualTo(C.TIME_UNSET);
assertThat(result.get(0).durationUs).isEqualTo(C.TIME_UNSET);
assertThat(result.get(0).endTimeUs).isEqualTo(C.TIME_UNSET);
}
// Negative tests.

View File

@ -92,11 +92,13 @@ public class WebvttParserTest {
assertThat(allCues.get(0).startTimeUs).isEqualTo(0L);
assertThat(allCues.get(0).durationUs).isEqualTo(1_234_000L);
assertThat(allCues.get(0).endTimeUs).isEqualTo(1_234_000L);
Cue firstCue = Iterables.getOnlyElement(allCues.get(0).cues);
assertThat(firstCue.text.toString()).isEqualTo("This is the first subtitle.");
assertThat(allCues.get(1).startTimeUs).isEqualTo(2_345_000L);
assertThat(allCues.get(1).durationUs).isEqualTo(3_456_000L - 2_345_000L);
assertThat(allCues.get(1).endTimeUs).isEqualTo(3_456_000L);
Cue secondCue = Iterables.getOnlyElement(allCues.get(1).cues);
assertThat(secondCue.text.toString()).isEqualTo("This is the second subtitle.");
}
@ -110,6 +112,7 @@ public class WebvttParserTest {
assertThat(allCues.get(0).startTimeUs).isEqualTo(2_345_000L);
assertThat(allCues.get(0).durationUs).isEqualTo(3_456_000L - 2_345_000L);
assertThat(allCues.get(0).endTimeUs).isEqualTo(3_456_000L);
Cue secondCue = Iterables.getOnlyElement(allCues.get(0).cues);
assertThat(secondCue.text.toString()).isEqualTo("This is the second subtitle.");
}
@ -124,11 +127,13 @@ public class WebvttParserTest {
assertThat(allCues.get(0).startTimeUs).isEqualTo(2_345_000L);
assertThat(allCues.get(0).durationUs).isEqualTo(3_456_000L - 2_345_000L);
assertThat(allCues.get(0).endTimeUs).isEqualTo(3_456_000L);
Cue secondCue = Iterables.getOnlyElement(allCues.get(0).cues);
assertThat(secondCue.text.toString()).isEqualTo("This is the second subtitle.");
assertThat(allCues.get(1).startTimeUs).isEqualTo(0L);
assertThat(allCues.get(1).durationUs).isEqualTo(1_234_000L);
assertThat(allCues.get(1).endTimeUs).isEqualTo(1_234_000L);
Cue firstCue = Iterables.getOnlyElement(allCues.get(1).cues);
assertThat(firstCue.text.toString()).isEqualTo("This is the first subtitle.");
}
@ -141,11 +146,13 @@ public class WebvttParserTest {
assertThat(allCues.get(0).startTimeUs).isEqualTo(0L);
assertThat(allCues.get(0).durationUs).isEqualTo(1_234_000L);
assertThat(allCues.get(0).endTimeUs).isEqualTo(1_234_000L);
Cue firstCue = Iterables.getOnlyElement(allCues.get(0).cues);
assertThat(firstCue.text.toString()).isEqualTo("This is the first subtitle.");
assertThat(allCues.get(1).startTimeUs).isEqualTo(2_345_000L);
assertThat(allCues.get(1).durationUs).isEqualTo(3_456_000L - 2_345_000L);
assertThat(allCues.get(1).endTimeUs).isEqualTo(3_456_000L);
Cue secondCue = Iterables.getOnlyElement(allCues.get(1).cues);
assertThat(secondCue.text.toString()).isEqualTo("This is the second subtitle.");
}
@ -158,11 +165,13 @@ public class WebvttParserTest {
assertThat(allCues.get(0).startTimeUs).isEqualTo(0L);
assertThat(allCues.get(0).durationUs).isEqualTo(1_234_000L);
assertThat(allCues.get(0).endTimeUs).isEqualTo(1_234_000L);
Cue firstCue = Iterables.getOnlyElement(allCues.get(0).cues);
assertThat(firstCue.text.toString()).isEqualTo("This is the first subtitle.");
assertThat(allCues.get(1).startTimeUs).isEqualTo(2_345_000L);
assertThat(allCues.get(1).durationUs).isEqualTo(3_456_000L - 2_345_000L);
assertThat(allCues.get(1).endTimeUs).isEqualTo(3_456_000L);
Cue secondCue = Iterables.getOnlyElement(allCues.get(1).cues);
assertThat(secondCue.text.toString()).isEqualTo("This is the second subtitle.");
}
@ -175,11 +184,13 @@ public class WebvttParserTest {
assertThat(allCues.get(0).startTimeUs).isEqualTo(0L);
assertThat(allCues.get(0).durationUs).isEqualTo(1_234_000L);
assertThat(allCues.get(0).endTimeUs).isEqualTo(1_234_000L);
Cue firstCue = Iterables.getOnlyElement(allCues.get(0).cues);
assertThat(firstCue.text.toString()).isEqualTo("This is the first subtitle.");
assertThat(allCues.get(1).startTimeUs).isEqualTo(2_345_000L);
assertThat(allCues.get(1).durationUs).isEqualTo(3_456_000L - 2_345_000L);
assertThat(allCues.get(1).endTimeUs).isEqualTo(3_456_000L);
Cue secondCue = Iterables.getOnlyElement(allCues.get(1).cues);
assertThat(secondCue.text.toString()).isEqualTo("This is the second subtitle.");
}
@ -192,11 +203,13 @@ public class WebvttParserTest {
assertThat(allCues.get(0).startTimeUs).isEqualTo(0L);
assertThat(allCues.get(0).durationUs).isEqualTo(1_234_000L);
assertThat(allCues.get(0).endTimeUs).isEqualTo(1_234_000L);
Cue firstCue = Iterables.getOnlyElement(allCues.get(0).cues);
assertThat(firstCue.text.toString()).isEqualTo("This is the first subtitle.");
assertThat(allCues.get(1).startTimeUs).isEqualTo(2_345_000L);
assertThat(allCues.get(1).durationUs).isEqualTo(3_456_000L - 2_345_000L);
assertThat(allCues.get(1).endTimeUs).isEqualTo(3_456_000L);
Cue secondCue = Iterables.getOnlyElement(allCues.get(1).cues);
assertThat(secondCue.text.toString()).isEqualTo("This is the second subtitle.");
}
@ -209,21 +222,25 @@ public class WebvttParserTest {
assertThat(allCues.get(0).startTimeUs).isEqualTo(0L);
assertThat(allCues.get(0).durationUs).isEqualTo(1_234_000L);
assertThat(allCues.get(0).endTimeUs).isEqualTo(1_234_000L);
Cue firstCue = Iterables.getOnlyElement(allCues.get(0).cues);
assertThat(firstCue.text.toString()).isEqualTo("This is the first subtitle.");
assertThat(allCues.get(1).startTimeUs).isEqualTo(2_345_000L);
assertThat(allCues.get(1).durationUs).isEqualTo(3_456_000L - 2_345_000L);
assertThat(allCues.get(1).endTimeUs).isEqualTo(3_456_000L);
Cue secondCue = Iterables.getOnlyElement(allCues.get(1).cues);
assertThat(secondCue.text.toString()).isEqualTo("This is the second subtitle.");
assertThat(allCues.get(2).startTimeUs).isEqualTo(4_000_000L);
assertThat(allCues.get(2).durationUs).isEqualTo(5_000_000L - 4_000_000L);
assertThat(allCues.get(2).endTimeUs).isEqualTo(5_000_000L);
Cue thirdCue = Iterables.getOnlyElement(allCues.get(2).cues);
assertThat(thirdCue.text.toString()).isEqualTo("This is the third subtitle.");
assertThat(allCues.get(3).startTimeUs).isEqualTo(6_000_000L);
assertThat(allCues.get(3).durationUs).isEqualTo(7_000_000L - 6_000_000L);
assertThat(allCues.get(3).endTimeUs).isEqualTo(7_000_000L);
Cue fourthCue = Iterables.getOnlyElement(allCues.get(3).cues);
assertThat(fourthCue.text.toString()).isEqualTo("This is the <fourth> &subtitle.");
}
@ -236,6 +253,7 @@ public class WebvttParserTest {
assertThat(allCues.get(0).startTimeUs).isEqualTo(0L);
assertThat(allCues.get(0).durationUs).isEqualTo(1_234_000L);
assertThat(allCues.get(0).endTimeUs).isEqualTo(1_234_000L);
Cue firstCue = Iterables.getOnlyElement(allCues.get(0).cues);
assertThat(firstCue.text.toString()).isEqualTo("This is the first subtitle.");
assertThat(firstCue.position).isEqualTo(0.6f);
@ -250,6 +268,7 @@ public class WebvttParserTest {
assertThat(allCues.get(1).startTimeUs).isEqualTo(2_345_000L);
assertThat(allCues.get(1).durationUs).isEqualTo(3_456_000L - 2_345_000L);
assertThat(allCues.get(1).endTimeUs).isEqualTo(3_456_000L);
Cue secondCue = Iterables.getOnlyElement(allCues.get(1).cues);
assertThat(secondCue.text.toString()).isEqualTo("This is the second subtitle.");
// Position is invalid so defaults to 0.5
@ -258,6 +277,7 @@ public class WebvttParserTest {
assertThat(allCues.get(2).startTimeUs).isEqualTo(4_000_000L);
assertThat(allCues.get(2).durationUs).isEqualTo(5_000_000L - 4_000_000L);
assertThat(allCues.get(2).endTimeUs).isEqualTo(5_000_000L);
Cue thirdCue = Iterables.getOnlyElement(allCues.get(2).cues);
assertThat(thirdCue.text.toString()).isEqualTo("This is the third subtitle.");
assertThat(thirdCue.line).isEqualTo(0.45f);
@ -269,6 +289,7 @@ public class WebvttParserTest {
assertThat(allCues.get(3).startTimeUs).isEqualTo(6_000_000L);
assertThat(allCues.get(3).durationUs).isEqualTo(7_000_000L - 6_000_000L);
assertThat(allCues.get(3).endTimeUs).isEqualTo(7_000_000L);
Cue fourthCue = Iterables.getOnlyElement(allCues.get(3).cues);
assertThat(fourthCue.text.toString()).isEqualTo("This is the fourth subtitle.");
assertThat(fourthCue.line).isEqualTo(-10f);
@ -280,6 +301,7 @@ public class WebvttParserTest {
assertThat(allCues.get(4).startTimeUs).isEqualTo(8_000_000L);
assertThat(allCues.get(4).durationUs).isEqualTo(9_000_000L - 8_000_000L);
assertThat(allCues.get(4).endTimeUs).isEqualTo(9_000_000L);
Cue fifthCue = Iterables.getOnlyElement(allCues.get(4).cues);
assertThat(fifthCue.text.toString()).isEqualTo("This is the fifth subtitle.");
assertThat(fifthCue.textAlignment).isEqualTo(Alignment.ALIGN_OPPOSITE);
@ -289,6 +311,7 @@ public class WebvttParserTest {
assertThat(allCues.get(5).startTimeUs).isEqualTo(10_000_000L);
assertThat(allCues.get(5).durationUs).isEqualTo(11_000_000L - 10_000_000L);
assertThat(allCues.get(5).endTimeUs).isEqualTo(11_000_000L);
Cue sixthCue = Iterables.getOnlyElement(allCues.get(5).cues);
assertThat(sixthCue.text.toString()).isEqualTo("This is the sixth subtitle.");
assertThat(sixthCue.textAlignment).isEqualTo(Alignment.ALIGN_CENTER);
@ -298,12 +321,14 @@ public class WebvttParserTest {
assertThat(allCues.get(6).startTimeUs).isEqualTo(12_000_000L);
assertThat(allCues.get(6).durationUs).isEqualTo(13_000_000L - 12_000_000L);
assertThat(allCues.get(6).endTimeUs).isEqualTo(13_000_000L);
Cue seventhCue = Iterables.getOnlyElement(allCues.get(6).cues);
assertThat(seventhCue.text.toString()).isEqualTo("This is the seventh subtitle.");
assertThat(seventhCue.positionAnchor).isEqualTo(Cue.ANCHOR_TYPE_START);
assertThat(allCues.get(7).startTimeUs).isEqualTo(14_000_000L);
assertThat(allCues.get(7).durationUs).isEqualTo(15_000_000L - 14_000_000L);
assertThat(allCues.get(7).endTimeUs).isEqualTo(15_000_000L);
Cue eighthCue = Iterables.getOnlyElement(allCues.get(7).cues);
assertThat(eighthCue.text.toString()).isEqualTo("This is the eighth subtitle.");
assertThat(eighthCue.positionAnchor).isEqualTo(Cue.ANCHOR_TYPE_END);
@ -317,6 +342,7 @@ public class WebvttParserTest {
assertThat(allCues.get(0).startTimeUs).isEqualTo(0);
assertThat(allCues.get(0).durationUs).isEqualTo(1_000_000);
assertThat(allCues.get(0).endTimeUs).isEqualTo(1_000_000);
Cue firstCue = Iterables.getOnlyElement(allCues.get(0).cues);
assertThat(firstCue.text.toString()).isEqualTo("Displayed at the bottom for 3 seconds.");
assertThat(firstCue.line).isEqualTo(-1f);
@ -324,6 +350,7 @@ public class WebvttParserTest {
assertThat(allCues.get(1).startTimeUs).isEqualTo(1_000_000);
assertThat(allCues.get(1).durationUs).isEqualTo(1_000_000);
assertThat(allCues.get(1).endTimeUs).isEqualTo(2_000_000);
ImmutableList<Cue> firstAndSecondCue = allCues.get(1).cues;
assertThat(firstAndSecondCue).hasSize(2);
assertThat(firstAndSecondCue.get(0).text.toString())
@ -337,6 +364,7 @@ public class WebvttParserTest {
assertThat(allCues.get(2).startTimeUs).isEqualTo(2_000_000);
assertThat(allCues.get(2).durationUs).isEqualTo(1_000_000);
assertThat(allCues.get(2).endTimeUs).isEqualTo(3_000_000);
Cue thirdCue = Iterables.getOnlyElement(allCues.get(2).cues);
assertThat(thirdCue.text.toString()).isEqualTo("Displayed at the bottom for 3 seconds.");
assertThat(thirdCue.line).isEqualTo(-1f);
@ -344,6 +372,7 @@ public class WebvttParserTest {
assertThat(allCues.get(3).startTimeUs).isEqualTo(4_000_000);
assertThat(allCues.get(3).durationUs).isEqualTo(1_000_000);
assertThat(allCues.get(3).endTimeUs).isEqualTo(5_000_000);
Cue fourthCue = Iterables.getOnlyElement(allCues.get(3).cues);
assertThat(fourthCue.text.toString()).isEqualTo("Displayed at the bottom for 2 seconds.");
assertThat(fourthCue.line).isEqualTo(-1f);
@ -351,6 +380,7 @@ public class WebvttParserTest {
assertThat(allCues.get(4).startTimeUs).isEqualTo(5_000_000);
assertThat(allCues.get(4).durationUs).isEqualTo(1_000_000);
assertThat(allCues.get(4).endTimeUs).isEqualTo(6_000_000);
ImmutableList<Cue> fourthAndFifth = allCues.get(4).cues;
assertThat(fourthAndFifth).hasSize(2);
assertThat(fourthAndFifth.get(0).text.toString())
@ -364,6 +394,7 @@ public class WebvttParserTest {
assertThat(allCues.get(5).startTimeUs).isEqualTo(6_000_000);
assertThat(allCues.get(5).durationUs).isEqualTo(1_000_000);
assertThat(allCues.get(5).endTimeUs).isEqualTo(7_000_000);
Cue sixthCue = Iterables.getOnlyElement(allCues.get(5).cues);
assertThat(sixthCue.text.toString())
.isEqualTo("Appears directly above the previous cue, then replaces it after 1 second.");
@ -379,18 +410,21 @@ public class WebvttParserTest {
assertThat(allCues.get(0).startTimeUs).isEqualTo(0L);
assertThat(allCues.get(0).durationUs).isEqualTo(1_234_000L);
assertThat(allCues.get(0).endTimeUs).isEqualTo(1_234_000L);
Cue firstCue = Iterables.getOnlyElement(allCues.get(0).cues);
assertThat(firstCue.text.toString()).isEqualTo("Vertical right-to-left (e.g. Japanese)");
assertThat(firstCue.verticalType).isEqualTo(Cue.VERTICAL_TYPE_RL);
assertThat(allCues.get(1).startTimeUs).isEqualTo(2_345_000L);
assertThat(allCues.get(1).durationUs).isEqualTo(3_456_000L - 2_345_000L);
assertThat(allCues.get(1).endTimeUs).isEqualTo(3_456_000L);
Cue secondCue = Iterables.getOnlyElement(allCues.get(1).cues);
assertThat(secondCue.text.toString()).isEqualTo("Vertical left-to-right (e.g. Mongolian)");
assertThat(secondCue.verticalType).isEqualTo(Cue.VERTICAL_TYPE_LR);
assertThat(allCues.get(2).startTimeUs).isEqualTo(4_000_000L);
assertThat(allCues.get(2).durationUs).isEqualTo(5_000_000L - 4_000_000L);
assertThat(allCues.get(2).endTimeUs).isEqualTo(5_000_000L);
Cue thirdCue = Iterables.getOnlyElement(allCues.get(2).cues);
assertThat(thirdCue.text.toString()).isEqualTo("No vertical setting (i.e. horizontal)");
assertThat(thirdCue.verticalType).isEqualTo(Cue.TYPE_UNSET);
@ -449,11 +483,13 @@ public class WebvttParserTest {
assertThat(allCues.get(0).startTimeUs).isEqualTo(0L);
assertThat(allCues.get(0).durationUs).isEqualTo(1_234_000L);
assertThat(allCues.get(0).endTimeUs).isEqualTo(1_234_000L);
Cue firstCue = Iterables.getOnlyElement(allCues.get(0).cues);
assertThat(firstCue.text.toString()).isEqualTo("This is the first subtitle.");
assertThat(allCues.get(1).startTimeUs).isEqualTo(4_000_000L);
assertThat(allCues.get(1).durationUs).isEqualTo(5_000_000L - 4_000_000L);
assertThat(allCues.get(1).endTimeUs).isEqualTo(5_000_000L);
Cue secondCue = Iterables.getOnlyElement(allCues.get(1).cues);
assertThat(secondCue.text.toString()).isEqualTo("This is the third subtitle.");
}
@ -466,6 +502,7 @@ public class WebvttParserTest {
assertThat(allCues.get(0).startTimeUs).isEqualTo(0L);
assertThat(allCues.get(0).durationUs).isEqualTo(2_000_000L);
assertThat(allCues.get(0).endTimeUs).isEqualTo(2_000_000L);
Cue firstCue = Iterables.getOnlyElement(allCues.get(0).cues);
assertThat(firstCue.text.toString()).isEqualTo("Sentence with font-size set to 4.4em.");
assertThat((Spanned) firstCue.text)
@ -474,12 +511,14 @@ public class WebvttParserTest {
assertThat(allCues.get(1).startTimeUs).isEqualTo(2_100_000L);
assertThat(allCues.get(1).durationUs).isEqualTo(2_400_000L - 2_100_000L);
assertThat(allCues.get(1).endTimeUs).isEqualTo(2_400_000L);
Cue secondCue = Iterables.getOnlyElement(allCues.get(1).cues);
assertThat(secondCue.text.toString()).isEqualTo("Sentence with bad font-size unit.");
assertThat((Spanned) secondCue.text).hasNoSpans();
assertThat(allCues.get(2).startTimeUs).isEqualTo(2_500_000L);
assertThat(allCues.get(2).durationUs).isEqualTo(4_000_000L - 2_500_000L);
assertThat(allCues.get(2).endTimeUs).isEqualTo(4_000_000L);
Cue thirdCue = Iterables.getOnlyElement(allCues.get(2).cues);
assertThat(thirdCue.text.toString()).isEqualTo("Absolute font-size expressed in px unit!");
assertThat((Spanned) thirdCue.text)
@ -488,6 +527,7 @@ public class WebvttParserTest {
assertThat(allCues.get(3).startTimeUs).isEqualTo(4_500_000L);
assertThat(allCues.get(3).durationUs).isEqualTo(6_000_000L - 4_500_000L);
assertThat(allCues.get(3).endTimeUs).isEqualTo(6_000_000L);
Cue fourthCue = Iterables.getOnlyElement(allCues.get(3).cues);
assertThat(fourthCue.text.toString()).isEqualTo("Relative font-size expressed in % unit!");
assertThat((Spanned) fourthCue.text)
@ -496,12 +536,14 @@ public class WebvttParserTest {
assertThat(allCues.get(4).startTimeUs).isEqualTo(6_100_000L);
assertThat(allCues.get(4).durationUs).isEqualTo(6_400_000L - 6_100_000L);
assertThat(allCues.get(4).endTimeUs).isEqualTo(6_400_000L);
Cue fifthCue = Iterables.getOnlyElement(allCues.get(4).cues);
assertThat(fifthCue.text.toString()).isEqualTo("Sentence with bad font-size value.");
assertThat((Spanned) secondCue.text).hasNoSpans();
assertThat(allCues.get(5).startTimeUs).isEqualTo(6_500_000L);
assertThat(allCues.get(5).durationUs).isEqualTo(8_000_000L - 6_500_000L);
assertThat(allCues.get(5).endTimeUs).isEqualTo(8_000_000L);
Cue sixthCue = Iterables.getOnlyElement(allCues.get(5).cues);
assertThat(sixthCue.text.toString())
.isEqualTo("Upper and lower case letters in font-size unit.");