| Index: chrome/android/javatests/src/org/chromium/chrome/browser/SmartClipProviderTest.java
|
| diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/SmartClipProviderTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/SmartClipProviderTest.java
|
| deleted file mode 100644
|
| index aaed16666904805ee18599b98e089a9e3bd3377a..0000000000000000000000000000000000000000
|
| --- a/chrome/android/javatests/src/org/chromium/chrome/browser/SmartClipProviderTest.java
|
| +++ /dev/null
|
| @@ -1,188 +0,0 @@
|
| -// Copyright 2014 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.chrome.browser;
|
| -
|
| -import android.annotation.TargetApi;
|
| -import android.content.pm.ApplicationInfo;
|
| -import android.content.pm.PackageManager;
|
| -import android.graphics.Rect;
|
| -import android.os.Build;
|
| -import android.os.Bundle;
|
| -import android.os.Handler;
|
| -import android.os.HandlerThread;
|
| -import android.os.Message;
|
| -import android.test.suitebuilder.annotation.MediumTest;
|
| -import android.view.View;
|
| -import android.view.ViewGroup;
|
| -
|
| -import org.chromium.base.ThreadUtils;
|
| -import org.chromium.base.test.util.Feature;
|
| -import org.chromium.chrome.shell.ChromeShellActivity;
|
| -import org.chromium.chrome.shell.ChromeShellTestBase;
|
| -import org.chromium.chrome.shell.R;
|
| -import org.chromium.content.browser.test.util.CallbackHelper;
|
| -
|
| -import java.lang.reflect.Method;
|
| -import java.util.concurrent.TimeoutException;
|
| -
|
| -/**
|
| - * Tests for the SmartClipProvider.
|
| - */
|
| -public class SmartClipProviderTest extends ChromeShellTestBase implements Handler.Callback {
|
| - // This is a key for meta-data in the package manifest. It should NOT
|
| - // change, as OEMs will use it when they look for the SmartClipProvider
|
| - // interface.
|
| - private static final String SMART_CLIP_PROVIDER_KEY =
|
| - "org.chromium.content.browser.SMART_CLIP_PROVIDER";
|
| -
|
| - private static class MyCallbackHelper extends CallbackHelper {
|
| - public String getTitle() {
|
| - return mTitle;
|
| - }
|
| -
|
| - public String getUrl() {
|
| - return mUrl;
|
| - }
|
| -
|
| - public String getText() {
|
| - return mText;
|
| - }
|
| -
|
| - public String getHtml() {
|
| - return mHtml;
|
| - }
|
| -
|
| - public Rect getRect() {
|
| - return mRect;
|
| - }
|
| -
|
| - public void notifyCalled(String title, String url, String text, String html, Rect rect) {
|
| - mTitle = title;
|
| - mUrl = url;
|
| - mText = text;
|
| - mHtml = html;
|
| - mRect = rect;
|
| - super.notifyCalled();
|
| - }
|
| -
|
| - private String mTitle;
|
| - private String mUrl;
|
| - private String mText;
|
| - private String mHtml;
|
| - private Rect mRect;
|
| - }
|
| -
|
| - private ChromeShellActivity mActivity;
|
| - private MyCallbackHelper mCallbackHelper;
|
| - private HandlerThread mHandlerThread;
|
| - private Handler mHandler;
|
| - private Class<?> mSmartClipProviderClass;
|
| - private Method mSetSmartClipResultHandlerMethod;
|
| - private Method mExtractSmartClipDataMethod;
|
| -
|
| - @Override
|
| - public void setUp() throws Exception {
|
| - super.setUp();
|
| - mActivity = launchChromeShellWithBlankPage();
|
| - mCallbackHelper = new MyCallbackHelper();
|
| - mHandlerThread = new HandlerThread("ContentViewTest thread");
|
| - mHandlerThread.start();
|
| - mHandler = new Handler(mHandlerThread.getLooper(), this);
|
| -
|
| - mSmartClipProviderClass = getSmartClipProviderClass();
|
| - assertNotNull(mSmartClipProviderClass);
|
| - mSetSmartClipResultHandlerMethod = mSmartClipProviderClass.getDeclaredMethod(
|
| - "setSmartClipResultHandler", new Class[] { Handler.class });
|
| - mExtractSmartClipDataMethod = mSmartClipProviderClass.getDeclaredMethod(
|
| - "extractSmartClipData",
|
| - new Class[] { Integer.TYPE, Integer.TYPE, Integer.TYPE, Integer.TYPE });
|
| - }
|
| -
|
| - @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR2)
|
| - @Override
|
| - public void tearDown() throws Exception {
|
| - try {
|
| - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
|
| - mHandlerThread.quitSafely();
|
| - } else {
|
| - mHandlerThread.quit();
|
| - }
|
| - } finally {
|
| - super.tearDown();
|
| - }
|
| - }
|
| -
|
| - // Implements Handler.Callback
|
| - @Override
|
| - public boolean handleMessage(Message msg) {
|
| - Bundle bundle = msg.getData();
|
| - assertNotNull(bundle);
|
| - String url = bundle.getString("url");
|
| - String title = bundle.getString("title");
|
| - String text = bundle.getString("text");
|
| - String html = bundle.getString("html");
|
| - Rect rect = bundle.getParcelable("rect");
|
| - // We don't care about other values for now.
|
| - mCallbackHelper.notifyCalled(title, url, text, html, rect);
|
| - return true;
|
| - }
|
| -
|
| - // Create SmartClipProvider interface from package meta-data.
|
| - private Class<?> getSmartClipProviderClass() throws Exception {
|
| - ApplicationInfo ai = mActivity.getPackageManager().getApplicationInfo(
|
| - mActivity.getPackageName(), PackageManager.GET_META_DATA);
|
| - Bundle bundle = ai.metaData;
|
| - String className = bundle.getString(SMART_CLIP_PROVIDER_KEY);
|
| - assertNotNull(className);
|
| - return Class.forName(className);
|
| - }
|
| -
|
| - // Returns the first smart clip provider under the root view using DFS.
|
| - private Object findSmartClipProvider(View v) {
|
| - if (mSmartClipProviderClass.isInstance(v)) {
|
| - return v;
|
| - } else if (v instanceof ViewGroup) {
|
| - ViewGroup viewGroup = (ViewGroup) v;
|
| - int count = viewGroup.getChildCount();
|
| - for (int i = 0; i < count; ++i) {
|
| - View c = viewGroup.getChildAt(i);
|
| - Object found = findSmartClipProvider(c);
|
| - if (found != null) return found;
|
| - }
|
| - }
|
| - return null;
|
| - }
|
| -
|
| - @MediumTest
|
| - @Feature({"SmartClip"})
|
| - public void testSmartClipDataCallback() throws InterruptedException, TimeoutException {
|
| - ThreadUtils.runOnUiThreadBlocking(new Runnable() {
|
| - @Override
|
| - public void run() {
|
| - // This emulates what OEM will be doing when they want to call
|
| - // functions on SmartClipProvider through view hierarchy.
|
| -
|
| - // Implementation of SmartClipProvider such as ContentView or
|
| - // JellyBeanContentView can be found somewhere under content_container.
|
| - Object scp = findSmartClipProvider(
|
| - getActivity().findViewById(R.id.content_container));
|
| - assertNotNull(scp);
|
| - try {
|
| - mSetSmartClipResultHandlerMethod.invoke(scp, mHandler);
|
| - mExtractSmartClipDataMethod.invoke(scp, 10, 20, 100, 70);
|
| - } catch (Exception e) {
|
| - e.printStackTrace();
|
| - fail();
|
| - }
|
| - }
|
| - });
|
| - mCallbackHelper.waitForCallback(0, 1); // call count: 0 --> 1
|
| - assertEquals("about:blank", mCallbackHelper.getTitle());
|
| - assertEquals("about:blank", mCallbackHelper.getUrl());
|
| - assertNotNull(mCallbackHelper.getText());
|
| - assertNotNull(mCallbackHelper.getHtml());
|
| - assertNotNull(mCallbackHelper.getRect());
|
| - }
|
| -}
|
|
|