| // 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.android_webview.test; |
| |
| import android.graphics.Picture; |
| import android.webkit.ConsoleMessage; |
| |
| import org.chromium.content.browser.test.util.CallbackHelper; |
| import org.chromium.content.browser.test.util.TestCallbackHelperContainer.OnEvaluateJavaScriptResultHelper; |
| import org.chromium.content.browser.test.util.TestCallbackHelperContainer.OnPageFinishedHelper; |
| import org.chromium.content.browser.test.util.TestCallbackHelperContainer.OnPageStartedHelper; |
| import org.chromium.content.browser.test.util.TestCallbackHelperContainer.OnReceivedErrorHelper; |
| import org.chromium.base.ThreadUtils; |
| |
| class TestAwContentsClient extends NullContentsClient { |
| private String mUpdatedTitle; |
| private final OnPageStartedHelper mOnPageStartedHelper; |
| private final OnPageFinishedHelper mOnPageFinishedHelper; |
| private final OnReceivedErrorHelper mOnReceivedErrorHelper; |
| private final OnEvaluateJavaScriptResultHelper mOnEvaluateJavaScriptResultHelper; |
| private final AddMessageToConsoleHelper mAddMessageToConsoleHelper; |
| private final OnScaleChangedHelper mOnScaleChangedHelper; |
| private final PictureListenerHelper mPictureListenerHelper; |
| |
| public TestAwContentsClient() { |
| super(ThreadUtils.getUiThreadLooper()); |
| mOnPageStartedHelper = new OnPageStartedHelper(); |
| mOnPageFinishedHelper = new OnPageFinishedHelper(); |
| mOnReceivedErrorHelper = new OnReceivedErrorHelper(); |
| mOnEvaluateJavaScriptResultHelper = new OnEvaluateJavaScriptResultHelper(); |
| mAddMessageToConsoleHelper = new AddMessageToConsoleHelper(); |
| mOnScaleChangedHelper = new OnScaleChangedHelper(); |
| mPictureListenerHelper = new PictureListenerHelper(); |
| } |
| |
| public OnPageStartedHelper getOnPageStartedHelper() { |
| return mOnPageStartedHelper; |
| } |
| |
| public OnPageFinishedHelper getOnPageFinishedHelper() { |
| return mOnPageFinishedHelper; |
| } |
| |
| public OnReceivedErrorHelper getOnReceivedErrorHelper() { |
| return mOnReceivedErrorHelper; |
| } |
| |
| public OnEvaluateJavaScriptResultHelper getOnEvaluateJavaScriptResultHelper() { |
| return mOnEvaluateJavaScriptResultHelper; |
| } |
| |
| public AddMessageToConsoleHelper getAddMessageToConsoleHelper() { |
| return mAddMessageToConsoleHelper; |
| } |
| |
| public static class OnScaleChangedHelper extends CallbackHelper { |
| private float mPreviousScale; |
| private float mCurrentScale; |
| public void notifyCalled(float oldScale, float newScale) { |
| mPreviousScale = oldScale; |
| mCurrentScale = newScale; |
| super.notifyCalled(); |
| } |
| public float getLastScaleRatio() { |
| assert getCallCount() > 0; |
| return mCurrentScale / mPreviousScale; |
| } |
| } |
| |
| public OnScaleChangedHelper getOnScaleChangedHelper() { |
| return mOnScaleChangedHelper; |
| } |
| |
| public PictureListenerHelper getPictureListenerHelper() { |
| return mPictureListenerHelper; |
| } |
| |
| @Override |
| public void onReceivedTitle(String title) { |
| mUpdatedTitle = title; |
| } |
| |
| public String getUpdatedTitle() { |
| return mUpdatedTitle; |
| } |
| |
| @Override |
| public void onPageStarted(String url) { |
| mOnPageStartedHelper.notifyCalled(url); |
| } |
| |
| @Override |
| public void onPageFinished(String url) { |
| mOnPageFinishedHelper.notifyCalled(url); |
| } |
| |
| @Override |
| public void onReceivedError(int errorCode, String description, String failingUrl) { |
| mOnReceivedErrorHelper.notifyCalled(errorCode, description, failingUrl); |
| } |
| |
| @Override |
| public boolean onConsoleMessage(ConsoleMessage consoleMessage) { |
| mAddMessageToConsoleHelper.notifyCalled(consoleMessage.messageLevel().ordinal(), |
| consoleMessage.message(), consoleMessage.lineNumber(), consoleMessage.sourceId()); |
| return false; |
| } |
| |
| public static class AddMessageToConsoleHelper extends CallbackHelper { |
| private int mLevel; |
| private String mMessage; |
| private int mLineNumber; |
| private String mSourceId; |
| |
| public int getLevel() { |
| assert getCallCount() > 0; |
| return mLevel; |
| } |
| |
| public String getMessage() { |
| assert getCallCount() > 0; |
| return mMessage; |
| } |
| |
| public int getLineNumber() { |
| assert getCallCount() > 0; |
| return mLineNumber; |
| } |
| |
| public String getSourceId() { |
| assert getCallCount() > 0; |
| return mSourceId; |
| } |
| |
| void notifyCalled(int level, String message, int lineNumer, String sourceId) { |
| mLevel = level; |
| mMessage = message; |
| mLineNumber = lineNumer; |
| mSourceId = sourceId; |
| notifyCalled(); |
| } |
| } |
| |
| @Override |
| public void onScaleChangedScaled(float oldScale, float newScale) { |
| mOnScaleChangedHelper.notifyCalled(oldScale, newScale); |
| } |
| |
| public static class PictureListenerHelper extends CallbackHelper { |
| // Generally null, depending on |invalidationOnly| in enableOnNewPicture() |
| private Picture mPicture; |
| |
| public Picture getPicture() { |
| assert getCallCount() > 0; |
| return mPicture; |
| } |
| |
| void notifyCalled(Picture picture) { |
| mPicture = picture; |
| notifyCalled(); |
| } |
| } |
| |
| @Override |
| public void onNewPicture(Picture picture) { |
| mPictureListenerHelper.notifyCalled(picture); |
| } |
| } |