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

Unified Diff: android_webview/javatests/src/org/chromium/android_webview/test/LoadUrlTest.java

Issue 2670643002: [Android] Refactor LoadUrlTest to replace package org.apache.http (Closed)
Patch Set: Created 3 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: android_webview/javatests/src/org/chromium/android_webview/test/LoadUrlTest.java
diff --git a/android_webview/javatests/src/org/chromium/android_webview/test/LoadUrlTest.java b/android_webview/javatests/src/org/chromium/android_webview/test/LoadUrlTest.java
index 3c9c995b32c12133fa6f983f8909f8e7f639dae6..b48349a759a71a4ecfb62238eb757564ef0d8bac 100644
--- a/android_webview/javatests/src/org/chromium/android_webview/test/LoadUrlTest.java
+++ b/android_webview/javatests/src/org/chromium/android_webview/test/LoadUrlTest.java
@@ -5,11 +5,9 @@
package org.chromium.android_webview.test;
import android.support.test.filters.SmallTest;
+import android.test.InstrumentationTestCase;
import android.util.Pair;
-import org.apache.http.Header;
-import org.apache.http.HttpRequest;
-
import org.chromium.android_webview.AwContents;
import org.chromium.android_webview.AwSettings;
import org.chromium.android_webview.test.util.CommonResources;
@@ -18,12 +16,12 @@ import org.chromium.base.annotations.SuppressFBWarnings;
import org.chromium.base.test.util.CallbackHelper;
import org.chromium.base.test.util.Feature;
import org.chromium.content.browser.test.util.HistoryUtils;
+import org.chromium.net.test.EmbeddedTestServer;
import org.chromium.net.test.util.TestWebServer;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
-import java.util.Locale;
import java.util.Map;
import java.util.concurrent.TimeUnit;
@@ -115,22 +113,24 @@ public class LoadUrlTest extends AwTestBase {
return result;
}
- private void validateRequestHeaders(String[] refNamesAndValues, HttpRequest request) {
- for (int i = 0; i < refNamesAndValues.length; i += 2) {
- Header[] matchingHeaders = request.getHeaders(refNamesAndValues[i]);
- assertEquals(1, matchingHeaders.length);
+ private String getJSBodyTextContent(InstrumentationTestCase testCase,
jbudorick 2017/02/02 00:46:41 Should we have something like this in AwTestBase?
shenghuazhang 2017/02/02 20:51:54 Done.
+ final AwContents awContents, final TestAwContentsClient contentsClient)
+ throws Exception {
+ String raw = JSUtils.executeJavaScriptAndWaitForResult(testCase, awContents,
+ contentsClient.getOnEvaluateJavaScriptResultHelper(), "document.body.textContent");
+ return maybeStripDoubleQuotes(raw);
+ }
- Header header = matchingHeaders[0];
- assertEquals(refNamesAndValues[i].toLowerCase(Locale.ENGLISH), header.getName());
- assertEquals(refNamesAndValues[i + 1], header.getValue());
- }
+ private void validateHeaderValue(InstrumentationTestCase testCase, final AwContents awContents,
+ final TestAwContentsClient contentsClient, String extraHeader) throws Exception {
+ String header = getJSBodyTextContent(testCase, awContents, contentsClient);
+ assertEquals(extraHeader, header);
}
- private void validateNoRequestHeaders(String[] refNamesAndValues, HttpRequest request) {
- for (int i = 0; i < refNamesAndValues.length; i += 2) {
- Header[] matchingHeaders = request.getHeaders(refNamesAndValues[i]);
- assertEquals(0, matchingHeaders.length);
- }
+ private void validateHeaderNone(InstrumentationTestCase testCase, final AwContents awContents,
jbudorick 2017/02/02 00:46:41 This is just validateHeaderValue(testCase, awConte
shenghuazhang 2017/02/02 20:51:54 Done.
+ final TestAwContentsClient contentsClient) throws Exception {
+ String header = getJSBodyTextContent(testCase, awContents, contentsClient);
+ assertEquals("None", header);
}
@SmallTest
@@ -140,31 +140,28 @@ public class LoadUrlTest extends AwTestBase {
final AwTestContainerView testContainerView =
createAwTestContainerViewOnMainSync(contentsClient);
final AwContents awContents = testContainerView.getAwContents();
-
- TestWebServer webServer = TestWebServer.start();
+ enableJavaScriptOnUiThread(awContents);
+ EmbeddedTestServer testServer =
jbudorick 2017/02/02 00:46:41 Given how many tests are using the ETS, I think it
shenghuazhang 2017/02/02 20:51:54 Done.
+ EmbeddedTestServer.createAndStartServer(getInstrumentation().getContext());
try {
- final String imagePath = "/" + CommonResources.FAVICON_FILENAME;
- webServer.setResponseBase64(imagePath,
- CommonResources.FAVICON_DATA_BASE64, CommonResources.getImagePngHeaders(true));
- final String path = "/load_url_with_extra_headers_test.html";
- final String url = webServer.setResponse(
- path,
- CommonResources.getOnImageLoadedHtml(CommonResources.FAVICON_FILENAME),
- null);
- String[] extraHeaders = {
- "X-ExtraHeaders1", "extra-header-data1",
- "x-extraHeaders2", "EXTRA-HEADER-DATA2"
- };
+ String[] extraHeaders = {"X-ExtraHeaders", "extra-header-data"};
+ final String url1 = testServer.getURL("/echoheader?" + extraHeaders[0]);
+ final String url2 = testServer.getURL("/echoheader?" + extraHeaders[0]);
loadUrlWithExtraHeadersSync(awContents,
contentsClient.getOnPageFinishedHelper(),
- url,
+ url1,
createHeadersMap(extraHeaders));
- validateRequestHeaders(extraHeaders, webServer.getLastRequest(path));
+ // Verify that extra headers are passed to the loaded url.
+ validateHeaderValue(this, awContents, contentsClient, extraHeaders[1]);
+
+ loadUrlSync(awContents,
+ contentsClient.getOnPageFinishedHelper(),
+ url2);
// Verify that extra headers are only passed for the main resource.
- validateNoRequestHeaders(extraHeaders, webServer.getLastRequest(imagePath));
+ validateHeaderNone(this, awContents, contentsClient);
shenghuazhang 2017/02/02 00:03:24 Doubt about ``` loadUrlSync(awContents,
jbudorick 2017/02/02 00:46:41 Yeah, this can't really verify the non-main resour
shenghuazhang 2017/02/02 20:51:54 Will split this test with testRendererNavigationAn
} finally {
- webServer.shutdown();
+ testServer.stopAndDestroyServer();
}
}
@@ -175,14 +172,12 @@ public class LoadUrlTest extends AwTestBase {
final AwTestContainerView testContainerView =
createAwTestContainerViewOnMainSync(contentsClient);
final AwContents awContents = testContainerView.getAwContents();
+ enableJavaScriptOnUiThread(awContents);
+ EmbeddedTestServer testServer =
+ EmbeddedTestServer.createAndStartServer(getInstrumentation().getContext());
- TestWebServer webServer = TestWebServer.start();
try {
- final String path = "/no_overriding_of_existing_headers_test.html";
- final String url = webServer.setResponse(
- path,
- "<html><body>foo</body></html>",
- null);
+ final String url = testServer.getURL("/echoheader?user-agent");
String[] extraHeaders = {
"user-agent", "007"
};
@@ -191,16 +186,12 @@ public class LoadUrlTest extends AwTestBase {
contentsClient.getOnPageFinishedHelper(),
url,
createHeadersMap(extraHeaders));
- Header[] matchingHeaders = webServer.getLastRequest(path).getHeaders(extraHeaders[0]);
- assertEquals(1, matchingHeaders.length);
- Header header = matchingHeaders[0];
- assertEquals(extraHeaders[0].toLowerCase(Locale.ENGLISH),
- header.getName().toLowerCase(Locale.ENGLISH));
+ String header = getJSBodyTextContent(this, awContents, contentsClient);
// Just check that the value is there, and it's not the one we provided.
- assertTrue(header.getValue().length() > 0);
- assertFalse(extraHeaders[1].equals(header.getValue()));
+ assertFalse(header.isEmpty());
+ assertFalse(extraHeaders[1].equals(header));
} finally {
- webServer.shutdown();
+ testServer.stopAndDestroyServer();
}
}
@@ -211,29 +202,26 @@ public class LoadUrlTest extends AwTestBase {
final AwTestContainerView testContainerView =
createAwTestContainerViewOnMainSync(contentsClient);
final AwContents awContents = testContainerView.getAwContents();
+ enableJavaScriptOnUiThread(awContents);
+ EmbeddedTestServer testServer =
+ EmbeddedTestServer.createAndStartServer(getInstrumentation().getContext());
- TestWebServer webServer = TestWebServer.start();
try {
- final String path = "/reload_with_extra_headers_test.html";
- final String url = webServer.setResponse(path,
- "<html><body>foo</body></html>",
- createHeadersList(new String[] { "cache-control", "no-cache, no-store" }));
- String[] extraHeaders = {
- "X-ExtraHeaders1", "extra-header-data1",
- "x-extraHeaders2", "EXTRA-HEADER-DATA2"
- };
+ String[] extraHeaders = {"X-ExtraHeaders", "extra-header-data"};
+ final String url = testServer.getURL("/echoheader?" + extraHeaders[0]);
loadUrlWithExtraHeadersSync(awContents,
contentsClient.getOnPageFinishedHelper(),
url,
createHeadersMap(extraHeaders));
- validateRequestHeaders(extraHeaders, webServer.getLastRequest(path));
- reloadSync(awContents, contentsClient.getOnPageFinishedHelper());
- assertEquals(2, webServer.getRequestCount(path));
- validateRequestHeaders(extraHeaders, webServer.getLastRequest(path));
+ validateHeaderValue(this, awContents, contentsClient, extraHeaders[1]);
+
+ reloadSync(awContents,
+ contentsClient.getOnPageFinishedHelper());
+ validateHeaderValue(this, awContents, contentsClient, extraHeaders[1]);
} finally {
- webServer.shutdown();
+ testServer.stopAndDestroyServer();
}
}
@@ -242,37 +230,29 @@ public class LoadUrlTest extends AwTestBase {
@Feature({"AndroidWebView"})
public void testRedirectAndReloadWithExtraHeaders() throws Throwable {
final TestAwContentsClient contentsClient = new TestAwContentsClient();
+
final AwTestContainerView testContainerView =
createAwTestContainerViewOnMainSync(contentsClient);
final AwContents awContents = testContainerView.getAwContents();
+ enableJavaScriptOnUiThread(awContents);
+ EmbeddedTestServer testServer =
+ EmbeddedTestServer.createAndStartServer(getInstrumentation().getContext());
- TestWebServer webServer = TestWebServer.start();
try {
- final String path = "/redirect_and_reload_with_extra_headers_test.html";
- final String url = webServer.setResponse(path,
- "<html><body>foo</body></html>",
- createHeadersList(new String[] { "cache-control", "no-cache, no-store" }));
- final String redirectedPath = "/redirected.html";
- final String redirectedUrl = webServer.setRedirect(redirectedPath, path);
- String[] extraHeaders = {
- "X-ExtraHeaders1", "extra-header-data1",
- "x-extraHeaders2", "EXTRA-HEADER-DATA2"
- };
+ String[] extraHeaders = {"X-ExtraHeaders", "extra-header-data"};
+ final String redirectedUrl = testServer.getURL("/echoheader?" + extraHeaders[0]);
+ final String initialUrl = testServer.getURL("/server-redirect?" + redirectedUrl);
loadUrlWithExtraHeadersSync(awContents,
contentsClient.getOnPageFinishedHelper(),
- redirectedUrl,
+ initialUrl,
createHeadersMap(extraHeaders));
- validateRequestHeaders(extraHeaders, webServer.getLastRequest(path));
- validateRequestHeaders(extraHeaders, webServer.getLastRequest(redirectedPath));
-
- // WebView will only reload the main page.
- reloadSync(awContents, contentsClient.getOnPageFinishedHelper());
- assertEquals(2, webServer.getRequestCount(path));
- // No extra headers. This is consistent with legacy behavior.
- validateNoRequestHeaders(extraHeaders, webServer.getLastRequest(path));
+ validateHeaderValue(this, awContents, contentsClient, extraHeaders[1]);
+ reloadSync(awContents,
+ contentsClient.getOnPageFinishedHelper());
+ validateHeaderNone(this, awContents, contentsClient);
} finally {
- webServer.shutdown();
+ testServer.stopAndDestroyServer();
}
}
@@ -284,47 +264,40 @@ public class LoadUrlTest extends AwTestBase {
final AwTestContainerView testContainerView =
createAwTestContainerViewOnMainSync(contentsClient);
final AwContents awContents = testContainerView.getAwContents();
- final AwSettings settings = getAwSettingsOnUiThread(awContents);
- settings.setJavaScriptEnabled(true);
+ enableJavaScriptOnUiThread(awContents);
+ EmbeddedTestServer testServer =
+ EmbeddedTestServer.createAndStartServer(getInstrumentation().getContext());
- TestWebServer webServer = TestWebServer.start();
try {
- final String nextPath = "/next.html";
- final String nextUrl = webServer.setResponse(nextPath,
- "<html><body>Next!</body></html>",
- null);
- final String path = "/renderer_nav_and_go_back_with_extra_headers_test.html";
- final String url = webServer.setResponse(path,
- "<html><body><a id=\"next\" href=\"next.html\">Next!</a></body></html>",
- createHeadersList(new String[] { "cache-control", "no-cache, no-store" }));
- String[] extraHeaders = {
- "X-ExtraHeaders1", "extra-header-data1",
- "x-extraHeaders2", "EXTRA-HEADER-DATA2"
- };
+ String[] extraHeaders = {"X-ExtraHeaders", "extra-header-data"};
+ final String redirectedUrl = testServer.getURL("/echoheader?" + extraHeaders[0]);
+ final String initialUrl = testServer.getURL(
+ "/click-redirect?url=" + redirectedUrl + "&echoheader=" + extraHeaders[0]);
loadUrlWithExtraHeadersSync(awContents,
contentsClient.getOnPageFinishedHelper(),
- url,
+ initialUrl,
createHeadersMap(extraHeaders));
- validateRequestHeaders(extraHeaders, webServer.getLastRequest(path));
+ String header = getJSBodyTextContent(this, awContents, contentsClient);
+ assertTrue(header.contains(extraHeaders[1]));
int currentCallCount = contentsClient.getOnPageFinishedHelper().getCallCount();
JSUtils.clickOnLinkUsingJs(this,
awContents,
contentsClient.getOnEvaluateJavaScriptResultHelper(),
- "next");
+ "click");
contentsClient.getOnPageFinishedHelper().waitForCallback(
currentCallCount, 1, WAIT_TIMEOUT_MS, TimeUnit.MILLISECONDS);
// No extra headers for the page navigated via clicking.
- validateNoRequestHeaders(extraHeaders, webServer.getLastRequest(nextPath));
+ validateHeaderNone(this, awContents, contentsClient);
HistoryUtils.goBackSync(getInstrumentation(),
awContents.getWebContents(),
contentsClient.getOnPageFinishedHelper());
- assertEquals(2, webServer.getRequestCount(path));
- validateRequestHeaders(extraHeaders, webServer.getLastRequest(path));
+ header = getJSBodyTextContent(this, awContents, contentsClient);
+ assertTrue(header.contains(extraHeaders[1]));
} finally {
- webServer.shutdown();
+ testServer.stopAndDestroyServer();
}
}
« no previous file with comments | « no previous file | net/test/embedded_test_server/default_handlers.cc » ('j') | net/test/embedded_test_server/default_handlers.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698