1 // Copyright (c) 2013-2014 Intel Corporation. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 package org.xwalk.runtime;
7 import android.content.Context;
8 import android.graphics.Bitmap;
9 import android.net.http.SslError;
10 import android.webkit.ValueCallback;
12 import java.lang.reflect.Method;
14 import org.xwalk.core.XWalkResourceClient;
15 import org.xwalk.core.XWalkView;
16 import org.xwalk.core.internal.XWalkClient;
17 import org.xwalk.core.internal.XWalkViewInternal;
18 import org.xwalk.core.internal.XWalkWebChromeClient;
20 class XWalkRuntimeTestHelper {
22 class TestXWalkResourceClient extends XWalkResourceClient {
23 TestXWalkResourceClient(Context context, XWalkView view) {
28 public void onReceivedLoadError(XWalkView view, int errorCode,
29 String description, String failingUrl) {
30 super.onReceivedLoadError(view, errorCode, description, failingUrl);
31 if (mCallbackForTest != null) {
33 Class<?> objectClass = mCallbackForTest.getClass();
34 Method onReceivedLoadError = objectClass.getMethod(
35 "onReceivedLoadError", int.class, String.class, String.class);
36 onReceivedLoadError.invoke(mCallbackForTest, errorCode, description,
38 } catch (Exception e) {
45 class TestXWalkClient extends XWalkClient {
46 TestXWalkClient(Context context, XWalkView view) {
51 public void onPageStarted(XWalkViewInternal view, String url) {
52 super.onPageStarted(view, url);
53 if (mCallbackForTest != null) {
55 Class<?> objectClass = mCallbackForTest.getClass();
56 Method onPageStarted = objectClass.getMethod("onPageStarted", String.class);
57 onPageStarted.invoke(mCallbackForTest, url);
58 } catch (Exception e) {
65 public void onPageFinished(XWalkViewInternal view, String url) {
66 super.onPageFinished(view, url);
67 if (mCallbackForTest != null) {
69 Class<?> objectClass = mCallbackForTest.getClass();
70 Method onPageStarted = objectClass.getMethod("onPageFinished", String.class);
71 onPageStarted.invoke(mCallbackForTest, url);
72 } catch (Exception e) {
79 class TestXWalkWebChromeClient extends XWalkWebChromeClient {
80 TestXWalkWebChromeClient(Context context, XWalkView view) {
85 public void onReceivedTitle(XWalkViewInternal view, String title) {
86 super.onReceivedTitle(view, title);
87 if (mCallbackForTest != null) {
89 Class<?> objectClass = mCallbackForTest.getClass();
90 Method onReceivedTitle = objectClass.getMethod("onReceivedTitle", String.class);
91 onReceivedTitle.invoke(mCallbackForTest, title);
92 } catch (Exception e) {
99 private Object mCallbackForTest;
100 private TestXWalkClient mClient;
101 private TestXWalkWebChromeClient mWebChromeClient;
102 private TestXWalkResourceClient mResourceClient;
104 XWalkRuntimeTestHelper(Context context, XWalkView view) {
105 mClient = new TestXWalkClient(context, view);
106 mWebChromeClient = new TestXWalkWebChromeClient(context, view);
107 mResourceClient = new TestXWalkResourceClient(context, view);
110 void setCallbackForTest(Object callback) {
111 mCallbackForTest = callback;
114 XWalkClient getClient() {
118 XWalkWebChromeClient getWebChromeClient() {
119 return mWebChromeClient;
122 XWalkResourceClient getResourceClient() {
123 return mResourceClient;