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

Unified Diff: chrome/android/javatests_shell/src/org/chromium/chrome/browser/feedback/ConnectivityCheckerTestBase.java

Issue 1216403003: [Feedback] Move all tests to chrome/javatests (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@use-connectivity-task-callback
Patch Set: Add missing @VisibleForTesting annotations Created 5 years, 6 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: chrome/android/javatests_shell/src/org/chromium/chrome/browser/feedback/ConnectivityCheckerTestBase.java
diff --git a/chrome/android/javatests_shell/src/org/chromium/chrome/browser/feedback/ConnectivityCheckerTestBase.java b/chrome/android/javatests_shell/src/org/chromium/chrome/browser/feedback/ConnectivityCheckerTestBase.java
deleted file mode 100644
index 9c54fa2ba4f25d791d61c1985559859cd9abc872..0000000000000000000000000000000000000000
--- a/chrome/android/javatests_shell/src/org/chromium/chrome/browser/feedback/ConnectivityCheckerTestBase.java
+++ /dev/null
@@ -1,193 +0,0 @@
-// Copyright 2015 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package org.chromium.chrome.browser.feedback;
-
-import android.content.Context;
-import android.os.Handler;
-import android.os.HandlerThread;
-
-import org.apache.http.HttpException;
-import org.apache.http.HttpRequest;
-import org.apache.http.HttpStatus;
-import org.apache.http.HttpVersion;
-import org.apache.http.message.BasicHttpResponse;
-import org.apache.http.params.BasicHttpParams;
-import org.apache.http.params.CoreProtocolPNames;
-import org.apache.http.params.HttpParams;
-import org.chromium.chrome.shell.ChromeShellTestBase;
-import org.chromium.net.test.BaseHttpTestServer;
-
-import java.io.IOException;
-import java.net.Socket;
-
-/**
- * Base class for tests related to checking connectivity.
- *
- * It includes a {@link ConnectivityTestServer} which is set up and torn down automatically
- * for tests.
- */
-public class ConnectivityCheckerTestBase extends ChromeShellTestBase {
- static final int TIMEOUT_MS = 5000;
- /**
- * Port number which spells out DUMMY on a numeric keypad.
- */
- private static final int DUMMY_PORT = 38669;
-
- // Helper URLs for each of the given HTTP response codes.
- private static final String BASE_URL = "http://127.0.0.1:" + DUMMY_PORT;
- private static final String GENERATE_200_PATH = "/generate_200";
- static final String GENERATE_200_URL = BASE_URL + GENERATE_200_PATH;
- private static final String GENERATE_204_PATH = "/generate_204";
- static final String GENERATE_204_URL = BASE_URL + GENERATE_204_PATH;
- private static final String GENERATE_204_SLOW_PATH = "/generate_slow_204";
- static final String GENERATE_204_SLOW_URL = BASE_URL + GENERATE_204_SLOW_PATH;
- private static final String GENERATE_302_PATH = "/generate_302";
- static final String GENERATE_302_URL = BASE_URL + GENERATE_302_PATH;
- private static final String GENERATE_404_PATH = "/generate_404";
- static final String GENERATE_404_URL = BASE_URL + GENERATE_404_PATH;
-
- private static class ConnectivityTestServer extends BaseHttpTestServer {
- /**
- * The lock object used when inspecting and manipulating {@link #mHasStarted},
- * {@link #mHasStopped}, {@link #mHandlerThread} and {@link #mHandler}.
- */
- private final Object mLock = new Object();
-
- /**
- * Flag for whether the server has started yet. This field must only be accessed when
- * the thread has synchronized on {@link #mLock}.
- */
- private boolean mHasStarted;
-
- /**
- * Flag for whether the server has stopped yet. This field must only be accessed when
- * the thread has synchronized on {@link #mLock}.
- */
- private boolean mHasStopped;
-
- /**
- * A {@link HandlerThread} for {@link #mHandler}. This field must only be accessed when
- * the thread has synchronized on {@link #mLock}.
- */
- private HandlerThread mHandlerThread;
-
- /**
- * A Handler used for posting delayed callbacks. This field must only be accessed when
- * the thread has synchronized on {@link #mLock}.
- */
- private Handler mHandler;
-
- /**
- * Create an HTTP test server.
- */
- public ConnectivityTestServer() throws IOException {
- super(DUMMY_PORT, TIMEOUT_MS);
- }
-
- @Override
- public void run() {
- synchronized (mLock) {
- if (mHasStarted) return;
- mHasStarted = true;
-
- mHandlerThread = new HandlerThread("ConnectivityTestServerHandler");
- mHandlerThread.start();
- mHandler = new Handler(mHandlerThread.getLooper());
- }
- super.run();
- }
-
- @Override
- public void stop() {
- synchronized (mLock) {
- if (!mHasStarted || mHasStopped) return;
- mHasStopped = true;
-
- mHandler = null;
- mHandlerThread.quit();
- }
- super.stop();
- }
-
- @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_1);
- return httpParams;
- }
-
- @Override
- protected void handleGet(HttpRequest request, HttpResponseCallback callback)
- throws HttpException {
- String requestPath = request.getRequestLine().getUri();
- if (GENERATE_204_SLOW_PATH.equals(requestPath)) {
- sendDelayedResponse(callback, requestPath);
- } else {
- sendResponse(callback, requestPath);
- }
- }
-
- private void sendDelayedResponse(
- final HttpResponseCallback callback, final String requestPath) {
- synchronized (mLock) {
- if (mHandler == null) throw new IllegalStateException("Handler not created.");
- mHandler.postDelayed(new Runnable() {
- @Override
- public void run() {
- sendResponse(callback, requestPath);
- }
- }, TIMEOUT_MS);
- }
- }
-
- private void sendResponse(HttpResponseCallback callback, String requestPath) {
- int httpStatus = getStatusCodeFromRequestPath(requestPath);
- String reason = String.valueOf(httpStatus);
- callback.onResponse(new BasicHttpResponse(HttpVersion.HTTP_1_1, httpStatus, reason));
- }
-
- private int getStatusCodeFromRequestPath(String requestPath) {
- switch (requestPath) {
- case GENERATE_200_PATH:
- return HttpStatus.SC_OK;
- case GENERATE_204_PATH: // Intentional fall through.
- case GENERATE_204_SLOW_PATH:
- return HttpStatus.SC_NO_CONTENT;
- case GENERATE_302_PATH:
- return HttpStatus.SC_MOVED_TEMPORARILY;
- case GENERATE_404_PATH:
- return HttpStatus.SC_NOT_FOUND;
- default:
- return HttpStatus.SC_INTERNAL_SERVER_ERROR;
- }
- }
- }
-
- private ConnectivityTestServer mTestServer;
- private Thread mTestServerThread;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- Context targetContext = getInstrumentation().getTargetContext();
- startChromeBrowserProcessSync(targetContext);
- mTestServer = new ConnectivityTestServer();
- mTestServerThread = new Thread(mTestServer);
- mTestServerThread.start();
- mTestServer.waitForServerToStart();
- }
-
- @Override
- protected void tearDown() throws Exception {
- mTestServer.stop();
- mTestServerThread.join();
- super.tearDown();
- }
-}

Powered by Google App Engine
This is Rietveld 408576698