package org.robolectric.shadows;
import android.text.TextPaint;
import android.text.TextUtils;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.TestRunners;
import java.util.Arrays;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.Assert.assertArrayEquals;
@RunWith(TestRunners.MultiApiSelfTest.class)
public class ShadowTextUtilsTest {
@Test
public void testExpandTemplate() throws Exception {
assertThat(TextUtils.expandTemplate("a^1b^2c^3d", "A", "B", "C", "D").toString()).isEqualTo("aAbBcCd");
}
@Test
public void testIsEmpty() throws Exception {
assertThat(TextUtils.isEmpty(null)).isTrue();
assertThat(TextUtils.isEmpty("")).isTrue();
assertThat(TextUtils.isEmpty(" ")).isFalse();
assertThat(TextUtils.isEmpty("123")).isFalse();
}
@Test public void testJoin() {
assertThat(TextUtils.join(",", new String[]{"1"})).isEqualTo("1");
assertThat(TextUtils.join(",", new String[]{"1", "2", "3"})).isEqualTo("1,2,3");
assertThat(TextUtils.join(",", Arrays.asList("1", "2", "3"))).isEqualTo("1,2,3");
}
@Test
public void testIsDigitsOnly() throws Exception {
assertThat(TextUtils.isDigitsOnly("123456")).isTrue();
assertThat(TextUtils.isDigitsOnly("124a56")).isFalse();
}
@Test
public void testSplit() {
//empty
assertThat(TextUtils.split("", ",").length).isEqualTo(0);
//one value
assertArrayEquals(TextUtils.split("abc", ","), new String[]{"abc"});
//two values
assertArrayEquals(TextUtils.split("abc,def", ","), new String[]{"abc", "def"});
//two values with space
assertArrayEquals(TextUtils.split("abc, def", ","), new String[]{"abc", " def"});
}
@Test
public void testEquals() {
assertThat(TextUtils.equals(null, null)).isTrue();
assertThat(TextUtils.equals("", "")).isTrue();
assertThat(TextUtils.equals("a", "a")).isTrue();
assertThat(TextUtils.equals("ab", "ab")).isTrue();
assertThat(TextUtils.equals(null, "")).isFalse();
assertThat(TextUtils.equals("", null)).isFalse();
assertThat(TextUtils.equals(null, "a")).isFalse();
assertThat(TextUtils.equals("a", null)).isFalse();
assertThat(TextUtils.equals(null, "ab")).isFalse();
assertThat(TextUtils.equals("ab", null)).isFalse();
assertThat(TextUtils.equals("", "a")).isFalse();
assertThat(TextUtils.equals("a", "")).isFalse();
assertThat(TextUtils.equals("", "ab")).isFalse();
assertThat(TextUtils.equals("ab", "")).isFalse();
assertThat(TextUtils.equals("a", "ab")).isFalse();
assertThat(TextUtils.equals("ab", "a")).isFalse();
}
@Test public void testEllipsize() {
TextPaint p = new TextPaint();
assertThat(TextUtils.ellipsize("apples", p, 100, TextUtils.TruncateAt.END).toString()).isEqualTo("apples");
assertThat(TextUtils.ellipsize("", p, 100, TextUtils.TruncateAt.END).toString()).isEqualTo("");
}
}