Index: chrome/browser/android/bookmarks/partner_bookmarks_shim_unittest.cc |
diff --git a/chrome/browser/android/bookmarks/partner_bookmarks_shim_unittest.cc b/chrome/browser/android/bookmarks/partner_bookmarks_shim_unittest.cc |
index dbbf1cedd5ca3d00e7a6fe4919226b00049bf07d..0449087fbd68221415cb679a2521c63b08285aa6 100644 |
--- a/chrome/browser/android/bookmarks/partner_bookmarks_shim_unittest.cc |
+++ b/chrome/browser/android/bookmarks/partner_bookmarks_shim_unittest.cc |
@@ -70,6 +70,7 @@ class PartnerBookmarksShimTest : public testing::Test { |
virtual void TearDown() OVERRIDE { |
PartnerBookmarksShim::ClearInBrowserContextForTesting(profile_.get()); |
PartnerBookmarksShim::ClearPartnerModelForTesting(); |
+ PartnerBookmarksShim::EnablePartnerBookmarksEditing(); |
profile_.reset(NULL); |
} |
@@ -371,3 +372,41 @@ TEST_F(PartnerBookmarksShimTest, SaveLoadProfile) { |
EXPECT_FALSE(shim->IsReachable(partner_bookmark2)); |
} |
} |
+ |
+TEST_F(PartnerBookmarksShimTest, DisableEditing) { |
+ PartnerBookmarksShim* shim = partner_bookmarks_shim(); |
+ shim->AddObserver(&observer_); |
+ |
+ EXPECT_CALL(observer_, PartnerShimLoaded(shim)).Times(0); |
+ EXPECT_CALL(observer_, PartnerShimChanged(shim)).Times(0); |
+ |
+ BookmarkNode* root_partner_node = new BookmarkPermanentNode(0); |
+ root_partner_node->SetTitle(base::ASCIIToUTF16("Partner bookmarks")); |
+ |
+ BookmarkNode* partner_bookmark1 = new BookmarkNode(3, GURL("http://a")); |
+ partner_bookmark1->set_type(BookmarkNode::URL); |
+ partner_bookmark1->SetTitle(base::ASCIIToUTF16("a")); |
+ root_partner_node->Add(partner_bookmark1, root_partner_node->child_count()); |
+ |
+ BookmarkNode* partner_bookmark2 = new BookmarkNode(3, GURL("http://b")); |
+ partner_bookmark2->set_type(BookmarkNode::URL); |
+ partner_bookmark2->SetTitle(base::ASCIIToUTF16("b")); |
+ root_partner_node->Add(partner_bookmark2, root_partner_node->child_count()); |
+ |
+ ASSERT_FALSE(shim->IsLoaded()); |
+ EXPECT_CALL(observer_, PartnerShimLoaded(shim)).Times(1); |
+ shim->SetPartnerBookmarksRoot(root_partner_node); |
+ ASSERT_TRUE(shim->IsLoaded()); |
+ |
+ // Check that edits work by default. |
+ EXPECT_CALL(observer_, PartnerShimChanged(shim)).Times(2); |
+ shim->RenameBookmark(partner_bookmark1, base::ASCIIToUTF16("a2.com")); |
+ shim->RemoveBookmark(partner_bookmark2); |
+ EXPECT_EQ(base::ASCIIToUTF16("a2.com"), shim->GetTitle(partner_bookmark1)); |
+ EXPECT_FALSE(shim->IsReachable(partner_bookmark2)); |
+ |
+ // Disable edits and check that edits are not applied anymore. |
+ PartnerBookmarksShim::DisablePartnerBookmarksEditing(); |
+ EXPECT_EQ(base::ASCIIToUTF16("a"), shim->GetTitle(partner_bookmark1)); |
+ EXPECT_TRUE(shim->IsReachable(partner_bookmark2)); |
+} |