Merge "revise Linkify.PHONE_NUMBER CTS" into jb-mr2-dev
diff --git a/tests/tests/text/src/android/text/util/cts/LinkifyTest.java b/tests/tests/text/src/android/text/util/cts/LinkifyTest.java
index 404f9d7..45111f2 100644
--- a/tests/tests/text/src/android/text/util/cts/LinkifyTest.java
+++ b/tests/tests/text/src/android/text/util/cts/LinkifyTest.java
@@ -26,6 +26,7 @@
import android.text.util.Linkify.TransformFilter;
import android.widget.TextView;
+import java.util.Locale;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -73,7 +74,6 @@
public void testAddLinks1() {
SpannableString spannable = new SpannableString("name@gmail.com, "
- + "123456789, tel:(0812)1234567 "
+ "www.google.com, http://www.google.com/language_tools?hl=en, ");
assertTrue(Linkify.addLinks(spannable, Linkify.WEB_URLS));
@@ -87,12 +87,6 @@
assertEquals(1, spans.length);
assertEquals("mailto:name@gmail.com", spans[0].getURL());
- assertTrue(Linkify.addLinks(spannable, Linkify.PHONE_NUMBERS));
- spans = spannable.getSpans(0, spannable.length(), URLSpan.class);
- assertEquals(2, spans.length);
- assertEquals("tel:123456789", spans[0].getURL());
- assertEquals("tel:08121234567", spans[1].getURL());
-
try {
Linkify.addLinks((Spannable) null, Linkify.WEB_URLS);
fail("Should throw NullPointerException!");
@@ -304,4 +298,43 @@
assertEquals("test:FilterUpperCase.pattern", spans[0].getURL());
assertEquals("test:12", spans[1].getURL());
}
+
+ public void testAddLinks7() {
+ String numbersInvalid = "123456789 not a phone number";
+ String numbersUKLocal = "tel:(0812)1234560 (0812)1234561";
+ String numbersUSLocal = "tel:(812)1234562 (812)123.4563 "
+ + " tel:(800)5551210 (800) 555-1211 555-1212";
+ String numbersIntl = "tel:+4408121234564 +44-0812-123-4565"
+ + " tel:+18005551213 +1-800-555-1214";
+ SpannableString spannable = new SpannableString(
+ numbersInvalid
+ + " " + numbersUKLocal
+ + " " + numbersUSLocal
+ + " " + numbersIntl);
+
+ // phonenumber linkify is locale-dependent
+ if (Locale.US.equals(Locale.getDefault())) {
+ assertTrue(Linkify.addLinks(spannable, Linkify.PHONE_NUMBERS));
+ URLSpan[] spans = spannable.getSpans(0, spannable.length(), URLSpan.class);
+ assertEquals(9, spans.length);
+ assertEquals("tel:8121234562", spans[0].getURL());
+ assertEquals("tel:8121234563", spans[1].getURL());
+ assertEquals("tel:8005551210", spans[2].getURL());
+ assertEquals("tel:8005551211", spans[3].getURL());
+ assertEquals("tel:5551212", spans[4].getURL());
+ assertEquals("tel:+4408121234564", spans[5].getURL());
+ assertEquals("tel:+4408121234565", spans[6].getURL());
+ assertEquals("tel:+18005551213", spans[7].getURL());
+ assertEquals("tel:+18005551214", spans[8].getURL());
+ }
+
+ try {
+ Linkify.addLinks((Spannable) null, Linkify.WEB_URLS);
+ fail("Should throw NullPointerException!");
+ } catch (NullPointerException e) {
+ // expect
+ }
+
+ assertFalse(Linkify.addLinks((Spannable) null, 0));
+ }
}