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

Side by Side Diff: chrome/browser/sync/glue/extension_util_unittest.cc

Issue 6902054: [Sync] Rip out overly-complicated ExtensionData class (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressed asargent's comments Created 9 years, 7 months 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/sync/glue/extension_util.cc ('k') | chrome/chrome_browser.gypi » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 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 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 #include "chrome/browser/sync/glue/extension_util.h" 5 #include "chrome/browser/sync/glue/extension_util.h"
6 6
7 #include "base/file_path.h" 7 #include "base/file_path.h"
8 #include "base/values.h" 8 #include "base/values.h"
9 #include "chrome/browser/extensions/extension_sync_data.h" 9 #include "chrome/browser/extensions/extension_sync_data.h"
10 #include "chrome/browser/sync/protocol/extension_specifics.pb.h" 10 #include "chrome/browser/sync/protocol/extension_specifics.pb.h"
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
146 } 146 }
147 { 147 {
148 FilePath file_path(kExtensionFilePath); 148 FilePath file_path(kExtensionFilePath);
149 scoped_refptr<Extension> extension( 149 scoped_refptr<Extension> extension(
150 MakeExtension(false, GURL(), GURL(), true, 150 MakeExtension(false, GURL(), GURL(), true,
151 Extension::INTERNAL, 2, file_path)); 151 Extension::INTERNAL, 2, file_path));
152 EXPECT_FALSE(extension && IsExtensionValid(*extension)); 152 EXPECT_FALSE(extension && IsExtensionValid(*extension));
153 } 153 }
154 } 154 }
155 155
156 TEST_F(ExtensionUtilTest, IsExtensionSpecificsUnset) {
157 {
158 sync_pb::ExtensionSpecifics specifics;
159 EXPECT_TRUE(IsExtensionSpecificsUnset(specifics));
160 }
161
162 {
163 sync_pb::ExtensionSpecifics specifics;
164 specifics.set_id("a");
165 EXPECT_FALSE(IsExtensionSpecificsUnset(specifics));
166 }
167
168 {
169 sync_pb::ExtensionSpecifics specifics;
170 specifics.set_version("a");
171 EXPECT_FALSE(IsExtensionSpecificsUnset(specifics));
172 }
173
174 {
175 sync_pb::ExtensionSpecifics specifics;
176 specifics.set_update_url("a");
177 EXPECT_FALSE(IsExtensionSpecificsUnset(specifics));
178 }
179
180 {
181 sync_pb::ExtensionSpecifics specifics;
182 specifics.set_enabled(true);
183 EXPECT_FALSE(IsExtensionSpecificsUnset(specifics));
184 }
185
186 {
187 sync_pb::ExtensionSpecifics specifics;
188 specifics.set_incognito_enabled(true);
189 EXPECT_FALSE(IsExtensionSpecificsUnset(specifics));
190 }
191
192 {
193 sync_pb::ExtensionSpecifics specifics;
194 specifics.set_name("a");
195 EXPECT_FALSE(IsExtensionSpecificsUnset(specifics));
196 }
197 }
198
199 TEST_F(ExtensionUtilTest, IsExtensionSpecificsValid) {
200 sync_pb::ExtensionSpecifics specifics;
201 EXPECT_FALSE(IsExtensionSpecificsValid(specifics));
202 specifics.set_id(kValidId);
203 EXPECT_FALSE(IsExtensionSpecificsValid(specifics));
204 specifics.set_version(kValidVersion);
205 EXPECT_TRUE(IsExtensionSpecificsValid(specifics));
206 EXPECT_FALSE(IsExtensionSpecificsUnset(specifics));
207 specifics.set_update_url(kValidUpdateUrl1);
208 EXPECT_TRUE(IsExtensionSpecificsValid(specifics));
209 EXPECT_FALSE(IsExtensionSpecificsUnset(specifics));
210
211 {
212 sync_pb::ExtensionSpecifics specifics_copy(specifics);
213 specifics_copy.set_id("invalid");
214 EXPECT_FALSE(IsExtensionSpecificsValid(specifics_copy));
215 }
216
217 {
218 sync_pb::ExtensionSpecifics specifics_copy(specifics);
219 specifics_copy.set_version("invalid");
220 EXPECT_FALSE(IsExtensionSpecificsValid(specifics_copy));
221 }
222
223 {
224 sync_pb::ExtensionSpecifics specifics_copy(specifics);
225 specifics_copy.set_update_url("http:invalid.com:invalid");
226 EXPECT_FALSE(IsExtensionSpecificsValid(specifics_copy));
227 }
228 }
229
230 TEST_F(ExtensionUtilTest, AreExtensionSpecificsEqual) {
231 sync_pb::ExtensionSpecifics a, b;
232 EXPECT_TRUE(AreExtensionSpecificsEqual(a, b));
233
234 a.set_id("a");
235 EXPECT_FALSE(AreExtensionSpecificsEqual(a, b));
236 b.set_id("a");
237 EXPECT_TRUE(AreExtensionSpecificsEqual(a, b));
238
239 a.set_version("1.5");
240 EXPECT_FALSE(AreExtensionSpecificsEqual(a, b));
241 b.set_version("1.5");
242 EXPECT_TRUE(AreExtensionSpecificsEqual(a, b));
243
244 a.set_update_url("http://www.foo.com");
245 EXPECT_FALSE(AreExtensionSpecificsEqual(a, b));
246 b.set_update_url("http://www.foo.com");
247 EXPECT_TRUE(AreExtensionSpecificsEqual(a, b));
248
249 a.set_enabled(true);
250 EXPECT_FALSE(AreExtensionSpecificsEqual(a, b));
251 b.set_enabled(true);
252 EXPECT_TRUE(AreExtensionSpecificsEqual(a, b));
253
254 a.set_incognito_enabled(true);
255 EXPECT_FALSE(AreExtensionSpecificsEqual(a, b));
256 b.set_incognito_enabled(true);
257 EXPECT_TRUE(AreExtensionSpecificsEqual(a, b));
258
259 a.set_name("name");
260 EXPECT_FALSE(AreExtensionSpecificsEqual(a, b));
261 b.set_name("name");
262 EXPECT_TRUE(AreExtensionSpecificsEqual(a, b));
263 }
264
265 TEST_F(ExtensionUtilTest, CopyUserProperties) {
266 sync_pb::ExtensionSpecifics dest_specifics;
267 dest_specifics.set_version(kVersion2);
268 dest_specifics.set_update_url(kValidUpdateUrl1);
269 dest_specifics.set_enabled(true);
270 dest_specifics.set_incognito_enabled(false);
271 dest_specifics.set_name(kName);
272
273 sync_pb::ExtensionSpecifics specifics;
274 specifics.set_id(kValidId);
275 specifics.set_version(kVersion3);
276 specifics.set_update_url(kValidUpdateUrl2);
277 specifics.set_enabled(false);
278 specifics.set_incognito_enabled(true);
279 specifics.set_name(kName2);
280
281 CopyUserProperties(specifics, &dest_specifics);
282 EXPECT_EQ("", dest_specifics.id());
283 EXPECT_EQ(kVersion2, dest_specifics.version());
284 EXPECT_EQ(kValidUpdateUrl1, dest_specifics.update_url());
285 EXPECT_FALSE(dest_specifics.enabled());
286 EXPECT_TRUE(dest_specifics.incognito_enabled());
287 EXPECT_EQ(kName, dest_specifics.name());
288 }
289
290 TEST_F(ExtensionUtilTest, CopyNonUserProperties) {
291 sync_pb::ExtensionSpecifics dest_specifics;
292 dest_specifics.set_id(kValidId);
293 dest_specifics.set_version(kVersion2);
294 dest_specifics.set_update_url(kValidUpdateUrl1);
295 dest_specifics.set_enabled(true);
296 dest_specifics.set_incognito_enabled(false);
297 dest_specifics.set_name(kName);
298
299 sync_pb::ExtensionSpecifics specifics;
300 specifics.set_id("");
301 specifics.set_version(kVersion3);
302 specifics.set_update_url(kValidUpdateUrl2);
303 specifics.set_enabled(false);
304 specifics.set_incognito_enabled(true);
305 specifics.set_name(kName2);
306
307 CopyNonUserProperties(specifics, &dest_specifics);
308 EXPECT_EQ("", dest_specifics.id());
309 EXPECT_EQ(kVersion3, dest_specifics.version());
310 EXPECT_EQ(kValidUpdateUrl2, dest_specifics.update_url());
311 EXPECT_TRUE(dest_specifics.enabled());
312 EXPECT_FALSE(dest_specifics.incognito_enabled());
313 EXPECT_EQ(kName2, dest_specifics.name());
314 }
315
316 TEST_F(ExtensionUtilTest, AreExtensionSpecificsUserPropertiesEqual) {
317 sync_pb::ExtensionSpecifics a, b;
318 EXPECT_TRUE(AreExtensionSpecificsUserPropertiesEqual(a, b));
319
320 a.set_id("a");
321 b.set_id("b");
322 EXPECT_TRUE(AreExtensionSpecificsUserPropertiesEqual(a, b));
323
324 a.set_version("1.5");
325 b.set_version("1.6");
326 EXPECT_TRUE(AreExtensionSpecificsUserPropertiesEqual(a, b));
327
328 a.set_name("name");
329 b.set_name("name2");
330 EXPECT_TRUE(AreExtensionSpecificsUserPropertiesEqual(a, b));
331
332 a.set_update_url("http://www.foo.com");
333 b.set_update_url("http://www.foo2.com");
334 EXPECT_TRUE(AreExtensionSpecificsUserPropertiesEqual(a, b));
335
336 a.set_enabled(true);
337 EXPECT_FALSE(AreExtensionSpecificsUserPropertiesEqual(a, b));
338 b.set_enabled(true);
339 EXPECT_TRUE(AreExtensionSpecificsUserPropertiesEqual(a, b));
340
341 a.set_incognito_enabled(true);
342 EXPECT_FALSE(AreExtensionSpecificsUserPropertiesEqual(a, b));
343 b.set_incognito_enabled(true);
344 EXPECT_TRUE(AreExtensionSpecificsUserPropertiesEqual(a, b));
345 }
346
347 TEST_F(ExtensionUtilTest, AreExtensionSpecificsNonUserPropertiesEqual) {
348 sync_pb::ExtensionSpecifics a, b;
349 EXPECT_TRUE(AreExtensionSpecificsNonUserPropertiesEqual(a, b));
350
351 a.set_enabled(true);
352 b.set_enabled(false);
353 EXPECT_TRUE(AreExtensionSpecificsNonUserPropertiesEqual(a, b));
354
355 a.set_incognito_enabled(true);
356 b.set_incognito_enabled(false);
357 EXPECT_TRUE(AreExtensionSpecificsNonUserPropertiesEqual(a, b));
358
359 a.set_id("a");
360 EXPECT_FALSE(AreExtensionSpecificsNonUserPropertiesEqual(a, b));
361 b.set_id("a");
362 EXPECT_TRUE(AreExtensionSpecificsNonUserPropertiesEqual(a, b));
363
364 a.set_version("1.5");
365 EXPECT_FALSE(AreExtensionSpecificsNonUserPropertiesEqual(a, b));
366 b.set_version("1.5");
367 EXPECT_TRUE(AreExtensionSpecificsNonUserPropertiesEqual(a, b));
368
369 a.set_update_url("http://www.foo.com");
370 EXPECT_FALSE(AreExtensionSpecificsNonUserPropertiesEqual(a, b));
371 b.set_update_url("http://www.foo.com");
372 EXPECT_TRUE(AreExtensionSpecificsNonUserPropertiesEqual(a, b));
373
374 a.set_name("name");
375 EXPECT_FALSE(AreExtensionSpecificsNonUserPropertiesEqual(a, b));
376 b.set_name("name");
377 EXPECT_TRUE(AreExtensionSpecificsNonUserPropertiesEqual(a, b));
378 }
379
380 TEST_F(ExtensionUtilTest, MergeExtensionSpecificsWithUserProperties) {
381 sync_pb::ExtensionSpecifics merged_specifics;
382 merged_specifics.set_id(kValidId);
383 merged_specifics.set_update_url(kValidUpdateUrl1);
384 merged_specifics.set_enabled(true);
385 merged_specifics.set_incognito_enabled(false);
386 merged_specifics.set_version(kVersion2);
387
388 sync_pb::ExtensionSpecifics specifics;
389 specifics.set_id(kValidId);
390 specifics.set_update_url(kValidUpdateUrl2);
391 merged_specifics.set_enabled(false);
392 merged_specifics.set_incognito_enabled(true);
393
394 specifics.set_version(kVersion1);
395 {
396 sync_pb::ExtensionSpecifics result = merged_specifics;
397 MergeExtensionSpecifics(specifics, false, &result);
398 EXPECT_TRUE(AreExtensionSpecificsUserPropertiesEqual(
399 result, merged_specifics));
400 EXPECT_TRUE(AreExtensionSpecificsNonUserPropertiesEqual(
401 result, merged_specifics));
402 }
403 {
404 sync_pb::ExtensionSpecifics result = merged_specifics;
405 MergeExtensionSpecifics(specifics, true, &result);
406 EXPECT_TRUE(AreExtensionSpecificsEqual(result, merged_specifics));
407 }
408
409 specifics.set_version(kVersion2);
410 {
411 sync_pb::ExtensionSpecifics result = merged_specifics;
412 MergeExtensionSpecifics(specifics, false, &result);
413 EXPECT_TRUE(AreExtensionSpecificsUserPropertiesEqual(
414 result, merged_specifics));
415 EXPECT_TRUE(AreExtensionSpecificsNonUserPropertiesEqual(
416 result, specifics));
417 }
418 {
419 sync_pb::ExtensionSpecifics result = merged_specifics;
420 MergeExtensionSpecifics(specifics, true, &result);
421 EXPECT_TRUE(AreExtensionSpecificsEqual(result, specifics));
422 }
423
424 specifics.set_version(kVersion3);
425 {
426 sync_pb::ExtensionSpecifics result = merged_specifics;
427 MergeExtensionSpecifics(specifics, false, &result);
428 EXPECT_TRUE(AreExtensionSpecificsUserPropertiesEqual(
429 result, merged_specifics));
430 EXPECT_TRUE(AreExtensionSpecificsNonUserPropertiesEqual(
431 result, specifics));
432 }
433 {
434 sync_pb::ExtensionSpecifics result = merged_specifics;
435 MergeExtensionSpecifics(specifics, true, &result);
436 EXPECT_TRUE(AreExtensionSpecificsEqual(result, specifics));
437 }
438 }
439
440 TEST_F(ExtensionUtilTest, SpecificsToSyncData) { 156 TEST_F(ExtensionUtilTest, SpecificsToSyncData) {
441 sync_pb::ExtensionSpecifics specifics; 157 sync_pb::ExtensionSpecifics specifics;
442 specifics.set_id(kValidId); 158 specifics.set_id(kValidId);
443 specifics.set_update_url(kValidUpdateUrl2); 159 specifics.set_update_url(kValidUpdateUrl2);
444 specifics.set_enabled(false); 160 specifics.set_enabled(false);
445 specifics.set_incognito_enabled(true); 161 specifics.set_incognito_enabled(true);
446 specifics.set_version(kVersion1); 162 specifics.set_version(kVersion1);
447 specifics.set_name(kName); 163 specifics.set_name(kName);
448 164
449 ExtensionSyncData sync_data; 165 ExtensionSyncData sync_data;
(...skipping 24 matching lines...) Expand all
474 EXPECT_EQ(sync_data.update_url.spec(), specifics.update_url()); 190 EXPECT_EQ(sync_data.update_url.spec(), specifics.update_url());
475 EXPECT_EQ(sync_data.enabled, specifics.enabled()); 191 EXPECT_EQ(sync_data.enabled, specifics.enabled());
476 EXPECT_EQ(sync_data.incognito_enabled, specifics.incognito_enabled()); 192 EXPECT_EQ(sync_data.incognito_enabled, specifics.incognito_enabled());
477 EXPECT_EQ(sync_data.version.GetString(), specifics.version()); 193 EXPECT_EQ(sync_data.version.GetString(), specifics.version());
478 EXPECT_EQ(sync_data.name, specifics.name()); 194 EXPECT_EQ(sync_data.name, specifics.name());
479 } 195 }
480 196
481 } // namespace 197 } // namespace
482 198
483 } // namespace browser_sync 199 } // namespace browser_sync
OLDNEW
« no previous file with comments | « chrome/browser/sync/glue/extension_util.cc ('k') | chrome/chrome_browser.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698