1 package org.robolectric.shadows; 2 3 import static com.google.common.truth.Truth.assertThat; 4 import static org.junit.Assert.assertArrayEquals; 5 6 import android.text.TextPaint; 7 import android.text.TextUtils; 8 import androidx.test.ext.junit.runners.AndroidJUnit4; 9 import java.util.Arrays; 10 import org.junit.Test; 11 import org.junit.runner.RunWith; 12 13 @RunWith(AndroidJUnit4.class) 14 public class ShadowTextUtilsTest { 15 @Test testExpandTemplate()16 public void testExpandTemplate() throws Exception { 17 assertThat(TextUtils.expandTemplate("a^1b^2c^3d", "A", "B", "C", "D").toString()).isEqualTo("aAbBcCd"); 18 } 19 20 @Test testIsEmpty()21 public void testIsEmpty() throws Exception { 22 assertThat(TextUtils.isEmpty(null)).isTrue(); 23 assertThat(TextUtils.isEmpty("")).isTrue(); 24 assertThat(TextUtils.isEmpty(" ")).isFalse(); 25 assertThat(TextUtils.isEmpty("123")).isFalse(); 26 } 27 testJoin()28 @Test public void testJoin() { 29 assertThat(TextUtils.join(",", new String[]{"1"})).isEqualTo("1"); 30 assertThat(TextUtils.join(",", new String[]{"1", "2", "3"})).isEqualTo("1,2,3"); 31 assertThat(TextUtils.join(",", Arrays.asList("1", "2", "3"))).isEqualTo("1,2,3"); 32 } 33 34 @Test testIsDigitsOnly()35 public void testIsDigitsOnly() throws Exception { 36 assertThat(TextUtils.isDigitsOnly("123456")).isTrue(); 37 assertThat(TextUtils.isDigitsOnly("124a56")).isFalse(); 38 } 39 40 @Test testSplit()41 public void testSplit() { 42 //empty 43 assertThat(TextUtils.split("", ",").length).isEqualTo(0); 44 45 //one value 46 assertArrayEquals(TextUtils.split("abc", ","), new String[]{"abc"}); 47 48 //two values 49 assertArrayEquals(TextUtils.split("abc,def", ","), new String[]{"abc", "def"}); 50 51 //two values with space 52 assertArrayEquals(TextUtils.split("abc, def", ","), new String[]{"abc", " def"}); 53 } 54 55 @Test testEquals()56 public void testEquals() { 57 assertThat(TextUtils.equals(null, null)).isTrue(); 58 assertThat(TextUtils.equals("", "")).isTrue(); 59 assertThat(TextUtils.equals("a", "a")).isTrue(); 60 assertThat(TextUtils.equals("ab", "ab")).isTrue(); 61 62 assertThat(TextUtils.equals(null, "")).isFalse(); 63 assertThat(TextUtils.equals("", null)).isFalse(); 64 65 assertThat(TextUtils.equals(null, "a")).isFalse(); 66 assertThat(TextUtils.equals("a", null)).isFalse(); 67 68 assertThat(TextUtils.equals(null, "ab")).isFalse(); 69 assertThat(TextUtils.equals("ab", null)).isFalse(); 70 71 assertThat(TextUtils.equals("", "a")).isFalse(); 72 assertThat(TextUtils.equals("a", "")).isFalse(); 73 74 assertThat(TextUtils.equals("", "ab")).isFalse(); 75 assertThat(TextUtils.equals("ab", "")).isFalse(); 76 77 assertThat(TextUtils.equals("a", "ab")).isFalse(); 78 assertThat(TextUtils.equals("ab", "a")).isFalse(); 79 } 80 testEllipsize()81 @Test public void testEllipsize() { 82 TextPaint p = new TextPaint(); 83 assertThat(TextUtils.ellipsize("apples", p, 0, TextUtils.TruncateAt.END).toString()) 84 .isEqualTo(""); 85 assertThat(TextUtils.ellipsize("apples", p, -1, TextUtils.TruncateAt.END).toString()) 86 .isEqualTo(""); 87 assertThat(TextUtils.ellipsize("apples", p, 3, TextUtils.TruncateAt.END).toString()) 88 .isEqualTo("app"); 89 assertThat(TextUtils.ellipsize("apples", p, 100, TextUtils.TruncateAt.END).toString()) 90 .isEqualTo("apples"); 91 assertThat(TextUtils.ellipsize("", p, 100, TextUtils.TruncateAt.END).toString()).isEqualTo(""); 92 } 93 } 94