| Index: sync/android/javatests/src/org/chromium/sync/notifier/InvalidationServiceTest.java
|
| diff --git a/sync/android/javatests/src/org/chromium/sync/notifier/InvalidationServiceTest.java b/sync/android/javatests/src/org/chromium/sync/notifier/InvalidationServiceTest.java
|
| index f0d021a019b17be7be642a402a2b325ba13f891f..b4b536f345f53a30d9c3d75532f66382d0f64c44 100644
|
| --- a/sync/android/javatests/src/org/chromium/sync/notifier/InvalidationServiceTest.java
|
| +++ b/sync/android/javatests/src/org/chromium/sync/notifier/InvalidationServiceTest.java
|
| @@ -41,6 +41,9 @@ public class InvalidationServiceTest extends ServiceTestCase<TestableInvalidatio
|
| /** Id used when creating clients. */
|
| private static final byte[] CLIENT_ID = new byte[]{0, 4, 7};
|
|
|
| + /** Id used to uniquely name this client instance. */
|
| + private static final byte[] TEST_CLIENT_NAME = "UNIQUE_CLIENT_NAME".getBytes();
|
| +
|
| /** Intents provided to {@link #startService}. */
|
| private List<Intent> mStartServiceIntents;
|
|
|
| @@ -65,7 +68,7 @@ public class InvalidationServiceTest extends ServiceTestCase<TestableInvalidatio
|
| @Override
|
| public void tearDown() throws Exception {
|
| if (InvalidationService.getIsClientStartedForTest()) {
|
| - Intent stopIntent = new Intent().putExtra(InvalidationIntentProtocol.EXTRA_STOP, true);
|
| + Intent stopIntent = createStopIntent();
|
| getService().onHandleIntent(stopIntent);
|
| }
|
| assertFalse(InvalidationService.getIsClientStartedForTest());
|
| @@ -314,7 +317,7 @@ public class InvalidationServiceTest extends ServiceTestCase<TestableInvalidatio
|
| // Client needs to be started for the permament error to trigger and stop.
|
| getService().setShouldRunStates(true, true);
|
| getService().onCreate();
|
| - getService().onHandleIntent(new Intent());
|
| + getService().onHandleIntent(createStartIntent());
|
| getService().mStartedServices.clear(); // Discard start intent.
|
|
|
| // Transient error.
|
| @@ -465,11 +468,11 @@ public class InvalidationServiceTest extends ServiceTestCase<TestableInvalidatio
|
| getService().setShouldRunStates(true, true);
|
| getService().onCreate();
|
|
|
| - Intent startIntent = new Intent();
|
| + Intent startIntent = createStartIntent();
|
| getService().onHandleIntent(startIntent);
|
| assertTrue(InvalidationService.getIsClientStartedForTest());
|
|
|
| - Intent stopIntent = new Intent().putExtra(InvalidationIntentProtocol.EXTRA_STOP, true);
|
| + Intent stopIntent = createStopIntent();
|
| getService().onHandleIntent(stopIntent);
|
| assertFalse(InvalidationService.getIsClientStartedForTest());
|
|
|
| @@ -491,7 +494,7 @@ public class InvalidationServiceTest extends ServiceTestCase<TestableInvalidatio
|
| getService().onCreate();
|
|
|
| // Start the service.
|
| - Intent startIntent = new Intent();
|
| + Intent startIntent = createStartIntent();
|
| getService().onHandleIntent(startIntent);
|
| assertTrue(InvalidationService.getIsClientStartedForTest());
|
|
|
| @@ -523,8 +526,7 @@ public class InvalidationServiceTest extends ServiceTestCase<TestableInvalidatio
|
| Set<ModelType> desiredRegistrations = CollectionUtil.newHashSet(
|
| ModelType.BOOKMARK, ModelType.SESSION);
|
| Account account = AccountManagerHelper.createAccountFromName("test@example.com");
|
| - Intent registrationIntent = InvalidationIntentProtocol.createRegisterIntent(account, false,
|
| - desiredRegistrations);
|
| + Intent registrationIntent = createRegisterIntent(account, false, desiredRegistrations);
|
| getService().onHandleIntent(registrationIntent);
|
|
|
| // Verify client started and state written.
|
| @@ -539,8 +541,7 @@ public class InvalidationServiceTest extends ServiceTestCase<TestableInvalidatio
|
|
|
| // Send another registration-change intent, this type with all-types set to true, and
|
| // verify that the on-disk state is updated and that no addition Intents are issued.
|
| - getService().onHandleIntent(
|
| - InvalidationIntentProtocol.createRegisterIntent(account, true, null));
|
| + getService().onHandleIntent(createRegisterIntent(account, true, null));
|
| assertEquals(account, invPrefs.getSavedSyncedAccount());
|
| assertEquals(CollectionUtil.newHashSet(ModelType.ALL_TYPES_TYPE),
|
| invPrefs.getSavedSyncedTypes());
|
| @@ -550,8 +551,7 @@ public class InvalidationServiceTest extends ServiceTestCase<TestableInvalidatio
|
| // and verify that it both updates the account, stops thye existing client, and
|
| // starts a new client.
|
| Account account2 = AccountManagerHelper.createAccountFromName("test2@example.com");
|
| - getService().onHandleIntent(
|
| - InvalidationIntentProtocol.createRegisterIntent(account2, true, null));
|
| + getService().onHandleIntent(createRegisterIntent(account2, true, null));
|
| assertEquals(account2, invPrefs.getSavedSyncedAccount());
|
| assertEquals(3, mStartServiceIntents.size());
|
| assertTrue(isAndroidListenerStartIntent(mStartServiceIntents.get(0)));
|
| @@ -614,15 +614,14 @@ public class InvalidationServiceTest extends ServiceTestCase<TestableInvalidatio
|
| objectIds.add(ObjectId.newInstance(1, "obj1".getBytes()));
|
| objectIds.add(ObjectId.newInstance(2, "obj2".getBytes()));
|
| Intent registrationIntent =
|
| - InvalidationIntentProtocol.createRegisterIntent(account, new int[] {1, 2},
|
| - new String[] {"obj1", "obj2"});
|
| + createRegisterIntent(account, new int[] {1, 2}, new String[] {"obj1", "obj2"});
|
| getService().onHandleIntent(registrationIntent);
|
| assertTrue(expectedObjectIdsRegistered(types, objectIds, false /* isReady */));
|
|
|
| // Register for some types.
|
| types.add(ModelType.BOOKMARK);
|
| types.add(ModelType.SESSION);
|
| - registrationIntent = InvalidationIntentProtocol.createRegisterIntent(account, false, types);
|
| + registrationIntent = createRegisterIntent(account, false, types);
|
| getService().onHandleIntent(registrationIntent);
|
| assertTrue(expectedObjectIdsRegistered(types, objectIds, false /* isReady */));
|
|
|
| @@ -632,43 +631,40 @@ public class InvalidationServiceTest extends ServiceTestCase<TestableInvalidatio
|
|
|
| // Change object id registration with types registered.
|
| objectIds.add(ObjectId.newInstance(3, "obj3".getBytes()));
|
| - registrationIntent =
|
| - InvalidationIntentProtocol.createRegisterIntent(account, new int[] {1, 2, 3},
|
| - new String[] {"obj1", "obj2", "obj3"});
|
| + registrationIntent = createRegisterIntent(
|
| + account, new int[] {1, 2, 3}, new String[] {"obj1", "obj2", "obj3"});
|
| getService().onHandleIntent(registrationIntent);
|
| assertTrue(expectedObjectIdsRegistered(types, objectIds, true /* isReady */));
|
|
|
| // Change type registration with object ids registered.
|
| types.remove(ModelType.BOOKMARK);
|
| - registrationIntent = InvalidationIntentProtocol.createRegisterIntent(account, false, types);
|
| + registrationIntent = createRegisterIntent(account, false, types);
|
| getService().onHandleIntent(registrationIntent);
|
| assertTrue(expectedObjectIdsRegistered(types, objectIds, true /* isReady */));
|
|
|
| // Unregister all types.
|
| types.clear();
|
| - registrationIntent = InvalidationIntentProtocol.createRegisterIntent(account, false, types);
|
| + registrationIntent = createRegisterIntent(account, false, types);
|
| getService().onHandleIntent(registrationIntent);
|
| assertTrue(expectedObjectIdsRegistered(types, objectIds, true /* isReady */));
|
|
|
| // Change object id registration with no types registered.
|
| objectIds.remove(ObjectId.newInstance(2, "obj2".getBytes()));
|
| - registrationIntent =
|
| - InvalidationIntentProtocol.createRegisterIntent(account, new int[] {1, 3},
|
| - new String[] {"obj1", "obj3"});
|
| + registrationIntent = createRegisterIntent(
|
| + account, new int[] {1, 3}, new String[] {"obj1", "obj3"});
|
| getService().onHandleIntent(registrationIntent);
|
| assertTrue(expectedObjectIdsRegistered(types, objectIds, true /* isReady */));
|
|
|
| // Unregister all object ids.
|
| objectIds.clear();
|
| - registrationIntent = InvalidationIntentProtocol.createRegisterIntent(account, new int[0],
|
| - new String[0]);
|
| + registrationIntent = createRegisterIntent(account, new int[0], new String[0]);
|
| getService().onHandleIntent(registrationIntent);
|
| assertTrue(expectedObjectIdsRegistered(types, objectIds, true /* isReady */));
|
|
|
| // Change type registration with no object ids registered.
|
| types.add(ModelType.BOOKMARK);
|
| types.add(ModelType.PASSWORD);
|
| - registrationIntent = InvalidationIntentProtocol.createRegisterIntent(account, false, types);
|
| + registrationIntent = createRegisterIntent(account, false, types);
|
| getService().onHandleIntent(registrationIntent);
|
| assertTrue(expectedObjectIdsRegistered(types, objectIds, true /* isReady */));
|
| }
|
| @@ -681,8 +677,7 @@ public class InvalidationServiceTest extends ServiceTestCase<TestableInvalidatio
|
|
|
| // Send register Intent.
|
| Account account = AccountManagerHelper.createAccountFromName("test@example.com");
|
| - Intent registrationIntent =
|
| - InvalidationIntentProtocol.createRegisterIntent(account, true, null);
|
| + Intent registrationIntent = createRegisterIntent(account, true, null);
|
| getService().onHandleIntent(registrationIntent);
|
|
|
| // Verify client started and state written.
|
| @@ -712,8 +707,7 @@ public class InvalidationServiceTest extends ServiceTestCase<TestableInvalidatio
|
|
|
| // Send register Intent with no desired types.
|
| Account account = AccountManagerHelper.createAccountFromName("test@example.com");
|
| - Intent registrationIntent = InvalidationIntentProtocol.createRegisterIntent(
|
| - account, false, new HashSet<ModelType>());
|
| + Intent registrationIntent = createRegisterIntent(account, false, new HashSet<ModelType>());
|
| getService().onHandleIntent(registrationIntent);
|
|
|
| // Verify client started and state written.
|
| @@ -729,7 +723,7 @@ public class InvalidationServiceTest extends ServiceTestCase<TestableInvalidatio
|
| assertTrue(Arrays.equals(CLIENT_ID, InvalidationService.getClientIdForTest()));
|
|
|
| // Choose to register for all types in an already ready client.
|
| - registrationIntent = InvalidationIntentProtocol.createRegisterIntent(account, true, null);
|
| + registrationIntent = createRegisterIntent(account, true, null);
|
| getService().onHandleIntent(registrationIntent);
|
|
|
| // Ensure registrations are correct.
|
| @@ -752,8 +746,7 @@ public class InvalidationServiceTest extends ServiceTestCase<TestableInvalidatio
|
| Account account = AccountManagerHelper.createAccountFromName("test@example.com");
|
| Set<ModelType> desiredRegistrations = CollectionUtil.newHashSet(
|
| ModelType.BOOKMARK, ModelType.SESSION);
|
| - Intent registrationIntent = InvalidationIntentProtocol.createRegisterIntent(account, false,
|
| - desiredRegistrations);
|
| + Intent registrationIntent = createRegisterIntent(account, false, desiredRegistrations);
|
| getService().onHandleIntent(registrationIntent);
|
|
|
| // Verify state written but client not started.
|
| @@ -782,8 +775,7 @@ public class InvalidationServiceTest extends ServiceTestCase<TestableInvalidatio
|
| ModelType.BOOKMARK, ModelType.SESSION);
|
| Set<ObjectId> desiredObjectIds = ModelType.modelTypesToObjectIds(desiredRegistrations);
|
|
|
| - Intent registrationIntent = InvalidationIntentProtocol.createRegisterIntent(account, false,
|
| - desiredRegistrations);
|
| + Intent registrationIntent = createRegisterIntent(account, false, desiredRegistrations);
|
| getService().onHandleIntent(registrationIntent);
|
| assertTrue(InvalidationService.getIsClientStartedForTest());
|
| assertEquals(1, mStartServiceIntents.size());
|
| @@ -822,6 +814,37 @@ public class InvalidationServiceTest extends ServiceTestCase<TestableInvalidatio
|
| // Bug: https://code.google.com/p/chromium/issues/detail?id=172398
|
| }
|
|
|
| + /** Creates an intent to start the InvalidationService. */
|
| + private Intent createStartIntent() {
|
| + Intent intent = new Intent();
|
| + intent.putExtra(InvalidationIntentProtocol.EXTRA_CLIENT_NAME, TEST_CLIENT_NAME);
|
| + return intent;
|
| + }
|
| +
|
| + /** Creates an intent to stop the InvalidationService. */
|
| + private Intent createStopIntent() {
|
| + Intent intent = new Intent();
|
| + intent.putExtra(InvalidationIntentProtocol.EXTRA_STOP, true);
|
| + intent.putExtra(InvalidationIntentProtocol.EXTRA_CLIENT_NAME, TEST_CLIENT_NAME);
|
| + return intent;
|
| + }
|
| +
|
| + /** Creates an intent to register some types with the InvalidationService. */
|
| + private Intent createRegisterIntent(Account account, boolean allTypes, Set<ModelType> types) {
|
| + Intent intent = InvalidationIntentProtocol.createRegisterIntent(account, allTypes, types);
|
| + intent.putExtra(InvalidationIntentProtocol.EXTRA_CLIENT_NAME, TEST_CLIENT_NAME);
|
| + return intent;
|
| + }
|
| +
|
| + /** Creates an intent to register some types with the InvalidationService. */
|
| + private Intent createRegisterIntent(
|
| + Account account, int[] objectSources, String[] objectNames) {
|
| + Intent intent = InvalidationIntentProtocol.createRegisterIntent(
|
| + account, objectSources, objectNames);
|
| + intent.putExtra(InvalidationIntentProtocol.EXTRA_CLIENT_NAME, TEST_CLIENT_NAME);
|
| + return intent;
|
| + }
|
| +
|
| /** Returns whether {@code intent} is an {@link AndroidListener} start intent. */
|
| private boolean isAndroidListenerStartIntent(Intent intent) {
|
| Intent startIntent = AndroidListener.createStartIntent(getContext(),
|
|
|