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

Side by Side Diff: chrome/android/javatests/src/org/chromium/chrome/browser/banners/InstallerDelegateTest.java

Issue 2766373004: Convert the rest of chrome_public_test_apk InstrumentationTestCases to JUnit4 (Closed)
Patch Set: nits and rebase Created 3 years, 8 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package org.chromium.chrome.browser.banners; 5 package org.chromium.chrome.browser.banners;
6 6
7 import android.content.pm.PackageInfo; 7 import android.content.pm.PackageInfo;
8 import android.os.HandlerThread; 8 import android.os.HandlerThread;
9 import android.support.test.filters.SmallTest; 9 import android.support.test.filters.SmallTest;
10 import android.test.InstrumentationTestCase;
11 import android.test.mock.MockPackageManager; 10 import android.test.mock.MockPackageManager;
12 11
12 import org.junit.After;
13 import org.junit.Assert;
14 import org.junit.Before;
15 import org.junit.Test;
16 import org.junit.runner.RunWith;
17
18 import org.chromium.base.test.BaseJUnit4ClassRunner;
13 import org.chromium.base.test.util.RetryOnFailure; 19 import org.chromium.base.test.util.RetryOnFailure;
14 import org.chromium.content.browser.test.util.Criteria; 20 import org.chromium.content.browser.test.util.Criteria;
15 import org.chromium.content.browser.test.util.CriteriaHelper; 21 import org.chromium.content.browser.test.util.CriteriaHelper;
16 22
17 /** 23 /**
18 * Tests the InstallerDelegate to make sure that it functions correctly and resp onds to changes 24 * Tests the InstallerDelegate to make sure that it functions correctly and resp onds to changes
19 * in the PackageManager. 25 * in the PackageManager.
20 */ 26 */
21 public class InstallerDelegateTest extends InstrumentationTestCase 27 @RunWith(BaseJUnit4ClassRunner.class)
22 implements InstallerDelegate.Observer{ 28 public class InstallerDelegateTest implements InstallerDelegate.Observer {
23 private static final String MOCK_PACKAGE_NAME = "mock.package.name"; 29 private static final String MOCK_PACKAGE_NAME = "mock.package.name";
24 30
25 /** 31 /**
26 * Returns a mocked set of installed packages. 32 * Returns a mocked set of installed packages.
27 */ 33 */
28 public static class TestPackageManager extends MockPackageManager { 34 public static class TestPackageManager extends MockPackageManager {
29 public boolean isInstalled = false; 35 public boolean isInstalled = false;
30 36
31 @Override 37 @Override
32 public PackageInfo getPackageInfo(String packageName, int flags) 38 public PackageInfo getPackageInfo(String packageName, int flags)
(...skipping 15 matching lines...) Expand all
48 private boolean mResultFinished; 54 private boolean mResultFinished;
49 private InstallerDelegate mResultDelegate; 55 private InstallerDelegate mResultDelegate;
50 private boolean mResultSuccess; 56 private boolean mResultSuccess;
51 private boolean mInstallStarted; 57 private boolean mInstallStarted;
52 58
53 @Override 59 @Override
54 public void onInstallFinished(InstallerDelegate delegate, boolean success) { 60 public void onInstallFinished(InstallerDelegate delegate, boolean success) {
55 mResultDelegate = delegate; 61 mResultDelegate = delegate;
56 mResultSuccess = success; 62 mResultSuccess = success;
57 mResultFinished = true; 63 mResultFinished = true;
58 assertTrue(mInstallStarted); 64 Assert.assertTrue(mInstallStarted);
59 } 65 }
60 66
61 @Override 67 @Before
62 public void setUp() throws Exception { 68 public void setUp() throws Exception {
63 super.setUp();
64
65 mPackageManager = new TestPackageManager(); 69 mPackageManager = new TestPackageManager();
66 70
67 // Create a thread for the InstallerDelegate to run on. We need this th read because the 71 // Create a thread for the InstallerDelegate to run on. We need this th read because the
68 // InstallerDelegate's handler fails to be processed otherwise. 72 // InstallerDelegate's handler fails to be processed otherwise.
69 mThread = new HandlerThread("InstallerDelegateTest thread"); 73 mThread = new HandlerThread("InstallerDelegateTest thread");
70 mThread.start(); 74 mThread.start();
71 mTestDelegate = new InstallerDelegate( 75 mTestDelegate = new InstallerDelegate(
72 mThread.getLooper(), mPackageManager, this, MOCK_PACKAGE_NAME); 76 mThread.getLooper(), mPackageManager, this, MOCK_PACKAGE_NAME);
73 77
74 // Clear out the results from last time. 78 // Clear out the results from last time.
75 mResultDelegate = null; 79 mResultDelegate = null;
76 mResultSuccess = false; 80 mResultSuccess = false;
77 mResultFinished = false; 81 mResultFinished = false;
78 } 82 }
79 83
80 @Override 84 @After
81 public void tearDown() throws Exception { 85 public void tearDown() throws Exception {
82 mThread.quit(); 86 mThread.quit();
83 super.tearDown();
84 } 87 }
85 88
86 private void startMonitoring() { 89 private void startMonitoring() {
87 mTestDelegate.start(); 90 mTestDelegate.start();
88 mInstallStarted = true; 91 mInstallStarted = true;
89 } 92 }
90 93
91 private void checkResults(boolean expectedResult) { 94 private void checkResults(boolean expectedResult) {
92 CriteriaHelper.pollInstrumentationThread(new Criteria() { 95 CriteriaHelper.pollInstrumentationThread(new Criteria() {
93 @Override 96 @Override
94 public boolean isSatisfied() { 97 public boolean isSatisfied() {
95 return !mTestDelegate.isRunning() && mResultFinished; 98 return !mTestDelegate.isRunning() && mResultFinished;
96 } 99 }
97 }); 100 });
98 101
99 assertEquals(expectedResult, mResultSuccess); 102 Assert.assertEquals(expectedResult, mResultSuccess);
100 assertEquals(mTestDelegate, mResultDelegate); 103 Assert.assertEquals(mTestDelegate, mResultDelegate);
101 } 104 }
102 105
103 /** 106 /**
104 * Tests what happens when the InstallerDelegate detects that the package ha s successfully 107 * Tests what happens when the InstallerDelegate detects that the package ha s successfully
105 * been installed. 108 * been installed.
106 */ 109 */
110 @Test
107 @SmallTest 111 @SmallTest
108 public void testInstallSuccessful() { 112 public void testInstallSuccessful() {
109 mTestDelegate.setTimingForTests(1, 5000); 113 mTestDelegate.setTimingForTests(1, 5000);
110 startMonitoring(); 114 startMonitoring();
111 115
112 assertFalse(mResultSuccess); 116 Assert.assertFalse(mResultSuccess);
113 assertNull(mResultDelegate); 117 Assert.assertNull(mResultDelegate);
114 assertFalse(mResultFinished); 118 Assert.assertFalse(mResultFinished);
115 119
116 mPackageManager.isInstalled = true; 120 mPackageManager.isInstalled = true;
117 checkResults(true); 121 checkResults(true);
118 } 122 }
119 123
120 /** 124 /**
121 * Tests what happens when the InstallerDelegate task is canceled. 125 * Tests what happens when the InstallerDelegate task is canceled.
122 */ 126 */
127 @Test
123 @SmallTest 128 @SmallTest
124 public void testInstallWaitUntilCancel() { 129 public void testInstallWaitUntilCancel() {
125 mTestDelegate.setTimingForTests(1, 5000); 130 mTestDelegate.setTimingForTests(1, 5000);
126 startMonitoring(); 131 startMonitoring();
127 132
128 assertFalse(mResultSuccess); 133 Assert.assertFalse(mResultSuccess);
129 assertNull(mResultDelegate); 134 Assert.assertNull(mResultDelegate);
130 assertFalse(mResultFinished); 135 Assert.assertFalse(mResultFinished);
131 136
132 mTestDelegate.cancel(); 137 mTestDelegate.cancel();
133 checkResults(false); 138 checkResults(false);
134 } 139 }
135 140
136 /** 141 /**
137 * Tests what happens when the InstallerDelegate times out. 142 * Tests what happens when the InstallerDelegate times out.
138 */ 143 */
144 @Test
139 @SmallTest 145 @SmallTest
140 public void testInstallTimeout() { 146 public void testInstallTimeout() {
141 mTestDelegate.setTimingForTests(1, 50); 147 mTestDelegate.setTimingForTests(1, 50);
142 startMonitoring(); 148 startMonitoring();
143 checkResults(false); 149 checkResults(false);
144 } 150 }
145 151
146 /** 152 /**
147 * Makes sure that the runnable isn't called until returning from start(). 153 * Makes sure that the runnable isn't called until returning from start().
148 */ 154 */
155 @Test
149 @SmallTest 156 @SmallTest
150 @RetryOnFailure 157 @RetryOnFailure
151 public void testRunnableRaceCondition() { 158 public void testRunnableRaceCondition() {
152 mPackageManager.isInstalled = true; 159 mPackageManager.isInstalled = true;
153 mTestDelegate.setTimingForTests(1, 5000); 160 mTestDelegate.setTimingForTests(1, 5000);
154 startMonitoring(); 161 startMonitoring();
155 checkResults(true); 162 checkResults(true);
156 } 163 }
157 } 164 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698