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

Unified Diff: content/public/android/javatests/src/org/chromium/content/browser/BrowserStartupControllerTest.java

Issue 141533006: [Android] Move the java content/ package to content_public/ to start the split. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Small fixes and findbugs line update Created 6 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: content/public/android/javatests/src/org/chromium/content/browser/BrowserStartupControllerTest.java
diff --git a/content/public/android/javatests/src/org/chromium/content/browser/BrowserStartupControllerTest.java b/content/public/android/javatests/src/org/chromium/content/browser/BrowserStartupControllerTest.java
deleted file mode 100644
index 188aa080dd5bab2e417d3ac6e0c07f64dbcb59c7..0000000000000000000000000000000000000000
--- a/content/public/android/javatests/src/org/chromium/content/browser/BrowserStartupControllerTest.java
+++ /dev/null
@@ -1,482 +0,0 @@
-// Copyright 2013 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.content.browser;
-
-import android.content.Context;
-import android.test.InstrumentationTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
-
-import org.chromium.base.ThreadUtils;
-import org.chromium.base.test.util.AdvancedMockContext;
-import org.chromium.content.common.ProcessInitException;
-import org.chromium.content.common.ResultCodes;
-
-public class BrowserStartupControllerTest extends InstrumentationTestCase {
-
- private TestBrowserStartupController mController;
-
- private static class TestBrowserStartupController extends BrowserStartupController {
-
- private int mStartupResult;
- private boolean mLibraryLoadSucceeds;
- private int mInitializedCounter = 0;
-
- @Override
- void prepareToStartBrowserProcess(int numRenderers) throws ProcessInitException {
- if (!mLibraryLoadSucceeds) {
- throw new ProcessInitException(ResultCodes.RESULT_CODE_NATIVE_LIBRARY_LOAD_FAILED);
- }
- }
-
- private TestBrowserStartupController(Context context) {
- super(context);
- }
-
- @Override
- int contentStart() {
- mInitializedCounter++;
- if (BrowserStartupController.browserMayStartAsynchonously()) {
- // Post to the UI thread to emulate what would happen in a real scenario.
- ThreadUtils.postOnUiThread(new Runnable() {
- @Override
- public void run() {
- BrowserStartupController.browserStartupComplete(mStartupResult);
- }
- });
- } else {
- BrowserStartupController.browserStartupComplete(mStartupResult);
- }
- return mStartupResult;
- }
-
- private int initializedCounter() {
- return mInitializedCounter;
- }
- }
-
- private static class TestStartupCallback implements BrowserStartupController.StartupCallback {
- private boolean mWasSuccess;
- private boolean mWasFailure;
- private boolean mHasStartupResult;
- private boolean mAlreadyStarted;
-
- @Override
- public void onSuccess(boolean alreadyStarted) {
- assert !mHasStartupResult;
- mWasSuccess = true;
- mAlreadyStarted = alreadyStarted;
- mHasStartupResult = true;
- }
-
- @Override
- public void onFailure() {
- assert !mHasStartupResult;
- mWasFailure = true;
- mHasStartupResult = true;
- }
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- Context context = new AdvancedMockContext(getInstrumentation().getTargetContext());
- mController = new TestBrowserStartupController(context);
- // Setting the static singleton instance field enables more correct testing, since it is
- // is possible to call {@link BrowserStartupController#browserStartupComplete(int)} instead
- // of {@link BrowserStartupController#executeEnqueuedCallbacks(int, boolean)} directly.
- BrowserStartupController.overrideInstanceForTest(mController);
- }
-
- @SmallTest
- public void testSingleAsynchronousStartupRequest() {
- mController.mStartupResult = BrowserStartupController.STARTUP_SUCCESS;
- mController.mLibraryLoadSucceeds = true;
- final TestStartupCallback callback = new TestStartupCallback();
-
- // Kick off the asynchronous startup request.
- ThreadUtils.runOnUiThreadBlocking(new Runnable() {
- @Override
- public void run() {
- try {
- mController.startBrowserProcessesAsync(callback);
- } catch (Exception e) {
- fail("Browser should have started successfully");
- }
- }
- });
-
- assertTrue("Asynchronous mode should have been set.",
- BrowserStartupController.browserMayStartAsynchonously());
- assertEquals("The browser process should have been initialized one time.", 1,
- mController.initializedCounter());
-
- // Wait for callbacks to complete.
- getInstrumentation().waitForIdleSync();
-
- assertTrue("Callback should have been executed.", callback.mHasStartupResult);
- assertTrue("Callback should have been a success.", callback.mWasSuccess);
- assertFalse("Callback should be told that the browser process was not already started.",
- callback.mAlreadyStarted);
- }
-
- @SmallTest
- public void testMultipleAsynchronousStartupRequests() {
- mController.mStartupResult = BrowserStartupController.STARTUP_SUCCESS;
- mController.mLibraryLoadSucceeds = true;
- final TestStartupCallback callback1 = new TestStartupCallback();
- final TestStartupCallback callback2 = new TestStartupCallback();
- final TestStartupCallback callback3 = new TestStartupCallback();
-
- // Kick off the asynchronous startup requests.
- ThreadUtils.runOnUiThreadBlocking(new Runnable() {
- @Override
- public void run() {
- try {
- mController.startBrowserProcessesAsync(callback1);
- } catch (Exception e) {
- fail("Browser should have started successfully");
- }
- }
- });
- ThreadUtils.runOnUiThreadBlocking(new Runnable() {
- @Override
- public void run() {
- try {
- mController.startBrowserProcessesAsync(callback2);
- } catch (Exception e) {
- fail("Browser should have started successfully");
- }
- }
- });
- ThreadUtils.runOnUiThreadBlocking(new Runnable() {
- @Override
- public void run() {
- mController.addStartupCompletedObserver(callback3);
- }
- });
-
- assertTrue("Asynchronous mode should have been set.",
- BrowserStartupController.browserMayStartAsynchonously());
- assertEquals("The browser process should have been initialized one time.", 1,
- mController.initializedCounter());
-
- // Wait for callbacks to complete.
- getInstrumentation().waitForIdleSync();
-
- assertTrue("Callback 1 should have been executed.", callback1.mHasStartupResult);
- assertTrue("Callback 1 should have been a success.", callback1.mWasSuccess);
- assertTrue("Callback 2 should have been executed.", callback2.mHasStartupResult);
- assertTrue("Callback 2 should have been a success.", callback2.mWasSuccess);
- assertTrue("Callback 3 should have been executed.", callback3.mHasStartupResult);
- assertTrue("Callback 3 should have been a success.", callback3.mWasSuccess);
- // Some startup tasks might have been enqueued after the browser process was started, but
- // not the first one which kicked of the startup.
- assertFalse("Callback 1 should be told that the browser process was not already started.",
- callback1.mAlreadyStarted);
- }
-
- @SmallTest
- public void testConsecutiveAsynchronousStartupRequests() {
- mController.mStartupResult = BrowserStartupController.STARTUP_SUCCESS;
- mController.mLibraryLoadSucceeds = true;
- final TestStartupCallback callback1 = new TestStartupCallback();
- final TestStartupCallback callback2 = new TestStartupCallback();
-
- // Kick off the asynchronous startup requests.
- ThreadUtils.runOnUiThreadBlocking(new Runnable() {
- @Override
- public void run() {
- try {
- mController.startBrowserProcessesAsync(callback1);
- } catch (Exception e) {
- fail("Browser should have started successfully");
- }
- }
- });
- ThreadUtils.runOnUiThreadBlocking(new Runnable() {
- @Override
- public void run() {
- mController.addStartupCompletedObserver(callback2);
- }
- });
-
- assertTrue("Asynchronous mode should have been set.",
- BrowserStartupController.browserMayStartAsynchonously());
- assertEquals("The browser process should have been initialized one time.", 1,
- mController.initializedCounter());
-
- // Wait for callbacks to complete.
- getInstrumentation().waitForIdleSync();
-
- assertTrue("Callback 1 should have been executed.", callback1.mHasStartupResult);
- assertTrue("Callback 1 should have been a success.", callback1.mWasSuccess);
- assertTrue("Callback 2 should have been executed.", callback2.mHasStartupResult);
- assertTrue("Callback 2 should have been a success.", callback2.mWasSuccess);
-
- final TestStartupCallback callback3 = new TestStartupCallback();
- final TestStartupCallback callback4 = new TestStartupCallback();
-
- // Kick off more asynchronous startup requests.
- ThreadUtils.runOnUiThreadBlocking(new Runnable() {
- @Override
- public void run() {
- try {
- mController.startBrowserProcessesAsync(callback3);
- } catch (Exception e) {
- fail("Browser should have started successfully");
- }
- }
- });
- ThreadUtils.runOnUiThreadBlocking(new Runnable() {
- @Override
- public void run() {
- mController.addStartupCompletedObserver(callback4);
- }
- });
-
- // Wait for callbacks to complete.
- getInstrumentation().waitForIdleSync();
-
- assertTrue("Callback 3 should have been executed.", callback3.mHasStartupResult);
- assertTrue("Callback 3 should have been a success.", callback3.mWasSuccess);
- assertTrue("Callback 3 should be told that the browser process was already started.",
- callback3.mAlreadyStarted);
- assertTrue("Callback 4 should have been executed.", callback4.mHasStartupResult);
- assertTrue("Callback 4 should have been a success.", callback4.mWasSuccess);
- assertTrue("Callback 4 should be told that the browser process was already started.",
- callback4.mAlreadyStarted);
- }
-
- @SmallTest
- public void testSingleFailedAsynchronousStartupRequest() {
- mController.mStartupResult = BrowserStartupController.STARTUP_FAILURE;
- mController.mLibraryLoadSucceeds = true;
- final TestStartupCallback callback = new TestStartupCallback();
-
- // Kick off the asynchronous startup request.
- ThreadUtils.runOnUiThreadBlocking(new Runnable() {
- @Override
- public void run() {
- try {
- mController.startBrowserProcessesAsync(callback);
- } catch (Exception e) {
- fail("Browser should have started successfully");
- }
- }
- });
-
- assertTrue("Asynchronous mode should have been set.",
- BrowserStartupController.browserMayStartAsynchonously());
- assertEquals("The browser process should have been initialized one time.", 1,
- mController.initializedCounter());
-
- // Wait for callbacks to complete.
- getInstrumentation().waitForIdleSync();
-
- assertTrue("Callback should have been executed.", callback.mHasStartupResult);
- assertTrue("Callback should have been a failure.", callback.mWasFailure);
- }
-
- @SmallTest
- public void testConsecutiveFailedAsynchronousStartupRequests() {
- mController.mStartupResult = BrowserStartupController.STARTUP_FAILURE;
- mController.mLibraryLoadSucceeds = true;
- final TestStartupCallback callback1 = new TestStartupCallback();
- final TestStartupCallback callback2 = new TestStartupCallback();
-
- // Kick off the asynchronous startup requests.
- ThreadUtils.runOnUiThreadBlocking(new Runnable() {
- @Override
- public void run() {
- try {
- mController.startBrowserProcessesAsync(callback1);
- } catch (Exception e) {
- fail("Browser should have started successfully");
- }
- }
- });
- ThreadUtils.runOnUiThreadBlocking(new Runnable() {
- @Override
- public void run() {
- mController.addStartupCompletedObserver(callback2);
- }
- });
-
- assertTrue("Asynchronous mode should have been set.",
- BrowserStartupController.browserMayStartAsynchonously());
- assertEquals("The browser process should have been initialized one time.", 1,
- mController.initializedCounter());
-
- // Wait for callbacks to complete.
- getInstrumentation().waitForIdleSync();
-
- assertTrue("Callback 1 should have been executed.", callback1.mHasStartupResult);
- assertTrue("Callback 1 should have been a failure.", callback1.mWasFailure);
- assertTrue("Callback 2 should have been executed.", callback2.mHasStartupResult);
- assertTrue("Callback 2 should have been a failure.", callback2.mWasFailure);
-
- final TestStartupCallback callback3 = new TestStartupCallback();
- final TestStartupCallback callback4 = new TestStartupCallback();
-
- // Kick off more asynchronous startup requests.
- ThreadUtils.runOnUiThreadBlocking(new Runnable() {
- @Override
- public void run() {
- try {
- mController.startBrowserProcessesAsync(callback3);
- } catch (Exception e) {
- fail("Browser should have started successfully");
- }
- }
- });
- ThreadUtils.runOnUiThreadBlocking(new Runnable() {
- @Override
- public void run() {
- mController.addStartupCompletedObserver(callback4);
- }
- });
-
- // Wait for callbacks to complete.
- getInstrumentation().waitForIdleSync();
-
- assertTrue("Callback 3 should have been executed.", callback3.mHasStartupResult);
- assertTrue("Callback 3 should have been a failure.", callback3.mWasFailure);
- assertTrue("Callback 4 should have been executed.", callback4.mHasStartupResult);
- assertTrue("Callback 4 should have been a failure.", callback4.mWasFailure);
- }
-
- @SmallTest
- public void testSingleSynchronousRequest() {
- mController.mStartupResult = BrowserStartupController.STARTUP_SUCCESS;
- mController.mLibraryLoadSucceeds = true;
- // Kick off the synchronous startup.
- ThreadUtils.runOnUiThreadBlocking(new Runnable() {
- @Override
- public void run() {
- try {
- mController.startBrowserProcessesSync(1);
- } catch (Exception e) {
- fail("Browser should have started successfully");
- }
- }
- });
- assertFalse("Synchronous mode should have been set",
- BrowserStartupController.browserMayStartAsynchonously());
-
- assertEquals("The browser process should have been initialized one time.", 1,
- mController.initializedCounter());
- }
-
- @SmallTest
- public void testAsyncThenSyncRequests() {
- mController.mStartupResult = BrowserStartupController.STARTUP_SUCCESS;
- mController.mLibraryLoadSucceeds = true;
- final TestStartupCallback callback = new TestStartupCallback();
-
- // Kick off the startups.
- ThreadUtils.runOnUiThreadBlocking(new Runnable() {
- @Override
- public void run() {
- try {
- mController.startBrowserProcessesAsync(callback);
- } catch (Exception e) {
- fail("Browser should have started successfully");
- }
- // To ensure that the async startup doesn't complete too soon we have
- // to do both these in a since Runnable instance. This avoids the
- // unpredictable race that happens in real situations.
- try {
- mController.startBrowserProcessesSync(1);
- } catch (Exception e) {
- fail("Browser should have started successfully");
- }
- }
- });
- assertFalse("Synchronous mode should have been set",
- BrowserStartupController.browserMayStartAsynchonously());
-
- assertEquals("The browser process should have been initialized twice.", 2,
- mController.initializedCounter());
-
- assertTrue("Callback should have been executed.", callback.mHasStartupResult);
- assertTrue("Callback should have been a success.", callback.mWasSuccess);
- assertFalse("Callback should be told that the browser process was not already started.",
- callback.mAlreadyStarted);
- }
-
- @SmallTest
- public void testSyncThenAsyncRequests() {
- mController.mStartupResult = BrowserStartupController.STARTUP_SUCCESS;
- mController.mLibraryLoadSucceeds = true;
- final TestStartupCallback callback = new TestStartupCallback();
-
- // Do a synchronous startup first.
- ThreadUtils.runOnUiThreadBlocking(new Runnable() {
- @Override
- public void run() {
- try {
- mController.startBrowserProcessesSync(1);
- } catch (Exception e) {
- fail("Browser should have started successfully");
- }
- }
- });
-
- assertEquals("The browser process should have been initialized once.", 1,
- mController.initializedCounter());
-
- assertFalse("Synchronous mode should have been set",
- BrowserStartupController.browserMayStartAsynchonously());
-
- // Kick off the asynchronous startup request. This should just queue the callback.
- ThreadUtils.runOnUiThreadBlocking(new Runnable() {
- @Override
- public void run() {
- try {
- mController.startBrowserProcessesAsync(callback);
- } catch (Exception e) {
- fail("Browser should have started successfully");
- }
- }
- });
-
- assertEquals("The browser process should not have been initialized a second time.", 1,
- mController.initializedCounter());
-
- // Wait for callbacks to complete.
- getInstrumentation().waitForIdleSync();
-
- assertTrue("Callback should have been executed.", callback.mHasStartupResult);
- assertTrue("Callback should have been a success.", callback.mWasSuccess);
- assertTrue("Callback should be told that the browser process was already started.",
- callback.mAlreadyStarted);
- }
-
- @SmallTest
- public void testLibraryLoadFails() {
- mController.mLibraryLoadSucceeds = false;
- final TestStartupCallback callback = new TestStartupCallback();
-
- // Kick off the asynchronous startup request.
- ThreadUtils.runOnUiThreadBlocking(new Runnable() {
- @Override
- public void run() {
- try {
- mController.startBrowserProcessesAsync(callback);
- fail("Browser should not have started successfully");
- } catch (Exception e) {
- // Exception expected, ignore.
- }
- }
- });
-
- assertEquals("The browser process should not have been initialized.", 0,
- mController.initializedCounter());
-
- // Wait for callbacks to complete.
- getInstrumentation().waitForIdleSync();
- }
-
-}

Powered by Google App Engine
This is Rietveld 408576698