| Index: content/public/android/javatests/src/org/chromium/content/browser/ContentDetectionTestCommon.java
|
| diff --git a/content/public/android/javatests/src/org/chromium/content/browser/ContentDetectionTestBase.java b/content/public/android/javatests/src/org/chromium/content/browser/ContentDetectionTestCommon.java
|
| similarity index 52%
|
| copy from content/public/android/javatests/src/org/chromium/content/browser/ContentDetectionTestBase.java
|
| copy to content/public/android/javatests/src/org/chromium/content/browser/ContentDetectionTestCommon.java
|
| index 0c2fac85d8fca07a58ddd3b3d5142304d395dd3b..0d8d96b42b76a5d2f93cd00a1a6b82135e6f3dd3 100644
|
| --- a/content/public/android/javatests/src/org/chromium/content/browser/ContentDetectionTestBase.java
|
| +++ b/content/public/android/javatests/src/org/chromium/content/browser/ContentDetectionTestCommon.java
|
| @@ -1,4 +1,4 @@
|
| -// Copyright 2012 The Chromium Authors. All rights reserved.
|
| +// Copyright 2017 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.
|
|
|
| @@ -6,7 +6,6 @@ package org.chromium.content.browser;
|
|
|
| import static org.chromium.base.test.util.ScalableTimeout.scaleTimeout;
|
|
|
| -import android.app.Activity;
|
| import android.net.Uri;
|
|
|
| import org.chromium.base.test.util.CallbackHelper;
|
| @@ -15,20 +14,24 @@ import org.chromium.content.browser.test.util.DOMUtils;
|
| import org.chromium.content.browser.test.util.TestCallbackHelperContainer;
|
| import org.chromium.content.browser.test.util.TestCallbackHelperContainer.OnPageFinishedHelper;
|
| import org.chromium.content_shell.ShellViewAndroidDelegate.ContentIntentHandler;
|
| -import org.chromium.content_shell_apk.ContentShellTestBase;
|
| +import org.chromium.content_shell_apk.ContentShellActivity;
|
| +import org.chromium.content_shell_apk.ContentShellTestCommon.TestCommonCallback;
|
|
|
| import java.util.concurrent.TimeUnit;
|
| +import java.util.concurrent.TimeoutException;
|
|
|
| -/**
|
| - * Base class for content detection test suites.
|
| - */
|
| -public class ContentDetectionTestBase extends ContentShellTestBase {
|
| -
|
| +public class ContentDetectionTestCommon {
|
| private static final long WAIT_TIMEOUT_SECONDS = scaleTimeout(10);
|
|
|
| + private final TestCommonCallback<ContentShellActivity> mCallback;
|
| +
|
| private TestCallbackHelperContainer mCallbackHelper;
|
| private TestContentIntentHandler mContentIntentHandler;
|
|
|
| + public ContentDetectionTestCommon(TestCommonCallback<ContentShellActivity> callback) {
|
| + mCallback = callback;
|
| + }
|
| +
|
| /**
|
| * CallbackHelper for OnStartContentIntent.
|
| */
|
| @@ -47,7 +50,7 @@ public class ContentDetectionTestBase extends ContentShellTestBase {
|
| /**
|
| * ContentIntentHandler impl to test content detection.
|
| */
|
| - private static class TestContentIntentHandler implements ContentIntentHandler {
|
| + public static class TestContentIntentHandler implements ContentIntentHandler {
|
| private OnStartContentIntentHelper mOnStartContentIntentHelper;
|
|
|
| public OnStartContentIntentHelper getOnStartContentIntentHelper() {
|
| @@ -63,86 +66,58 @@ public class ContentDetectionTestBase extends ContentShellTestBase {
|
| }
|
| }
|
|
|
| - /**
|
| - * Returns the TestCallbackHelperContainer associated with this ContentView,
|
| - * or creates it lazily.
|
| - */
|
| - protected TestCallbackHelperContainer getTestCallbackHelperContainer() {
|
| + static String urlForContent(String content) {
|
| + return Uri.encode(content).replaceAll("%20", "+");
|
| + }
|
| +
|
| + TestCallbackHelperContainer getTestCallbackHelperContainer() {
|
| if (mCallbackHelper == null) {
|
| - mCallbackHelper = new TestCallbackHelperContainer(getContentViewCore());
|
| + mCallbackHelper =
|
| + new TestCallbackHelperContainer(mCallback.getContentViewCoreForTestCommon());
|
| }
|
| return mCallbackHelper;
|
| }
|
|
|
| - @Override
|
| - protected void setUp() throws Exception {
|
| - super.setUp();
|
| + void createTestContentIntentHandler() {
|
| mContentIntentHandler = new TestContentIntentHandler();
|
| }
|
|
|
| - @Override
|
| - protected void setActivity(Activity activity) {
|
| - super.setActivity(activity);
|
| - getActivity()
|
| + void setContentHandler() {
|
| + mCallback.getActivityForTestCommon()
|
| .getShellManager()
|
| .getActiveShell()
|
| .getViewAndroidDelegate()
|
| .setContentIntentHandler(mContentIntentHandler);
|
| }
|
|
|
| - /**
|
| - * Encodes the provided content string into an escaped url as intents do.
|
| - * @param content Content to escape into a url.
|
| - * @return Escaped url.
|
| - */
|
| - protected static String urlForContent(String content) {
|
| - return Uri.encode(content).replaceAll("%20", "+");
|
| - }
|
| -
|
| - /**
|
| - * Checks if the provided test url is the current url in the content view.
|
| - * @param testUrl Test url to check.
|
| - * @return true if the test url is the current one, false otherwise.
|
| - */
|
| - protected boolean isCurrentTestUrl(String testUrl) {
|
| - return UrlUtils.getIsolatedTestFileUrl(testUrl).equals(getContentViewCore()
|
| - .getWebContents().getUrl());
|
| + boolean isCurrentTestUrl(String testUrl) {
|
| + return UrlUtils.getIsolatedTestFileUrl(testUrl).equals(
|
| + mCallback.getContentViewCoreForTestCommon().getWebContents().getUrl());
|
| }
|
|
|
| - /**
|
| - * Scrolls to the node with the provided id, taps on it and waits for an intent to come.
|
| - * @param id Id of the node to scroll and tap.
|
| - * @return The content url of the received intent or null if none.
|
| - */
|
| - protected String scrollAndTapExpectingIntent(String id) throws Throwable {
|
| + String scrollAndTapExpectingIntent(String id) throws InterruptedException, TimeoutException {
|
| OnStartContentIntentHelper onStartContentIntentHelper =
|
| mContentIntentHandler.getOnStartContentIntentHelper();
|
| int currentCallCount = onStartContentIntentHelper.getCallCount();
|
|
|
| - DOMUtils.clickNode(getContentViewCore(), id);
|
| + DOMUtils.clickNode(mCallback.getContentViewCoreForTestCommon(), id);
|
|
|
| - onStartContentIntentHelper.waitForCallback(currentCallCount, 1, WAIT_TIMEOUT_SECONDS,
|
| - TimeUnit.SECONDS);
|
| - getInstrumentation().waitForIdleSync();
|
| + onStartContentIntentHelper.waitForCallback(
|
| + currentCallCount, 1, WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS);
|
| + mCallback.getInstrumentationForTestCommon().waitForIdleSync();
|
| return onStartContentIntentHelper.getIntentUrl();
|
| }
|
|
|
| - /**
|
| - * Scrolls to the node with the provided id, taps on it and waits for a new page load to finish.
|
| - * Useful when tapping on links that take to other pages.
|
| - * @param id Id of the node to scroll and tap.
|
| - * @return The content url of the received intent or null if none.
|
| - */
|
| - protected void scrollAndTapNavigatingOut(String id) throws Throwable {
|
| + void scrollAndTapNavigatingOut(String id) throws InterruptedException, TimeoutException {
|
| TestCallbackHelperContainer callbackHelperContainer = getTestCallbackHelperContainer();
|
| OnPageFinishedHelper onPageFinishedHelper =
|
| callbackHelperContainer.getOnPageFinishedHelper();
|
| int currentCallCount = onPageFinishedHelper.getCallCount();
|
|
|
| - DOMUtils.clickNode(getContentViewCore(), id);
|
| + DOMUtils.clickNode(mCallback.getContentViewCoreForTestCommon(), id);
|
|
|
| - onPageFinishedHelper.waitForCallback(currentCallCount, 1, WAIT_TIMEOUT_SECONDS,
|
| - TimeUnit.SECONDS);
|
| - getInstrumentation().waitForIdleSync();
|
| + onPageFinishedHelper.waitForCallback(
|
| + currentCallCount, 1, WAIT_TIMEOUT_SECONDS, TimeUnit.SECONDS);
|
| + mCallback.getInstrumentationForTestCommon().waitForIdleSync();
|
| }
|
| -}
|
| +}
|
|
|