Commit 3ca2fa3e authored by tfarina@chromium.org's avatar tfarina@chromium.org

Componentize bookmark_expanded_state_tracker_unittest.cc.

BUG=367831
TEST=components_unittests --gtest_filter=BookmarkExpandedStateTrackerTest.*
R=sky@chromium.org,blundell@chromium.org
NOTRY=true

Review URL: https://codereview.chromium.org/275773002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@269923 0039d316-1c4b-4281-b951-d872f2087c98
parent c7c73a72
...@@ -603,7 +603,6 @@ ...@@ -603,7 +603,6 @@
'browser/background/background_application_list_model_unittest.cc', 'browser/background/background_application_list_model_unittest.cc',
'browser/background/background_contents_service_unittest.cc', 'browser/background/background_contents_service_unittest.cc',
'browser/background/background_mode_manager_unittest.cc', 'browser/background/background_mode_manager_unittest.cc',
'browser/bookmarks/bookmark_expanded_state_tracker_unittest.cc',
'browser/bookmarks/bookmark_html_writer_unittest.cc', 'browser/bookmarks/bookmark_html_writer_unittest.cc',
'browser/bookmarks/bookmark_model_unittest.cc', 'browser/bookmarks/bookmark_model_unittest.cc',
'browser/browser_about_handler_unittest.cc', 'browser/browser_about_handler_unittest.cc',
......
// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#include "components/bookmarks/core/browser/bookmark_expanded_state_tracker.h" #include "components/bookmarks/core/browser/bookmark_expanded_state_tracker.h"
#include "base/files/file_path.h"
#include "base/message_loop/message_loop.h"
#include "base/prefs/pref_service.h"
#include "base/prefs/pref_service_factory.h"
#include "base/prefs/testing_pref_store.h"
#include "base/run_loop.h"
#include "base/strings/utf_string_conversions.h" #include "base/strings/utf_string_conversions.h"
#include "chrome/browser/bookmarks/bookmark_model_factory.h"
#include "chrome/test/base/testing_profile.h"
#include "components/bookmarks/core/browser/bookmark_model.h" #include "components/bookmarks/core/browser/bookmark_model.h"
#include "components/bookmarks/core/common/bookmark_pref_names.h"
#include "components/bookmarks/core/test/bookmark_test_helpers.h" #include "components/bookmarks/core/test/bookmark_test_helpers.h"
#include "content/public/test/test_browser_thread_bundle.h" #include "components/bookmarks/core/test/test_bookmark_client.h"
#include "components/user_prefs/pref_registry_syncable.h"
#include "testing/gtest/include/gtest/gtest.h" #include "testing/gtest/include/gtest/gtest.h"
scoped_ptr<PrefService> PrefServiceForTesting() {
scoped_refptr<user_prefs::PrefRegistrySyncable> registry(
new user_prefs::PrefRegistrySyncable());
registry->RegisterListPref(prefs::kBookmarkEditorExpandedNodes,
new base::ListValue,
user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
base::PrefServiceFactory factory;
factory.set_user_prefs(make_scoped_refptr(new TestingPrefStore()));
return factory.Create(registry.get());
}
class BookmarkExpandedStateTrackerTest : public testing::Test { class BookmarkExpandedStateTrackerTest : public testing::Test {
public: public:
BookmarkExpandedStateTrackerTest(); BookmarkExpandedStateTrackerTest();
virtual ~BookmarkExpandedStateTrackerTest();
protected:
// testing::Test:
virtual void SetUp() OVERRIDE; virtual void SetUp() OVERRIDE;
virtual void TearDown() OVERRIDE; virtual void TearDown() OVERRIDE;
protected: base::MessageLoop message_loop_;
BookmarkModel* GetModel(); test::TestBookmarkClient client_;
scoped_ptr<PrefService> prefs_;
private: scoped_ptr<BookmarkModel> model_;
scoped_ptr<TestingProfile> profile_;
content::TestBrowserThreadBundle thread_bundle_;
DISALLOW_COPY_AND_ASSIGN(BookmarkExpandedStateTrackerTest); DISALLOW_COPY_AND_ASSIGN(BookmarkExpandedStateTrackerTest);
}; };
BookmarkExpandedStateTrackerTest::BookmarkExpandedStateTrackerTest() {} BookmarkExpandedStateTrackerTest::BookmarkExpandedStateTrackerTest() {}
void BookmarkExpandedStateTrackerTest::SetUp() { BookmarkExpandedStateTrackerTest::~BookmarkExpandedStateTrackerTest() {}
profile_.reset(new TestingProfile);
profile_->CreateBookmarkModel(true);
test::WaitForBookmarkModelToLoad(GetModel());
}
BookmarkModel* BookmarkExpandedStateTrackerTest::GetModel() { void BookmarkExpandedStateTrackerTest::SetUp() {
return BookmarkModelFactory::GetForProfile(profile_.get()); prefs_ = PrefServiceForTesting();
model_.reset(new BookmarkModel(&client_, false));
model_->Load(prefs_.get(),
std::string(),
base::FilePath(),
base::MessageLoopProxy::current(),
base::MessageLoopProxy::current());
test::WaitForBookmarkModelToLoad(model_.get());
} }
void BookmarkExpandedStateTrackerTest::TearDown() { void BookmarkExpandedStateTrackerTest::TearDown() {
profile_.reset(NULL); model_.reset();
} }
// Various assertions for SetExpandedNodes. // Various assertions for SetExpandedNodes.
TEST_F(BookmarkExpandedStateTrackerTest, SetExpandedNodes) { TEST_F(BookmarkExpandedStateTrackerTest, SetExpandedNodes) {
BookmarkModel* model = GetModel(); BookmarkExpandedStateTracker* tracker = model_->expanded_state_tracker();
BookmarkExpandedStateTracker* tracker = model->expanded_state_tracker();
// Should start out initially empty. // Should start out initially empty.
EXPECT_TRUE(tracker->GetExpandedNodes().empty()); EXPECT_TRUE(tracker->GetExpandedNodes().empty());
BookmarkExpandedStateTracker::Nodes nodes; BookmarkExpandedStateTracker::Nodes nodes;
nodes.insert(model->bookmark_bar_node()); nodes.insert(model_->bookmark_bar_node());
tracker->SetExpandedNodes(nodes); tracker->SetExpandedNodes(nodes);
EXPECT_EQ(nodes, tracker->GetExpandedNodes()); EXPECT_EQ(nodes, tracker->GetExpandedNodes());
// Add a folder and mark it expanded. // Add a folder and mark it expanded.
const BookmarkNode* n1 = model->AddFolder(model->bookmark_bar_node(), 0, const BookmarkNode* n1 = model_->AddFolder(
base::ASCIIToUTF16("x")); model_->bookmark_bar_node(), 0, base::ASCIIToUTF16("x"));
nodes.insert(n1); nodes.insert(n1);
tracker->SetExpandedNodes(nodes); tracker->SetExpandedNodes(nodes);
EXPECT_EQ(nodes, tracker->GetExpandedNodes()); EXPECT_EQ(nodes, tracker->GetExpandedNodes());
// Remove the folder, which should remove it from the list of expanded nodes. // Remove the folder, which should remove it from the list of expanded nodes.
model->Remove(model->bookmark_bar_node(), 0); model_->Remove(model_->bookmark_bar_node(), 0);
nodes.erase(n1); nodes.erase(n1);
n1 = NULL; n1 = NULL;
EXPECT_EQ(nodes, tracker->GetExpandedNodes()); EXPECT_EQ(nodes, tracker->GetExpandedNodes());
} }
TEST_F(BookmarkExpandedStateTrackerTest, RemoveAll) { TEST_F(BookmarkExpandedStateTrackerTest, RemoveAll) {
BookmarkModel* model = GetModel(); BookmarkExpandedStateTracker* tracker = model_->expanded_state_tracker();
BookmarkExpandedStateTracker* tracker = model->expanded_state_tracker();
// Add a folder and mark it expanded. // Add a folder and mark it expanded.
const BookmarkNode* n1 = const BookmarkNode* n1 = model_->AddFolder(
model->AddFolder(model->bookmark_bar_node(), 0, base::ASCIIToUTF16("x")); model_->bookmark_bar_node(), 0, base::ASCIIToUTF16("x"));
BookmarkExpandedStateTracker::Nodes nodes; BookmarkExpandedStateTracker::Nodes nodes;
nodes.insert(n1); nodes.insert(n1);
tracker->SetExpandedNodes(nodes); tracker->SetExpandedNodes(nodes);
// Verify that the node is present. // Verify that the node is present.
EXPECT_EQ(nodes, tracker->GetExpandedNodes()); EXPECT_EQ(nodes, tracker->GetExpandedNodes());
// Call remove all. // Call remove all.
model->RemoveAll(); model_->RemoveAll();
// Verify node is not present. // Verify node is not present.
EXPECT_TRUE(tracker->GetExpandedNodes().empty()); EXPECT_TRUE(tracker->GetExpandedNodes().empty());
} }
...@@ -64,6 +64,7 @@ ...@@ -64,6 +64,7 @@
'autofill/core/common/password_form_fill_data_unittest.cc', 'autofill/core/common/password_form_fill_data_unittest.cc',
'autofill/core/common/save_password_progress_logger_unittest.cc', 'autofill/core/common/save_password_progress_logger_unittest.cc',
'bookmarks/core/browser/bookmark_codec_unittest.cc', 'bookmarks/core/browser/bookmark_codec_unittest.cc',
'bookmarks/core/browser/bookmark_expanded_state_tracker_unittest.cc',
'bookmarks/core/browser/bookmark_index_unittest.cc', 'bookmarks/core/browser/bookmark_index_unittest.cc',
'bookmarks/core/browser/bookmark_utils_unittest.cc', 'bookmarks/core/browser/bookmark_utils_unittest.cc',
'captive_portal/captive_portal_detector_unittest.cc', 'captive_portal/captive_portal_detector_unittest.cc',
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment