| Index: android_webview/javatests/src/org/chromium/android_webview/test/TestWebServer.java
|
| diff --git a/android_webview/javatests/src/org/chromium/android_webview/test/TestWebServer.java b/android_webview/javatests/src/org/chromium/android_webview/test/TestWebServer.java
|
| index 8508a51f1a83c3667e4b4312ea29d91e52105c7d..0e56f56699b90c453eb0f08b89f3b9189df1a4dc 100644
|
| --- a/android_webview/javatests/src/org/chromium/android_webview/test/TestWebServer.java
|
| +++ b/android_webview/javatests/src/org/chromium/android_webview/test/TestWebServer.java
|
| @@ -15,7 +15,7 @@ import org.apache.http.HttpStatus;
|
| import org.apache.http.HttpVersion;
|
| import org.apache.http.RequestLine;
|
| import org.apache.http.StatusLine;
|
| -import org.apache.http.entity.StringEntity;
|
| +import org.apache.http.entity.ByteArrayEntity;
|
| import org.apache.http.impl.DefaultHttpServerConnection;
|
| import org.apache.http.impl.cookie.DateUtils;
|
| import org.apache.http.message.BasicHttpResponse;
|
| @@ -26,7 +26,6 @@ import org.apache.http.params.HttpParams;
|
| import java.io.ByteArrayInputStream;
|
| import java.io.IOException;
|
| import java.io.InputStream;
|
| -import java.io.UnsupportedEncodingException;
|
| import java.net.MalformedURLException;
|
| import java.net.ServerSocket;
|
| import java.net.Socket;
|
| @@ -72,11 +71,11 @@ public class TestWebServer {
|
| private boolean mSsl;
|
|
|
| private static class Response {
|
| - final String mResponseStr;
|
| + final byte[] mResponseData;
|
| final List<Pair<String, String>> mResponseHeaders;
|
|
|
| - Response(String responseStr, List<Pair<String, String>> responseHeaders) {
|
| - mResponseStr = responseStr;
|
| + Response(byte[] resposneData, List<Pair<String, String>> responseHeaders) {
|
| + mResponseData = resposneData;
|
| mResponseHeaders = responseHeaders == null ?
|
| new ArrayList<Pair<String, String>>() : responseHeaders;
|
| }
|
| @@ -146,16 +145,37 @@ public class TestWebServer {
|
| * in (with the option to specify additional headers).
|
| *
|
| * @param requestPath The path to respond to.
|
| - * @param resposneString The response body that will be returned.
|
| + * @param responseString The response body that will be returned.
|
| * @param responseHeaders Any additional headers that should be returned along with the
|
| * response (null is acceptable).
|
| * @return The full URL including the path that should be requested to get the expected
|
| * response.
|
| */
|
| public String setResponse(
|
| - String requestPath, String resposneString,
|
| + String requestPath, String responseString,
|
| List<Pair<String, String>> responseHeaders) {
|
| - mResponseMap.put(requestPath, new Response(resposneString, responseHeaders));
|
| + mResponseMap.put(requestPath, new Response(responseString.getBytes(), responseHeaders));
|
| + return mServerUri + requestPath;
|
| + }
|
| +
|
| + /**
|
| + * Sets a base64 encoded response to be returned when a particular request path is passed
|
| + * in (with the option to specify additional headers).
|
| + *
|
| + * @param requestPath The path to respond to.
|
| + * @param base64EncodedResponse The response body that is base64 encoded. The actual server
|
| + * response will the decoded binary form.
|
| + * @param responseHeaders Any additional headers that should be returned along with the
|
| + * response (null is acceptable).
|
| + * @return The full URL including the path that should be requested to get the expected
|
| + * response.
|
| + */
|
| + public String setResponseBase64(
|
| + String requestPath, String base64EncodedResponse,
|
| + List<Pair<String, String>> responseHeaders) {
|
| + mResponseMap.put(requestPath,
|
| + new Response(Base64.decode(base64EncodedResponse, Base64.DEFAULT),
|
| + responseHeaders));
|
| return mServerUri + requestPath;
|
| }
|
|
|
| @@ -234,7 +254,7 @@ public class TestWebServer {
|
| httpResponse = createResponse(HttpStatus.SC_NOT_FOUND);
|
| } else {
|
| httpResponse = createResponse(HttpStatus.SC_OK);
|
| - httpResponse.setEntity(createEntity(response.mResponseStr));
|
| + httpResponse.setEntity(createEntity(response.mResponseData));
|
| for (Pair<String, String> header : response.mResponseHeaders) {
|
| httpResponse.addHeader(header.first, header.second);
|
| }
|
| @@ -272,7 +292,7 @@ public class TestWebServer {
|
| buf.append("</title></head><body>");
|
| buf.append(reason);
|
| buf.append("</body></html>");
|
| - response.setEntity(createEntity(buf.toString()));
|
| + response.setEntity(createEntity(buf.toString().getBytes()));
|
| }
|
| return response;
|
| }
|
| @@ -280,15 +300,10 @@ public class TestWebServer {
|
| /**
|
| * Create a string entity for the given content.
|
| */
|
| - private StringEntity createEntity(String content) {
|
| - try {
|
| - StringEntity entity = new StringEntity(content);
|
| - entity.setContentType("text/html");
|
| - return entity;
|
| - } catch (UnsupportedEncodingException e) {
|
| - Log.w(TAG, e);
|
| - }
|
| - return null;
|
| + private ByteArrayEntity createEntity(byte[] data) {
|
| + ByteArrayEntity entity = new ByteArrayEntity(data);
|
| + entity.setContentType("text/html");
|
| + return entity;
|
| }
|
|
|
| private static class ServerThread extends Thread {
|
|
|