Commit 1e7db22e by ibaker Committed by Ian Baker

Convert StyleSpan assertions in SpannedSubject to fluent style

PiperOrigin-RevId: 288274998
parent 29df73e2
...@@ -36,10 +36,7 @@ public final class WebvttCueParserTest { ...@@ -36,10 +36,7 @@ public final class WebvttCueParserTest {
assertThat(text.toString()).isEqualTo("This is text with html tags"); assertThat(text.toString()).isEqualTo("This is text with html tags");
assertThat(text).hasUnderlineSpanBetween("This ".length(), "This is".length()); assertThat(text).hasUnderlineSpanBetween("This ".length(), "This is".length());
assertThat(text) assertThat(text)
.hasBoldItalicSpan( .hasBoldItalicSpanBetween("This is text with ".length(), "This is text with html".length());
"This is text with ".length(),
"This is text with html".length(),
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
} }
@Test @Test
...@@ -60,10 +57,8 @@ public final class WebvttCueParserTest { ...@@ -60,10 +57,8 @@ public final class WebvttCueParserTest {
assertThat(text) assertThat(text)
.hasUnderlineSpanBetween("An ".length(), "An unclosed u tag with italic inside".length()); .hasUnderlineSpanBetween("An ".length(), "An unclosed u tag with italic inside".length());
assertThat(text) assertThat(text)
.hasItalicSpan( .hasItalicSpanBetween(
"An unclosed u tag with ".length(), "An unclosed u tag with ".length(), "An unclosed u tag with italic".length());
"An unclosed u tag with italic".length(),
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
} }
@Test @Test
...@@ -72,10 +67,9 @@ public final class WebvttCueParserTest { ...@@ -72,10 +67,9 @@ public final class WebvttCueParserTest {
assertThat(text.toString()).isEqualTo("An italic tag with unclosed underline inside"); assertThat(text.toString()).isEqualTo("An italic tag with unclosed underline inside");
assertThat(text) assertThat(text)
.hasItalicSpan( .hasItalicSpanBetween(
"An italic tag with unclosed ".length(), "An italic tag with unclosed ".length(),
"An italic tag with unclosed underline".length(), "An italic tag with unclosed underline".length());
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
assertThat(text) assertThat(text)
.hasUnderlineSpanBetween( .hasUnderlineSpanBetween(
"An italic tag with unclosed ".length(), "An italic tag with unclosed ".length(),
...@@ -88,15 +82,11 @@ public final class WebvttCueParserTest { ...@@ -88,15 +82,11 @@ public final class WebvttCueParserTest {
String expectedText = "Overlapping u and i tags"; String expectedText = "Overlapping u and i tags";
assertThat(text.toString()).isEqualTo(expectedText); assertThat(text.toString()).isEqualTo(expectedText);
assertThat(text).hasBoldSpan(0, expectedText.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); assertThat(text).hasBoldSpanBetween(0, expectedText.length());
// Text between the <u> tags is underlined. // Text between the <u> tags is underlined.
assertThat(text).hasUnderlineSpanBetween(0, "Overlapping u and".length()); assertThat(text).hasUnderlineSpanBetween(0, "Overlapping u and".length());
// Only text from <i> to <\\u> is italic (unexpected - but simplifies the parsing). // Only text from <i> to <\\u> is italic (unexpected - but simplifies the parsing).
assertThat(text) assertThat(text).hasItalicSpanBetween("Overlapping u ".length(), "Overlapping u and".length());
.hasItalicSpan(
"Overlapping u ".length(),
"Overlapping u and".length(),
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
} }
@Test @Test
...@@ -105,8 +95,7 @@ public final class WebvttCueParserTest { ...@@ -105,8 +95,7 @@ public final class WebvttCueParserTest {
assertThat(text.toString()).isEqualTo("foobarbazbuzz"); assertThat(text.toString()).isEqualTo("foobarbazbuzz");
// endIndex should be 9 when valid (i.e. "foobarbaz".length() // endIndex should be 9 when valid (i.e. "foobarbaz".length()
assertThat(text) assertThat(text).hasBoldSpanBetween("foo".length(), "foobar".length());
.hasBoldSpan("foo".length(), "foobar".length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
} }
@Test @Test
...@@ -156,13 +145,8 @@ public final class WebvttCueParserTest { ...@@ -156,13 +145,8 @@ public final class WebvttCueParserTest {
Spanned text = parseCueText("blah <b>blah</b> blah <b>foo</b>"); Spanned text = parseCueText("blah <b>blah</b> blah <b>foo</b>");
assertThat(text.toString()).isEqualTo("blah blah blah foo"); assertThat(text.toString()).isEqualTo("blah blah blah foo");
assertThat(text) assertThat(text).hasBoldSpanBetween("blah ".length(), "blah blah".length());
.hasBoldSpan("blah ".length(), "blah blah".length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); assertThat(text).hasBoldSpanBetween("blah blah blah ".length(), "blah blah blah foo".length());
assertThat(text)
.hasBoldSpan(
"blah blah blah ".length(),
"blah blah blah foo".length(),
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
} }
@Test @Test
......
...@@ -417,11 +417,7 @@ public class WebvttDecoderTest { ...@@ -417,11 +417,7 @@ public class WebvttDecoderTest {
assertThat(s4) assertThat(s4)
.hasBackgroundColorSpanBetween(0, 16) .hasBackgroundColorSpanBetween(0, 16)
.withColor(ColorParser.parseCssColor("lime")); .withColor(ColorParser.parseCssColor("lime"));
assertThat(s4) assertThat(s4).hasBoldSpanBetween(/* startIndex= */ 17, /* endIndex= */ s4.length());
.hasBoldSpan(
/* startIndex= */ 17,
/* endIndex= */ s4.length(),
/* flags= */ Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
} }
@Test @Test
......
...@@ -63,7 +63,9 @@ public class SpannedSubjectTest { ...@@ -63,7 +63,9 @@ public class SpannedSubjectTest {
int end = start + "italic".length(); int end = start + "italic".length();
spannable.setSpan(new StyleSpan(Typeface.ITALIC), start, end, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); spannable.setSpan(new StyleSpan(Typeface.ITALIC), start, end, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
assertThat(spannable).hasItalicSpan(start, end, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); assertThat(spannable)
.hasItalicSpanBetween(start, end)
.withFlags(Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
} }
@Test @Test
...@@ -78,14 +80,21 @@ public class SpannedSubjectTest { ...@@ -78,14 +80,21 @@ public class SpannedSubjectTest {
whenTesting -> whenTesting ->
whenTesting whenTesting
.that(spannable) .that(spannable)
.hasItalicSpan(start, end, Spanned.SPAN_INCLUSIVE_EXCLUSIVE)); .hasItalicSpanBetween(start, end)
.withFlags(Spanned.SPAN_INCLUSIVE_EXCLUSIVE));
assertThat(failure).factKeys().contains("No matching span found");
assertThat(failure).factValue("in text").isEqualTo(spannable.toString());
assertThat(failure).factValue("expected").contains("flags=" + Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
assertThat(failure) assertThat(failure)
.factValue("but found") .factValue("value of")
.contains("flags=" + Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); .isEqualTo(
String.format(
"spanned.StyleSpan (start=%s,end=%s,style=%s).contains()",
start, end, Typeface.ITALIC));
assertThat(failure)
.factValue("expected to contain")
.contains(String.valueOf(Spanned.SPAN_INCLUSIVE_EXCLUSIVE));
assertThat(failure)
.factValue("but was")
.contains(String.valueOf(Spanned.SPAN_EXCLUSIVE_EXCLUSIVE));
} }
@Test @Test
...@@ -93,7 +102,10 @@ public class SpannedSubjectTest { ...@@ -93,7 +102,10 @@ public class SpannedSubjectTest {
AssertionError failure = AssertionError failure =
expectFailure( expectFailure(
whenTesting -> whenTesting ->
whenTesting.that(null).hasItalicSpan(0, 5, Spanned.SPAN_INCLUSIVE_EXCLUSIVE)); whenTesting
.that(null)
.hasItalicSpanBetween(0, 5)
.withFlags(Spanned.SPAN_INCLUSIVE_EXCLUSIVE));
assertThat(failure).factKeys().containsExactly("Spanned must not be null"); assertThat(failure).factKeys().containsExactly("Spanned must not be null");
} }
...@@ -105,7 +117,9 @@ public class SpannedSubjectTest { ...@@ -105,7 +117,9 @@ public class SpannedSubjectTest {
int end = start + "bold".length(); int end = start + "bold".length();
spannable.setSpan(new StyleSpan(Typeface.BOLD), start, end, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); spannable.setSpan(new StyleSpan(Typeface.BOLD), start, end, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
assertThat(spannable).hasBoldSpan(start, end, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); assertThat(spannable)
.hasBoldSpanBetween(start, end)
.withFlags(Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
} }
@Test @Test
...@@ -116,7 +130,9 @@ public class SpannedSubjectTest { ...@@ -116,7 +130,9 @@ public class SpannedSubjectTest {
spannable.setSpan( spannable.setSpan(
new StyleSpan(Typeface.BOLD_ITALIC), start, end, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); new StyleSpan(Typeface.BOLD_ITALIC), start, end, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
assertThat(spannable).hasBoldItalicSpan(start, end, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); assertThat(spannable)
.hasBoldItalicSpanBetween(start, end)
.withFlags(Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
} }
@Test @Test
...@@ -127,7 +143,9 @@ public class SpannedSubjectTest { ...@@ -127,7 +143,9 @@ public class SpannedSubjectTest {
spannable.setSpan(new StyleSpan(Typeface.BOLD), start, end, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); spannable.setSpan(new StyleSpan(Typeface.BOLD), start, end, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
spannable.setSpan(new StyleSpan(Typeface.ITALIC), start, end, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); spannable.setSpan(new StyleSpan(Typeface.ITALIC), start, end, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
assertThat(spannable).hasBoldItalicSpan(start, end, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); assertThat(spannable)
.hasBoldItalicSpanBetween(start, end)
.withFlags(Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
} }
@Test @Test
...@@ -144,8 +162,9 @@ public class SpannedSubjectTest { ...@@ -144,8 +162,9 @@ public class SpannedSubjectTest {
whenTesting -> whenTesting ->
whenTesting whenTesting
.that(spannable) .that(spannable)
.hasBoldItalicSpan(incorrectStart, end, Spanned.SPAN_INCLUSIVE_EXCLUSIVE)); .hasBoldItalicSpanBetween(incorrectStart, end)
assertThat(expected).factValue("expected either").contains("start=" + incorrectStart); .withFlags(Spanned.SPAN_INCLUSIVE_EXCLUSIVE));
assertThat(expected).factValue("expected").contains("start=" + incorrectStart);
assertThat(expected).factValue("but found").contains("start=" + start); assertThat(expected).factValue("but found").contains("start=" + start);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment