Index: chrome/android/javatests/src/org/chromium/chrome/browser/invalidation/DelayedInvalidationsControllerTest.java |
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/invalidation/DelayedInvalidationsControllerTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/invalidation/DelayedInvalidationsControllerTest.java |
index 221a061f86efc21534027c999b678f6cf3c0dcc3..4fccac7c3a68026b12c080cc4d01ddf0b8e2abbe 100644 |
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/invalidation/DelayedInvalidationsControllerTest.java |
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/invalidation/DelayedInvalidationsControllerTest.java |
@@ -9,12 +9,21 @@ import android.app.Activity; |
import android.content.ContentResolver; |
import android.content.Context; |
import android.os.Bundle; |
+import android.support.test.InstrumentationRegistry; |
+import android.support.test.annotation.UiThreadTest; |
import android.support.test.filters.SmallTest; |
-import android.test.InstrumentationTestCase; |
+import android.support.test.rule.UiThreadTestRule; |
+ |
+import org.junit.Assert; |
+import org.junit.Before; |
+import org.junit.Rule; |
+import org.junit.Test; |
+import org.junit.runner.RunWith; |
import org.chromium.base.ActivityState; |
import org.chromium.base.ApplicationStatus; |
import org.chromium.base.test.util.Feature; |
+import org.chromium.chrome.test.ChromeJUnit4ClassRunner; |
import org.chromium.components.invalidation.PendingInvalidation; |
import java.util.List; |
@@ -22,7 +31,8 @@ import java.util.List; |
/** |
* Tests for DelayedInvalidationsController. |
*/ |
-public class DelayedInvalidationsControllerTest extends InstrumentationTestCase { |
+@RunWith(ChromeJUnit4ClassRunner.class) |
+public class DelayedInvalidationsControllerTest { |
private static final String TEST_ACCOUNT = "something@gmail.com"; |
private static final String OBJECT_ID = "object_id"; |
@@ -39,6 +49,9 @@ public class DelayedInvalidationsControllerTest extends InstrumentationTestCase |
private Context mContext; |
private Activity mPlaceholderActivity; |
+ @Rule |
+ public UiThreadTestRule mRule = new UiThreadTestRule(); |
+ |
/** |
* Mocks {@link DelayedInvalidationsController} for testing. |
* It intercepts access to the Android Sync Adapter. |
@@ -57,11 +70,10 @@ public class DelayedInvalidationsControllerTest extends InstrumentationTestCase |
} |
} |
- @Override |
- protected void setUp() throws Exception { |
- super.setUp(); |
+ @Before |
+ public void setUp() throws Exception { |
mController = new MockDelayedInvalidationsController(); |
- mContext = getInstrumentation().getTargetContext(); |
+ mContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); |
mPlaceholderActivity = new Activity(); |
setApplicationState(ActivityState.CREATED); |
@@ -72,41 +84,49 @@ public class DelayedInvalidationsControllerTest extends InstrumentationTestCase |
ApplicationStatus.onStateChangeForTesting(mPlaceholderActivity, newState); |
} |
+ @Test |
@SmallTest |
@Feature({"Sync"}) |
+ @UiThreadTest |
public void testManualSyncRequestsShouldAlwaysTriggerSync() throws InterruptedException { |
// Sync should trigger for manual requests when Chrome is in the foreground. |
Bundle extras = new Bundle(); |
extras.putBoolean(ContentResolver.SYNC_EXTRAS_MANUAL, true); |
- assertTrue(mController.shouldNotifyInvalidation(extras)); |
+ Assert.assertTrue(mController.shouldNotifyInvalidation(extras)); |
// Sync should trigger for manual requests when Chrome is in the background. |
setApplicationState(ActivityState.STOPPED); |
extras.putBoolean(ContentResolver.SYNC_EXTRAS_MANUAL, true); |
- assertTrue(mController.shouldNotifyInvalidation(extras)); |
+ Assert.assertTrue(mController.shouldNotifyInvalidation(extras)); |
} |
+ @Test |
@SmallTest |
@Feature({"Sync", "Invalidation"}) |
+ @UiThreadTest |
public void testInvalidationsTriggeredWhenChromeIsInForeground() { |
- assertTrue(mController.shouldNotifyInvalidation(new Bundle())); |
+ Assert.assertTrue(mController.shouldNotifyInvalidation(new Bundle())); |
} |
+ @Test |
@SmallTest |
@Feature({"Sync", "Invalidation"}) |
+ @UiThreadTest |
public void testInvalidationsReceivedWhenChromeIsInBackgroundIsDelayed() |
throws InterruptedException { |
setApplicationState(ActivityState.STOPPED); |
- assertFalse(mController.shouldNotifyInvalidation(new Bundle())); |
+ Assert.assertFalse(mController.shouldNotifyInvalidation(new Bundle())); |
} |
+ @Test |
@SmallTest |
@Feature({"Sync", "Invalidation"}) |
+ @UiThreadTest |
public void testOnlySpecificInvalidationsTriggeredOnResume() throws InterruptedException { |
// First make sure there are no pending invalidations. |
mController.clearPendingInvalidations(mContext); |
- assertFalse(mController.notifyPendingInvalidations(mContext)); |
- assertFalse(mController.mInvalidated); |
+ Assert.assertFalse(mController.notifyPendingInvalidations(mContext)); |
+ Assert.assertFalse(mController.mInvalidated); |
// Create some invalidations. |
PendingInvalidation firstInv = |
@@ -116,31 +136,33 @@ public class DelayedInvalidationsControllerTest extends InstrumentationTestCase |
// Can't invalidate while Chrome is in the background. |
setApplicationState(ActivityState.STOPPED); |
- assertFalse(mController.shouldNotifyInvalidation(new Bundle())); |
+ Assert.assertFalse(mController.shouldNotifyInvalidation(new Bundle())); |
// Add multiple pending invalidations. |
mController.addPendingInvalidation(mContext, TEST_ACCOUNT, firstInv); |
mController.addPendingInvalidation(mContext, TEST_ACCOUNT, secondInv); |
// Make sure there are pending invalidations. |
- assertTrue(mController.notifyPendingInvalidations(mContext)); |
- assertTrue(mController.mInvalidated); |
+ Assert.assertTrue(mController.notifyPendingInvalidations(mContext)); |
+ Assert.assertTrue(mController.mInvalidated); |
// Ensure only specific invalidations are being notified. |
- assertEquals(2, mController.mBundles.size()); |
+ Assert.assertEquals(2, mController.mBundles.size()); |
PendingInvalidation parsedInv1 = new PendingInvalidation(mController.mBundles.get(0)); |
PendingInvalidation parsedInv2 = new PendingInvalidation(mController.mBundles.get(1)); |
- assertTrue(firstInv.equals(parsedInv1) ^ firstInv.equals(parsedInv2)); |
- assertTrue(secondInv.equals(parsedInv1) ^ secondInv.equals(parsedInv2)); |
+ Assert.assertTrue(firstInv.equals(parsedInv1) ^ firstInv.equals(parsedInv2)); |
+ Assert.assertTrue(secondInv.equals(parsedInv1) ^ secondInv.equals(parsedInv2)); |
} |
+ @Test |
@SmallTest |
@Feature({"Sync", "Invalidation"}) |
+ @UiThreadTest |
public void testAllInvalidationsTriggeredOnResume() throws InterruptedException { |
// First make sure there are no pending invalidations. |
mController.clearPendingInvalidations(mContext); |
- assertFalse(mController.notifyPendingInvalidations(mContext)); |
- assertFalse(mController.mInvalidated); |
+ Assert.assertFalse(mController.notifyPendingInvalidations(mContext)); |
+ Assert.assertFalse(mController.mInvalidated); |
// Create some invalidations. |
PendingInvalidation firstInv = |
@@ -148,11 +170,11 @@ public class DelayedInvalidationsControllerTest extends InstrumentationTestCase |
PendingInvalidation secondInv = |
new PendingInvalidation(OBJECT_ID_2, OBJECT_SRC_2, VERSION_2, PAYLOAD_2); |
PendingInvalidation allInvalidations = new PendingInvalidation(new Bundle()); |
- assertEquals(allInvalidations.mObjectSource, 0); |
+ Assert.assertEquals(allInvalidations.mObjectSource, 0); |
// Can't invalidate while Chrome is in the background. |
setApplicationState(ActivityState.STOPPED); |
- assertFalse(mController.shouldNotifyInvalidation(new Bundle())); |
+ Assert.assertFalse(mController.shouldNotifyInvalidation(new Bundle())); |
// Add multiple pending invalidations. |
mController.addPendingInvalidation(mContext, TEST_ACCOUNT, firstInv); |
@@ -160,11 +182,11 @@ public class DelayedInvalidationsControllerTest extends InstrumentationTestCase |
mController.addPendingInvalidation(mContext, TEST_ACCOUNT, secondInv); |
// Make sure there are pending invalidations. |
- assertTrue(mController.notifyPendingInvalidations(mContext)); |
- assertTrue(mController.mInvalidated); |
+ Assert.assertTrue(mController.notifyPendingInvalidations(mContext)); |
+ Assert.assertTrue(mController.mInvalidated); |
// As Invalidation for all ids has been received, it will supersede all other invalidations. |
- assertEquals(1, mController.mBundles.size()); |
- assertEquals(allInvalidations, new PendingInvalidation(mController.mBundles.get(0))); |
+ Assert.assertEquals(1, mController.mBundles.size()); |
+ Assert.assertEquals(allInvalidations, new PendingInvalidation(mController.mBundles.get(0))); |
} |
} |