| Index: chrome/test/android/javatests/src/org/chromium/chrome/test/ChromeInstrumentationTestRunner.java
|
| diff --git a/chrome/test/android/javatests/src/org/chromium/chrome/test/ChromeInstrumentationTestRunner.java b/chrome/test/android/javatests/src/org/chromium/chrome/test/ChromeInstrumentationTestRunner.java
|
| index b7afd54c175dad07ab56561bfbacfeb05085de3b..a596e7373c546006e9e313ffe908a249b61f2bc9 100644
|
| --- a/chrome/test/android/javatests/src/org/chromium/chrome/test/ChromeInstrumentationTestRunner.java
|
| +++ b/chrome/test/android/javatests/src/org/chromium/chrome/test/ChromeInstrumentationTestRunner.java
|
| @@ -4,42 +4,18 @@
|
|
|
| package org.chromium.chrome.test;
|
|
|
| -import android.app.Activity;
|
| import android.os.Bundle;
|
| -import android.os.Environment;
|
| import android.util.Log;
|
|
|
| import junit.framework.TestCase;
|
|
|
| -import org.apache.http.HttpEntity;
|
| -import org.apache.http.HttpException;
|
| -import org.apache.http.HttpRequest;
|
| -import org.apache.http.HttpResponse;
|
| -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.FileEntity;
|
| -import org.apache.http.message.BasicHttpResponse;
|
| -import org.apache.http.message.BasicStatusLine;
|
| -import org.apache.http.params.BasicHttpParams;
|
| -import org.apache.http.params.CoreProtocolPNames;
|
| -import org.apache.http.params.HttpParams;
|
| -
|
| import org.chromium.base.test.BaseInstrumentationTestRunner;
|
| import org.chromium.base.test.BaseInstrumentationTestRunner.SkipCheck;
|
| import org.chromium.base.test.BaseInstrumentationTestRunner.SkippingTestResult;
|
| import org.chromium.chrome.browser.util.FeatureUtilities;
|
| import org.chromium.chrome.test.util.DisableInTabbedMode;
|
| -import org.chromium.net.test.BaseHttpTestServer;
|
|
|
| -import java.io.File;
|
| -import java.io.IOException;
|
| import java.lang.reflect.Method;
|
| -import java.net.Socket;
|
| -import java.util.Collections;
|
| -import java.util.HashMap;
|
| -import java.util.Map;
|
|
|
|
|
| /**
|
| @@ -50,172 +26,13 @@ public class ChromeInstrumentationTestRunner extends BaseInstrumentationTestRunn
|
|
|
| private static final String TAG = "ChromeInstrumentationTestRunner";
|
|
|
| - public static final String EXTRA_DISABLE_TEST_HTTP_SERVER =
|
| - "org.chromium.chrome.test.ChromeInstrumentationTestRunner.DisableTestHttpServer";
|
| - public static final String EXTRA_ENABLE_TEST_HTTP_SERVER =
|
| - "org.chromium.chrome.test.ChromeInstrumentationTestRunner.EnableTestHttpServer";
|
| -
|
| - // TODO(jbudorick): Default this to true once the bots are all enabling the server via the
|
| - // flag.
|
| - private static final boolean DEFAULT_ENABLE_TEST_HTTP_SERVER = false;
|
| -
|
| - private Thread mHttpServerThread;
|
| - private TestHttpServer mHttpServer;
|
| - private boolean mRunTestHttpServer;
|
| -
|
| @Override
|
| public void onCreate(Bundle arguments) {
|
| - if (arguments.containsKey(EXTRA_DISABLE_TEST_HTTP_SERVER)) {
|
| - mRunTestHttpServer = false;
|
| - } else if (arguments.containsKey(EXTRA_ENABLE_TEST_HTTP_SERVER)) {
|
| - mRunTestHttpServer = true;
|
| - } else {
|
| - mRunTestHttpServer = DEFAULT_ENABLE_TEST_HTTP_SERVER;
|
| - }
|
| -
|
| - // InstrumentationTestRunner.onCreate() calls start() at the end, so we call it last.
|
| + loadLibraries();
|
| super.onCreate(arguments);
|
| }
|
|
|
| @Override
|
| - public void onStart() {
|
| - if (mRunTestHttpServer) {
|
| - try {
|
| - startTestHttpServer();
|
| - } catch (IOException e) {
|
| - Log.e(TAG, "Failed to start HTTP test server", e);
|
| - finish(Activity.RESULT_CANCELED, null);
|
| - }
|
| - }
|
| - super.onStart();
|
| - }
|
| -
|
| - private void startTestHttpServer() throws IOException {
|
| - mHttpServer = new TestHttpServer(Environment.getExternalStorageDirectory(), 8000);
|
| - mHttpServerThread = new Thread(mHttpServer);
|
| - mHttpServerThread.start();
|
| - mHttpServer.waitForServerToStart();
|
| - }
|
| -
|
| - private static class TestHttpServer extends BaseHttpTestServer {
|
| - private static final String TAG = "ChromeInstrumentationTestRunner.TestHttpServer";
|
| -
|
| - private final File mRootDirectory;
|
| - private final String mRootPath;
|
| -
|
| - private static final int ACCEPT_TIMEOUT_MS = 5000;
|
| - private static final String DEFAULT_CONTENT_TYPE = "application/octet-stream";
|
| - private static final Map<String, String> EXTENSION_CONTENT_TYPE_MAP;
|
| - static {
|
| - Map<String, String> m = new HashMap<String, String>();
|
| - m.put(".conf", "text/plain");
|
| - m.put(".css", "text/css");
|
| - m.put(".dtd", "text/xml");
|
| - m.put(".gif", "image/gif");
|
| - m.put(".htm", "text/html");
|
| - m.put(".html", "text/html");
|
| - m.put(".jpeg", "image/jpeg");
|
| - m.put(".jpg", "image/jpeg");
|
| - m.put(".js", "application/x-javascript");
|
| - m.put(".log", "text/plain");
|
| - m.put(".manifest", "text/cache-manifest");
|
| - m.put(".mp4", "video/mp4");
|
| - m.put(".png", "image/png");
|
| - m.put(".svg", "image/svg+xml");
|
| - m.put(".text", "text/plain");
|
| - m.put(".txt", "text/plain");
|
| - m.put(".xhtml", "application/xhtml+xml");
|
| - m.put(".xhtmlmp", "application/vnd.wap.xhtml+xml");
|
| - m.put(".xml", "text/xml");
|
| - EXTENSION_CONTENT_TYPE_MAP = Collections.unmodifiableMap(m);
|
| - }
|
| -
|
| - public TestHttpServer(File rootDirectory, int port) throws IOException {
|
| - super(port, ACCEPT_TIMEOUT_MS);
|
| - mRootDirectory = rootDirectory;
|
| - mRootPath = mRootDirectory.getAbsolutePath();
|
| - }
|
| -
|
| - @Override
|
| - protected boolean validateSocket(Socket sock) {
|
| - return sock.getInetAddress().isLoopbackAddress();
|
| - }
|
| -
|
| - @Override
|
| - protected HttpParams getConnectionParams() {
|
| - HttpParams httpParams = new BasicHttpParams();
|
| - httpParams.setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_0);
|
| - return httpParams;
|
| - }
|
| -
|
| - @Override
|
| - protected void handleGet(HttpRequest request, HttpResponseCallback callback)
|
| - throws HttpException {
|
| - RequestLine requestLine = request.getRequestLine();
|
| -
|
| - String requestPath = requestLine.getUri();
|
| - if (requestPath.startsWith(File.separator)) {
|
| - requestPath = requestPath.substring(File.separator.length());
|
| - }
|
| - File requestedFile = new File(mRootDirectory, requestPath);
|
| - String requestedPath = requestedFile.getAbsolutePath();
|
| -
|
| - int status = HttpStatus.SC_INTERNAL_SERVER_ERROR;
|
| - String reason = "";
|
| - HttpEntity entity = null;
|
| - if (!requestedPath.startsWith(mRootPath)) {
|
| - Log.w(TAG, "Client tried to request something outside of " + mRootPath + ": "
|
| - + requestedPath);
|
| - status = HttpStatus.SC_FORBIDDEN;
|
| - } else if (!requestedFile.exists()) {
|
| - Log.w(TAG, "Client requested non-existent file: " + requestedPath);
|
| - status = HttpStatus.SC_NOT_FOUND;
|
| - } else if (!requestedFile.isFile()) {
|
| - Log.w(TAG, "Client requested something that isn't a file: " + requestedPath);
|
| - status = HttpStatus.SC_BAD_REQUEST;
|
| - reason = requestLine.getUri() + " is not a file.";
|
| - } else {
|
| - status = HttpStatus.SC_OK;
|
| - String contentType = null;
|
| - int extensionIndex = requestedPath.lastIndexOf('.');
|
| - if (extensionIndex == -1) {
|
| - contentType = DEFAULT_CONTENT_TYPE;
|
| - } else {
|
| - String extension = requestedPath.substring(extensionIndex);
|
| - contentType = EXTENSION_CONTENT_TYPE_MAP.get(extension);
|
| - if (contentType == null) {
|
| - Log.w(TAG, "Unrecognized extension: " + extension);
|
| - contentType = DEFAULT_CONTENT_TYPE;
|
| - }
|
| - }
|
| - entity = new FileEntity(requestedFile, contentType);
|
| - }
|
| -
|
| - StatusLine statusLine = new BasicStatusLine(HttpVersion.HTTP_1_0, status, reason);
|
| - HttpResponse response = new BasicHttpResponse(statusLine);
|
| - if (entity != null) {
|
| - response.setEntity(entity);
|
| - }
|
| - callback.onResponse(response);
|
| - }
|
| - }
|
| -
|
| - @Override
|
| - public void onDestroy() {
|
| - super.onDestroy();
|
| - if (mRunTestHttpServer) stopTestHttpServer();
|
| - }
|
| -
|
| - private void stopTestHttpServer() {
|
| - mHttpServer.stop();
|
| - try {
|
| - mHttpServerThread.join();
|
| - } catch (InterruptedException e) {
|
| - Log.w(TAG, "Interrupted while joining for TestHttpServer thread: " + e.toString());
|
| - }
|
| - }
|
| -
|
| - @Override
|
| protected void addSkipChecks(SkippingTestResult result) {
|
| super.addSkipChecks(result);
|
| result.addSkipCheck(new DisableInTabbedModeSkipCheck());
|
|
|