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

Side by Side Diff: chrome/android/javatests/src/org/chromium/chrome/browser/invalidation/DelayedInvalidationsControllerTest.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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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.invalidation; 5 package org.chromium.chrome.browser.invalidation;
6 6
7 import android.accounts.Account; 7 import android.accounts.Account;
8 import android.app.Activity; 8 import android.app.Activity;
9 import android.content.ContentResolver; 9 import android.content.ContentResolver;
10 import android.content.Context; 10 import android.content.Context;
11 import android.os.Bundle; 11 import android.os.Bundle;
12 import android.support.test.InstrumentationRegistry;
13 import android.support.test.annotation.UiThreadTest;
12 import android.support.test.filters.SmallTest; 14 import android.support.test.filters.SmallTest;
13 import android.test.InstrumentationTestCase; 15 import android.support.test.rule.UiThreadTestRule;
16
17 import org.junit.Assert;
18 import org.junit.Before;
19 import org.junit.Rule;
20 import org.junit.Test;
21 import org.junit.runner.RunWith;
14 22
15 import org.chromium.base.ActivityState; 23 import org.chromium.base.ActivityState;
16 import org.chromium.base.ApplicationStatus; 24 import org.chromium.base.ApplicationStatus;
17 import org.chromium.base.test.util.Feature; 25 import org.chromium.base.test.util.Feature;
26 import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
18 import org.chromium.components.invalidation.PendingInvalidation; 27 import org.chromium.components.invalidation.PendingInvalidation;
19 28
20 import java.util.List; 29 import java.util.List;
21 30
22 /** 31 /**
23 * Tests for DelayedInvalidationsController. 32 * Tests for DelayedInvalidationsController.
24 */ 33 */
25 public class DelayedInvalidationsControllerTest extends InstrumentationTestCase { 34 @RunWith(ChromeJUnit4ClassRunner.class)
35 public class DelayedInvalidationsControllerTest {
26 private static final String TEST_ACCOUNT = "something@gmail.com"; 36 private static final String TEST_ACCOUNT = "something@gmail.com";
27 37
28 private static final String OBJECT_ID = "object_id"; 38 private static final String OBJECT_ID = "object_id";
29 private static final int OBJECT_SRC = 4; 39 private static final int OBJECT_SRC = 4;
30 private static final long VERSION = 1L; 40 private static final long VERSION = 1L;
31 private static final String PAYLOAD = "payload"; 41 private static final String PAYLOAD = "payload";
32 42
33 private static final String OBJECT_ID_2 = "object_id_2"; 43 private static final String OBJECT_ID_2 = "object_id_2";
34 private static final int OBJECT_SRC_2 = 5; 44 private static final int OBJECT_SRC_2 = 5;
35 private static final long VERSION_2 = 2L; 45 private static final long VERSION_2 = 2L;
36 private static final String PAYLOAD_2 = "payload_2"; 46 private static final String PAYLOAD_2 = "payload_2";
37 47
38 private MockDelayedInvalidationsController mController; 48 private MockDelayedInvalidationsController mController;
39 private Context mContext; 49 private Context mContext;
40 private Activity mPlaceholderActivity; 50 private Activity mPlaceholderActivity;
41 51
52 @Rule
53 public UiThreadTestRule mRule = new UiThreadTestRule();
54
42 /** 55 /**
43 * Mocks {@link DelayedInvalidationsController} for testing. 56 * Mocks {@link DelayedInvalidationsController} for testing.
44 * It intercepts access to the Android Sync Adapter. 57 * It intercepts access to the Android Sync Adapter.
45 */ 58 */
46 private static class MockDelayedInvalidationsController extends DelayedInval idationsController { 59 private static class MockDelayedInvalidationsController extends DelayedInval idationsController {
47 private boolean mInvalidated = false; 60 private boolean mInvalidated = false;
48 private List<Bundle> mBundles = null; 61 private List<Bundle> mBundles = null;
49 62
50 private MockDelayedInvalidationsController() {} 63 private MockDelayedInvalidationsController() {}
51 64
52 @Override 65 @Override
53 void notifyInvalidationsOnBackgroundThread( 66 void notifyInvalidationsOnBackgroundThread(
54 Context context, Account account, List<Bundle> bundles) { 67 Context context, Account account, List<Bundle> bundles) {
55 mInvalidated = true; 68 mInvalidated = true;
56 mBundles = bundles; 69 mBundles = bundles;
57 } 70 }
58 } 71 }
59 72
60 @Override 73 @Before
61 protected void setUp() throws Exception { 74 public void setUp() throws Exception {
62 super.setUp();
63 mController = new MockDelayedInvalidationsController(); 75 mController = new MockDelayedInvalidationsController();
64 mContext = getInstrumentation().getTargetContext(); 76 mContext = InstrumentationRegistry.getInstrumentation().getTargetContext ();
65 77
66 mPlaceholderActivity = new Activity(); 78 mPlaceholderActivity = new Activity();
67 setApplicationState(ActivityState.CREATED); 79 setApplicationState(ActivityState.CREATED);
68 setApplicationState(ActivityState.RESUMED); 80 setApplicationState(ActivityState.RESUMED);
69 } 81 }
70 82
71 private void setApplicationState(int newState) { 83 private void setApplicationState(int newState) {
72 ApplicationStatus.onStateChangeForTesting(mPlaceholderActivity, newState ); 84 ApplicationStatus.onStateChangeForTesting(mPlaceholderActivity, newState );
73 } 85 }
74 86
87 @Test
75 @SmallTest 88 @SmallTest
76 @Feature({"Sync"}) 89 @Feature({"Sync"})
90 @UiThreadTest
77 public void testManualSyncRequestsShouldAlwaysTriggerSync() throws Interrupt edException { 91 public void testManualSyncRequestsShouldAlwaysTriggerSync() throws Interrupt edException {
78 // Sync should trigger for manual requests when Chrome is in the foregro und. 92 // Sync should trigger for manual requests when Chrome is in the foregro und.
79 Bundle extras = new Bundle(); 93 Bundle extras = new Bundle();
80 extras.putBoolean(ContentResolver.SYNC_EXTRAS_MANUAL, true); 94 extras.putBoolean(ContentResolver.SYNC_EXTRAS_MANUAL, true);
81 assertTrue(mController.shouldNotifyInvalidation(extras)); 95 Assert.assertTrue(mController.shouldNotifyInvalidation(extras));
82 96
83 // Sync should trigger for manual requests when Chrome is in the backgro und. 97 // Sync should trigger for manual requests when Chrome is in the backgro und.
84 setApplicationState(ActivityState.STOPPED); 98 setApplicationState(ActivityState.STOPPED);
85 extras.putBoolean(ContentResolver.SYNC_EXTRAS_MANUAL, true); 99 extras.putBoolean(ContentResolver.SYNC_EXTRAS_MANUAL, true);
86 assertTrue(mController.shouldNotifyInvalidation(extras)); 100 Assert.assertTrue(mController.shouldNotifyInvalidation(extras));
87 } 101 }
88 102
103 @Test
89 @SmallTest 104 @SmallTest
90 @Feature({"Sync", "Invalidation"}) 105 @Feature({"Sync", "Invalidation"})
106 @UiThreadTest
91 public void testInvalidationsTriggeredWhenChromeIsInForeground() { 107 public void testInvalidationsTriggeredWhenChromeIsInForeground() {
92 assertTrue(mController.shouldNotifyInvalidation(new Bundle())); 108 Assert.assertTrue(mController.shouldNotifyInvalidation(new Bundle()));
93 } 109 }
94 110
111 @Test
95 @SmallTest 112 @SmallTest
96 @Feature({"Sync", "Invalidation"}) 113 @Feature({"Sync", "Invalidation"})
114 @UiThreadTest
97 public void testInvalidationsReceivedWhenChromeIsInBackgroundIsDelayed() 115 public void testInvalidationsReceivedWhenChromeIsInBackgroundIsDelayed()
98 throws InterruptedException { 116 throws InterruptedException {
99 setApplicationState(ActivityState.STOPPED); 117 setApplicationState(ActivityState.STOPPED);
100 assertFalse(mController.shouldNotifyInvalidation(new Bundle())); 118 Assert.assertFalse(mController.shouldNotifyInvalidation(new Bundle()));
101 } 119 }
102 120
121 @Test
103 @SmallTest 122 @SmallTest
104 @Feature({"Sync", "Invalidation"}) 123 @Feature({"Sync", "Invalidation"})
124 @UiThreadTest
105 public void testOnlySpecificInvalidationsTriggeredOnResume() throws Interrup tedException { 125 public void testOnlySpecificInvalidationsTriggeredOnResume() throws Interrup tedException {
106 // First make sure there are no pending invalidations. 126 // First make sure there are no pending invalidations.
107 mController.clearPendingInvalidations(mContext); 127 mController.clearPendingInvalidations(mContext);
108 assertFalse(mController.notifyPendingInvalidations(mContext)); 128 Assert.assertFalse(mController.notifyPendingInvalidations(mContext));
109 assertFalse(mController.mInvalidated); 129 Assert.assertFalse(mController.mInvalidated);
110 130
111 // Create some invalidations. 131 // Create some invalidations.
112 PendingInvalidation firstInv = 132 PendingInvalidation firstInv =
113 new PendingInvalidation(OBJECT_ID, OBJECT_SRC, VERSION, PAYLOAD) ; 133 new PendingInvalidation(OBJECT_ID, OBJECT_SRC, VERSION, PAYLOAD) ;
114 PendingInvalidation secondInv = 134 PendingInvalidation secondInv =
115 new PendingInvalidation(OBJECT_ID_2, OBJECT_SRC_2, VERSION_2, PA YLOAD_2); 135 new PendingInvalidation(OBJECT_ID_2, OBJECT_SRC_2, VERSION_2, PA YLOAD_2);
116 136
117 // Can't invalidate while Chrome is in the background. 137 // Can't invalidate while Chrome is in the background.
118 setApplicationState(ActivityState.STOPPED); 138 setApplicationState(ActivityState.STOPPED);
119 assertFalse(mController.shouldNotifyInvalidation(new Bundle())); 139 Assert.assertFalse(mController.shouldNotifyInvalidation(new Bundle()));
120 140
121 // Add multiple pending invalidations. 141 // Add multiple pending invalidations.
122 mController.addPendingInvalidation(mContext, TEST_ACCOUNT, firstInv); 142 mController.addPendingInvalidation(mContext, TEST_ACCOUNT, firstInv);
123 mController.addPendingInvalidation(mContext, TEST_ACCOUNT, secondInv); 143 mController.addPendingInvalidation(mContext, TEST_ACCOUNT, secondInv);
124 144
125 // Make sure there are pending invalidations. 145 // Make sure there are pending invalidations.
126 assertTrue(mController.notifyPendingInvalidations(mContext)); 146 Assert.assertTrue(mController.notifyPendingInvalidations(mContext));
127 assertTrue(mController.mInvalidated); 147 Assert.assertTrue(mController.mInvalidated);
128 148
129 // Ensure only specific invalidations are being notified. 149 // Ensure only specific invalidations are being notified.
130 assertEquals(2, mController.mBundles.size()); 150 Assert.assertEquals(2, mController.mBundles.size());
131 PendingInvalidation parsedInv1 = new PendingInvalidation(mController.mBu ndles.get(0)); 151 PendingInvalidation parsedInv1 = new PendingInvalidation(mController.mBu ndles.get(0));
132 PendingInvalidation parsedInv2 = new PendingInvalidation(mController.mBu ndles.get(1)); 152 PendingInvalidation parsedInv2 = new PendingInvalidation(mController.mBu ndles.get(1));
133 assertTrue(firstInv.equals(parsedInv1) ^ firstInv.equals(parsedInv2)); 153 Assert.assertTrue(firstInv.equals(parsedInv1) ^ firstInv.equals(parsedIn v2));
134 assertTrue(secondInv.equals(parsedInv1) ^ secondInv.equals(parsedInv2)); 154 Assert.assertTrue(secondInv.equals(parsedInv1) ^ secondInv.equals(parsed Inv2));
135 } 155 }
136 156
157 @Test
137 @SmallTest 158 @SmallTest
138 @Feature({"Sync", "Invalidation"}) 159 @Feature({"Sync", "Invalidation"})
160 @UiThreadTest
139 public void testAllInvalidationsTriggeredOnResume() throws InterruptedExcept ion { 161 public void testAllInvalidationsTriggeredOnResume() throws InterruptedExcept ion {
140 // First make sure there are no pending invalidations. 162 // First make sure there are no pending invalidations.
141 mController.clearPendingInvalidations(mContext); 163 mController.clearPendingInvalidations(mContext);
142 assertFalse(mController.notifyPendingInvalidations(mContext)); 164 Assert.assertFalse(mController.notifyPendingInvalidations(mContext));
143 assertFalse(mController.mInvalidated); 165 Assert.assertFalse(mController.mInvalidated);
144 166
145 // Create some invalidations. 167 // Create some invalidations.
146 PendingInvalidation firstInv = 168 PendingInvalidation firstInv =
147 new PendingInvalidation(OBJECT_ID, OBJECT_SRC, VERSION, PAYLOAD) ; 169 new PendingInvalidation(OBJECT_ID, OBJECT_SRC, VERSION, PAYLOAD) ;
148 PendingInvalidation secondInv = 170 PendingInvalidation secondInv =
149 new PendingInvalidation(OBJECT_ID_2, OBJECT_SRC_2, VERSION_2, PA YLOAD_2); 171 new PendingInvalidation(OBJECT_ID_2, OBJECT_SRC_2, VERSION_2, PA YLOAD_2);
150 PendingInvalidation allInvalidations = new PendingInvalidation(new Bundl e()); 172 PendingInvalidation allInvalidations = new PendingInvalidation(new Bundl e());
151 assertEquals(allInvalidations.mObjectSource, 0); 173 Assert.assertEquals(allInvalidations.mObjectSource, 0);
152 174
153 // Can't invalidate while Chrome is in the background. 175 // Can't invalidate while Chrome is in the background.
154 setApplicationState(ActivityState.STOPPED); 176 setApplicationState(ActivityState.STOPPED);
155 assertFalse(mController.shouldNotifyInvalidation(new Bundle())); 177 Assert.assertFalse(mController.shouldNotifyInvalidation(new Bundle()));
156 178
157 // Add multiple pending invalidations. 179 // Add multiple pending invalidations.
158 mController.addPendingInvalidation(mContext, TEST_ACCOUNT, firstInv); 180 mController.addPendingInvalidation(mContext, TEST_ACCOUNT, firstInv);
159 mController.addPendingInvalidation(mContext, TEST_ACCOUNT, allInvalidati ons); 181 mController.addPendingInvalidation(mContext, TEST_ACCOUNT, allInvalidati ons);
160 mController.addPendingInvalidation(mContext, TEST_ACCOUNT, secondInv); 182 mController.addPendingInvalidation(mContext, TEST_ACCOUNT, secondInv);
161 183
162 // Make sure there are pending invalidations. 184 // Make sure there are pending invalidations.
163 assertTrue(mController.notifyPendingInvalidations(mContext)); 185 Assert.assertTrue(mController.notifyPendingInvalidations(mContext));
164 assertTrue(mController.mInvalidated); 186 Assert.assertTrue(mController.mInvalidated);
165 187
166 // As Invalidation for all ids has been received, it will supersede all other invalidations. 188 // As Invalidation for all ids has been received, it will supersede all other invalidations.
167 assertEquals(1, mController.mBundles.size()); 189 Assert.assertEquals(1, mController.mBundles.size());
168 assertEquals(allInvalidations, new PendingInvalidation(mController.mBund les.get(0))); 190 Assert.assertEquals(allInvalidations, new PendingInvalidation(mControlle r.mBundles.get(0)));
169 } 191 }
170 } 192 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698