Index: chrome/browser/bookmarks/bookmark_table_model_unittest.cc |
diff --git a/chrome/browser/bookmarks/bookmark_table_model_unittest.cc b/chrome/browser/bookmarks/bookmark_table_model_unittest.cc |
deleted file mode 100644 |
index 5cc3d6d6cb9d7f60dc1b2bedb8bd96339ad6d601..0000000000000000000000000000000000000000 |
--- a/chrome/browser/bookmarks/bookmark_table_model_unittest.cc |
+++ /dev/null |
@@ -1,329 +0,0 @@ |
-// Copyright (c) 2006-2008 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 "app/table_model_observer.h" |
-#include "base/message_loop.h" |
-#include "base/string_util.h" |
-#include "base/time.h" |
-#include "chrome/browser/bookmarks/bookmark_table_model.h" |
-#include "chrome/browser/chrome_thread.h" |
-#include "chrome/test/testing_profile.h" |
-#include "grit/generated_resources.h" |
-#include "testing/gtest/include/gtest/gtest.h" |
- |
-using base::Time; |
-using base::TimeDelta; |
- |
-// Base class for bookmark model tests. |
-// Initial state of the bookmark model is as follows: |
-// bb |
-// url1 (t0) |
-// f1 |
-// o |
-// url2 (t0 + 2) |
-// f2 |
-// url3 (t0 + 1) |
-class BookmarkTableModelTest : public testing::Test, |
- public TableModelObserver { |
- public: |
- BookmarkTableModelTest() |
- : url1_("http://1"), |
- url2_("http://2"), |
- url3_("http://3"), |
- changed_count_(0), |
- item_changed_count_(0), |
- added_count_(0), |
- removed_count_(0), |
- ui_thread_(ChromeThread::UI, &loop_), |
- file_thread_(ChromeThread::FILE, &loop_) { |
- } |
- |
- virtual void SetUp() { |
- profile_.reset(new TestingProfile()); |
- profile_->CreateBookmarkModel(true); |
- profile_->BlockUntilBookmarkModelLoaded(); |
- // Populate with some default data. |
- Time t0 = Time::Now(); |
- const BookmarkNode* bb = bookmark_model()->GetBookmarkBarNode(); |
- bookmark_model()->AddURLWithCreationTime(bb, 0, L"a", url1_, t0); |
- bookmark_model()->AddGroup(bb, 1, L"f1"); |
- |
- const BookmarkNode* other = bookmark_model()->other_node(); |
- bookmark_model()->AddURLWithCreationTime(other, 0, L"b", |
- url2_, t0 + TimeDelta::FromDays(2)); |
- bookmark_model()->AddGroup(other, 1, L"f2"); |
- bookmark_model()->AddURLWithCreationTime(other, 2, L"c", url3_, |
- t0 + TimeDelta::FromDays(1)); |
- } |
- |
- virtual void TearDown() { |
- model_.reset(NULL); |
- profile_.reset(NULL); |
- } |
- |
- BookmarkModel* bookmark_model() const { |
- return profile_->GetBookmarkModel(); |
- } |
- |
- virtual void OnModelChanged() { |
- changed_count_++; |
- } |
- |
- virtual void OnItemsChanged(int start, int length) { |
- item_changed_count_++; |
- } |
- |
- virtual void OnItemsAdded(int start, int length) { |
- added_count_++; |
- } |
- |
- virtual void OnItemsRemoved(int start, int length) { |
- removed_count_++; |
- } |
- |
- void VerifyAndClearOberserverCounts(int changed_count, int item_changed_count, |
- int added_count, int removed_count) { |
- EXPECT_EQ(changed_count, changed_count_); |
- EXPECT_EQ(item_changed_count, item_changed_count_); |
- EXPECT_EQ(added_count, added_count_); |
- EXPECT_EQ(removed_count, removed_count_); |
- ResetCounts(); |
- } |
- |
- void ResetCounts() { |
- changed_count_ = item_changed_count_ = removed_count_ = added_count_ = 0; |
- } |
- |
- void SetModel(BookmarkTableModel* model) { |
- if (model_.get()) |
- model_->SetObserver(NULL); |
- model_.reset(model); |
- if (model_.get()) |
- model_->SetObserver(this); |
- } |
- |
- scoped_ptr<BookmarkTableModel> model_; |
- |
- const GURL url1_; |
- const GURL url2_; |
- const GURL url3_; |
- |
- private: |
- int changed_count_; |
- int item_changed_count_; |
- int added_count_; |
- int removed_count_; |
- scoped_ptr<TestingProfile> profile_; |
- MessageLoop loop_; |
- ChromeThread ui_thread_; |
- ChromeThread file_thread_; |
-}; |
- |
-// Verifies the count when showing various nodes. |
-TEST_F(BookmarkTableModelTest, FolderInitialState) { |
- SetModel(BookmarkTableModel::CreateBookmarkTableModelForFolder( |
- bookmark_model(), bookmark_model()->GetBookmarkBarNode())); |
- ASSERT_EQ(2, model_->RowCount()); |
- EXPECT_TRUE(bookmark_model()->GetBookmarkBarNode()->GetChild(0) == |
- model_->GetNodeForRow(0)); |
- EXPECT_TRUE(bookmark_model()->GetBookmarkBarNode()->GetChild(1) == |
- model_->GetNodeForRow(1)); |
- |
- SetModel(BookmarkTableModel::CreateBookmarkTableModelForFolder( |
- bookmark_model(), bookmark_model()->other_node())); |
- EXPECT_EQ(3, model_->RowCount()); |
-} |
- |
-// Verifies adding an item to folder model generates the correct event. |
-TEST_F(BookmarkTableModelTest, AddToFolder) { |
- const BookmarkNode* other = bookmark_model()->other_node(); |
- SetModel(BookmarkTableModel::CreateBookmarkTableModelForFolder( |
- bookmark_model(), other)); |
- const BookmarkNode* new_node = bookmark_model()->AddURL(other, 0, L"new", |
- url1_); |
- // Should have gotten notification of the add. |
- VerifyAndClearOberserverCounts(0, 0, 1, 0); |
- ASSERT_EQ(4, model_->RowCount()); |
- EXPECT_TRUE(new_node == model_->GetNodeForRow(0)); |
- |
- // Add to the bookmark bar, this shouldn't generate an event. |
- bookmark_model()->AddURL(bookmark_model()->GetBookmarkBarNode(), 0, L"new", |
- url1_); |
- VerifyAndClearOberserverCounts(0, 0, 0, 0); |
-} |
- |
-// Verifies sort sends out notification and results in a sort. |
-TEST_F(BookmarkTableModelTest, SortFolder) { |
- const BookmarkNode* other = bookmark_model()->other_node(); |
- SetModel(BookmarkTableModel::CreateBookmarkTableModelForFolder( |
- bookmark_model(), other)); |
- ASSERT_EQ(3, model_->RowCount()); |
- bookmark_model()->SortChildren(other); |
- |
- // Sorting should trigger change notification. |
- VerifyAndClearOberserverCounts(1, 0, 0, 0); |
- |
- // Make sure things reordered. |
- EXPECT_TRUE(other->GetChild(0) == model_->GetNodeForRow(0)); |
- EXPECT_TRUE(other->GetChild(1) == model_->GetNodeForRow(1)); |
- EXPECT_TRUE(other->GetChild(2) == model_->GetNodeForRow(2)); |
-} |
- |
-// Verifies removing an item from folder model generates the correct event. |
-TEST_F(BookmarkTableModelTest, RemoveFromFolder) { |
- const BookmarkNode* other = bookmark_model()->other_node(); |
- SetModel(BookmarkTableModel::CreateBookmarkTableModelForFolder( |
- bookmark_model(), other)); |
- bookmark_model()->Remove(other, 0); |
- |
- // Should have gotten notification of the remove. |
- VerifyAndClearOberserverCounts(0, 0, 0, 1); |
- EXPECT_EQ(2, model_->RowCount()); |
- |
- // Remove from the bookmark bar, this shouldn't generate an event. |
- bookmark_model()->Remove(bookmark_model()->GetBookmarkBarNode(), 0); |
- VerifyAndClearOberserverCounts(0, 0, 0, 0); |
-} |
- |
-// Verifies changing an item in the folder model generates the correct event. |
-TEST_F(BookmarkTableModelTest, ChangeFolder) { |
- const BookmarkNode* other = bookmark_model()->other_node(); |
- SetModel(BookmarkTableModel::CreateBookmarkTableModelForFolder( |
- bookmark_model(), other)); |
- bookmark_model()->SetTitle(other->GetChild(0), L"new"); |
- |
- // Should have gotten notification of the change. |
- VerifyAndClearOberserverCounts(0, 1, 0, 0); |
- EXPECT_EQ(3, model_->RowCount()); |
- |
- // Change a node in the bookmark bar, this shouldn't generate an event. |
- bookmark_model()->SetTitle( |
- bookmark_model()->GetBookmarkBarNode()->GetChild(0), L"new2"); |
- VerifyAndClearOberserverCounts(0, 0, 0, 0); |
-} |
- |
-// Verifies show recently added shows the recently added, in order. |
-TEST_F(BookmarkTableModelTest, RecentlyBookmarkedOrder) { |
- SetModel(BookmarkTableModel::CreateRecentlyBookmarkedModel(bookmark_model())); |
- EXPECT_EQ(3, model_->RowCount()); |
- |
- const BookmarkNode* bb = bookmark_model()->GetBookmarkBarNode(); |
- const BookmarkNode* other = bookmark_model()->other_node(); |
- EXPECT_TRUE(other->GetChild(0) == model_->GetNodeForRow(0)); |
- EXPECT_TRUE(other->GetChild(2) == model_->GetNodeForRow(1)); |
- EXPECT_TRUE(bb->GetChild(0) == model_->GetNodeForRow(2)); |
-} |
- |
-// Verifies adding an item to recently added notifies observer. |
-TEST_F(BookmarkTableModelTest, AddToRecentlyBookmarked) { |
- SetModel(BookmarkTableModel::CreateRecentlyBookmarkedModel(bookmark_model())); |
- bookmark_model()->AddURL(bookmark_model()->other_node(), 0, L"new", url1_); |
- // Should have gotten notification of the add. |
- VerifyAndClearOberserverCounts(1, 0, 0, 0); |
- EXPECT_EQ(4, model_->RowCount()); |
- |
- // Add a folder, this shouldn't change the model. |
- bookmark_model()->AddGroup(bookmark_model()->GetBookmarkBarNode(), 0, L"new"); |
- VerifyAndClearOberserverCounts(0, 0, 0, 0); |
-} |
- |
-// Verifies removing an item from recently added notifies observer. |
-TEST_F(BookmarkTableModelTest, RemoveFromRecentlyBookmarked) { |
- SetModel(BookmarkTableModel::CreateRecentlyBookmarkedModel(bookmark_model())); |
- bookmark_model()->Remove(bookmark_model()->other_node(), 0); |
- // Should have gotten notification of the remove. |
- VerifyAndClearOberserverCounts(1, 0, 0, 0); |
- EXPECT_EQ(2, model_->RowCount()); |
- |
- // Remove a folder, this shouldn't change the model. |
- bookmark_model()->Remove(bookmark_model()->other_node(), 0); |
- VerifyAndClearOberserverCounts(0, 0, 0, 0); |
-} |
- |
-// Verifies changing an item in recently added notifies observer. |
-TEST_F(BookmarkTableModelTest, ChangeRecentlyBookmarked) { |
- SetModel(BookmarkTableModel::CreateRecentlyBookmarkedModel(bookmark_model())); |
- bookmark_model()->SetTitle(bookmark_model()->other_node()->GetChild(0), |
- L"new"); |
- // Should have gotten notification of the change. |
- VerifyAndClearOberserverCounts(0, 1, 0, 0); |
- |
- // Change a folder, this shouldn't change the model. |
- bookmark_model()->SetTitle(bookmark_model()->other_node()->GetChild(1), |
- L"new"); |
- VerifyAndClearOberserverCounts(0, 0, 0, 0); |
-} |
- |
-// Verifies search finds the correct bookmarks. |
-TEST_F(BookmarkTableModelTest, Search) { |
- SetModel(BookmarkTableModel::CreateSearchTableModel( |
- bookmark_model(), L"c", std::wstring())); |
- ASSERT_EQ(1, model_->RowCount()); |
- EXPECT_TRUE(bookmark_model()->other_node()->GetChild(2) == |
- model_->GetNodeForRow(0)); |
- // Make sure IndexOfNode works. |
- EXPECT_EQ(0, |
- model_->IndexOfNode(bookmark_model()->other_node()->GetChild(2))); |
-} |
- |
-// Verifies adding an item to search notifies observers. |
-TEST_F(BookmarkTableModelTest, AddToSearch) { |
- SetModel(BookmarkTableModel::CreateSearchTableModel( |
- bookmark_model(), L"c", std::wstring())); |
- const BookmarkNode* new_node = |
- bookmark_model()->AddURL(bookmark_model()->other_node(), 0, L"c", url1_); |
- // Should have gotten notification of the add. |
- VerifyAndClearOberserverCounts(0, 0, 1, 0); |
- ASSERT_EQ(2, model_->RowCount()); |
- // New node should have gone to end. |
- EXPECT_TRUE(model_->GetNodeForRow(1) == new_node); |
- |
- // Add a folder, this shouldn't change the model. |
- bookmark_model()->AddGroup(bookmark_model()->GetBookmarkBarNode(), 0, L"new"); |
- VerifyAndClearOberserverCounts(0, 0, 0, 0); |
- EXPECT_EQ(2, model_->RowCount()); |
- |
- // Add a url that doesn't match search, this shouldn't change the model. |
- bookmark_model()->AddGroup(bookmark_model()->GetBookmarkBarNode(), 0, L"new"); |
- VerifyAndClearOberserverCounts(0, 0, 0, 0); |
- EXPECT_EQ(2, model_->RowCount()); |
-} |
- |
-// Verifies removing an item updates search. |
-TEST_F(BookmarkTableModelTest, RemoveFromSearch) { |
- SetModel(BookmarkTableModel::CreateSearchTableModel( |
- bookmark_model(), L"c", std::wstring())); |
- bookmark_model()->Remove(bookmark_model()->other_node(), 2); |
- // Should have gotten notification of the remove. |
- VerifyAndClearOberserverCounts(0, 0, 0, 1); |
- EXPECT_EQ(0, model_->RowCount()); |
- |
- // Remove a folder, this shouldn't change the model. |
- bookmark_model()->Remove(bookmark_model()->other_node(), 1); |
- VerifyAndClearOberserverCounts(0, 0, 0, 0); |
- |
- // Remove another url that isn't in the model, this shouldn't change anything. |
- bookmark_model()->Remove(bookmark_model()->other_node(), 0); |
- VerifyAndClearOberserverCounts(0, 0, 0, 0); |
-} |
- |
-// Verifies changing an item in search notifies observer. |
-TEST_F(BookmarkTableModelTest, ChangeSearch) { |
- SetModel(BookmarkTableModel::CreateSearchTableModel(bookmark_model(), |
- L"c", std::wstring())); |
- bookmark_model()->SetTitle(bookmark_model()->other_node()->GetChild(2), |
- L"new"); |
- // Should have gotten notification of the change. |
- VerifyAndClearOberserverCounts(0, 1, 0, 0); |
- |
- // Change a folder, this shouldn't change the model. |
- bookmark_model()->SetTitle(bookmark_model()->other_node()->GetChild(1), |
- L"new"); |
- VerifyAndClearOberserverCounts(0, 0, 0, 0); |
- |
- // Change a url that isn't in the model, this shouldn't send change. |
- bookmark_model()->SetTitle(bookmark_model()->other_node()->GetChild(0), |
- L"new"); |
- VerifyAndClearOberserverCounts(0, 0, 0, 0); |
-} |