OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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.Context; | 9 import android.content.Context; |
10 import android.content.Intent; | 10 import android.content.Intent; |
11 import android.content.pm.ApplicationInfo; | 11 import android.content.pm.ApplicationInfo; |
12 import android.content.pm.PackageInfo; | 12 import android.content.pm.PackageInfo; |
13 import android.os.Bundle; | 13 import android.os.Bundle; |
14 | 14 |
15 import org.junit.After; | |
16 import org.junit.Assert; | 15 import org.junit.Assert; |
17 import org.junit.Before; | 16 import org.junit.Before; |
| 17 import org.junit.BeforeClass; |
18 import org.junit.Test; | 18 import org.junit.Test; |
19 import org.junit.runner.RunWith; | 19 import org.junit.runner.RunWith; |
20 import org.robolectric.Robolectric; | 20 import org.robolectric.Robolectric; |
21 import org.robolectric.Shadows; | 21 import org.robolectric.Shadows; |
22 import org.robolectric.annotation.Config; | 22 import org.robolectric.annotation.Config; |
23 import org.robolectric.res.builder.RobolectricPackageManager; | 23 import org.robolectric.res.builder.RobolectricPackageManager; |
24 import org.robolectric.shadows.ShadowActivity; | 24 import org.robolectric.shadows.ShadowActivity; |
25 import org.robolectric.shadows.ShadowLooper; | 25 import org.robolectric.shadows.ShadowLooper; |
26 | 26 |
27 import org.chromium.base.ActivityState; | 27 import org.chromium.base.ActivityState; |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
86 /** | 86 /** |
87 * The names of the preferred ModelTypes. | 87 * The names of the preferred ModelTypes. |
88 */ | 88 */ |
89 private Set<String> mAllTypes; | 89 private Set<String> mAllTypes; |
90 | 90 |
91 /** | 91 /** |
92 * The names of the non-session preferred ModelTypes. | 92 * The names of the non-session preferred ModelTypes. |
93 */ | 93 */ |
94 private Set<String> mNonSessionTypes; | 94 private Set<String> mNonSessionTypes; |
95 | 95 |
| 96 @BeforeClass |
| 97 public static void overrideAccountManagerHelper() { |
| 98 AccountManagerHelper.overrideAccountManagerHelperForTests( |
| 99 new SystemAccountManagerDelegate()); |
| 100 } |
| 101 |
96 @Before | 102 @Before |
97 public void setUp() throws Exception { | 103 public void setUp() throws Exception { |
98 Activity activity = Robolectric.buildActivity(Activity.class).setup().ge
t(); | 104 Activity activity = Robolectric.buildActivity(Activity.class).setup().ge
t(); |
99 mShadowActivity = Shadows.shadowOf(activity); | 105 mShadowActivity = Shadows.shadowOf(activity); |
100 mContext = activity; | 106 mContext = activity; |
101 | 107 |
102 RobolectricPackageManager packageManager = | 108 RobolectricPackageManager packageManager = |
103 (RobolectricPackageManager) mContext.getPackageManager(); | 109 (RobolectricPackageManager) mContext.getPackageManager(); |
104 Bundle metaData = new Bundle(); | 110 Bundle metaData = new Bundle(); |
105 metaData.putString( | 111 metaData.putString( |
106 "ipc.invalidation.ticl.listener_service_class", | 112 "ipc.invalidation.ticl.listener_service_class", |
107 ChromeInvalidationClientService.class.getName()); | 113 ChromeInvalidationClientService.class.getName()); |
108 ApplicationInfo applicationInfo = new ApplicationInfo(); | 114 ApplicationInfo applicationInfo = new ApplicationInfo(); |
109 applicationInfo.metaData = metaData; | 115 applicationInfo.metaData = metaData; |
110 PackageInfo packageInfo = new PackageInfo(); | 116 PackageInfo packageInfo = new PackageInfo(); |
111 packageInfo.packageName = mContext.getPackageName(); | 117 packageInfo.packageName = mContext.getPackageName(); |
112 packageInfo.applicationInfo = applicationInfo; | 118 packageInfo.applicationInfo = applicationInfo; |
113 packageManager.addPackage(packageInfo); | 119 packageManager.addPackage(packageInfo); |
114 | 120 |
115 ContextUtils.initApplicationContextForTests(mContext.getApplicationConte
xt()); | 121 ContextUtils.initApplicationContextForTests(mContext.getApplicationConte
xt()); |
116 | 122 |
117 AccountManagerHelper.overrideAccountManagerHelperForTests( | |
118 mContext, new SystemAccountManagerDelegate()); | |
119 | |
120 ModelTypeHelper.setTestDelegate(new ModelTypeHelper.TestDelegate() { | 123 ModelTypeHelper.setTestDelegate(new ModelTypeHelper.TestDelegate() { |
121 @Override | 124 @Override |
122 public String toNotificationType(int modelType) { | 125 public String toNotificationType(int modelType) { |
123 return Integer.toString(modelType); | 126 return Integer.toString(modelType); |
124 } | 127 } |
125 }); | 128 }); |
126 | 129 |
127 ProfileSyncServiceStub profileSyncServiceStub = new ProfileSyncServiceSt
ub(); | 130 ProfileSyncServiceStub profileSyncServiceStub = new ProfileSyncServiceSt
ub(); |
128 ProfileSyncService.overrideForTests(profileSyncServiceStub); | 131 ProfileSyncService.overrideForTests(profileSyncServiceStub); |
129 profileSyncServiceStub.setPreferredDataTypes( | 132 profileSyncServiceStub.setPreferredDataTypes( |
130 CollectionUtil.newHashSet(ModelType.BOOKMARKS, ModelType.SESSION
S)); | 133 CollectionUtil.newHashSet(ModelType.BOOKMARKS, ModelType.SESSION
S)); |
131 mAllTypes = CollectionUtil.newHashSet( | 134 mAllTypes = CollectionUtil.newHashSet( |
132 ModelTypeHelper.toNotificationType(ModelType.BOOKMARKS), | 135 ModelTypeHelper.toNotificationType(ModelType.BOOKMARKS), |
133 ModelTypeHelper.toNotificationType(ModelType.SESSIONS)); | 136 ModelTypeHelper.toNotificationType(ModelType.SESSIONS)); |
134 mNonSessionTypes = CollectionUtil.newHashSet(ModelTypeHelper.toNotificat
ionType( | 137 mNonSessionTypes = CollectionUtil.newHashSet(ModelTypeHelper.toNotificat
ionType( |
135 ModelType.BOOKMARKS)); | 138 ModelType.BOOKMARKS)); |
136 | 139 |
137 // We don't want to use the system content resolver, so we override it. | 140 // We don't want to use the system content resolver, so we override it. |
138 MockSyncContentResolverDelegate delegate = new MockSyncContentResolverDe
legate(); | 141 MockSyncContentResolverDelegate delegate = new MockSyncContentResolverDe
legate(); |
139 // Android master sync can safely always be on. | 142 // Android master sync can safely always be on. |
140 delegate.setMasterSyncAutomatically(true); | 143 delegate.setMasterSyncAutomatically(true); |
141 AndroidSyncSettings.overrideForTests(mContext, delegate); | 144 AndroidSyncSettings.overrideForTests(mContext, delegate); |
142 | 145 |
143 ChromeSigninController.get().setSignedInAccountName("test@example.com"); | 146 ChromeSigninController.get().setSignedInAccountName("test@example.com"); |
144 AndroidSyncSettings.updateAccount(mContext, ChromeSigninController.get()
.getSignedInUser()); | 147 AndroidSyncSettings.updateAccount(mContext, ChromeSigninController.get()
.getSignedInUser()); |
145 AndroidSyncSettings.enableChromeSync(mContext); | 148 AndroidSyncSettings.enableChromeSync(mContext); |
146 } | 149 } |
147 | 150 |
148 @After | |
149 public void tearDown() { | |
150 AccountManagerHelper.resetAccountManagerHelperForTests(); | |
151 } | |
152 | |
153 /** | 151 /** |
154 * Verify the intent sent by InvalidationController#stop(). | 152 * Verify the intent sent by InvalidationController#stop(). |
155 */ | 153 */ |
156 @Test | 154 @Test |
157 @Feature({"Sync"}) | 155 @Feature({"Sync"}) |
158 public void testStop() throws Exception { | 156 public void testStop() throws Exception { |
159 InvalidationController controller = new InvalidationController(mContext,
true); | 157 InvalidationController controller = new InvalidationController(mContext,
true); |
160 controller.stop(); | 158 controller.stop(); |
161 Intent intent = getOnlyIntent(); | 159 Intent intent = getOnlyIntent(); |
162 validateIntentComponent(intent); | 160 validateIntentComponent(intent); |
(...skipping 345 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
508 * intent. | 506 * intent. |
509 */ | 507 */ |
510 private static Set<String> getRegisterIntentRegisterTypes(Intent intent) { | 508 private static Set<String> getRegisterIntentRegisterTypes(Intent intent) { |
511 Set<String> registeredTypes = new HashSet<String>(); | 509 Set<String> registeredTypes = new HashSet<String>(); |
512 registeredTypes.addAll( | 510 registeredTypes.addAll( |
513 intent.getStringArrayListExtra(InvalidationIntentProtocol.EXTRA_
REGISTERED_TYPES)); | 511 intent.getStringArrayListExtra(InvalidationIntentProtocol.EXTRA_
REGISTERED_TYPES)); |
514 return registeredTypes; | 512 return registeredTypes; |
515 } | 513 } |
516 | 514 |
517 } | 515 } |
OLD | NEW |