| 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 #include <set> | 5 #include <set> |
| 6 #include <string> | 6 #include <string> |
| 7 #include <utility> | 7 #include <utility> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "testing/gtest/include/gtest/gtest.h" | 10 #include "testing/gtest/include/gtest/gtest.h" |
| (...skipping 578 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 589 std::string tag = AutocompleteSyncableService::KeyToTag( | 589 std::string tag = AutocompleteSyncableService::KeyToTag( |
| 590 base::UTF16ToUTF8(entry.key().name()), | 590 base::UTF16ToUTF8(entry.key().name()), |
| 591 base::UTF16ToUTF8(entry.key().value())); | 591 base::UTF16ToUTF8(entry.key().value())); |
| 592 syncer::WriteNode::InitUniqueByCreationResult result = | 592 syncer::WriteNode::InitUniqueByCreationResult result = |
| 593 node.InitUniqueByCreation(syncer::AUTOFILL, autofill_root, tag); | 593 node.InitUniqueByCreation(syncer::AUTOFILL, autofill_root, tag); |
| 594 if (result != syncer::WriteNode::INIT_SUCCESS) | 594 if (result != syncer::WriteNode::INIT_SUCCESS) |
| 595 return false; | 595 return false; |
| 596 | 596 |
| 597 sync_pb::EntitySpecifics specifics; | 597 sync_pb::EntitySpecifics specifics; |
| 598 AutocompleteSyncableService::WriteAutofillEntry(entry, &specifics); | 598 AutocompleteSyncableService::WriteAutofillEntry(entry, &specifics); |
| 599 sync_pb::AutofillSpecifics* autofill_specifics = | 599 node.SetEntitySpecifics(specifics); |
| 600 specifics.mutable_autofill(); | |
| 601 node.SetAutofillSpecifics(*autofill_specifics); | |
| 602 return true; | 600 return true; |
| 603 } | 601 } |
| 604 | 602 |
| 605 bool AddAutofillSyncNode(const AutofillProfile& profile) { | 603 bool AddAutofillSyncNode(const AutofillProfile& profile) { |
| 606 syncer::WriteTransaction trans(FROM_HERE, sync_service_->GetUserShare()); | 604 syncer::WriteTransaction trans(FROM_HERE, sync_service_->GetUserShare()); |
| 607 syncer::ReadNode autofill_root(&trans); | 605 syncer::ReadNode autofill_root(&trans); |
| 608 if (autofill_root.InitTypeRoot(AUTOFILL_PROFILE) != BaseNode::INIT_OK) { | 606 if (autofill_root.InitTypeRoot(AUTOFILL_PROFILE) != BaseNode::INIT_OK) { |
| 609 return false; | 607 return false; |
| 610 } | 608 } |
| 611 syncer::WriteNode node(&trans); | 609 syncer::WriteNode node(&trans); |
| 612 std::string tag = profile.guid(); | 610 std::string tag = profile.guid(); |
| 613 syncer::WriteNode::InitUniqueByCreationResult result = | 611 syncer::WriteNode::InitUniqueByCreationResult result = |
| 614 node.InitUniqueByCreation(syncer::AUTOFILL_PROFILE, | 612 node.InitUniqueByCreation(syncer::AUTOFILL_PROFILE, |
| 615 autofill_root, tag); | 613 autofill_root, tag); |
| 616 if (result != syncer::WriteNode::INIT_SUCCESS) | 614 if (result != syncer::WriteNode::INIT_SUCCESS) |
| 617 return false; | 615 return false; |
| 618 | 616 |
| 619 sync_pb::EntitySpecifics specifics; | 617 sync_pb::EntitySpecifics specifics; |
| 620 AutofillProfileSyncableService::WriteAutofillProfile(profile, &specifics); | 618 AutofillProfileSyncableService::WriteAutofillProfile(profile, &specifics); |
| 621 sync_pb::AutofillProfileSpecifics* profile_specifics = | 619 node.SetEntitySpecifics(specifics); |
| 622 specifics.mutable_autofill_profile(); | |
| 623 node.SetAutofillProfileSpecifics(*profile_specifics); | |
| 624 return true; | 620 return true; |
| 625 } | 621 } |
| 626 | 622 |
| 627 bool GetAutofillEntriesFromSyncDB(std::vector<AutofillEntry>* entries, | 623 bool GetAutofillEntriesFromSyncDB(std::vector<AutofillEntry>* entries, |
| 628 std::vector<AutofillProfile>* profiles) { | 624 std::vector<AutofillProfile>* profiles) { |
| 629 syncer::ReadTransaction trans(FROM_HERE, sync_service_->GetUserShare()); | 625 syncer::ReadTransaction trans(FROM_HERE, sync_service_->GetUserShare()); |
| 630 syncer::ReadNode autofill_root(&trans); | 626 syncer::ReadNode autofill_root(&trans); |
| 631 if (autofill_root.InitTypeRoot(syncer::AUTOFILL) != BaseNode::INIT_OK) { | 627 if (autofill_root.InitTypeRoot(syncer::AUTOFILL) != BaseNode::INIT_OK) { |
| 632 return false; | 628 return false; |
| 633 } | 629 } |
| 634 | 630 |
| 635 int64 child_id = autofill_root.GetFirstChildId(); | 631 int64 child_id = autofill_root.GetFirstChildId(); |
| 636 while (child_id != syncer::kInvalidId) { | 632 while (child_id != syncer::kInvalidId) { |
| 637 syncer::ReadNode child_node(&trans); | 633 syncer::ReadNode child_node(&trans); |
| 638 if (child_node.InitByIdLookup(child_id) != BaseNode::INIT_OK) | 634 if (child_node.InitByIdLookup(child_id) != BaseNode::INIT_OK) |
| 639 return false; | 635 return false; |
| 640 | 636 |
| 641 const sync_pb::AutofillSpecifics& autofill( | 637 const sync_pb::AutofillSpecifics& autofill( |
| 642 child_node.GetAutofillSpecifics()); | 638 child_node.GetEntitySpecifics().autofill()); |
| 643 if (autofill.has_value()) { | 639 if (autofill.has_value()) { |
| 644 AutofillKey key(base::UTF8ToUTF16(autofill.name()), | 640 AutofillKey key(base::UTF8ToUTF16(autofill.name()), |
| 645 base::UTF8ToUTF16(autofill.value())); | 641 base::UTF8ToUTF16(autofill.value())); |
| 646 std::vector<base::Time> timestamps; | 642 std::vector<base::Time> timestamps; |
| 647 int timestamps_count = autofill.usage_timestamp_size(); | 643 int timestamps_count = autofill.usage_timestamp_size(); |
| 648 for (int i = 0; i < timestamps_count; ++i) { | 644 for (int i = 0; i < timestamps_count; ++i) { |
| 649 timestamps.push_back(Time::FromInternalValue( | 645 timestamps.push_back(Time::FromInternalValue( |
| 650 autofill.usage_timestamp(i))); | 646 autofill.usage_timestamp(i))); |
| 651 } | 647 } |
| 652 entries->push_back( | 648 entries->push_back( |
| (...skipping 18 matching lines...) Expand all Loading... |
| 671 return false; | 667 return false; |
| 672 } | 668 } |
| 673 | 669 |
| 674 int64 child_id = autofill_root.GetFirstChildId(); | 670 int64 child_id = autofill_root.GetFirstChildId(); |
| 675 while (child_id != syncer::kInvalidId) { | 671 while (child_id != syncer::kInvalidId) { |
| 676 syncer::ReadNode child_node(&trans); | 672 syncer::ReadNode child_node(&trans); |
| 677 if (child_node.InitByIdLookup(child_id) != BaseNode::INIT_OK) | 673 if (child_node.InitByIdLookup(child_id) != BaseNode::INIT_OK) |
| 678 return false; | 674 return false; |
| 679 | 675 |
| 680 const sync_pb::AutofillProfileSpecifics& autofill( | 676 const sync_pb::AutofillProfileSpecifics& autofill( |
| 681 child_node.GetAutofillProfileSpecifics()); | 677 child_node.GetEntitySpecifics().autofill_profile()); |
| 682 AutofillProfile p; | 678 AutofillProfile p; |
| 683 p.set_guid(autofill.guid()); | 679 p.set_guid(autofill.guid()); |
| 684 AutofillProfileSyncableService::OverwriteProfileWithServerData( | 680 AutofillProfileSyncableService::OverwriteProfileWithServerData( |
| 685 autofill, &p, "en-US"); | 681 autofill, &p, "en-US"); |
| 686 profiles->push_back(p); | 682 profiles->push_back(p); |
| 687 child_id = child_node.GetSuccessorId(); | 683 child_id = child_node.GetSuccessorId(); |
| 688 } | 684 } |
| 689 return true; | 685 return true; |
| 690 } | 686 } |
| 691 | 687 |
| (...skipping 682 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1374 std::vector<AutofillEntry> sync_entries; | 1370 std::vector<AutofillEntry> sync_entries; |
| 1375 std::vector<AutofillProfile> sync_profiles; | 1371 std::vector<AutofillProfile> sync_profiles; |
| 1376 ASSERT_TRUE(GetAutofillEntriesFromSyncDB(&sync_entries, &sync_profiles)); | 1372 ASSERT_TRUE(GetAutofillEntriesFromSyncDB(&sync_entries, &sync_profiles)); |
| 1377 EXPECT_EQ(3U, sync_entries.size()); | 1373 EXPECT_EQ(3U, sync_entries.size()); |
| 1378 EXPECT_EQ(0U, sync_profiles.size()); | 1374 EXPECT_EQ(0U, sync_profiles.size()); |
| 1379 for (size_t i = 0; i < sync_entries.size(); i++) { | 1375 for (size_t i = 0; i < sync_entries.size(); i++) { |
| 1380 DVLOG(1) << "Entry " << i << ": " << sync_entries[i].key().name() | 1376 DVLOG(1) << "Entry " << i << ": " << sync_entries[i].key().name() |
| 1381 << ", " << sync_entries[i].key().value(); | 1377 << ", " << sync_entries[i].key().value(); |
| 1382 } | 1378 } |
| 1383 } | 1379 } |
| OLD | NEW |