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

Side by Side Diff: chrome/browser/sync/profile_sync_service_bookmark_unittest.cc

Issue 305973004: BookmarkClient can add extra nodes to BookmarkModel. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 6 years, 6 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
OLDNEW
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
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698