OLD | NEW |
| (Empty) |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #include "base/basictypes.h" | |
6 #include "chrome/browser/sync/profile_sync_service_harness.h" | |
7 #include "chrome/test/live_sync/extensions_helper.h" | |
8 #include "chrome/test/live_sync/live_sync_test.h" | |
9 | |
10 using extensions_helper::AllProfilesHaveSameExtensionsAsVerifier; | |
11 using extensions_helper::DisableExtension; | |
12 using extensions_helper::EnableExtension; | |
13 using extensions_helper::HasSameExtensionsAsVerifier; | |
14 using extensions_helper::IncognitoDisableExtension; | |
15 using extensions_helper::IncognitoEnableExtension; | |
16 using extensions_helper::InstallExtension; | |
17 using extensions_helper::InstallExtensionsPendingForSync; | |
18 using extensions_helper::UninstallExtension; | |
19 | |
20 class TwoClientExtensionsSyncTest : public LiveSyncTest { | |
21 public: | |
22 TwoClientExtensionsSyncTest() : LiveSyncTest(TWO_CLIENT) {} | |
23 | |
24 virtual ~TwoClientExtensionsSyncTest() {} | |
25 | |
26 private: | |
27 DISALLOW_COPY_AND_ASSIGN(TwoClientExtensionsSyncTest); | |
28 }; | |
29 | |
30 IN_PROC_BROWSER_TEST_F(TwoClientExtensionsSyncTest, StartWithNoExtensions) { | |
31 ASSERT_TRUE(SetupSync()); | |
32 | |
33 ASSERT_TRUE(AllProfilesHaveSameExtensionsAsVerifier()); | |
34 } | |
35 | |
36 IN_PROC_BROWSER_TEST_F(TwoClientExtensionsSyncTest, StartWithSameExtensions) { | |
37 ASSERT_TRUE(SetupClients()); | |
38 | |
39 const int kNumExtensions = 5; | |
40 for (int i = 0; i < kNumExtensions; ++i) { | |
41 InstallExtension(GetProfile(0), i); | |
42 InstallExtension(GetProfile(1), i); | |
43 InstallExtension(verifier(), i); | |
44 } | |
45 | |
46 ASSERT_TRUE(SetupSync()); | |
47 | |
48 ASSERT_TRUE(AwaitQuiescence()); | |
49 | |
50 ASSERT_TRUE(AllProfilesHaveSameExtensionsAsVerifier()); | |
51 } | |
52 | |
53 IN_PROC_BROWSER_TEST_F(TwoClientExtensionsSyncTest, | |
54 StartWithDifferentExtensions) { | |
55 ASSERT_TRUE(SetupClients()); | |
56 | |
57 int i = 0; | |
58 | |
59 const int kNumCommonExtensions = 5; | |
60 for (int j = 0; j < kNumCommonExtensions; ++i, ++j) { | |
61 InstallExtension(GetProfile(0), i); | |
62 InstallExtension(GetProfile(1), i); | |
63 InstallExtension(verifier(), i); | |
64 } | |
65 | |
66 const int kNumProfile0Extensions = 10; | |
67 for (int j = 0; j < kNumProfile0Extensions; ++i, ++j) { | |
68 InstallExtension(GetProfile(0), i); | |
69 InstallExtension(verifier(), i); | |
70 } | |
71 | |
72 const int kNumProfile1Extensions = 10; | |
73 for (int j = 0; j < kNumProfile1Extensions; ++i, ++j) { | |
74 InstallExtension(GetProfile(1), i); | |
75 InstallExtension(verifier(), i); | |
76 } | |
77 | |
78 ASSERT_TRUE(SetupSync()); | |
79 | |
80 ASSERT_TRUE(AwaitQuiescence()); | |
81 | |
82 InstallExtensionsPendingForSync(GetProfile(0)); | |
83 InstallExtensionsPendingForSync(GetProfile(1)); | |
84 | |
85 ASSERT_TRUE(AllProfilesHaveSameExtensionsAsVerifier()); | |
86 } | |
87 | |
88 IN_PROC_BROWSER_TEST_F(TwoClientExtensionsSyncTest, | |
89 InstallDifferentExtensions) { | |
90 ASSERT_TRUE(SetupClients()); | |
91 | |
92 int i = 0; | |
93 | |
94 const int kNumCommonExtensions = 5; | |
95 for (int j = 0; j < kNumCommonExtensions; ++i, ++j) { | |
96 InstallExtension(GetProfile(0), i); | |
97 InstallExtension(GetProfile(1), i); | |
98 InstallExtension(verifier(), i); | |
99 } | |
100 | |
101 ASSERT_TRUE(SetupSync()); | |
102 | |
103 ASSERT_TRUE(AwaitQuiescence()); | |
104 | |
105 const int kNumProfile0Extensions = 10; | |
106 for (int j = 0; j < kNumProfile0Extensions; ++i, ++j) { | |
107 InstallExtension(GetProfile(0), i); | |
108 InstallExtension(verifier(), i); | |
109 } | |
110 | |
111 const int kNumProfile1Extensions = 10; | |
112 for (int j = 0; j < kNumProfile1Extensions; ++i, ++j) { | |
113 InstallExtension(GetProfile(1), i); | |
114 InstallExtension(verifier(), i); | |
115 } | |
116 | |
117 ASSERT_TRUE(AwaitQuiescence()); | |
118 | |
119 InstallExtensionsPendingForSync(GetProfile(0)); | |
120 InstallExtensionsPendingForSync(GetProfile(1)); | |
121 | |
122 ASSERT_TRUE(AllProfilesHaveSameExtensionsAsVerifier()); | |
123 } | |
124 | |
125 // TCM ID - 3637311. | |
126 IN_PROC_BROWSER_TEST_F(TwoClientExtensionsSyncTest, Add) { | |
127 ASSERT_TRUE(SetupSync()); | |
128 ASSERT_TRUE(AllProfilesHaveSameExtensionsAsVerifier()); | |
129 | |
130 InstallExtension(GetProfile(0), 0); | |
131 InstallExtension(verifier(), 0); | |
132 ASSERT_TRUE(AwaitQuiescence()); | |
133 | |
134 InstallExtensionsPendingForSync(GetProfile(0)); | |
135 InstallExtensionsPendingForSync(GetProfile(1)); | |
136 ASSERT_TRUE(AllProfilesHaveSameExtensionsAsVerifier()); | |
137 } | |
138 | |
139 // TCM ID - 3724281. | |
140 IN_PROC_BROWSER_TEST_F(TwoClientExtensionsSyncTest, Uninstall) { | |
141 ASSERT_TRUE(SetupSync()); | |
142 ASSERT_TRUE(AllProfilesHaveSameExtensionsAsVerifier()); | |
143 | |
144 InstallExtension(GetProfile(0), 0); | |
145 InstallExtension(verifier(), 0); | |
146 ASSERT_TRUE(AwaitQuiescence()); | |
147 | |
148 InstallExtensionsPendingForSync(GetProfile(0)); | |
149 InstallExtensionsPendingForSync(GetProfile(1)); | |
150 ASSERT_TRUE(AllProfilesHaveSameExtensionsAsVerifier()); | |
151 | |
152 UninstallExtension(GetProfile(0), 0); | |
153 UninstallExtension(verifier(), 0); | |
154 ASSERT_TRUE(AwaitQuiescence()); | |
155 ASSERT_TRUE(AllProfilesHaveSameExtensionsAsVerifier()); | |
156 } | |
157 | |
158 // TCM ID - 3635304. | |
159 IN_PROC_BROWSER_TEST_F(TwoClientExtensionsSyncTest, Merge) { | |
160 ASSERT_TRUE(SetupSync()); | |
161 ASSERT_TRUE(AllProfilesHaveSameExtensionsAsVerifier()); | |
162 | |
163 InstallExtension(GetProfile(0), 0); | |
164 InstallExtension(GetProfile(1), 0); | |
165 ASSERT_TRUE(AwaitQuiescence()); | |
166 | |
167 UninstallExtension(GetProfile(0), 0); | |
168 InstallExtension(GetProfile(0), 1); | |
169 InstallExtension(verifier(), 1); | |
170 | |
171 InstallExtension(GetProfile(0), 2); | |
172 InstallExtension(GetProfile(1), 2); | |
173 InstallExtension(verifier(), 2); | |
174 | |
175 InstallExtension(GetProfile(1), 3); | |
176 InstallExtension(verifier(), 3); | |
177 | |
178 ASSERT_TRUE(AwaitQuiescence()); | |
179 InstallExtensionsPendingForSync(GetProfile(0)); | |
180 InstallExtensionsPendingForSync(GetProfile(1)); | |
181 ASSERT_TRUE(AllProfilesHaveSameExtensionsAsVerifier()); | |
182 } | |
183 | |
184 // TCM ID - 3605300. | |
185 IN_PROC_BROWSER_TEST_F(TwoClientExtensionsSyncTest, | |
186 UpdateEnableDisableExtension) { | |
187 ASSERT_TRUE(SetupSync()); | |
188 ASSERT_TRUE(AllProfilesHaveSameExtensionsAsVerifier()); | |
189 | |
190 InstallExtension(GetProfile(0), 0); | |
191 InstallExtension(GetProfile(1), 0); | |
192 InstallExtension(verifier(), 0); | |
193 ASSERT_TRUE(AwaitQuiescence()); | |
194 ASSERT_TRUE(AllProfilesHaveSameExtensionsAsVerifier()); | |
195 | |
196 DisableExtension(GetProfile(0), 0); | |
197 DisableExtension(verifier(), 0); | |
198 ASSERT_TRUE(HasSameExtensionsAsVerifier(0)); | |
199 ASSERT_FALSE(HasSameExtensionsAsVerifier(1)); | |
200 | |
201 ASSERT_TRUE(AwaitQuiescence()); | |
202 ASSERT_TRUE(AllProfilesHaveSameExtensionsAsVerifier()); | |
203 | |
204 EnableExtension(GetProfile(1), 0); | |
205 EnableExtension(verifier(), 0); | |
206 ASSERT_TRUE(HasSameExtensionsAsVerifier(1)); | |
207 ASSERT_FALSE(HasSameExtensionsAsVerifier(0)); | |
208 | |
209 ASSERT_TRUE(AwaitQuiescence()); | |
210 ASSERT_TRUE(AllProfilesHaveSameExtensionsAsVerifier()); | |
211 } | |
212 | |
213 // TCM ID - 3728322. | |
214 IN_PROC_BROWSER_TEST_F(TwoClientExtensionsSyncTest, | |
215 UpdateIncognitoEnableDisable) { | |
216 ASSERT_TRUE(SetupSync()); | |
217 ASSERT_TRUE(AllProfilesHaveSameExtensionsAsVerifier()); | |
218 | |
219 InstallExtension(GetProfile(0), 0); | |
220 InstallExtension(GetProfile(1), 0); | |
221 InstallExtension(verifier(), 0); | |
222 ASSERT_TRUE(AwaitQuiescence()); | |
223 ASSERT_TRUE(AllProfilesHaveSameExtensionsAsVerifier()); | |
224 | |
225 IncognitoEnableExtension(GetProfile(0), 0); | |
226 IncognitoEnableExtension(verifier(), 0); | |
227 ASSERT_TRUE(HasSameExtensionsAsVerifier(0)); | |
228 ASSERT_FALSE(HasSameExtensionsAsVerifier(1)); | |
229 | |
230 ASSERT_TRUE(AwaitQuiescence()); | |
231 ASSERT_TRUE(AllProfilesHaveSameExtensionsAsVerifier()); | |
232 | |
233 IncognitoDisableExtension(GetProfile(1), 0); | |
234 IncognitoDisableExtension(verifier(), 0); | |
235 ASSERT_TRUE(HasSameExtensionsAsVerifier(1)); | |
236 ASSERT_FALSE(HasSameExtensionsAsVerifier(0)); | |
237 | |
238 ASSERT_TRUE(AwaitQuiescence()); | |
239 ASSERT_TRUE(AllProfilesHaveSameExtensionsAsVerifier()); | |
240 } | |
241 | |
242 // TCM ID - 3732278. | |
243 IN_PROC_BROWSER_TEST_F(TwoClientExtensionsSyncTest, DisableExtensions) { | |
244 ASSERT_TRUE(SetupSync()); | |
245 ASSERT_TRUE(AllProfilesHaveSameExtensionsAsVerifier()); | |
246 | |
247 ASSERT_TRUE(GetClient(1)->DisableSyncForDatatype(syncable::EXTENSIONS)); | |
248 InstallExtension(GetProfile(0), 1); | |
249 InstallExtension(verifier(), 1); | |
250 ASSERT_TRUE(AwaitQuiescence()); | |
251 ASSERT_FALSE(AllProfilesHaveSameExtensionsAsVerifier()); | |
252 | |
253 ASSERT_TRUE(GetClient(1)->EnableSyncForDatatype(syncable::EXTENSIONS)); | |
254 ASSERT_TRUE(AwaitQuiescence()); | |
255 InstallExtensionsPendingForSync(GetProfile(0)); | |
256 InstallExtensionsPendingForSync(GetProfile(1)); | |
257 InstallExtensionsPendingForSync(verifier()); | |
258 ASSERT_TRUE(AllProfilesHaveSameExtensionsAsVerifier()); | |
259 } | |
260 | |
261 // TCM ID - 3606290. | |
262 IN_PROC_BROWSER_TEST_F(TwoClientExtensionsSyncTest, DisableSync) { | |
263 ASSERT_TRUE(SetupSync()); | |
264 ASSERT_TRUE(AllProfilesHaveSameExtensionsAsVerifier()); | |
265 | |
266 ASSERT_TRUE(GetClient(1)->DisableSyncForAllDatatypes()); | |
267 InstallExtension(GetProfile(0), 0); | |
268 InstallExtension(verifier(), 0); | |
269 ASSERT_TRUE( | |
270 GetClient(0)->AwaitSyncCycleCompletion("Installed an extension.")); | |
271 ASSERT_TRUE(HasSameExtensionsAsVerifier(0)); | |
272 ASSERT_FALSE(HasSameExtensionsAsVerifier(1)); | |
273 | |
274 ASSERT_TRUE(GetClient(1)->EnableSyncForAllDatatypes()); | |
275 ASSERT_TRUE(AwaitQuiescence()); | |
276 InstallExtensionsPendingForSync(GetProfile(0)); | |
277 InstallExtensionsPendingForSync(GetProfile(1)); | |
278 InstallExtensionsPendingForSync(verifier()); | |
279 ASSERT_TRUE(AllProfilesHaveSameExtensionsAsVerifier()); | |
280 } | |
281 | |
282 // TODO(akalin): Add tests exercising: | |
283 // - Offline installation/uninstallation behavior | |
OLD | NEW |