OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 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 // Unit tests for the SyncApi. Note that a lot of the underlying | 5 // Unit tests for the SyncApi. Note that a lot of the underlying |
6 // functionality is provided by the Syncable layer, which has its own | 6 // functionality is provided by the Syncable layer, which has its own |
7 // unit tests. We'll test SyncApi specific things in this harness. | 7 // unit tests. We'll test SyncApi specific things in this harness. |
8 | 8 |
9 #include <cstddef> | 9 #include <cstddef> |
10 #include <map> | 10 #include <map> |
(...skipping 335 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
346 // we'll use this spare folder later | 346 // we'll use this spare folder later |
347 WriteNode folder_node(&trans); | 347 WriteNode folder_node(&trans); |
348 EXPECT_TRUE(folder_node.InitBookmarkByCreation(root_node, NULL)); | 348 EXPECT_TRUE(folder_node.InitBookmarkByCreation(root_node, NULL)); |
349 folder_id = folder_node.GetId(); | 349 folder_id = folder_node.GetId(); |
350 | 350 |
351 WriteNode wnode(&trans); | 351 WriteNode wnode(&trans); |
352 WriteNode::InitUniqueByCreationResult result = | 352 WriteNode::InitUniqueByCreationResult result = |
353 wnode.InitUniqueByCreation(BOOKMARKS, root_node, "testtag"); | 353 wnode.InitUniqueByCreation(BOOKMARKS, root_node, "testtag"); |
354 EXPECT_EQ(WriteNode::INIT_SUCCESS, result); | 354 EXPECT_EQ(WriteNode::INIT_SUCCESS, result); |
355 wnode.SetIsFolder(false); | 355 wnode.SetIsFolder(false); |
356 wnode.SetTitle(UTF8ToWide(test_title)); | 356 wnode.SetTitle(base::UTF8ToWide(test_title)); |
357 | 357 |
358 node_id = wnode.GetId(); | 358 node_id = wnode.GetId(); |
359 } | 359 } |
360 | 360 |
361 // Ensure we can delete something with a tag. | 361 // Ensure we can delete something with a tag. |
362 { | 362 { |
363 WriteTransaction trans(FROM_HERE, test_user_share_.user_share()); | 363 WriteTransaction trans(FROM_HERE, test_user_share_.user_share()); |
364 WriteNode wnode(&trans); | 364 WriteNode wnode(&trans); |
365 EXPECT_EQ(BaseNode::INIT_OK, | 365 EXPECT_EQ(BaseNode::INIT_OK, |
366 wnode.InitByClientTagLookup(BOOKMARKS, | 366 wnode.InitByClientTagLookup(BOOKMARKS, |
(...skipping 24 matching lines...) Expand all Loading... |
391 | 391 |
392 WriteNode wnode(&trans); | 392 WriteNode wnode(&trans); |
393 // This will undelete the tag. | 393 // This will undelete the tag. |
394 WriteNode::InitUniqueByCreationResult result = | 394 WriteNode::InitUniqueByCreationResult result = |
395 wnode.InitUniqueByCreation(BOOKMARKS, folder_node, "testtag"); | 395 wnode.InitUniqueByCreation(BOOKMARKS, folder_node, "testtag"); |
396 EXPECT_EQ(WriteNode::INIT_SUCCESS, result); | 396 EXPECT_EQ(WriteNode::INIT_SUCCESS, result); |
397 EXPECT_EQ(wnode.GetIsFolder(), false); | 397 EXPECT_EQ(wnode.GetIsFolder(), false); |
398 EXPECT_EQ(wnode.GetParentId(), folder_node.GetId()); | 398 EXPECT_EQ(wnode.GetParentId(), folder_node.GetId()); |
399 EXPECT_EQ(wnode.GetId(), node_id); | 399 EXPECT_EQ(wnode.GetId(), node_id); |
400 EXPECT_NE(wnode.GetTitle(), test_title); // Title should be cleared | 400 EXPECT_NE(wnode.GetTitle(), test_title); // Title should be cleared |
401 wnode.SetTitle(UTF8ToWide(test_title)); | 401 wnode.SetTitle(base::UTF8ToWide(test_title)); |
402 } | 402 } |
403 | 403 |
404 // Now look up should work. | 404 // Now look up should work. |
405 { | 405 { |
406 ReadTransaction trans(FROM_HERE, test_user_share_.user_share()); | 406 ReadTransaction trans(FROM_HERE, test_user_share_.user_share()); |
407 ReadNode node(&trans); | 407 ReadNode node(&trans); |
408 EXPECT_EQ(BaseNode::INIT_OK, | 408 EXPECT_EQ(BaseNode::INIT_OK, |
409 node.InitByClientTagLookup(BOOKMARKS, | 409 node.InitByClientTagLookup(BOOKMARKS, |
410 "testtag")); | 410 "testtag")); |
411 EXPECT_EQ(node.GetTitle(), test_title); | 411 EXPECT_EQ(node.GetTitle(), test_title); |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
456 test_user_share_.encryption_handler()->EnableEncryptEverything(); | 456 test_user_share_.encryption_handler()->EnableEncryptEverything(); |
457 int bookmark_id; | 457 int bookmark_id; |
458 { | 458 { |
459 WriteTransaction trans(FROM_HERE, test_user_share_.user_share()); | 459 WriteTransaction trans(FROM_HERE, test_user_share_.user_share()); |
460 ReadNode root_node(&trans); | 460 ReadNode root_node(&trans); |
461 root_node.InitByRootLookup(); | 461 root_node.InitByRootLookup(); |
462 | 462 |
463 WriteNode bookmark_node(&trans); | 463 WriteNode bookmark_node(&trans); |
464 ASSERT_TRUE(bookmark_node.InitBookmarkByCreation(root_node, NULL)); | 464 ASSERT_TRUE(bookmark_node.InitBookmarkByCreation(root_node, NULL)); |
465 bookmark_id = bookmark_node.GetId(); | 465 bookmark_id = bookmark_node.GetId(); |
466 bookmark_node.SetTitle(UTF8ToWide("foo")); | 466 bookmark_node.SetTitle(base::UTF8ToWide("foo")); |
467 | 467 |
468 WriteNode pref_node(&trans); | 468 WriteNode pref_node(&trans); |
469 WriteNode::InitUniqueByCreationResult result = | 469 WriteNode::InitUniqueByCreationResult result = |
470 pref_node.InitUniqueByCreation(PREFERENCES, root_node, "bar"); | 470 pref_node.InitUniqueByCreation(PREFERENCES, root_node, "bar"); |
471 ASSERT_EQ(WriteNode::INIT_SUCCESS, result); | 471 ASSERT_EQ(WriteNode::INIT_SUCCESS, result); |
472 pref_node.SetTitle(UTF8ToWide("bar")); | 472 pref_node.SetTitle(base::UTF8ToWide("bar")); |
473 } | 473 } |
474 { | 474 { |
475 ReadTransaction trans(FROM_HERE, test_user_share_.user_share()); | 475 ReadTransaction trans(FROM_HERE, test_user_share_.user_share()); |
476 ReadNode root_node(&trans); | 476 ReadNode root_node(&trans); |
477 root_node.InitByRootLookup(); | 477 root_node.InitByRootLookup(); |
478 | 478 |
479 ReadNode bookmark_node(&trans); | 479 ReadNode bookmark_node(&trans); |
480 ASSERT_EQ(BaseNode::INIT_OK, bookmark_node.InitByIdLookup(bookmark_id)); | 480 ASSERT_EQ(BaseNode::INIT_OK, bookmark_node.InitByIdLookup(bookmark_id)); |
481 EXPECT_EQ("foo", bookmark_node.GetTitle()); | 481 EXPECT_EQ("foo", bookmark_node.GetTitle()); |
482 EXPECT_EQ(kEncryptedString, | 482 EXPECT_EQ(kEncryptedString, |
(...skipping 1633 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2116 std::string title = "title"; | 2116 std::string title = "title"; |
2117 std::string url = "url"; | 2117 std::string url = "url"; |
2118 { | 2118 { |
2119 WriteTransaction trans(FROM_HERE, sync_manager_.GetUserShare()); | 2119 WriteTransaction trans(FROM_HERE, sync_manager_.GetUserShare()); |
2120 ReadNode bookmark_root(&trans); | 2120 ReadNode bookmark_root(&trans); |
2121 ASSERT_EQ(BaseNode::INIT_OK, | 2121 ASSERT_EQ(BaseNode::INIT_OK, |
2122 bookmark_root.InitByTagLookup(ModelTypeToRootTag(BOOKMARKS))); | 2122 bookmark_root.InitByTagLookup(ModelTypeToRootTag(BOOKMARKS))); |
2123 WriteNode node(&trans); | 2123 WriteNode node(&trans); |
2124 ASSERT_TRUE(node.InitBookmarkByCreation(bookmark_root, NULL)); | 2124 ASSERT_TRUE(node.InitBookmarkByCreation(bookmark_root, NULL)); |
2125 node.SetIsFolder(false); | 2125 node.SetIsFolder(false); |
2126 node.SetTitle(UTF8ToWide(title)); | 2126 node.SetTitle(base::UTF8ToWide(title)); |
2127 | 2127 |
2128 sync_pb::BookmarkSpecifics bookmark_specifics(node.GetBookmarkSpecifics()); | 2128 sync_pb::BookmarkSpecifics bookmark_specifics(node.GetBookmarkSpecifics()); |
2129 bookmark_specifics.set_url(url); | 2129 bookmark_specifics.set_url(url); |
2130 node.SetBookmarkSpecifics(bookmark_specifics); | 2130 node.SetBookmarkSpecifics(bookmark_specifics); |
2131 } | 2131 } |
2132 { | 2132 { |
2133 ReadTransaction trans(FROM_HERE, sync_manager_.GetUserShare()); | 2133 ReadTransaction trans(FROM_HERE, sync_manager_.GetUserShare()); |
2134 ReadNode bookmark_root(&trans); | 2134 ReadNode bookmark_root(&trans); |
2135 ASSERT_EQ(BaseNode::INIT_OK, | 2135 ASSERT_EQ(BaseNode::INIT_OK, |
2136 bookmark_root.InitByTagLookup(ModelTypeToRootTag(BOOKMARKS))); | 2136 bookmark_root.InitByTagLookup(ModelTypeToRootTag(BOOKMARKS))); |
(...skipping 318 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2455 entity_specifics); | 2455 entity_specifics); |
2456 // New node shouldn't start off unsynced. | 2456 // New node shouldn't start off unsynced. |
2457 EXPECT_FALSE(ResetUnsyncedEntry(BOOKMARKS, client_tag)); | 2457 EXPECT_FALSE(ResetUnsyncedEntry(BOOKMARKS, client_tag)); |
2458 | 2458 |
2459 // Manually change to the same title. Should not set is_unsynced. | 2459 // Manually change to the same title. Should not set is_unsynced. |
2460 { | 2460 { |
2461 WriteTransaction trans(FROM_HERE, sync_manager_.GetUserShare()); | 2461 WriteTransaction trans(FROM_HERE, sync_manager_.GetUserShare()); |
2462 WriteNode node(&trans); | 2462 WriteNode node(&trans); |
2463 EXPECT_EQ(BaseNode::INIT_OK, | 2463 EXPECT_EQ(BaseNode::INIT_OK, |
2464 node.InitByClientTagLookup(BOOKMARKS, client_tag)); | 2464 node.InitByClientTagLookup(BOOKMARKS, client_tag)); |
2465 node.SetTitle(UTF8ToWide(client_tag)); | 2465 node.SetTitle(base::UTF8ToWide(client_tag)); |
2466 } | 2466 } |
2467 EXPECT_FALSE(ResetUnsyncedEntry(BOOKMARKS, client_tag)); | 2467 EXPECT_FALSE(ResetUnsyncedEntry(BOOKMARKS, client_tag)); |
2468 | 2468 |
2469 // Manually change to new title. Should set is_unsynced. | 2469 // Manually change to new title. Should set is_unsynced. |
2470 { | 2470 { |
2471 WriteTransaction trans(FROM_HERE, sync_manager_.GetUserShare()); | 2471 WriteTransaction trans(FROM_HERE, sync_manager_.GetUserShare()); |
2472 WriteNode node(&trans); | 2472 WriteNode node(&trans); |
2473 EXPECT_EQ(BaseNode::INIT_OK, | 2473 EXPECT_EQ(BaseNode::INIT_OK, |
2474 node.InitByClientTagLookup(BOOKMARKS, client_tag)); | 2474 node.InitByClientTagLookup(BOOKMARKS, client_tag)); |
2475 node.SetTitle(UTF8ToWide("title2")); | 2475 node.SetTitle(base::UTF8ToWide("title2")); |
2476 } | 2476 } |
2477 EXPECT_TRUE(ResetUnsyncedEntry(BOOKMARKS, client_tag)); | 2477 EXPECT_TRUE(ResetUnsyncedEntry(BOOKMARKS, client_tag)); |
2478 } | 2478 } |
2479 | 2479 |
2480 // Verify SetTitle(..) doesn't unnecessarily set IS_UNSYNCED for encrypted | 2480 // Verify SetTitle(..) doesn't unnecessarily set IS_UNSYNCED for encrypted |
2481 // bookmarks when we write the same data, but does set it when we write new | 2481 // bookmarks when we write the same data, but does set it when we write new |
2482 // data. | 2482 // data. |
2483 TEST_F(SyncManagerTest, SetBookmarkTitleWithEncryption) { | 2483 TEST_F(SyncManagerTest, SetBookmarkTitleWithEncryption) { |
2484 std::string client_tag = "title"; | 2484 std::string client_tag = "title"; |
2485 sync_pb::EntitySpecifics entity_specifics; | 2485 sync_pb::EntitySpecifics entity_specifics; |
(...skipping 18 matching lines...) Expand all Loading... |
2504 PumpLoop(); | 2504 PumpLoop(); |
2505 EXPECT_TRUE(ResetUnsyncedEntry(BOOKMARKS, client_tag)); | 2505 EXPECT_TRUE(ResetUnsyncedEntry(BOOKMARKS, client_tag)); |
2506 | 2506 |
2507 // Manually change to the same title. Should not set is_unsynced. | 2507 // Manually change to the same title. Should not set is_unsynced. |
2508 // NON_UNIQUE_NAME should be kEncryptedString. | 2508 // NON_UNIQUE_NAME should be kEncryptedString. |
2509 { | 2509 { |
2510 WriteTransaction trans(FROM_HERE, sync_manager_.GetUserShare()); | 2510 WriteTransaction trans(FROM_HERE, sync_manager_.GetUserShare()); |
2511 WriteNode node(&trans); | 2511 WriteNode node(&trans); |
2512 EXPECT_EQ(BaseNode::INIT_OK, | 2512 EXPECT_EQ(BaseNode::INIT_OK, |
2513 node.InitByClientTagLookup(BOOKMARKS, client_tag)); | 2513 node.InitByClientTagLookup(BOOKMARKS, client_tag)); |
2514 node.SetTitle(UTF8ToWide(client_tag)); | 2514 node.SetTitle(base::UTF8ToWide(client_tag)); |
2515 const syncable::Entry* node_entry = node.GetEntry(); | 2515 const syncable::Entry* node_entry = node.GetEntry(); |
2516 const sync_pb::EntitySpecifics& specifics = node_entry->GetSpecifics(); | 2516 const sync_pb::EntitySpecifics& specifics = node_entry->GetSpecifics(); |
2517 EXPECT_TRUE(specifics.has_encrypted()); | 2517 EXPECT_TRUE(specifics.has_encrypted()); |
2518 EXPECT_EQ(kEncryptedString, node_entry->GetNonUniqueName()); | 2518 EXPECT_EQ(kEncryptedString, node_entry->GetNonUniqueName()); |
2519 } | 2519 } |
2520 EXPECT_FALSE(ResetUnsyncedEntry(BOOKMARKS, client_tag)); | 2520 EXPECT_FALSE(ResetUnsyncedEntry(BOOKMARKS, client_tag)); |
2521 | 2521 |
2522 // Manually change to new title. Should set is_unsynced. NON_UNIQUE_NAME | 2522 // Manually change to new title. Should set is_unsynced. NON_UNIQUE_NAME |
2523 // should still be kEncryptedString. | 2523 // should still be kEncryptedString. |
2524 { | 2524 { |
2525 WriteTransaction trans(FROM_HERE, sync_manager_.GetUserShare()); | 2525 WriteTransaction trans(FROM_HERE, sync_manager_.GetUserShare()); |
2526 WriteNode node(&trans); | 2526 WriteNode node(&trans); |
2527 EXPECT_EQ(BaseNode::INIT_OK, | 2527 EXPECT_EQ(BaseNode::INIT_OK, |
2528 node.InitByClientTagLookup(BOOKMARKS, client_tag)); | 2528 node.InitByClientTagLookup(BOOKMARKS, client_tag)); |
2529 node.SetTitle(UTF8ToWide("title2")); | 2529 node.SetTitle(base::UTF8ToWide("title2")); |
2530 const syncable::Entry* node_entry = node.GetEntry(); | 2530 const syncable::Entry* node_entry = node.GetEntry(); |
2531 const sync_pb::EntitySpecifics& specifics = node_entry->GetSpecifics(); | 2531 const sync_pb::EntitySpecifics& specifics = node_entry->GetSpecifics(); |
2532 EXPECT_TRUE(specifics.has_encrypted()); | 2532 EXPECT_TRUE(specifics.has_encrypted()); |
2533 EXPECT_EQ(kEncryptedString, node_entry->GetNonUniqueName()); | 2533 EXPECT_EQ(kEncryptedString, node_entry->GetNonUniqueName()); |
2534 } | 2534 } |
2535 EXPECT_TRUE(ResetUnsyncedEntry(BOOKMARKS, client_tag)); | 2535 EXPECT_TRUE(ResetUnsyncedEntry(BOOKMARKS, client_tag)); |
2536 } | 2536 } |
2537 | 2537 |
2538 // Verify SetTitle(..) doesn't unnecessarily set IS_UNSYNCED for non-bookmarks | 2538 // Verify SetTitle(..) doesn't unnecessarily set IS_UNSYNCED for non-bookmarks |
2539 // when we write the same data, but does set it when we write new data. | 2539 // when we write the same data, but does set it when we write new data. |
(...skipping 10 matching lines...) Expand all Loading... |
2550 entity_specifics); | 2550 entity_specifics); |
2551 // New node shouldn't start off unsynced. | 2551 // New node shouldn't start off unsynced. |
2552 EXPECT_FALSE(ResetUnsyncedEntry(PREFERENCES, client_tag)); | 2552 EXPECT_FALSE(ResetUnsyncedEntry(PREFERENCES, client_tag)); |
2553 | 2553 |
2554 // Manually change to the same title. Should not set is_unsynced. | 2554 // Manually change to the same title. Should not set is_unsynced. |
2555 { | 2555 { |
2556 WriteTransaction trans(FROM_HERE, sync_manager_.GetUserShare()); | 2556 WriteTransaction trans(FROM_HERE, sync_manager_.GetUserShare()); |
2557 WriteNode node(&trans); | 2557 WriteNode node(&trans); |
2558 EXPECT_EQ(BaseNode::INIT_OK, | 2558 EXPECT_EQ(BaseNode::INIT_OK, |
2559 node.InitByClientTagLookup(PREFERENCES, client_tag)); | 2559 node.InitByClientTagLookup(PREFERENCES, client_tag)); |
2560 node.SetTitle(UTF8ToWide(client_tag)); | 2560 node.SetTitle(base::UTF8ToWide(client_tag)); |
2561 } | 2561 } |
2562 EXPECT_FALSE(ResetUnsyncedEntry(PREFERENCES, client_tag)); | 2562 EXPECT_FALSE(ResetUnsyncedEntry(PREFERENCES, client_tag)); |
2563 | 2563 |
2564 // Manually change to new title. Should set is_unsynced. | 2564 // Manually change to new title. Should set is_unsynced. |
2565 { | 2565 { |
2566 WriteTransaction trans(FROM_HERE, sync_manager_.GetUserShare()); | 2566 WriteTransaction trans(FROM_HERE, sync_manager_.GetUserShare()); |
2567 WriteNode node(&trans); | 2567 WriteNode node(&trans); |
2568 EXPECT_EQ(BaseNode::INIT_OK, | 2568 EXPECT_EQ(BaseNode::INIT_OK, |
2569 node.InitByClientTagLookup(PREFERENCES, client_tag)); | 2569 node.InitByClientTagLookup(PREFERENCES, client_tag)); |
2570 node.SetTitle(UTF8ToWide("title2")); | 2570 node.SetTitle(base::UTF8ToWide("title2")); |
2571 } | 2571 } |
2572 EXPECT_TRUE(ResetUnsyncedEntry(PREFERENCES, client_tag)); | 2572 EXPECT_TRUE(ResetUnsyncedEntry(PREFERENCES, client_tag)); |
2573 } | 2573 } |
2574 | 2574 |
2575 // Verify SetTitle(..) doesn't unnecessarily set IS_UNSYNCED for encrypted | 2575 // Verify SetTitle(..) doesn't unnecessarily set IS_UNSYNCED for encrypted |
2576 // non-bookmarks when we write the same data or when we write new data | 2576 // non-bookmarks when we write the same data or when we write new data |
2577 // data (should remained kEncryptedString). | 2577 // data (should remained kEncryptedString). |
2578 TEST_F(SyncManagerTest, SetNonBookmarkTitleWithEncryption) { | 2578 TEST_F(SyncManagerTest, SetNonBookmarkTitleWithEncryption) { |
2579 std::string client_tag = "title"; | 2579 std::string client_tag = "title"; |
2580 sync_pb::EntitySpecifics entity_specifics; | 2580 sync_pb::EntitySpecifics entity_specifics; |
(...skipping 20 matching lines...) Expand all Loading... |
2601 PumpLoop(); | 2601 PumpLoop(); |
2602 EXPECT_TRUE(ResetUnsyncedEntry(PREFERENCES, client_tag)); | 2602 EXPECT_TRUE(ResetUnsyncedEntry(PREFERENCES, client_tag)); |
2603 | 2603 |
2604 // Manually change to the same title. Should not set is_unsynced. | 2604 // Manually change to the same title. Should not set is_unsynced. |
2605 // NON_UNIQUE_NAME should be kEncryptedString. | 2605 // NON_UNIQUE_NAME should be kEncryptedString. |
2606 { | 2606 { |
2607 WriteTransaction trans(FROM_HERE, sync_manager_.GetUserShare()); | 2607 WriteTransaction trans(FROM_HERE, sync_manager_.GetUserShare()); |
2608 WriteNode node(&trans); | 2608 WriteNode node(&trans); |
2609 EXPECT_EQ(BaseNode::INIT_OK, | 2609 EXPECT_EQ(BaseNode::INIT_OK, |
2610 node.InitByClientTagLookup(PREFERENCES, client_tag)); | 2610 node.InitByClientTagLookup(PREFERENCES, client_tag)); |
2611 node.SetTitle(UTF8ToWide(client_tag)); | 2611 node.SetTitle(base::UTF8ToWide(client_tag)); |
2612 const syncable::Entry* node_entry = node.GetEntry(); | 2612 const syncable::Entry* node_entry = node.GetEntry(); |
2613 const sync_pb::EntitySpecifics& specifics = node_entry->GetSpecifics(); | 2613 const sync_pb::EntitySpecifics& specifics = node_entry->GetSpecifics(); |
2614 EXPECT_TRUE(specifics.has_encrypted()); | 2614 EXPECT_TRUE(specifics.has_encrypted()); |
2615 EXPECT_EQ(kEncryptedString, node_entry->GetNonUniqueName()); | 2615 EXPECT_EQ(kEncryptedString, node_entry->GetNonUniqueName()); |
2616 } | 2616 } |
2617 EXPECT_FALSE(ResetUnsyncedEntry(PREFERENCES, client_tag)); | 2617 EXPECT_FALSE(ResetUnsyncedEntry(PREFERENCES, client_tag)); |
2618 | 2618 |
2619 // Manually change to new title. Should not set is_unsynced because the | 2619 // Manually change to new title. Should not set is_unsynced because the |
2620 // NON_UNIQUE_NAME should still be kEncryptedString. | 2620 // NON_UNIQUE_NAME should still be kEncryptedString. |
2621 { | 2621 { |
2622 WriteTransaction trans(FROM_HERE, sync_manager_.GetUserShare()); | 2622 WriteTransaction trans(FROM_HERE, sync_manager_.GetUserShare()); |
2623 WriteNode node(&trans); | 2623 WriteNode node(&trans); |
2624 EXPECT_EQ(BaseNode::INIT_OK, | 2624 EXPECT_EQ(BaseNode::INIT_OK, |
2625 node.InitByClientTagLookup(PREFERENCES, client_tag)); | 2625 node.InitByClientTagLookup(PREFERENCES, client_tag)); |
2626 node.SetTitle(UTF8ToWide("title2")); | 2626 node.SetTitle(base::UTF8ToWide("title2")); |
2627 const syncable::Entry* node_entry = node.GetEntry(); | 2627 const syncable::Entry* node_entry = node.GetEntry(); |
2628 const sync_pb::EntitySpecifics& specifics = node_entry->GetSpecifics(); | 2628 const sync_pb::EntitySpecifics& specifics = node_entry->GetSpecifics(); |
2629 EXPECT_TRUE(specifics.has_encrypted()); | 2629 EXPECT_TRUE(specifics.has_encrypted()); |
2630 EXPECT_EQ(kEncryptedString, node_entry->GetNonUniqueName()); | 2630 EXPECT_EQ(kEncryptedString, node_entry->GetNonUniqueName()); |
2631 EXPECT_FALSE(node_entry->GetIsUnsynced()); | 2631 EXPECT_FALSE(node_entry->GetIsUnsynced()); |
2632 } | 2632 } |
2633 } | 2633 } |
2634 | 2634 |
2635 // Ensure that titles are truncated to 255 bytes, and attempting to reset | 2635 // Ensure that titles are truncated to 255 bytes, and attempting to reset |
2636 // them to their longer version does not set IS_UNSYNCED. | 2636 // them to their longer version does not set IS_UNSYNCED. |
(...skipping 12 matching lines...) Expand all Loading... |
2649 entity_specifics); | 2649 entity_specifics); |
2650 // New node shouldn't start off unsynced. | 2650 // New node shouldn't start off unsynced. |
2651 EXPECT_FALSE(ResetUnsyncedEntry(PREFERENCES, kClientTag)); | 2651 EXPECT_FALSE(ResetUnsyncedEntry(PREFERENCES, kClientTag)); |
2652 | 2652 |
2653 // Manually change to the long title. Should set is_unsynced. | 2653 // Manually change to the long title. Should set is_unsynced. |
2654 { | 2654 { |
2655 WriteTransaction trans(FROM_HERE, sync_manager_.GetUserShare()); | 2655 WriteTransaction trans(FROM_HERE, sync_manager_.GetUserShare()); |
2656 WriteNode node(&trans); | 2656 WriteNode node(&trans); |
2657 EXPECT_EQ(BaseNode::INIT_OK, | 2657 EXPECT_EQ(BaseNode::INIT_OK, |
2658 node.InitByClientTagLookup(PREFERENCES, kClientTag)); | 2658 node.InitByClientTagLookup(PREFERENCES, kClientTag)); |
2659 node.SetTitle(UTF8ToWide(title)); | 2659 node.SetTitle(base::UTF8ToWide(title)); |
2660 EXPECT_EQ(node.GetTitle(), title.substr(0, 255)); | 2660 EXPECT_EQ(node.GetTitle(), title.substr(0, 255)); |
2661 } | 2661 } |
2662 EXPECT_TRUE(ResetUnsyncedEntry(PREFERENCES, kClientTag)); | 2662 EXPECT_TRUE(ResetUnsyncedEntry(PREFERENCES, kClientTag)); |
2663 | 2663 |
2664 // Manually change to the same title. Should not set is_unsynced. | 2664 // Manually change to the same title. Should not set is_unsynced. |
2665 { | 2665 { |
2666 WriteTransaction trans(FROM_HERE, sync_manager_.GetUserShare()); | 2666 WriteTransaction trans(FROM_HERE, sync_manager_.GetUserShare()); |
2667 WriteNode node(&trans); | 2667 WriteNode node(&trans); |
2668 EXPECT_EQ(BaseNode::INIT_OK, | 2668 EXPECT_EQ(BaseNode::INIT_OK, |
2669 node.InitByClientTagLookup(PREFERENCES, kClientTag)); | 2669 node.InitByClientTagLookup(PREFERENCES, kClientTag)); |
2670 node.SetTitle(UTF8ToWide(title)); | 2670 node.SetTitle(base::UTF8ToWide(title)); |
2671 EXPECT_EQ(node.GetTitle(), title.substr(0, 255)); | 2671 EXPECT_EQ(node.GetTitle(), title.substr(0, 255)); |
2672 } | 2672 } |
2673 EXPECT_FALSE(ResetUnsyncedEntry(PREFERENCES, kClientTag)); | 2673 EXPECT_FALSE(ResetUnsyncedEntry(PREFERENCES, kClientTag)); |
2674 | 2674 |
2675 // Manually change to new title. Should set is_unsynced. | 2675 // Manually change to new title. Should set is_unsynced. |
2676 { | 2676 { |
2677 WriteTransaction trans(FROM_HERE, sync_manager_.GetUserShare()); | 2677 WriteTransaction trans(FROM_HERE, sync_manager_.GetUserShare()); |
2678 WriteNode node(&trans); | 2678 WriteNode node(&trans); |
2679 EXPECT_EQ(BaseNode::INIT_OK, | 2679 EXPECT_EQ(BaseNode::INIT_OK, |
2680 node.InitByClientTagLookup(PREFERENCES, kClientTag)); | 2680 node.InitByClientTagLookup(PREFERENCES, kClientTag)); |
2681 node.SetTitle(UTF8ToWide("title2")); | 2681 node.SetTitle(base::UTF8ToWide("title2")); |
2682 } | 2682 } |
2683 EXPECT_TRUE(ResetUnsyncedEntry(PREFERENCES, kClientTag)); | 2683 EXPECT_TRUE(ResetUnsyncedEntry(PREFERENCES, kClientTag)); |
2684 } | 2684 } |
2685 | 2685 |
2686 // Create an encrypted entry when the cryptographer doesn't think the type is | 2686 // Create an encrypted entry when the cryptographer doesn't think the type is |
2687 // marked for encryption. Ensure reads/writes don't break and don't unencrypt | 2687 // marked for encryption. Ensure reads/writes don't break and don't unencrypt |
2688 // the data. | 2688 // the data. |
2689 TEST_F(SyncManagerTest, SetPreviouslyEncryptedSpecifics) { | 2689 TEST_F(SyncManagerTest, SetPreviouslyEncryptedSpecifics) { |
2690 std::string client_tag = "tag"; | 2690 std::string client_tag = "tag"; |
2691 std::string url = "url"; | 2691 std::string url = "url"; |
(...skipping 819 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3511 // SyncManagerInitInvalidStorageTest::GetFactory will return | 3511 // SyncManagerInitInvalidStorageTest::GetFactory will return |
3512 // DirectoryBackingStore that ensures that SyncManagerImpl::OpenDirectory fails. | 3512 // DirectoryBackingStore that ensures that SyncManagerImpl::OpenDirectory fails. |
3513 // SyncManagerImpl initialization is done in SyncManagerTest::SetUp. This test's | 3513 // SyncManagerImpl initialization is done in SyncManagerTest::SetUp. This test's |
3514 // task is to ensure that SyncManagerImpl reported initialization failure in | 3514 // task is to ensure that SyncManagerImpl reported initialization failure in |
3515 // OnInitializationComplete callback. | 3515 // OnInitializationComplete callback. |
3516 TEST_F(SyncManagerInitInvalidStorageTest, FailToOpenDatabase) { | 3516 TEST_F(SyncManagerInitInvalidStorageTest, FailToOpenDatabase) { |
3517 EXPECT_FALSE(initialization_succeeded_); | 3517 EXPECT_FALSE(initialization_succeeded_); |
3518 } | 3518 } |
3519 | 3519 |
3520 } // namespace | 3520 } // namespace |
OLD | NEW |