Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(161)

Side by Side Diff: android_webview/javatests/src/org/chromium/android_webview/test/LoadDataWithBaseUrlTest.java

Issue 11098030: Revert 160959 - [android_webview] Use AwContents loadUrl method instead of ContentViewCore. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package org.chromium.android_webview.test; 5 package org.chromium.android_webview.test;
6 6
7 import android.test.suitebuilder.annotation.SmallTest; 7 import android.test.suitebuilder.annotation.SmallTest;
8 8
9 import org.chromium.android_webview.AwContents;
10 import org.chromium.android_webview.test.util.CommonResources; 9 import org.chromium.android_webview.test.util.CommonResources;
11 import org.chromium.android_webview.test.util.TestWebServer; 10 import org.chromium.android_webview.test.util.TestWebServer;
12 import org.chromium.base.test.util.Feature; 11 import org.chromium.base.test.util.Feature;
13 import org.chromium.base.test.util.UrlUtils; 12 import org.chromium.base.test.util.UrlUtils;
14 import org.chromium.content.browser.ContentSettings; 13 import org.chromium.content.browser.ContentSettings;
15 import org.chromium.content.browser.ContentViewCore; 14 import org.chromium.content.browser.ContentViewCore;
16 import org.chromium.content.browser.LoadUrlParams; 15 import org.chromium.content.browser.LoadUrlParams;
17 import org.chromium.content.browser.test.util.HistoryUtils; 16 import org.chromium.content.browser.test.util.HistoryUtils;
18 import org.chromium.content.browser.test.util.TestCallbackHelperContainer; 17 import org.chromium.content.browser.test.util.TestCallbackHelperContainer;
19 18
20 import java.util.concurrent.TimeUnit; 19 import java.util.concurrent.TimeUnit;
21 20
22 public class LoadDataWithBaseUrlTest extends AndroidWebViewTestBase { 21 public class LoadDataWithBaseUrlTest extends AndroidWebViewTestBase {
23 22
24 protected static int WAIT_TIMEOUT_SECONDS = 15; 23 protected static int WAIT_TIMEOUT_SECONDS = 15;
25 24
26 private TestAwContentsClient mContentsClient; 25 private TestAwContentsClient mContentsClient;
27 private AwContents mAwContents;
28 private ContentViewCore mContentViewCore; 26 private ContentViewCore mContentViewCore;
29 27
30 @Override 28 @Override
31 public void setUp() throws Exception { 29 public void setUp() throws Exception {
32 super.setUp(); 30 super.setUp();
33 mContentsClient = new TestAwContentsClient(); 31 mContentsClient = new TestAwContentsClient();
34 final AwTestContainerView testContainerView = 32 mContentViewCore =
35 createAwTestContainerViewOnMainSync(mContentsClient); 33 createAwTestContainerViewOnMainSync(mContentsClient).getContentV iewCore();
36 mAwContents = testContainerView.getAwContents();
37 mContentViewCore = testContainerView.getContentViewCore();
38 } 34 }
39 35
40 protected void loadDataWithBaseUrlSync( 36 protected void loadDataWithBaseUrlSync(
41 final String data, final String mimeType, final boolean isBase64Encoded, 37 final String data, final String mimeType, final boolean isBase64Encoded,
42 final String baseUrl, final String historyUrl) throws Throwable { 38 final String baseUrl, final String historyUrl) throws Throwable {
43 TestCallbackHelperContainer.OnPageFinishedHelper onPageFinishedHelper = 39 TestCallbackHelperContainer.OnPageFinishedHelper onPageFinishedHelper =
44 mContentsClient.getOnPageFinishedHelper(); 40 mContentsClient.getOnPageFinishedHelper();
45 int currentCallCount = onPageFinishedHelper.getCallCount(); 41 int currentCallCount = onPageFinishedHelper.getCallCount();
46 loadDataWithBaseUrlAsync(data, mimeType, isBase64Encoded, baseUrl, histo ryUrl); 42 loadDataWithBaseUrlAsync(data, mimeType, isBase64Encoded, baseUrl, histo ryUrl);
47 onPageFinishedHelper.waitForCallback(currentCallCount, 1, WAIT_TIMEOUT_S ECONDS, 43 onPageFinishedHelper.waitForCallback(currentCallCount, 1, WAIT_TIMEOUT_S ECONDS,
48 TimeUnit.SECONDS); 44 TimeUnit.SECONDS);
49 } 45 }
50 46
51 protected void loadDataWithBaseUrlAsync( 47 protected void loadDataWithBaseUrlAsync(
52 final String data, final String mimeType, final boolean isBase64Encoded, 48 final String data, final String mimeType, final boolean isBase64Encoded,
53 final String baseUrl, final String historyUrl) throws Throwable { 49 final String baseUrl, final String historyUrl) throws Throwable {
54 runTestOnUiThread(new Runnable() { 50 runTestOnUiThread(new Runnable() {
55 @Override 51 @Override
56 public void run() { 52 public void run() {
57 mAwContents.loadUrl(LoadUrlParams.createLoadDataParamsWithBaseUr l( 53 mContentViewCore.loadUrl(LoadUrlParams.createLoadDataParamsWithB aseUrl(
58 data, mimeType, isBase64Encoded, baseUrl, historyUrl)); 54 data, mimeType, isBase64Encoded, baseUrl, historyUrl));
59 } 55 }
60 }); 56 });
61 } 57 }
62 58
63 private static final String SCRIPT_FILE = "/script.js"; 59 private static final String SCRIPT_FILE = "/script.js";
64 private static final String SCRIPT_LOADED = "Loaded"; 60 private static final String SCRIPT_LOADED = "Loaded";
65 private static final String SCRIPT_NOT_LOADED = "Not loaded"; 61 private static final String SCRIPT_NOT_LOADED = "Not loaded";
66 private static final String SCRIPT_JS = "script_was_loaded = true;"; 62 private static final String SCRIPT_JS = "script_was_loaded = true;";
67 63
(...skipping 21 matching lines...) Expand all
89 85
90 @SmallTest 86 @SmallTest
91 @Feature({"Android-WebView"}) 87 @Feature({"Android-WebView"})
92 public void testImageLoad() throws Throwable { 88 public void testImageLoad() throws Throwable {
93 TestWebServer webServer = null; 89 TestWebServer webServer = null;
94 try { 90 try {
95 webServer = new TestWebServer(false); 91 webServer = new TestWebServer(false);
96 webServer.setResponseBase64("/" + CommonResources.FAVICON_FILENAME, 92 webServer.setResponseBase64("/" + CommonResources.FAVICON_FILENAME,
97 CommonResources.FAVICON_DATA_BASE64, CommonResources.getImag ePngHeaders(true)); 93 CommonResources.FAVICON_DATA_BASE64, CommonResources.getImag ePngHeaders(true));
98 94
99 ContentSettings contentSettings = getContentSettingsOnUiThread(mAwCo ntents); 95 ContentSettings contentSettings = getContentSettingsOnUiThread(mCont entViewCore);
100 contentSettings.setImagesEnabled(true); 96 contentSettings.setImagesEnabled(true);
101 contentSettings.setJavaScriptEnabled(true); 97 contentSettings.setJavaScriptEnabled(true);
102 98
103 loadDataWithBaseUrlSync( 99 loadDataWithBaseUrlSync(
104 CommonResources.getOnImageLoadedHtml(CommonResources.FAVICON _FILENAME), 100 CommonResources.getOnImageLoadedHtml(CommonResources.FAVICON _FILENAME),
105 "text/html", false, webServer.getBaseUrl(), null); 101 "text/html", false, webServer.getBaseUrl(), null);
106 102
107 assertEquals("5", getTitleOnUiThread(mAwContents)); 103 assertEquals("5", getTitleOnUiThread(mContentViewCore));
108 } finally { 104 } finally {
109 if (webServer != null) webServer.shutdown(); 105 if (webServer != null) webServer.shutdown();
110 } 106 }
111 } 107 }
112 108
113 @SmallTest 109 @SmallTest
114 @Feature({"Android-WebView"}) 110 @Feature({"Android-WebView"})
115 public void testScriptLoad() throws Throwable { 111 public void testScriptLoad() throws Throwable {
116 TestWebServer webServer = null; 112 TestWebServer webServer = null;
117 try { 113 try {
118 webServer = new TestWebServer(false); 114 webServer = new TestWebServer(false);
119 115
120 final String scriptUrl = webServer.setResponse(SCRIPT_FILE, SCRIPT_J S, 116 final String scriptUrl = webServer.setResponse(SCRIPT_FILE, SCRIPT_J S,
121 CommonResources.getTextJavascriptHeaders(true)); 117 CommonResources.getTextJavascriptHeaders(true));
122 final String pageHtml = getScriptFileTestPageHtml(scriptUrl); 118 final String pageHtml = getScriptFileTestPageHtml(scriptUrl);
123 119
124 getContentSettingsOnUiThread(mAwContents).setJavaScriptEnabled(true) ; 120 getContentSettingsOnUiThread(mContentViewCore).setJavaScriptEnabled( true);
125 loadDataWithBaseUrlSync(pageHtml, "text/html", false, webServer.getB aseUrl(), null); 121 loadDataWithBaseUrlSync(pageHtml, "text/html", false, webServer.getB aseUrl(), null);
126 assertEquals(SCRIPT_LOADED, getTitleOnUiThread(mAwContents)); 122 assertEquals(SCRIPT_LOADED, getTitleOnUiThread(mContentViewCore));
127 123
128 } finally { 124 } finally {
129 if (webServer != null) webServer.shutdown(); 125 if (webServer != null) webServer.shutdown();
130 } 126 }
131 } 127 }
132 128
133 @SmallTest 129 @SmallTest
134 @Feature({"Android-WebView"}) 130 @Feature({"Android-WebView"})
135 public void testSameOrigin() throws Throwable { 131 public void testSameOrigin() throws Throwable {
136 TestWebServer webServer = null; 132 TestWebServer webServer = null;
137 try { 133 try {
138 webServer = new TestWebServer(false); 134 webServer = new TestWebServer(false);
139 final String frameUrl = webServer.setResponse("/" + CommonResources. ABOUT_FILENAME, 135 final String frameUrl = webServer.setResponse("/" + CommonResources. ABOUT_FILENAME,
140 CommonResources.ABOUT_HTML, CommonResources.getTextHtmlHeade rs(true)); 136 CommonResources.ABOUT_HTML, CommonResources.getTextHtmlHeade rs(true));
141 final String html = getCrossOriginAccessTestPageHtml(frameUrl); 137 final String html = getCrossOriginAccessTestPageHtml(frameUrl);
142 138
143 getContentSettingsOnUiThread(mAwContents).setJavaScriptEnabled(true) ; 139 getContentSettingsOnUiThread(mContentViewCore).setJavaScriptEnabled( true);
144 loadDataWithBaseUrlSync(html, "text/html", false, webServer.getBaseU rl(), null); 140 loadDataWithBaseUrlSync(html, "text/html", false, webServer.getBaseU rl(), null);
145 assertEquals(frameUrl, getTitleOnUiThread(mAwContents)); 141 assertEquals(frameUrl, getTitleOnUiThread(mContentViewCore));
146 142
147 } finally { 143 } finally {
148 if (webServer != null) webServer.shutdown(); 144 if (webServer != null) webServer.shutdown();
149 } 145 }
150 } 146 }
151 147
152 @SmallTest 148 @SmallTest
153 @Feature({"Android-WebView"}) 149 @Feature({"Android-WebView"})
154 public void testCrossOrigin() throws Throwable { 150 public void testCrossOrigin() throws Throwable {
155 TestWebServer webServer = null; 151 TestWebServer webServer = null;
156 try { 152 try {
157 webServer = new TestWebServer(false); 153 webServer = new TestWebServer(false);
158 final String frameUrl = webServer.setResponse("/" + CommonResources. ABOUT_FILENAME, 154 final String frameUrl = webServer.setResponse("/" + CommonResources. ABOUT_FILENAME,
159 CommonResources.ABOUT_HTML, CommonResources.getTextHtmlHeade rs(true)); 155 CommonResources.ABOUT_HTML, CommonResources.getTextHtmlHeade rs(true));
160 final String html = getCrossOriginAccessTestPageHtml(frameUrl); 156 final String html = getCrossOriginAccessTestPageHtml(frameUrl);
161 final String baseUrl = webServer.getBaseUrl().replaceFirst("localhos t", "127.0.0.1"); 157 final String baseUrl = webServer.getBaseUrl().replaceFirst("localhos t", "127.0.0.1");
162 158
163 getContentSettingsOnUiThread(mAwContents).setJavaScriptEnabled(true) ; 159 getContentSettingsOnUiThread(mContentViewCore).setJavaScriptEnabled( true);
164 loadDataWithBaseUrlSync(html, "text/html", false, baseUrl, null); 160 loadDataWithBaseUrlSync(html, "text/html", false, baseUrl, null);
165 161
166 // TODO(mnaganov): Catch a security exception and set the title acco rdingly, 162 // TODO(mnaganov): Catch a security exception and set the title acco rdingly,
167 // once https://bugs.webkit.org/show_bug.cgi?id=43504 is fixed. 163 // once https://bugs.webkit.org/show_bug.cgi?id=43504 is fixed.
168 assertEquals("undefined", getTitleOnUiThread(mAwContents)); 164 assertEquals("undefined", getTitleOnUiThread(mContentViewCore));
169 165
170 } finally { 166 } finally {
171 if (webServer != null) webServer.shutdown(); 167 if (webServer != null) webServer.shutdown();
172 } 168 }
173 } 169 }
174 170
175 @SmallTest 171 @SmallTest
176 @Feature({"Android-WebView"}) 172 @Feature({"Android-WebView"})
177 public void testNullBaseUrl() throws Throwable { 173 public void testNullBaseUrl() throws Throwable {
178 getContentSettingsOnUiThread(mAwContents).setJavaScriptEnabled(true); 174 getContentSettingsOnUiThread(mContentViewCore).setJavaScriptEnabled(true );
179 final String pageHtml = "<html><body onload='document.title=document.loc ation.href'>" + 175 final String pageHtml = "<html><body onload='document.title=document.loc ation.href'>" +
180 "</body></html>"; 176 "</body></html>";
181 loadDataWithBaseUrlSync(pageHtml, "text/html", false, null, null); 177 loadDataWithBaseUrlSync(pageHtml, "text/html", false, null, null);
182 assertEquals("about:blank", getTitleOnUiThread(mAwContents)); 178 assertEquals("about:blank", getTitleOnUiThread(mContentViewCore));
183 } 179 }
184 180
185 @SmallTest 181 @SmallTest
186 @Feature({"Android-WebView"}) 182 @Feature({"Android-WebView"})
187 public void testHistoryUrl() throws Throwable { 183 public void testHistoryUrl() throws Throwable {
188 184
189 final String pageHtml = "<html><body>Hello, world!</body></html>"; 185 final String pageHtml = "<html><body>Hello, world!</body></html>";
190 final String baseUrl = "http://example.com"; 186 final String baseUrl = "http://example.com";
191 // TODO(mnaganov): Use the same string as Android CTS suite uses 187 // TODO(mnaganov): Use the same string as Android CTS suite uses
192 // once GURL issue is resolved (http://code.google.com/p/google-url/issu es/detail?id=29) 188 // once GURL issue is resolved (http://code.google.com/p/google-url/issu es/detail?id=29)
(...skipping 13 matching lines...) Expand all
206 final String pageHtml = "<html><body>bar</body></html>"; 202 final String pageHtml = "<html><body>bar</body></html>";
207 final String historyUrl = "http://history.com/"; 203 final String historyUrl = "http://history.com/";
208 loadDataWithBaseUrlSync(pageHtml, "text/html", false, "data:foo", histor yUrl); 204 loadDataWithBaseUrlSync(pageHtml, "text/html", false, "data:foo", histor yUrl);
209 assertEquals("data:text/html," + pageHtml, HistoryUtils.getUrlOnUiThread ( 205 assertEquals("data:text/html," + pageHtml, HistoryUtils.getUrlOnUiThread (
210 getInstrumentation(), mContentViewCore)); 206 getInstrumentation(), mContentViewCore));
211 } 207 }
212 208
213 @SmallTest 209 @SmallTest
214 @Feature({"Android-WebView"}) 210 @Feature({"Android-WebView"})
215 public void testAccessToLocalFile() throws Throwable { 211 public void testAccessToLocalFile() throws Throwable {
216 getContentSettingsOnUiThread(mAwContents).setJavaScriptEnabled(true); 212 getContentSettingsOnUiThread(mContentViewCore).setJavaScriptEnabled(true );
217 final String baseUrl = UrlUtils.getTestFileUrl("webview/"); 213 final String baseUrl = UrlUtils.getTestFileUrl("webview/");
218 final String scriptFile = baseUrl + "script.js"; 214 final String scriptFile = baseUrl + "script.js";
219 final String pageHtml = getScriptFileTestPageHtml(scriptFile); 215 final String pageHtml = getScriptFileTestPageHtml(scriptFile);
220 loadDataWithBaseUrlSync(pageHtml, "text/html", false, baseUrl, null); 216 loadDataWithBaseUrlSync(pageHtml, "text/html", false, baseUrl, null);
221 assertEquals(SCRIPT_LOADED, getTitleOnUiThread(mAwContents)); 217 assertEquals(SCRIPT_LOADED, getTitleOnUiThread(mContentViewCore));
222 } 218 }
223 219
224 @SmallTest 220 @SmallTest
225 @Feature({"Android-WebView"}) 221 @Feature({"Android-WebView"})
226 public void testFailedAccessToLocalFile() throws Throwable { 222 public void testFailedAccessToLocalFile() throws Throwable {
227 getContentSettingsOnUiThread(mAwContents).setJavaScriptEnabled(true); 223 getContentSettingsOnUiThread(mContentViewCore).setJavaScriptEnabled(true );
228 final String scriptFile = UrlUtils.getTestFileUrl("webview/script.js"); 224 final String scriptFile = UrlUtils.getTestFileUrl("webview/script.js");
229 final String pageHtml = getScriptFileTestPageHtml(scriptFile); 225 final String pageHtml = getScriptFileTestPageHtml(scriptFile);
230 final String baseUrl = "http://example.com"; 226 final String baseUrl = "http://example.com";
231 loadDataWithBaseUrlSync(pageHtml, "text/html", false, baseUrl, null); 227 loadDataWithBaseUrlSync(pageHtml, "text/html", false, baseUrl, null);
232 assertEquals(SCRIPT_NOT_LOADED, getTitleOnUiThread(mAwContents)); 228 assertEquals(SCRIPT_NOT_LOADED, getTitleOnUiThread(mContentViewCore));
233 } 229 }
234 230
235 @SmallTest 231 @SmallTest
236 @Feature({"Android-WebView"}) 232 @Feature({"Android-WebView"})
237 public void testHistoryUrlNavigation() throws Throwable { 233 public void testHistoryUrlNavigation() throws Throwable {
238 TestWebServer webServer = null; 234 TestWebServer webServer = null;
239 try { 235 try {
240 webServer = new TestWebServer(false); 236 webServer = new TestWebServer(false);
241 final String historyUrl = webServer.setResponse("/" + CommonResource s.ABOUT_FILENAME, 237 final String historyUrl = webServer.setResponse("/" + CommonResource s.ABOUT_FILENAME,
242 CommonResources.ABOUT_HTML, CommonResources.getTextHtmlHeade rs(true)); 238 CommonResources.ABOUT_HTML, CommonResources.getTextHtmlHeade rs(true));
243 239
244 final String page1Title = "Page1"; 240 final String page1Title = "Page1";
245 final String page1Html = "<html><head><title>" + page1Title + "</tit le>" + 241 final String page1Html = "<html><head><title>" + page1Title + "</tit le>" +
246 "<body>" + page1Title + "</body></html>"; 242 "<body>" + page1Title + "</body></html>";
247 243
248 loadDataWithBaseUrlSync(page1Html, "text/html", false, null, history Url); 244 loadDataWithBaseUrlSync(page1Html, "text/html", false, null, history Url);
249 assertEquals(page1Title, getTitleOnUiThread(mAwContents)); 245 assertEquals(page1Title, getTitleOnUiThread(mContentViewCore));
250 246
251 final String page2Title = "Page2"; 247 final String page2Title = "Page2";
252 final String page2Html = "<html><head><title>" + page2Title + "</tit le>" + 248 final String page2Html = "<html><head><title>" + page2Title + "</tit le>" +
253 "<body>" + page2Title + "</body></html>"; 249 "<body>" + page2Title + "</body></html>";
254 250
255 final TestCallbackHelperContainer.OnPageFinishedHelper onPageFinishe dHelper = 251 final TestCallbackHelperContainer.OnPageFinishedHelper onPageFinishe dHelper =
256 mContentsClient.getOnPageFinishedHelper(); 252 mContentsClient.getOnPageFinishedHelper();
257 loadDataSync(mAwContents, onPageFinishedHelper, page2Html, "text/htm l", false); 253 loadDataSync(mContentViewCore, onPageFinishedHelper, page2Html, "tex t/html", false);
258 assertEquals(page2Title, getTitleOnUiThread(mAwContents)); 254 assertEquals(page2Title, getTitleOnUiThread(mContentViewCore));
259 255
260 HistoryUtils.goBackSync(getInstrumentation(), mContentViewCore, onPa geFinishedHelper); 256 HistoryUtils.goBackSync(getInstrumentation(), mContentViewCore, onPa geFinishedHelper);
261 // The title of the 'about.html' specified via historyUrl. 257 // The title of the 'about.html' specified via historyUrl.
262 assertEquals(CommonResources.ABOUT_TITLE, getTitleOnUiThread(mAwCont ents)); 258 assertEquals(CommonResources.ABOUT_TITLE, getTitleOnUiThread(mConten tViewCore));
263 259
264 } finally { 260 } finally {
265 if (webServer != null) webServer.shutdown(); 261 if (webServer != null) webServer.shutdown();
266 } 262 }
267 } 263 }
268 } 264 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698