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

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

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

Powered by Google App Engine
This is Rietveld 408576698