a6352f5b9b58c291bc8fd582ca63cd00f2bdae4a
[platform/framework/web/crosswalk.git] / src / xwalk / runtime / android / runtime / src / org / xwalk / runtime / XWalkRuntimeTestHelper.java
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.
4
5 package org.xwalk.runtime;
6
7 import android.content.Context;
8 import android.graphics.Bitmap;
9 import android.net.http.SslError;
10 import android.webkit.ValueCallback;
11
12 import java.lang.reflect.Method;
13
14 import org.xwalk.core.XWalkClient;
15 import org.xwalk.core.XWalkResourceClient;
16 import org.xwalk.core.XWalkResourceClientImpl;
17 import org.xwalk.core.XWalkWebChromeClient;
18 import org.xwalk.core.XWalkView;
19
20 class XWalkRuntimeTestHelper {
21
22     class TestXWalkResourceClient extends XWalkResourceClientImpl {
23         TestXWalkResourceClient(Context context, XWalkView view) {
24             super(context, view);
25         }
26
27         @Override
28         public void onReceivedLoadError(XWalkView view, int errorCode,
29                 String description, String failingUrl) {
30             super.onReceivedLoadError(view, errorCode, description, failingUrl);
31             if (mCallbackForTest != null) {
32                 try {
33                     Class<?> objectClass = mCallbackForTest.getClass();
34                     Method onReceivedLoadError = objectClass.getMethod(
35                             "onReceivedLoadError", int.class, String.class, String.class);
36                     onReceivedLoadError.invoke(mCallbackForTest, errorCode, description,
37                             failingUrl);
38                 } catch (Exception e) {
39                     e.printStackTrace();
40                 }
41             }
42         }
43     }
44
45     class TestXWalkClient extends XWalkClient {
46         TestXWalkClient(Context context, XWalkView view) {
47             super(context, view);
48         }
49
50         @Override
51         public void onPageStarted(XWalkView view, String url) {
52             super.onPageStarted(view, url);
53             if (mCallbackForTest != null) {
54                 try {
55                     Class<?> objectClass = mCallbackForTest.getClass();
56                     Method onPageStarted = objectClass.getMethod("onPageStarted", String.class);
57                     onPageStarted.invoke(mCallbackForTest, url);
58                 } catch (Exception e) {
59                     e.printStackTrace();
60                 }
61             }
62         }
63
64         @Override
65         public void onPageFinished(XWalkView view, String url) {
66             super.onPageFinished(view, url);
67             if (mCallbackForTest != null) {
68                 try {
69                     Class<?> objectClass = mCallbackForTest.getClass();
70                     Method onPageStarted = objectClass.getMethod("onPageFinished", String.class);
71                     onPageStarted.invoke(mCallbackForTest, url);
72                 } catch (Exception e) {
73                     e.printStackTrace();
74                 }
75             }
76         }
77     }
78
79     class TestXWalkWebChromeClient extends XWalkWebChromeClient {
80         TestXWalkWebChromeClient(Context context, XWalkView view) {
81             super(context, view);
82         }
83
84         @Override
85         public void onReceivedTitle(XWalkView view, String title) {
86             super.onReceivedTitle(view, title);
87             if (mCallbackForTest != null) {
88                 try {
89                     Class<?> objectClass = mCallbackForTest.getClass();
90                     Method onReceivedTitle = objectClass.getMethod("onReceivedTitle", String.class);
91                     onReceivedTitle.invoke(mCallbackForTest, title);
92                 } catch (Exception e) {
93                     e.printStackTrace();
94                 }
95             }
96         }
97     }
98
99     private Object mCallbackForTest;
100     private TestXWalkClient mClient;
101     private TestXWalkWebChromeClient mWebChromeClient;
102     private TestXWalkResourceClient mResourceClient;
103
104     XWalkRuntimeTestHelper(Context context, XWalkView view) {
105         mClient = new TestXWalkClient(context, view);
106         mWebChromeClient = new TestXWalkWebChromeClient(context, view);
107         mResourceClient = new TestXWalkResourceClient(context, view);
108     }
109
110     void setCallbackForTest(Object callback) {
111         mCallbackForTest = callback;
112     }
113
114     XWalkClient getClient() {
115         return mClient;
116     }
117
118     XWalkWebChromeClient getWebChromeClient() {
119         return mWebChromeClient;
120     }
121
122     XWalkResourceClient getResourceClient() {
123         return mResourceClient;
124     }
125 }