.setShadowLayer(shadowRadius, shadowDx, shadowDy, shadowColor) .setSingleLine(isSingleLine) .setText(text) .setTextSize(textSize) .setWidth(SizeSpec.getSize(widthSpec), textMeasureMode)
@Config(sdk = 21) @Test(expected = IllegalArgumentException.class) public void testNullSpansAreCaught() { SpannableStringBuilder ssb = new SpannableStringBuilder().append("abcd", null, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); mBuilder.setText(ssb).build(); }
@Test public void testMeasureModeAtMostShortText() { final Layout layout = new TextLayoutBuilder() .setText(ShadowLayout.SHORT_TEXT) .setWidth(20, MEASURE_MODE_AT_MOST) .setTypeface(Typeface.DEFAULT) .setTextSize(10) .build(); assertEquals(ShadowLayout.SHORT_TEXT_LENGTH, layout.getWidth()); }
@Test public void testMeasureModeExactly() { final Layout layout = new TextLayoutBuilder() .setText(ShadowLayout.LONG_TEXT) .setWidth(20, MEASURE_MODE_EXACTLY) .setTypeface(Typeface.DEFAULT) .setTextSize(10) .build(); assertEquals(20, layout.getWidth()); }
@Before public void setup() { mBuilder = new TextLayoutBuilder(); mBuilder.setText(TEST); // Clear the cache. TextLayoutBuilder.sCache.evictAll(); }
@Test public void testLegacyBehaviour() { final Layout layout = new TextLayoutBuilder() .setText(ShadowLayout.LONG_TEXT) .setWidth(-1) .setTypeface(Typeface.DEFAULT) .setTextSize(10) .build(); assertEquals(ShadowLayout.LONG_TEXT_LENGTH, layout.getWidth()); } }
@Test public void testSpannableString() { SpannableStringBuilder spannable = new SpannableStringBuilder("This is a bold text"); spannable.setSpan(new StyleSpan(Typeface.BOLD), 10, 13, Spanned.SPAN_INCLUSIVE_INCLUSIVE); mLayout = mBuilder.setText(spannable).build(); assertEquals(mLayout.getText(), spannable); }
@Test public void testMeasureModeUnspecified() { final Layout layout = new TextLayoutBuilder() .setText(ShadowLayout.LONG_TEXT) .setWidth(20, MEASURE_MODE_UNSPECIFIED) .setTypeface(Typeface.DEFAULT) .setTextSize(10) .build(); assertEquals(ShadowLayout.LONG_TEXT_LENGTH, layout.getWidth()); }
@Test public void testSetTextNull() { mLayout = mBuilder.setText(null).build(); assertEquals(mBuilder.getText(), null); assertEquals(mLayout, null); }
@Test public void testMeasureModeAtMostLongText() { final Layout layout = new TextLayoutBuilder() .setText(ShadowLayout.LONG_TEXT) .setWidth(20, MEASURE_MODE_AT_MOST) .setTypeface(Typeface.DEFAULT) .setTextSize(10) .build(); assertEquals(20, layout.getWidth()); }
@Test public void testCachingSpannableString() { SpannableStringBuilder spannable = new SpannableStringBuilder("This is a bold text"); spannable.setSpan(new StyleSpan(Typeface.BOLD), 10, 13, Spanned.SPAN_INCLUSIVE_INCLUSIVE); mLayout = mBuilder.setText(spannable).setShouldCacheLayout(true).build(); assertEquals(mBuilder.sCache.size(), 1); assertEquals(mBuilder.sCache.get(mBuilder.mParams.hashCode()), mLayout); }
@Test public void testSingleLine() { mLayout = mBuilder.setText(LONG_TEXT).setSingleLine(true).setWidth(1000).build(); assertEquals(mLayout.getLineCount(), 1); }
@Test public void testMaxLines() { mLayout = mBuilder.setText(LONG_TEXT).setMaxLines(2).setWidth(1000).build(); assertEquals(mLayout.getLineCount(), 2); }
@Test public void testSetText() { mLayout = mBuilder.setText("Android").build(); assertEquals(mBuilder.getText(), "Android"); assertEquals(mLayout.getText(), "Android"); }
@Test public void testMinWidth() { mBuilder.setText(LONG_TEXT).setMinWidth(100).build(); assertEquals(mBuilder.getMinWidth(), 100); assertEquals(mBuilder.getMinEms(), -1); }
@Test public void testMinEms() { mBuilder.setText(LONG_TEXT).setMinEms(10).build(); assertEquals(mBuilder.getMinEms(), 10); assertEquals(mBuilder.getMinWidth(), -1); }
@Test public void testMaxWidth() { mBuilder.setText(LONG_TEXT).setMaxWidth(100).build(); assertEquals(mBuilder.getMaxWidth(), 100); assertEquals(mBuilder.getMaxEms(), -1); }
@Test public void testTwoBuildersWithSameParamsAndCaching() { mLayout = mBuilder.setShouldCacheLayout(true).build(); TextLayoutBuilder newBuilder = new TextLayoutBuilder(); Layout newLayout = newBuilder.setText(TEST).setShouldCacheLayout(true).build(); assertEquals(mLayout, newLayout); }
@Test public void testMaxEms() { mBuilder.setText(LONG_TEXT).setMaxEms(10).build(); assertEquals(mBuilder.getMaxEms(), 10); assertEquals(mBuilder.getMaxWidth(), -1); }
@Test public void testTwoBuildersWithSameParamsAndNoCaching() { mLayout = mBuilder.setShouldCacheLayout(false).build(); TextLayoutBuilder newBuilder = new TextLayoutBuilder(); Layout newLayout = newBuilder.setText(TEST).setShouldCacheLayout(false).build(); assertNotEquals(mLayout, newLayout); }