Index: android_webview/javatests/src/org/chromium/android_webview/test/LoadDataWithBaseUrlTest.java |
diff --git a/android_webview/javatests/src/org/chromium/android_webview/test/LoadDataWithBaseUrlTest.java b/android_webview/javatests/src/org/chromium/android_webview/test/LoadDataWithBaseUrlTest.java |
index b2f510b36c5e6b3b3b4a9d55ef1afca5818a5eaf..7a96e5be17f865ec9d397f595525c4b93bfb8a67 100644 |
--- a/android_webview/javatests/src/org/chromium/android_webview/test/LoadDataWithBaseUrlTest.java |
+++ b/android_webview/javatests/src/org/chromium/android_webview/test/LoadDataWithBaseUrlTest.java |
@@ -42,8 +42,13 @@ public class LoadDataWithBaseUrlTest extends AwTestBase { |
} |
protected void loadDataWithBaseUrlSync( |
- final String data, final String mimeType, final boolean isBase64Encoded, |
- final String baseUrl, final String historyUrl) throws Throwable { |
+ final String data, final String mimeType, final boolean isBase64Encoded, |
+ String baseUrl, String historyUrl) throws Throwable { |
+ // TODO(joth): These two checks replicate the fixupBase / fixupHistory checks currently |
+ // performed in the glue layer. If those methods are moved into chromium.org then this |
+ // method should call via that same wrapper function. |
+ if (baseUrl == null) baseUrl = "about:blank"; |
+ if (historyUrl == null) historyUrl = "about:blank"; |
TestCallbackHelperContainer.OnPageFinishedHelper onPageFinishedHelper = |
mContentsClient.getOnPageFinishedHelper(); |
int currentCallCount = onPageFinishedHelper.getCallCount(); |
@@ -363,4 +368,23 @@ public class LoadDataWithBaseUrlTest extends AwTestBase { |
if (!tempImage.delete()) throw new AssertionError(); |
} |
} |
+ |
+ @SmallTest |
+ @Feature({"AndroidWebView"}) |
+ public void testLoadLargeData() throws Throwable { |
+ enableJavaScriptOnUiThread(mAwContents); |
+ |
+ // Chrome only allows URLs up to 2MB in IPC. Test something larger than this. |
+ final int MIN_DATA_LENGTH = 5 * 1024 * 1024; |
+ StringBuilder doc = new StringBuilder(); |
+ doc.append("<html><head></head><body><!-- "); |
+ int i = doc.length(); |
+ doc.setLength(MIN_DATA_LENGTH); |
+ while (i < doc.length()) doc.setCharAt(i++, 'A'); |
+ doc.append("--> <script>window.gotToEndOfBody = true;</script> </body></html>"); |
+ |
+ loadDataWithBaseUrlSync(doc.toString(), "text/html", false, null, null); |
+ assertEquals("true", executeJavaScriptAndWaitForResult(mAwContents, mContentsClient, |
+ "window.gotToEndOfBody")); |
+ } |
} |