Chromium Code Reviews| Index: chrome/android/javatests/src/org/chromium/chrome/browser/IntentHandlerTest.java |
| diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/IntentHandlerTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/IntentHandlerTest.java |
| index dfae1f295e716f610ec41f09bc3c14d3f977e1d3..dc51eabfc25bd63c47c78038bf5edd4dec27d6c4 100644 |
| --- a/chrome/android/javatests/src/org/chromium/chrome/browser/IntentHandlerTest.java |
| +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/IntentHandlerTest.java |
| @@ -12,6 +12,7 @@ import android.os.SystemClock; |
| import android.provider.Browser; |
| import android.speech.RecognizerResultsIntent; |
| import android.support.test.InstrumentationRegistry; |
| +import android.support.test.annotation.UiThreadTest; |
| import android.support.test.filters.MediumTest; |
| import android.support.test.filters.SmallTest; |
| import android.support.test.rule.UiThreadTestRule; |
| @@ -20,13 +21,15 @@ import org.junit.Assert; |
| import org.junit.Before; |
| import org.junit.Rule; |
| import org.junit.Test; |
| +import org.junit.rules.RuleChain; |
| import org.junit.runner.RunWith; |
| import org.chromium.base.CollectionUtil; |
| -import org.chromium.base.CommandLine; |
| +import org.chromium.base.ThreadUtils; |
| import org.chromium.base.test.BaseJUnit4ClassRunner; |
| import org.chromium.base.test.util.Feature; |
| -import org.chromium.content.browser.test.NativeLibraryTestRule; |
| +import org.chromium.chrome.browser.test.ChromeBrowserTestRule; |
| +import org.chromium.chrome.browser.test.CommandLineInitRule; |
| import java.util.Vector; |
| @@ -36,11 +39,12 @@ import java.util.Vector; |
| */ |
| @RunWith(BaseJUnit4ClassRunner.class) |
| public class IntentHandlerTest { |
| - @Rule |
| - public NativeLibraryTestRule mActivityTestRule = new NativeLibraryTestRule(); |
| + private final ChromeBrowserTestRule mBrowserTestRule = new ChromeBrowserTestRule(); |
| @Rule |
| - public UiThreadTestRule mUiThreadTestRule = new UiThreadTestRule(); |
| + public final RuleChain mChain = RuleChain.outerRule(new CommandLineInitRule(null)) |
| + .around(mBrowserTestRule) |
|
Ted C
2017/06/29 20:20:55
can this just be "new ChromeBrowserTestRule()" her
troyhildebrandt
2017/06/29 20:43:47
Done.
|
| + .around(new UiThreadTestRule()); |
| private static final String VOICE_SEARCH_QUERY = "VOICE_QUERY"; |
| private static final String VOICE_SEARCH_QUERY_URL = "http://www.google.com/?q=VOICE_QUERY"; |
| @@ -103,8 +107,6 @@ public class IntentHandlerTest { |
| @Before |
| public void setUp() throws Exception { |
| - CommandLine.init(null); |
| - mActivityTestRule.loadNativeLibraryAndInitBrowserProcess(); |
| IntentHandler.setTestIntentsEnabled(false); |
| mIntentHandler = new IntentHandler(null, null); |
| mIntent = new Intent(); |
| @@ -176,111 +178,89 @@ public class IntentHandlerTest { |
| @Test |
| @MediumTest |
| + @UiThreadTest |
| @Feature({"Android-AppBase"}) |
| public void testGetQueryFromVoiceSearchResultIntent_validVoiceQuery() throws Throwable { |
| - mUiThreadTestRule.runOnUiThread(new Runnable() { |
| - @Override |
| - public void run() { |
| - Intent intent = new Intent(RecognizerResultsIntent.ACTION_VOICE_SEARCH_RESULTS); |
| - intent.putStringArrayListExtra( |
| - RecognizerResultsIntent.EXTRA_VOICE_SEARCH_RESULT_STRINGS, |
| - CollectionUtil.newArrayList(VOICE_SEARCH_QUERY)); |
| - intent.putStringArrayListExtra( |
| - RecognizerResultsIntent.EXTRA_VOICE_SEARCH_RESULT_URLS, |
| - CollectionUtil.newArrayList(VOICE_SEARCH_QUERY_URL)); |
| - String query = IntentHandler.getUrlFromVoiceSearchResult(intent); |
| - Assert.assertEquals(VOICE_SEARCH_QUERY_URL, query); |
| - } |
| - }); |
| + Intent intent = new Intent(RecognizerResultsIntent.ACTION_VOICE_SEARCH_RESULTS); |
| + intent.putStringArrayListExtra(RecognizerResultsIntent.EXTRA_VOICE_SEARCH_RESULT_STRINGS, |
| + CollectionUtil.newArrayList(VOICE_SEARCH_QUERY)); |
| + intent.putStringArrayListExtra(RecognizerResultsIntent.EXTRA_VOICE_SEARCH_RESULT_URLS, |
| + CollectionUtil.newArrayList(VOICE_SEARCH_QUERY_URL)); |
| + String query = IntentHandler.getUrlFromVoiceSearchResult(intent); |
| + Assert.assertEquals(VOICE_SEARCH_QUERY_URL, query); |
| } |
| @Test |
| @MediumTest |
| + @UiThreadTest |
| @Feature({"Android-AppBase"}) |
| public void testGetQueryFromVoiceSearchResultIntent_validUrlQuery() throws Throwable { |
| - mUiThreadTestRule.runOnUiThread(new Runnable() { |
| - @Override |
| - public void run() { |
| - Intent intent = new Intent(RecognizerResultsIntent.ACTION_VOICE_SEARCH_RESULTS); |
| - intent.putStringArrayListExtra( |
| - RecognizerResultsIntent.EXTRA_VOICE_SEARCH_RESULT_STRINGS, |
| - CollectionUtil.newArrayList(VOICE_URL_QUERY)); |
| - intent.putStringArrayListExtra( |
| - RecognizerResultsIntent.EXTRA_VOICE_SEARCH_RESULT_URLS, |
| - CollectionUtil.newArrayList(VOICE_URL_QUERY_URL)); |
| - String query = IntentHandler.getUrlFromVoiceSearchResult(intent); |
| - Assert.assertTrue(String.format("Expected qualified URL: %s, to start " |
| - + "with http://www.google.com", |
| - query), |
| - query.indexOf("http://www.google.com") == 0); |
| - } |
| - }); |
| + Intent intent = new Intent(RecognizerResultsIntent.ACTION_VOICE_SEARCH_RESULTS); |
| + intent.putStringArrayListExtra(RecognizerResultsIntent.EXTRA_VOICE_SEARCH_RESULT_STRINGS, |
| + CollectionUtil.newArrayList(VOICE_URL_QUERY)); |
| + intent.putStringArrayListExtra(RecognizerResultsIntent.EXTRA_VOICE_SEARCH_RESULT_URLS, |
| + CollectionUtil.newArrayList(VOICE_URL_QUERY_URL)); |
| + String query = IntentHandler.getUrlFromVoiceSearchResult(intent); |
| + Assert.assertTrue(String.format("Expected qualified URL: %s, to start " |
| + + "with http://www.google.com", |
| + query), |
| + query.indexOf("http://www.google.com") == 0); |
| } |
| @Test |
| @SmallTest |
| + @UiThreadTest |
| @Feature({"Android-AppBase"}) |
| public void testRefererUrl_extraReferrer() throws Throwable { |
| - mUiThreadTestRule.runOnUiThread(new Runnable() { |
| - @Override |
| - public void run() { |
| - // Check that EXTRA_REFERRER is not accepted with a random URL. |
| - Intent foreignIntent = new Intent(Intent.ACTION_VIEW); |
| - foreignIntent.putExtra(Intent.EXTRA_REFERRER, GOOGLE_URL); |
| - Assert.assertNull(IntentHandler.getReferrerUrlIncludingExtraHeaders(foreignIntent)); |
| - |
| - // Check that EXTRA_REFERRER with android-app URL works. |
| - String appUrl = "android-app://com.application/http/www.application.com"; |
| - Intent appIntent = new Intent(Intent.ACTION_VIEW); |
| - appIntent.putExtra(Intent.EXTRA_REFERRER, Uri.parse(appUrl)); |
| - Assert.assertEquals( |
| - appUrl, IntentHandler.getReferrerUrlIncludingExtraHeaders(appIntent)); |
| - |
| - // Ditto, with EXTRA_REFERRER_NAME. |
| - Intent nameIntent = new Intent(Intent.ACTION_VIEW); |
| - nameIntent.putExtra(Intent.EXTRA_REFERRER_NAME, appUrl); |
| - Assert.assertEquals( |
| - appUrl, IntentHandler.getReferrerUrlIncludingExtraHeaders(nameIntent)); |
| - |
| - // Check that EXTRA_REFERRER with an empty host android-app URL doesn't work. |
| - appUrl = "android-app:///www.application.com"; |
| - appIntent = new Intent(Intent.ACTION_VIEW); |
| - appIntent.putExtra(Intent.EXTRA_REFERRER, Uri.parse(appUrl)); |
| - Assert.assertNull(IntentHandler.getReferrerUrlIncludingExtraHeaders(appIntent)); |
| - |
| - // Ditto, with EXTRA_REFERRER_NAME. |
| - nameIntent = new Intent(Intent.ACTION_VIEW); |
| - nameIntent.putExtra(Intent.EXTRA_REFERRER_NAME, appUrl); |
| - Assert.assertNull(IntentHandler.getReferrerUrlIncludingExtraHeaders(nameIntent)); |
| - } |
| - }); |
| + // Check that EXTRA_REFERRER is not accepted with a random URL. |
| + Intent foreignIntent = new Intent(Intent.ACTION_VIEW); |
| + foreignIntent.putExtra(Intent.EXTRA_REFERRER, GOOGLE_URL); |
| + Assert.assertNull(IntentHandler.getReferrerUrlIncludingExtraHeaders(foreignIntent)); |
| + |
| + // Check that EXTRA_REFERRER with android-app URL works. |
| + String appUrl = "android-app://com.application/http/www.application.com"; |
| + Intent appIntent = new Intent(Intent.ACTION_VIEW); |
| + appIntent.putExtra(Intent.EXTRA_REFERRER, Uri.parse(appUrl)); |
| + Assert.assertEquals(appUrl, IntentHandler.getReferrerUrlIncludingExtraHeaders(appIntent)); |
| + |
| + // Ditto, with EXTRA_REFERRER_NAME. |
| + Intent nameIntent = new Intent(Intent.ACTION_VIEW); |
| + nameIntent.putExtra(Intent.EXTRA_REFERRER_NAME, appUrl); |
| + Assert.assertEquals(appUrl, IntentHandler.getReferrerUrlIncludingExtraHeaders(nameIntent)); |
| + |
| + // Check that EXTRA_REFERRER with an empty host android-app URL doesn't work. |
| + appUrl = "android-app:///www.application.com"; |
| + appIntent = new Intent(Intent.ACTION_VIEW); |
| + appIntent.putExtra(Intent.EXTRA_REFERRER, Uri.parse(appUrl)); |
| + Assert.assertNull(IntentHandler.getReferrerUrlIncludingExtraHeaders(appIntent)); |
| + |
| + // Ditto, with EXTRA_REFERRER_NAME. |
| + nameIntent = new Intent(Intent.ACTION_VIEW); |
| + nameIntent.putExtra(Intent.EXTRA_REFERRER_NAME, appUrl); |
| + Assert.assertNull(IntentHandler.getReferrerUrlIncludingExtraHeaders(nameIntent)); |
| } |
| @Test |
| @SmallTest |
| + @UiThreadTest |
| @Feature({"Android-AppBase"}) |
| public void testRefererUrl_extraHeadersInclReferer() throws Throwable { |
| - mUiThreadTestRule.runOnUiThread(new Runnable() { |
| - @Override |
| - public void run() { |
| - // Check that invalid header specified in EXTRA_HEADERS isn't used. |
| - Bundle bundle = new Bundle(); |
| - bundle.putString("X-custom-header", "X-custom-value"); |
| - bundle.putString("Referer", GOOGLE_URL); |
| - Intent headersIntent = new Intent(Intent.ACTION_VIEW); |
| - headersIntent.putExtra(Browser.EXTRA_HEADERS, bundle); |
| - Assert.assertEquals("X-custom-header: X-custom-value", |
| - IntentHandler.getExtraHeadersFromIntent(headersIntent)); |
| - Assert.assertNull(IntentHandler.getReferrerUrlIncludingExtraHeaders(headersIntent)); |
| - } |
| - }); |
| + // Check that invalid header specified in EXTRA_HEADERS isn't used. |
| + Bundle bundle = new Bundle(); |
| + bundle.putString("X-custom-header", "X-custom-value"); |
| + bundle.putString("Referer", GOOGLE_URL); |
| + Intent headersIntent = new Intent(Intent.ACTION_VIEW); |
| + headersIntent.putExtra(Browser.EXTRA_HEADERS, bundle); |
| + Assert.assertEquals("X-custom-header: X-custom-value", |
| + IntentHandler.getExtraHeadersFromIntent(headersIntent)); |
| + Assert.assertNull(IntentHandler.getReferrerUrlIncludingExtraHeaders(headersIntent)); |
| } |
| @Test |
| @SmallTest |
| @Feature({"Android-AppBase"}) |
| public void testRefererUrl_extraHeadersInclRefererMultiple() throws Throwable { |
| - mUiThreadTestRule.runOnUiThread(new Runnable() { |
| + ThreadUtils.runOnUiThread(new Runnable() { |
| @Override |
| public void run() { |
| // Check that invalid header specified in EXTRA_HEADERS isn't used. |
| @@ -300,58 +280,46 @@ public class IntentHandlerTest { |
| @Test |
| @SmallTest |
| + @UiThreadTest |
| @Feature({"Android-AppBase"}) |
| public void testRefererUrl_extraHeadersOnlyReferer() throws Throwable { |
| - mUiThreadTestRule.runOnUiThread(new Runnable() { |
| - @Override |
| - public void run() { |
| - // Check that invalid header specified in EXTRA_HEADERS isn't used. |
| - Bundle bundle = new Bundle(); |
| - bundle.putString("Referer", GOOGLE_URL); |
| - Intent headersIntent = new Intent(Intent.ACTION_VIEW); |
| - headersIntent.putExtra(Browser.EXTRA_HEADERS, bundle); |
| - Assert.assertNull(IntentHandler.getReferrerUrlIncludingExtraHeaders(headersIntent)); |
| - } |
| - }); |
| + // Check that invalid header specified in EXTRA_HEADERS isn't used. |
| + Bundle bundle = new Bundle(); |
| + bundle.putString("Referer", GOOGLE_URL); |
| + Intent headersIntent = new Intent(Intent.ACTION_VIEW); |
| + headersIntent.putExtra(Browser.EXTRA_HEADERS, bundle); |
| + Assert.assertNull(IntentHandler.getReferrerUrlIncludingExtraHeaders(headersIntent)); |
| } |
| @Test |
| @SmallTest |
| + @UiThreadTest |
| @Feature({"Android-AppBase"}) |
| public void testRefererUrl_extraHeadersAndExtraReferrer() throws Throwable { |
| - mUiThreadTestRule.runOnUiThread(new Runnable() { |
| - @Override |
| - public void run() { |
| - String validReferer = "android-app://package/http/url"; |
| - Bundle bundle = new Bundle(); |
| - bundle.putString("Referer", GOOGLE_URL); |
| - Intent headersIntent = new Intent(Intent.ACTION_VIEW); |
| - headersIntent.putExtra(Browser.EXTRA_HEADERS, bundle); |
| - headersIntent.putExtra(Intent.EXTRA_REFERRER, Uri.parse(validReferer)); |
| - Assert.assertEquals(validReferer, |
| - IntentHandler.getReferrerUrlIncludingExtraHeaders(headersIntent)); |
| - Assert.assertNull(IntentHandler.getExtraHeadersFromIntent(headersIntent)); |
| - } |
| - }); |
| + String validReferer = "android-app://package/http/url"; |
| + Bundle bundle = new Bundle(); |
| + bundle.putString("Referer", GOOGLE_URL); |
| + Intent headersIntent = new Intent(Intent.ACTION_VIEW); |
| + headersIntent.putExtra(Browser.EXTRA_HEADERS, bundle); |
| + headersIntent.putExtra(Intent.EXTRA_REFERRER, Uri.parse(validReferer)); |
| + Assert.assertEquals( |
| + validReferer, IntentHandler.getReferrerUrlIncludingExtraHeaders(headersIntent)); |
| + Assert.assertNull(IntentHandler.getExtraHeadersFromIntent(headersIntent)); |
| } |
| @Test |
| @SmallTest |
| + @UiThreadTest |
| @Feature({"Android-AppBase"}) |
| public void testRefererUrl_extraHeadersValidReferrer() throws Throwable { |
| - mUiThreadTestRule.runOnUiThread(new Runnable() { |
| - @Override |
| - public void run() { |
| - String validReferer = "android-app://package/http/url"; |
| - Bundle bundle = new Bundle(); |
| - bundle.putString("Referer", validReferer); |
| - Intent headersIntent = new Intent(Intent.ACTION_VIEW); |
| - headersIntent.putExtra(Browser.EXTRA_HEADERS, bundle); |
| - Assert.assertEquals(validReferer, |
| - IntentHandler.getReferrerUrlIncludingExtraHeaders(headersIntent)); |
| - Assert.assertNull(IntentHandler.getExtraHeadersFromIntent(headersIntent)); |
| - } |
| - }); |
| + String validReferer = "android-app://package/http/url"; |
| + Bundle bundle = new Bundle(); |
| + bundle.putString("Referer", validReferer); |
| + Intent headersIntent = new Intent(Intent.ACTION_VIEW); |
| + headersIntent.putExtra(Browser.EXTRA_HEADERS, bundle); |
| + Assert.assertEquals( |
| + validReferer, IntentHandler.getReferrerUrlIncludingExtraHeaders(headersIntent)); |
| + Assert.assertNull(IntentHandler.getExtraHeadersFromIntent(headersIntent)); |
| } |
| @Test |