Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1433)

Unified Diff: content/public/android/javatests/src/org/chromium/content/browser/PhoneNumberDetectionTest.java

Issue 11085008: [Android] Upstream content detection and ChromeBrowserProvider tests. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase after landing resources separately. Created 8 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/public/android/javatests/src/org/chromium/content/browser/PhoneNumberDetectionTest.java
diff --git a/content/public/android/javatests/src/org/chromium/content/browser/PhoneNumberDetectionTest.java b/content/public/android/javatests/src/org/chromium/content/browser/PhoneNumberDetectionTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..77d56eedda9c99f581385e85cc7d7a9e3a00f2e3
--- /dev/null
+++ b/content/public/android/javatests/src/org/chromium/content/browser/PhoneNumberDetectionTest.java
@@ -0,0 +1,220 @@
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.content.browser;
+
+import android.test.suitebuilder.annotation.LargeTest;
+import android.test.suitebuilder.annotation.MediumTest;
+
+import org.chromium.base.test.util.DisabledTest;
+import org.chromium.base.test.util.Feature;
+import org.chromium.content.common.CommandLine;
+
+/**
+ * Test suite for phone number detection.
+ */
+public class PhoneNumberDetectionTest extends ContentDetectionTestBase {
+
+ private static final String TELEPHONE_INTENT_PREFIX = "tel:";
+
+ private boolean isExpectedTelephoneIntent(String intentUrl, String expectedContent) {
+ if (intentUrl == null) return false;
+ final String expectedUrl = TELEPHONE_INTENT_PREFIX + urlForContent(expectedContent);
+ return intentUrl.equals(expectedUrl);
+ }
+
+ /**
+ * Starts the content shell activity with the provided test URL and setting the local country
+ * to the one provided by its 2-letter ISO code.
+ * @param testUrl Test url to load.
+ * @param countryIso 2-letter ISO country code. If set to null only international numbers
+ * can be assumed to be supported.
+ */
+ private void startActivityWithTestUrlAndCountryIso(String testUrl, String countryIso)
+ throws Throwable {
+ final String[] cmdlineArgs = countryIso == null ? null : new String[] {
+ "--" + CommandLine.NETWORK_COUNTRY_ISO + "=" + countryIso };
+ startActivityWithTestUrlAndCommandLineArgs(testUrl, cmdlineArgs);
+ }
+
+ @LargeTest
+ @Feature({"ContentDetection", "TabContents"})
+ public void testInternationalNumberIntents() throws Throwable {
+ startActivityWithTestUrl("content/content_detection/phone_international.html");
+
+ // US: +1 650-253-0000.
+ String intentUrl = scrollAndTapExpectingIntent("US");
+ assertTrue(isExpectedTelephoneIntent(intentUrl, "+16502530000"));
+
+ // Australia: +61 2 9374 4000.
+ intentUrl = scrollAndTapExpectingIntent("Australia");
+ assertTrue(isExpectedTelephoneIntent(intentUrl, "+61293744000"));
+
+ // China: +86-10-62503000.
+ intentUrl = scrollAndTapExpectingIntent("China");
+ assertTrue(isExpectedTelephoneIntent(intentUrl, "+861062503000"));
+
+ // Hong Kong: +852-3923-5400.
+ intentUrl = scrollAndTapExpectingIntent("Hong Kong");
+ assertTrue(isExpectedTelephoneIntent(intentUrl, "+85239235400"));
+
+ // India: +91-80-67218000.
+ intentUrl = scrollAndTapExpectingIntent("India");
+ assertTrue(isExpectedTelephoneIntent(intentUrl, "+918067218000"));
+
+ // Japan: +81-3-6384-9000.
+ intentUrl = scrollAndTapExpectingIntent("Japan");
+ assertTrue(isExpectedTelephoneIntent(intentUrl, "+81363849000"));
+
+ // Korea: +82-2-531-9000.
+ intentUrl = scrollAndTapExpectingIntent("Korea");
+ assertTrue(isExpectedTelephoneIntent(intentUrl, "+8225319000"));
+
+ // Singapore: +65 6521-8000.
+ intentUrl = scrollAndTapExpectingIntent("Singapore");
+ assertTrue(isExpectedTelephoneIntent(intentUrl, "+6565218000"));
+
+ // Taiwan: +886 2 8729 6000.
+ intentUrl = scrollAndTapExpectingIntent("Taiwan");
+ assertTrue(isExpectedTelephoneIntent(intentUrl, "+886287296000"));
+
+ // Kenya: +254 20 360 1000.
+ intentUrl = scrollAndTapExpectingIntent("Kenya");
+ assertTrue(isExpectedTelephoneIntent(intentUrl, "+254203601000"));
+
+ // France: +33 (0)1 42 68 53 00.
+ intentUrl = scrollAndTapExpectingIntent("France");
+ assertTrue(isExpectedTelephoneIntent(intentUrl, "+33142685300"));
+
+ // Germany: +49 40-80-81-79-000.
+ intentUrl = scrollAndTapExpectingIntent("Germany");
+ assertTrue(isExpectedTelephoneIntent(intentUrl, "+4940808179000"));
+
+ // Ireland: +353 (1) 436 1001.
+ intentUrl = scrollAndTapExpectingIntent("Ireland");
+ assertTrue(isExpectedTelephoneIntent(intentUrl, "+35314361001"));
+
+ // Italy: +39 02-36618 300.
+ intentUrl = scrollAndTapExpectingIntent("Italy");
+ assertTrue(isExpectedTelephoneIntent(intentUrl, "+390236618300"));
+
+ // Netherlands: +31 (0)20-5045-100.
+ intentUrl = scrollAndTapExpectingIntent("Netherlands");
+ assertTrue(isExpectedTelephoneIntent(intentUrl, "+31205045100"));
+
+ // Norway: +47 22996288.
+ intentUrl = scrollAndTapExpectingIntent("Norway");
+ assertTrue(isExpectedTelephoneIntent(intentUrl, "+4722996288"));
+
+ // Poland: +48 (12) 68 15 300.
+ intentUrl = scrollAndTapExpectingIntent("Poland");
+ assertTrue(isExpectedTelephoneIntent(intentUrl, "+48126815300"));
+
+ // Russia: +7-495-644-1400.
+ intentUrl = scrollAndTapExpectingIntent("Russia");
+ assertTrue(isExpectedTelephoneIntent(intentUrl, "+74956441400"));
+
+ // Spain: +34 91-748-6400.
+ intentUrl = scrollAndTapExpectingIntent("Spain");
+ assertTrue(isExpectedTelephoneIntent(intentUrl, "+34917486400"));
+
+ // Switzerland: +41 44-668-1800.
+ intentUrl = scrollAndTapExpectingIntent("Switzerland");
+ assertTrue(isExpectedTelephoneIntent(intentUrl, "+41446681800"));
+
+ // UK: +44 (0)20-7031-3000.
+ intentUrl = scrollAndTapExpectingIntent("UK");
+ assertTrue(isExpectedTelephoneIntent(intentUrl, "+442070313000"));
+
+ // Canada: +1 514-670-8700.
+ intentUrl = scrollAndTapExpectingIntent("Canada");
+ assertTrue(isExpectedTelephoneIntent(intentUrl, "+15146708700"));
+
+ // Argentina: +54-11-5530-3000.
+ intentUrl = scrollAndTapExpectingIntent("Argentina");
+ assertTrue(isExpectedTelephoneIntent(intentUrl, "+541155303000"));
+
+ // Brazil: +55-31-2128-6800.
+ intentUrl = scrollAndTapExpectingIntent("Brazil");
+ assertTrue(isExpectedTelephoneIntent(intentUrl, "+553121286800"));
+
+ // Mexico: +52 55-5342-8400.
+ intentUrl = scrollAndTapExpectingIntent("Mexico");
+ assertTrue(isExpectedTelephoneIntent(intentUrl, "+525553428400"));
+
+ // Israel: +972-74-746-6245.
+ intentUrl = scrollAndTapExpectingIntent("Israel");
+ assertTrue(isExpectedTelephoneIntent(intentUrl, "+972747466245"));
+
+ // UAE: +971 4 4509500.
+ intentUrl = scrollAndTapExpectingIntent("UAE");
+ assertTrue(isExpectedTelephoneIntent(intentUrl, "+97144509500"));
+ }
+
+ @MediumTest
+ @Feature({"ContentDetection", "TabContents"})
+ public void testLocalUSNumbers() throws Throwable {
+ startActivityWithTestUrlAndCountryIso("content/content_detection/phone_local.html", "US");
+
+ // US_1: 1-888-433-5788.
+ String intentUrl = scrollAndTapExpectingIntent("US_1");
+ assertTrue(isExpectedTelephoneIntent(intentUrl, "+18884335788"));
+
+ // US_2: 703-293-6299.
+ intentUrl = scrollAndTapExpectingIntent("US_2");
+ assertTrue(isExpectedTelephoneIntent(intentUrl, "+17032936299"));
+
+ // US_3: (202) 456-2121.
+ intentUrl = scrollAndTapExpectingIntent("US_3");
+ assertTrue(isExpectedTelephoneIntent(intentUrl, "+12024562121"));
+
+ // International numbers should still work.
+ intentUrl = scrollAndTapExpectingIntent("International");
+ assertTrue(isExpectedTelephoneIntent(intentUrl, "+31205045100"));
+ }
+
+ @MediumTest
+ @Feature({"ContentDetection", "TabContents"})
+ public void testLocalUKNumbers() throws Throwable {
+ startActivityWithTestUrlAndCountryIso("content/content_detection/phone_local.html", "GB");
+
+ // GB_1: (0) 20 7323 8299.
+ String intentUrl = scrollAndTapExpectingIntent("GB_1");
+ assertTrue(isExpectedTelephoneIntent(intentUrl, "+442073238299"));
+
+ // GB_2: 01227865330.
+ intentUrl = scrollAndTapExpectingIntent("GB_2");
+ assertTrue(isExpectedTelephoneIntent(intentUrl, "+441227865330"));
+
+ // GB_3: 01963 824686.
+ intentUrl = scrollAndTapExpectingIntent("GB_3");
+ assertTrue(isExpectedTelephoneIntent(intentUrl, "+441963824686"));
+
+ // International numbers should still work.
+ intentUrl = scrollAndTapExpectingIntent("International");
+ assertTrue(isExpectedTelephoneIntent(intentUrl, "+31205045100"));
+ }
+
+ @MediumTest
+ @Feature({"ContentDetection", "TabContents"})
+ public void testLocalFRNumbers() throws Throwable {
+ startActivityWithTestUrlAndCountryIso("content/content_detection/phone_local.html", "FR");
+
+ // FR_1: 01 40 20 50 50.
+ String intentUrl = scrollAndTapExpectingIntent("FR_1");
+ assertTrue(isExpectedTelephoneIntent(intentUrl, "+33140205050"));
+
+ // FR_2: 0326475534.
+ intentUrl = scrollAndTapExpectingIntent("FR_2");
+ assertTrue(isExpectedTelephoneIntent(intentUrl, "+33326475534"));
+
+ // FR_3: (0) 237 211 992.
+ intentUrl = scrollAndTapExpectingIntent("FR_3");
+ assertTrue(isExpectedTelephoneIntent(intentUrl, "+33237211992"));
+
+ // International numbers should still work.
+ intentUrl = scrollAndTapExpectingIntent("International");
+ assertTrue(isExpectedTelephoneIntent(intentUrl, "+31205045100"));
+ }
+}

Powered by Google App Engine
This is Rietveld 408576698