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

Unified Diff: chrome/android/javatests/src/org/chromium/chrome/browser/invalidation/InvalidationControllerTest.java

Issue 54923003: Support for shared invalidator client IDs (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix compile issue Created 7 years, 1 month 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/src/org/chromium/chrome/browser/invalidation/InvalidationControllerTest.java
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/invalidation/InvalidationControllerTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/invalidation/InvalidationControllerTest.java
index aada9f28d2a095a9884f5da939e1e2e47f50212a..3e05ffb618987fff47ab2e83ae039b2ef492534c 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/invalidation/InvalidationControllerTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/invalidation/InvalidationControllerTest.java
@@ -19,6 +19,8 @@ import org.chromium.base.ActivityStatus;
import org.chromium.base.CollectionUtil;
import org.chromium.base.test.util.AdvancedMockContext;
import org.chromium.base.test.util.Feature;
+import org.chromium.chrome.browser.identity.UniqueIdentificationGenerator;
+import org.chromium.chrome.browser.identity.UniqueIdentificationGeneratorFactory;
import org.chromium.sync.internal_api.pub.base.ModelType;
import org.chromium.sync.notifier.InvalidationIntentProtocol;
import org.chromium.sync.notifier.InvalidationPreferences;
@@ -28,6 +30,7 @@ import org.chromium.sync.signin.AccountManagerHelper;
import org.chromium.sync.signin.ChromeSigninController;
import org.chromium.sync.test.util.MockSyncContentResolverDelegate;
+import java.util.Arrays;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
@@ -35,6 +38,8 @@ import java.util.Set;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicReference;
+import javax.annotation.Nullable;
+
/**
* Tests for the {@link InvalidationController}.
*/
@@ -60,7 +65,7 @@ public class InvalidationControllerTest extends InstrumentationTestCase {
assertEquals(1, mContext.getNumStartedIntents());
Intent intent = mContext.getStartedIntent(0);
validateIntentComponent(intent);
- assertNull(intent.getExtras());
+ assertTrue(intent.hasExtra(InvalidationIntentProtocol.EXTRA_CLIENT_NAME));
}
@SmallTest
@@ -70,7 +75,8 @@ public class InvalidationControllerTest extends InstrumentationTestCase {
assertEquals(1, mContext.getNumStartedIntents());
Intent intent = mContext.getStartedIntent(0);
validateIntentComponent(intent);
- assertEquals(1, intent.getExtras().size());
+ assertEquals(2, intent.getExtras().size());
+ assertTrue(intent.hasExtra(InvalidationIntentProtocol.EXTRA_CLIENT_NAME));
assertTrue(intent.hasExtra(InvalidationIntentProtocol.EXTRA_STOP));
assertTrue(intent.getBooleanExtra(InvalidationIntentProtocol.EXTRA_STOP, false));
}
@@ -84,7 +90,6 @@ public class InvalidationControllerTest extends InstrumentationTestCase {
assertEquals(1, mContext.getNumStartedIntents());
Intent intent = mContext.getStartedIntent(0);
validateIntentComponent(intent);
- assertNull(intent.getExtras());
}
@SmallTest
@@ -105,7 +110,8 @@ public class InvalidationControllerTest extends InstrumentationTestCase {
assertEquals(1, mContext.getNumStartedIntents());
Intent intent = mContext.getStartedIntent(0);
validateIntentComponent(intent);
- assertEquals(1, intent.getExtras().size());
+ assertEquals(2, intent.getExtras().size());
+ assertTrue(intent.hasExtra(InvalidationIntentProtocol.EXTRA_CLIENT_NAME));
assertTrue(intent.hasExtra(InvalidationIntentProtocol.EXTRA_STOP));
assertTrue(intent.getBooleanExtra(InvalidationIntentProtocol.EXTRA_STOP, false));
}
@@ -312,6 +318,41 @@ public class InvalidationControllerTest extends InstrumentationTestCase {
assertTrue(objectIds.contains(ObjectId.newInstance(2, "b".getBytes())));
}
+ @SmallTest
+ @Feature({"Sync"})
+ public void testFallbackClientId() {
+ // Test that the InvalidationController consistently returns the same ID even when it has to
+ // resort to its "fallback" ID generation code.
+ InvalidationController controller = new InvalidationController(mContext);
+ byte[] id1 = controller.getInvalidatorClientId();
+ byte[] id2 = controller.getInvalidatorClientId();
+
+ assertTrue(Arrays.equals(id1, id2));
+
+ // Even if initialize the generator late, the ID will remain consistent.
+ registerHardCodedIdGenerator();
+
+ byte[] id3 = controller.getInvalidatorClientId();
+ assertTrue(Arrays.equals(id2, id3));
+ }
+
+ @SmallTest
+ @Feature({"Sync"})
+ public void testPreRegisteredClientId() {
+ registerHardCodedIdGenerator();
+
+ UniqueIdentificationGenerator generator =
+ UniqueIdentificationGeneratorFactory.getInstance(InvalidationController.ID_GENERATOR);
+ String generatorId = generator.getUniqueId(null);
+
+ InvalidationController controller = new InvalidationController(mContext);
+ byte[] id = controller.getInvalidatorClientId();
+ byte[] id2 = controller.getInvalidatorClientId();
+
+ assertTrue(Arrays.equals(generatorId.getBytes(), id));
+ assertTrue(Arrays.equals(id, id2));
+ }
+
/**
* Asserts that {@code intent} is destined for the correct component.
*/
@@ -350,4 +391,15 @@ public class InvalidationControllerTest extends InstrumentationTestCase {
return getBaseContext().getPackageManager();
}
}
+
+ private static void registerHardCodedIdGenerator() {
+ UniqueIdentificationGeneratorFactory.registerGenerator(
+ InvalidationController.ID_GENERATOR,
+ new UniqueIdentificationGenerator() {
+ public String getUniqueId(@Nullable String salt) {
+ return "Testable ID";
+ }
+ },
+ true);
+ }
}

Powered by Google App Engine
This is Rietveld 408576698