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

Unified Diff: chrome/browser/ui/webui/ntp/android/partner_bookmarks_shim_unittest.cc

Issue 10834237: Add the android partner bookmark shim. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Moved shim to android/ntp and removed the conflicting ID namespace issue. Created 8 years, 4 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/ui/webui/ntp/android/partner_bookmarks_shim.cc ('k') | chrome/chrome_browser.gypi » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/webui/ntp/android/partner_bookmarks_shim_unittest.cc
diff --git a/chrome/browser/ui/webui/ntp/android/partner_bookmarks_shim_unittest.cc b/chrome/browser/ui/webui/ntp/android/partner_bookmarks_shim_unittest.cc
new file mode 100644
index 0000000000000000000000000000000000000000..ea49a591ca701ebe928b67f086a955517ca9a4ee
--- /dev/null
+++ b/chrome/browser/ui/webui/ntp/android/partner_bookmarks_shim_unittest.cc
@@ -0,0 +1,162 @@
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/ui/webui/ntp/android/partner_bookmarks_shim.h"
+
+#include "base/message_loop.h"
+#include "base/string16.h"
+#include "base/utf_string_conversions.h"
+#include "chrome/browser/bookmarks/bookmark_model.h"
+#include "chrome/browser/bookmarks/bookmark_model_factory.h"
+#include "chrome/test/base/testing_profile.h"
+#include "content/public/browser/browser_thread.h"
+#include "content/public/test/test_browser_thread.h"
+#include "googleurl/src/gurl.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+class PartnerBookmarksShimTest : public testing::Test {
+ public:
+ PartnerBookmarksShimTest()
+ : ui_thread_(content::BrowserThread::UI, &message_loop_),
+ file_thread_(content::BrowserThread::FILE, &message_loop_) {
+ }
+
+ TestingProfile* profile() const { return profile_.get(); }
+
+ const BookmarkNode* AddBookmark(const BookmarkNode* parent,
+ const GURL& url,
+ const string16& title) {
+ BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile());
+ if (!parent)
+ parent = model->bookmark_bar_node();
+ return model->AddURL(parent, parent->child_count(), title, url);
+ }
+
+ const BookmarkNode* AddFolder(const BookmarkNode* parent,
+ const string16& title) {
+ BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile());
+ if (!parent)
+ parent = model->bookmark_bar_node();
+ return model->AddFolder(parent, parent->child_count(), title);
+ }
+
+ protected:
+ // testing::Test
+ virtual void SetUp() OVERRIDE {
+ profile_.reset(new TestingProfile());
+ profile_->CreateBookmarkModel(true);
+ profile_->BlockUntilBookmarkModelLoaded();
+ }
+
+ virtual void TearDown() OVERRIDE {
+ profile_.reset(NULL);
+ PartnerBookmarksShim::GetInstance()->Reset();
+ }
+
+ scoped_ptr<TestingProfile> profile_;
+
+ MessageLoopForUI message_loop_;
+ content::TestBrowserThread ui_thread_;
+ content::TestBrowserThread file_thread_;
+
+ DISALLOW_COPY_AND_ASSIGN(PartnerBookmarksShimTest);
+};
+
+class TestObserver : public PartnerBookmarksShim::Observer {
+ public:
+ TestObserver()
+ : notified_of_load_(false) {
+ }
+
+ // Called when everything is loaded and attached
+ virtual void PartnerShimLoaded(PartnerBookmarksShim*) OVERRIDE {
+ notified_of_load_ = true;
+ }
+
+ bool IsNotifiedOfLoad() { return notified_of_load_; }
+
+ private:
+ bool notified_of_load_;
+
+ DISALLOW_COPY_AND_ASSIGN(TestObserver);
+};
+
+TEST_F(PartnerBookmarksShimTest, GetNodeByID) {
+ // Add a bookmark.
+ GURL bookmark_url("http://www.google.com/");
+ AddBookmark(
+ NULL,
+ bookmark_url,
+ ASCIIToUTF16("bar"));
+ const BookmarkNode* test_folder1 = AddFolder(NULL,
+ ASCIIToUTF16("test_folder1"));
+ const BookmarkNode* test_folder2 = AddFolder(test_folder1,
+ ASCIIToUTF16("test_folder2"));
+ const BookmarkNode* model_bookmark1 = AddBookmark(test_folder2,
+ GURL("http://www.test.com"),
+ ASCIIToUTF16("bar"));
+ const BookmarkNode* model_bookmark2 = AddBookmark(test_folder2,
+ GURL("http://www.foo.com"),
+ ASCIIToUTF16("baz"));
+
+ BookmarkNode* root_partner_node = new BookmarkPermanentNode(0);
+ BookmarkNode* partner_folder1 = new BookmarkNode(1, GURL());
+ partner_folder1->set_type(BookmarkNode::FOLDER);
+ root_partner_node->Add(partner_folder1, root_partner_node->child_count());
+
+ BookmarkNode* partner_folder2 = new BookmarkNode(2, GURL());
+ partner_folder2->set_type(BookmarkNode::FOLDER);
+ partner_folder1->Add(partner_folder2, partner_folder1->child_count());
+
+ BookmarkNode* partner_bookmark1 = new BookmarkNode(3,
+ GURL("http://www.a.com"));
+ partner_bookmark1->set_type(BookmarkNode::URL);
+ partner_folder1->Add(partner_bookmark1, partner_folder1->child_count());
+
+ BookmarkNode* partner_bookmark2 = new BookmarkNode(4,
+ GURL("http://www.b.com"));
+ partner_bookmark2->set_type(BookmarkNode::URL);
+ partner_folder2->Add(partner_bookmark2, partner_folder2->child_count());
+
+ PartnerBookmarksShim* shim = PartnerBookmarksShim::GetInstance();
+ ASSERT_FALSE(shim->IsLoaded());
+ BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile());
+ shim->AttachTo(model, model->mobile_node());
+ shim->SetPartnerBookmarksRoot(root_partner_node);
+ ASSERT_TRUE(shim->IsLoaded());
+
+ ASSERT_EQ(shim->GetNodeByID(model_bookmark1->id(), false), model_bookmark1);
+ ASSERT_EQ(shim->GetNodeByID(model_bookmark2->id(), false), model_bookmark2);
+ ASSERT_EQ(shim->GetNodeByID(test_folder2->id(), false), test_folder2);
+ ASSERT_EQ(shim->GetNodeByID(0, true), root_partner_node);
+ ASSERT_EQ(shim->GetNodeByID(1, true), partner_folder1);
+ ASSERT_EQ(shim->GetNodeByID(4, true), partner_bookmark2);
+}
+
+TEST_F(PartnerBookmarksShimTest, ObserverNotifiedOfLoadNoPartnerBookmarks) {
+ TestObserver* observer = new TestObserver();
+ PartnerBookmarksShim* shim = PartnerBookmarksShim::GetInstance();
+ shim->AddObserver(observer);
+ ASSERT_FALSE(observer->IsNotifiedOfLoad());
+ shim->SetPartnerBookmarksRoot(NULL);
+ ASSERT_TRUE(observer->IsNotifiedOfLoad());
+}
+
+TEST_F(PartnerBookmarksShimTest, ObserverNotifiedOfLoadWithPartnerBookmarks) {
+ int64 id = 5;
+ BookmarkNode* root_partner_node = new BookmarkPermanentNode(id++);
+ BookmarkNode* partner_bookmark1 = new BookmarkNode(id++,
+ GURL("http://www.a.com"));
+ partner_bookmark1->set_type(BookmarkNode::URL);
+ root_partner_node->Add(partner_bookmark1, root_partner_node->child_count());
+
+ TestObserver* observer = new TestObserver();
+ PartnerBookmarksShim* shim = PartnerBookmarksShim::GetInstance();
+ shim->AddObserver(observer);
+ BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile());
+ shim->AttachTo(model, model->bookmark_bar_node());
+ ASSERT_FALSE(observer->IsNotifiedOfLoad());
+ shim->SetPartnerBookmarksRoot(root_partner_node);
+ ASSERT_TRUE(observer->IsNotifiedOfLoad());
+}
« no previous file with comments | « chrome/browser/ui/webui/ntp/android/partner_bookmarks_shim.cc ('k') | chrome/chrome_browser.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698