OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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 // TODO(akalin): This file is basically just a unit test for | 5 // TODO(akalin): This file is basically just a unit test for |
6 // BookmarkChangeProcessor. Write unit tests for | 6 // BookmarkChangeProcessor. Write unit tests for |
7 // BookmarkModelAssociator separately. | 7 // BookmarkModelAssociator separately. |
8 | 8 |
9 #include <map> | 9 #include <map> |
10 #include <queue> | 10 #include <queue> |
(...skipping 591 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
602 if (browser_index == 0) { | 602 if (browser_index == 0) { |
603 EXPECT_EQ(gnode.GetPredecessorId(), 0); | 603 EXPECT_EQ(gnode.GetPredecessorId(), 0); |
604 } else { | 604 } else { |
605 const BookmarkNode* bprev = | 605 const BookmarkNode* bprev = |
606 bnode->parent()->GetChild(browser_index - 1); | 606 bnode->parent()->GetChild(browser_index - 1); |
607 syncer::ReadNode gprev(trans); | 607 syncer::ReadNode gprev(trans); |
608 ASSERT_TRUE(InitSyncNodeFromChromeNode(bprev, &gprev)); | 608 ASSERT_TRUE(InitSyncNodeFromChromeNode(bprev, &gprev)); |
609 EXPECT_EQ(gnode.GetPredecessorId(), gprev.GetId()); | 609 EXPECT_EQ(gnode.GetPredecessorId(), gprev.GetId()); |
610 EXPECT_EQ(gnode.GetParentId(), gprev.GetParentId()); | 610 EXPECT_EQ(gnode.GetParentId(), gprev.GetParentId()); |
611 } | 611 } |
612 if (browser_index == bnode->parent()->child_count() - 1) { | 612 // Note: the managed node comes next to the mobile node but isn't synced. |
| 613 if (browser_index == bnode->parent()->child_count() - 1 || |
| 614 bnode == model_->mobile_node()) { |
613 EXPECT_EQ(gnode.GetSuccessorId(), 0); | 615 EXPECT_EQ(gnode.GetSuccessorId(), 0); |
614 } else { | 616 } else { |
615 const BookmarkNode* bnext = | 617 const BookmarkNode* bnext = |
616 bnode->parent()->GetChild(browser_index + 1); | 618 bnode->parent()->GetChild(browser_index + 1); |
617 syncer::ReadNode gnext(trans); | 619 syncer::ReadNode gnext(trans); |
618 ASSERT_TRUE(InitSyncNodeFromChromeNode(bnext, &gnext)); | 620 ASSERT_TRUE(InitSyncNodeFromChromeNode(bnext, &gnext)); |
619 EXPECT_EQ(gnode.GetSuccessorId(), gnext.GetId()); | 621 EXPECT_EQ(gnode.GetSuccessorId(), gnext.GetId()); |
620 EXPECT_EQ(gnode.GetParentId(), gnext.GetParentId()); | 622 EXPECT_EQ(gnode.GetParentId(), gnext.GetParentId()); |
621 } | 623 } |
622 if (!bnode->empty()) | 624 if (!bnode->empty()) |
623 EXPECT_TRUE(gnode.GetFirstChildId()); | 625 EXPECT_TRUE(gnode.GetFirstChildId()); |
624 } | 626 } |
625 | 627 |
626 void ExpectSyncerNodeMatching(const BookmarkNode* bnode) { | 628 void ExpectSyncerNodeMatching(const BookmarkNode* bnode) { |
627 syncer::ReadTransaction trans(FROM_HERE, test_user_share_.user_share()); | 629 syncer::ReadTransaction trans(FROM_HERE, test_user_share_.user_share()); |
628 ExpectSyncerNodeMatching(&trans, bnode); | 630 ExpectSyncerNodeMatching(&trans, bnode); |
629 } | 631 } |
630 | 632 |
631 void ExpectBrowserNodeMatching(syncer::BaseTransaction* trans, | 633 void ExpectBrowserNodeMatching(syncer::BaseTransaction* trans, |
632 int64 sync_id) { | 634 int64 sync_id) { |
633 EXPECT_TRUE(sync_id); | 635 EXPECT_TRUE(sync_id); |
634 const BookmarkNode* bnode = | 636 const BookmarkNode* bnode = |
635 model_associator_->GetChromeNodeFromSyncId(sync_id); | 637 model_associator_->GetChromeNodeFromSyncId(sync_id); |
636 ASSERT_TRUE(bnode); | 638 ASSERT_TRUE(bnode); |
| 639 ASSERT_FALSE(model_->IsManaged(bnode)); |
637 int64 id = model_associator_->GetSyncIdFromChromeId(bnode->id()); | 640 int64 id = model_associator_->GetSyncIdFromChromeId(bnode->id()); |
638 EXPECT_EQ(id, sync_id); | 641 EXPECT_EQ(id, sync_id); |
639 ExpectSyncerNodeMatching(trans, bnode); | 642 ExpectSyncerNodeMatching(trans, bnode); |
640 } | 643 } |
641 | 644 |
642 void ExpectBrowserNodeUnknown(int64 sync_id) { | 645 void ExpectBrowserNodeUnknown(int64 sync_id) { |
643 EXPECT_FALSE(model_associator_->GetChromeNodeFromSyncId(sync_id)); | 646 EXPECT_FALSE(model_associator_->GetChromeNodeFromSyncId(sync_id)); |
644 } | 647 } |
645 | 648 |
646 void ExpectBrowserNodeKnown(int64 sync_id) { | 649 void ExpectBrowserNodeKnown(int64 sync_id) { |
(...skipping 660 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1307 int size, | 1310 int size, |
1308 int* running_count); | 1311 int* running_count); |
1309 void CompareWithTestData(const BookmarkNode* node, | 1312 void CompareWithTestData(const BookmarkNode* node, |
1310 const TestData* data, | 1313 const TestData* data, |
1311 int size, | 1314 int size, |
1312 int* running_count); | 1315 int* running_count); |
1313 | 1316 |
1314 void ExpectBookmarkModelMatchesTestData(); | 1317 void ExpectBookmarkModelMatchesTestData(); |
1315 void WriteTestDataToBookmarkModel(); | 1318 void WriteTestDataToBookmarkModel(); |
1316 | 1319 |
| 1320 // Output transaction versions of |node| and nodes under it to |
| 1321 // |node_versions|. |
| 1322 void GetTransactionVersions(const BookmarkNode* root, |
| 1323 BookmarkNodeVersionMap* node_versions); |
| 1324 |
1317 // Verify transaction versions of bookmark nodes and sync nodes are equal | 1325 // Verify transaction versions of bookmark nodes and sync nodes are equal |
1318 // recursively. If node is in |version_expected|, versions should match | 1326 // recursively. If node is in |version_expected|, versions should match |
1319 // there, too. | 1327 // there, too. |
1320 void ExpectTransactionVersionMatch( | 1328 void ExpectTransactionVersionMatch( |
1321 const BookmarkNode* node, | 1329 const BookmarkNode* node, |
1322 const BookmarkNodeVersionMap& version_expected); | 1330 const BookmarkNodeVersionMap& version_expected); |
1323 | 1331 |
1324 private: | 1332 private: |
1325 const base::Time start_time_; | 1333 const base::Time start_time_; |
1326 | 1334 |
(...skipping 668 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1995 ExpectModelMatch(); | 2003 ExpectModelMatch(); |
1996 | 2004 |
1997 // Change/delete existing meta info and verify. | 2005 // Change/delete existing meta info and verify. |
1998 model_->DeleteNodeMetaInfo(folder_node, "folder"); | 2006 model_->DeleteNodeMetaInfo(folder_node, "folder"); |
1999 model_->SetNodeMetaInfo(node, "node", "changednodevalue"); | 2007 model_->SetNodeMetaInfo(node, "node", "changednodevalue"); |
2000 model_->DeleteNodeMetaInfo(node, "other"); | 2008 model_->DeleteNodeMetaInfo(node, "other"); |
2001 model_->SetNodeMetaInfo(node, "newkey", "newkeyvalue"); | 2009 model_->SetNodeMetaInfo(node, "newkey", "newkeyvalue"); |
2002 ExpectModelMatch(); | 2010 ExpectModelMatch(); |
2003 } | 2011 } |
2004 | 2012 |
2005 // Output transaction versions of |node| and nodes under it to |node_versions|. | 2013 void ProfileSyncServiceBookmarkTestWithData::GetTransactionVersions( |
2006 void GetTransactionVersions( | |
2007 const BookmarkNode* root, | 2014 const BookmarkNode* root, |
2008 BookmarkNodeVersionMap* node_versions) { | 2015 BookmarkNodeVersionMap* node_versions) { |
2009 node_versions->clear(); | 2016 node_versions->clear(); |
2010 std::queue<const BookmarkNode*> nodes; | 2017 std::queue<const BookmarkNode*> nodes; |
2011 nodes.push(root); | 2018 nodes.push(root); |
2012 while (!nodes.empty()) { | 2019 while (!nodes.empty()) { |
2013 const BookmarkNode* n = nodes.front(); | 2020 const BookmarkNode* n = nodes.front(); |
2014 nodes.pop(); | 2021 nodes.pop(); |
2015 | 2022 |
2016 int64 version = n->sync_transaction_version(); | 2023 int64 version = n->sync_transaction_version(); |
2017 EXPECT_NE(BookmarkNode::kInvalidSyncTransactionVersion, version); | 2024 EXPECT_NE(BookmarkNode::kInvalidSyncTransactionVersion, version); |
2018 | 2025 |
2019 (*node_versions)[n->id()] = version; | 2026 (*node_versions)[n->id()] = version; |
2020 for (int i = 0; i < n->child_count(); ++i) | 2027 for (int i = 0; i < n->child_count(); ++i) { |
| 2028 if (model_->IsManaged(n->GetChild(i))) |
| 2029 continue; |
2021 nodes.push(n->GetChild(i)); | 2030 nodes.push(n->GetChild(i)); |
| 2031 } |
2022 } | 2032 } |
2023 } | 2033 } |
2024 | 2034 |
2025 void ProfileSyncServiceBookmarkTestWithData::ExpectTransactionVersionMatch( | 2035 void ProfileSyncServiceBookmarkTestWithData::ExpectTransactionVersionMatch( |
2026 const BookmarkNode* node, | 2036 const BookmarkNode* node, |
2027 const BookmarkNodeVersionMap& version_expected) { | 2037 const BookmarkNodeVersionMap& version_expected) { |
2028 syncer::ReadTransaction trans(FROM_HERE, test_user_share_.user_share()); | 2038 syncer::ReadTransaction trans(FROM_HERE, test_user_share_.user_share()); |
2029 | 2039 |
2030 BookmarkNodeVersionMap bnodes_versions; | 2040 BookmarkNodeVersionMap bnodes_versions; |
2031 GetTransactionVersions(node, &bnodes_versions); | 2041 GetTransactionVersions(node, &bnodes_versions); |
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2164 ExpectModelMatch(); | 2174 ExpectModelMatch(); |
2165 | 2175 |
2166 // Then simulate the add call arriving late. | 2176 // Then simulate the add call arriving late. |
2167 change_processor_->BookmarkNodeAdded(model_, model_->bookmark_bar_node(), 0); | 2177 change_processor_->BookmarkNodeAdded(model_, model_->bookmark_bar_node(), 0); |
2168 ExpectModelMatch(); | 2178 ExpectModelMatch(); |
2169 } | 2179 } |
2170 | 2180 |
2171 } // namespace | 2181 } // namespace |
2172 | 2182 |
2173 } // namespace browser_sync | 2183 } // namespace browser_sync |
OLD | NEW |