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

Unified Diff: chrome/android/javatests_shell/src/org/chromium/chrome/browser/feedback/ConnectivityTaskTest.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/ConnectivityTaskTest.java
diff --git a/chrome/android/javatests_shell/src/org/chromium/chrome/browser/feedback/ConnectivityTaskTest.java b/chrome/android/javatests_shell/src/org/chromium/chrome/browser/feedback/ConnectivityTaskTest.java
deleted file mode 100644
index e3da1899ed7f37ddd21042bd35252815bd2f5d68..0000000000000000000000000000000000000000
--- a/chrome/android/javatests_shell/src/org/chromium/chrome/browser/feedback/ConnectivityTaskTest.java
+++ /dev/null
@@ -1,214 +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.test.suitebuilder.annotation.MediumTest;
-import android.test.suitebuilder.annotation.SmallTest;
-
-import org.chromium.base.ThreadUtils;
-import org.chromium.base.test.util.Feature;
-import org.chromium.chrome.browser.feedback.ConnectivityTask.FeedbackData;
-import org.chromium.chrome.browser.feedback.ConnectivityTask.Type;
-import org.chromium.chrome.browser.profiles.Profile;
-import org.chromium.content.browser.test.util.Criteria;
-import org.chromium.content.browser.test.util.CriteriaHelper;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.concurrent.Semaphore;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.atomic.AtomicReference;
-
-/**
- * Tests for {@link ConnectivityTask}.
- */
-public class ConnectivityTaskTest extends ConnectivityCheckerTestBase {
- private static final int RESULT_CHECK_INTERVAL_MS = 10;
-
- @MediumTest
- @Feature({"Feedback"})
- public void testNormalCaseShouldWork() throws InterruptedException {
- final AtomicReference<ConnectivityTask> task = new AtomicReference<>();
- ThreadUtils.runOnUiThreadBlocking(new Runnable() {
- @Override
- public void run() {
- // Intentionally make HTTPS-connection fail which should result in NOT_CONNECTED.
- ConnectivityChecker.overrideUrlsForTest(GENERATE_204_URL, GENERATE_404_URL);
-
- task.set(ConnectivityTask.create(Profile.getLastUsedProfile(), TIMEOUT_MS, null));
- }
- });
-
- boolean gotResult = CriteriaHelper.pollForUIThreadCriteria(new Criteria() {
- @Override
- public boolean isSatisfied() {
- return task.get().isDone();
- }
- }, TIMEOUT_MS, RESULT_CHECK_INTERVAL_MS);
- assertTrue("Should be finished by now.", gotResult);
- FeedbackData feedback = getResult(task);
- verifyConnections(feedback, ConnectivityCheckResult.NOT_CONNECTED);
- assertEquals("The timeout value is wrong.", TIMEOUT_MS, feedback.getTimeoutMs());
- }
-
- private static void verifyConnections(FeedbackData feedback, int expectedHttpsValue) {
- Map<Type, Integer> results = feedback.getConnections();
- assertEquals("Should have 4 results.", 4, results.size());
- for (Map.Entry<Type, Integer> result : results.entrySet()) {
- switch (result.getKey()) {
- case CHROME_HTTP:
- case SYSTEM_HTTP:
- assertResult(ConnectivityCheckResult.CONNECTED, result);
- break;
- case CHROME_HTTPS:
- case SYSTEM_HTTPS:
- assertResult(expectedHttpsValue, result);
- break;
- default:
- fail("Failed to recognize type " + result.getKey());
- }
- }
- assertTrue("The elapsed time should be non-negative.", feedback.getElapsedTimeMs() >= 0);
- }
-
- private static void assertResult(int expectedValue, Map.Entry<Type, Integer> actualEntry) {
- assertEquals("Wrong result for " + actualEntry.getKey(),
- ConnectivityTask.getHumanReadableString(expectedValue),
- ConnectivityTask.getHumanReadableString(actualEntry.getValue()));
- }
-
- @SmallTest
- @Feature({"Feedback"})
- public void testCallbackNormalCaseShouldWork() throws InterruptedException {
- final Semaphore semaphore = new Semaphore(0);
- final AtomicReference<ConnectivityTask> task = new AtomicReference<>();
- final AtomicReference<FeedbackData> feedbackRef = new AtomicReference<>();
- final ConnectivityTask.ConnectivityResult callback =
- new ConnectivityTask.ConnectivityResult() {
- @Override
- public void onResult(FeedbackData feedbackData) {
- feedbackRef.set(feedbackData);
- semaphore.release();
- }
- };
- ThreadUtils.runOnUiThreadBlocking(new Runnable() {
- @Override
- public void run() {
- // Intentionally make HTTPS-connection fail which should result in NOT_CONNECTED.
- ConnectivityChecker.overrideUrlsForTest(GENERATE_204_URL, GENERATE_404_URL);
-
- task.set(ConnectivityTask.create(
- Profile.getLastUsedProfile(), TIMEOUT_MS, callback));
- }
- });
-
- if (!semaphore.tryAcquire(TIMEOUT_MS, TimeUnit.MILLISECONDS)) {
- fail("Failed to acquire semaphore.");
- }
- FeedbackData feedback = feedbackRef.get();
- verifyConnections(feedback, ConnectivityCheckResult.NOT_CONNECTED);
- assertEquals("The timeout value is wrong.", TIMEOUT_MS, feedback.getTimeoutMs());
- }
-
- @MediumTest
- @Feature({"Feedback"})
- public void testCallbackTwoTimeouts() throws InterruptedException {
- final int checkTimeoutMs = 100;
- final Semaphore semaphore = new Semaphore(0);
- final AtomicReference<ConnectivityTask> task = new AtomicReference<>();
- final AtomicReference<FeedbackData> feedbackRef = new AtomicReference<>();
- final ConnectivityTask.ConnectivityResult callback =
- new ConnectivityTask.ConnectivityResult() {
- @Override
- public void onResult(FeedbackData feedbackData) {
- feedbackRef.set(feedbackData);
- semaphore.release();
- }
- };
- ThreadUtils.runOnUiThreadBlocking(new Runnable() {
- @Override
- public void run() {
- // Intentionally make HTTPS connections slow which should result in TIMEOUT.
- ConnectivityChecker.overrideUrlsForTest(GENERATE_204_URL, GENERATE_204_SLOW_URL);
-
- task.set(ConnectivityTask.create(
- Profile.getLastUsedProfile(), checkTimeoutMs, callback));
- }
- });
-
- if (!semaphore.tryAcquire(TIMEOUT_MS, TimeUnit.MILLISECONDS)) {
- fail("Failed to acquire semaphore.");
- }
- FeedbackData feedback = feedbackRef.get();
- // In the case of a timeout when using callbacks, the result will be TIMEOUT instead
- // of UNKNOWN.
- verifyConnections(feedback, ConnectivityCheckResult.TIMEOUT);
- assertEquals("The timeout value is wrong.", checkTimeoutMs, feedback.getTimeoutMs());
- }
-
- @MediumTest
- @Feature({"Feedback"})
- public void testTwoTimeoutsShouldFillInTheRest() throws InterruptedException {
- final AtomicReference<ConnectivityTask> task = new AtomicReference<>();
- ThreadUtils.runOnUiThreadBlocking(new Runnable() {
- @Override
- public void run() {
- // Intentionally make HTTPS connections slow which should result in UNKNOWN.
- ConnectivityChecker.overrideUrlsForTest(GENERATE_204_URL, GENERATE_204_SLOW_URL);
-
- task.set(ConnectivityTask.create(Profile.getLastUsedProfile(), TIMEOUT_MS, null));
- }
- });
-
- boolean gotResult = CriteriaHelper.pollForUIThreadCriteria(new Criteria() {
- @Override
- public boolean isSatisfied() {
- return task.get().isDone();
- }
- }, TIMEOUT_MS / 5, RESULT_CHECK_INTERVAL_MS);
- assertFalse("Should not be finished by now.", gotResult);
- FeedbackData feedback = getResult(task);
- verifyConnections(feedback, ConnectivityCheckResult.UNKNOWN);
- assertEquals("The timeout value is wrong.", TIMEOUT_MS, feedback.getTimeoutMs());
- }
-
- @SmallTest
- @Feature({"Feedback"})
- public void testFeedbackDataConversion() {
- Map<Type, Integer> connectionMap = new HashMap<>();
- connectionMap.put(Type.CHROME_HTTP, ConnectivityCheckResult.NOT_CONNECTED);
- connectionMap.put(Type.CHROME_HTTPS, ConnectivityCheckResult.CONNECTED);
- connectionMap.put(Type.SYSTEM_HTTP, ConnectivityCheckResult.UNKNOWN);
- connectionMap.put(Type.SYSTEM_HTTPS, ConnectivityCheckResult.CONNECTED);
-
- FeedbackData feedback = new FeedbackData(connectionMap, 42, 21);
- Map<String, String> map = feedback.toMap();
-
- assertEquals("Should have 6 entries.", 6, map.size());
- assertTrue(map.containsKey(ConnectivityTask.CHROME_HTTP_KEY));
- assertEquals("NOT_CONNECTED", map.get(ConnectivityTask.CHROME_HTTP_KEY));
- assertTrue(map.containsKey(ConnectivityTask.CHROME_HTTPS_KEY));
- assertEquals("CONNECTED", map.get(ConnectivityTask.CHROME_HTTPS_KEY));
- assertTrue(map.containsKey(ConnectivityTask.SYSTEM_HTTP_KEY));
- assertEquals("UNKNOWN", map.get(ConnectivityTask.SYSTEM_HTTP_KEY));
- assertTrue(map.containsKey(ConnectivityTask.SYSTEM_HTTPS_KEY));
- assertEquals("CONNECTED", map.get(ConnectivityTask.SYSTEM_HTTPS_KEY));
- assertTrue(map.containsKey(ConnectivityTask.CONNECTION_CHECK_TIMEOUT_KEY));
- assertEquals("42", map.get(ConnectivityTask.CONNECTION_CHECK_TIMEOUT_KEY));
- assertTrue(map.containsKey(ConnectivityTask.CONNECTION_CHECK_ELAPSED_KEY));
- assertEquals("21", map.get(ConnectivityTask.CONNECTION_CHECK_ELAPSED_KEY));
- }
-
- private static FeedbackData getResult(final AtomicReference<ConnectivityTask> task) {
- final AtomicReference<FeedbackData> result = new AtomicReference<>();
- ThreadUtils.runOnUiThreadBlocking(new Runnable() {
- @Override
- public void run() {
- result.set(task.get().get());
- }
- });
- return result.get();
- }
-}

Powered by Google App Engine
This is Rietveld 408576698