OLD | NEW |
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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 #include "app/table_model_observer.h" | 5 #include "app/table_model_observer.h" |
| 6 #include "base/message_loop.h" |
6 #include "base/string_util.h" | 7 #include "base/string_util.h" |
7 #include "base/time.h" | 8 #include "base/time.h" |
8 #include "chrome/browser/bookmarks/bookmark_table_model.h" | 9 #include "chrome/browser/bookmarks/bookmark_table_model.h" |
| 10 #include "chrome/browser/chrome_thread.h" |
9 #include "chrome/test/testing_profile.h" | 11 #include "chrome/test/testing_profile.h" |
10 #include "grit/generated_resources.h" | 12 #include "grit/generated_resources.h" |
11 #include "testing/gtest/include/gtest/gtest.h" | 13 #include "testing/gtest/include/gtest/gtest.h" |
12 | 14 |
13 using base::Time; | 15 using base::Time; |
14 using base::TimeDelta; | 16 using base::TimeDelta; |
15 | 17 |
16 // Base class for bookmark model tests. | 18 // Base class for bookmark model tests. |
17 // Initial state of the bookmark model is as follows: | 19 // Initial state of the bookmark model is as follows: |
18 // bb | 20 // bb |
19 // url1 (t0) | 21 // url1 (t0) |
20 // f1 | 22 // f1 |
21 // o | 23 // o |
22 // url2 (t0 + 2) | 24 // url2 (t0 + 2) |
23 // f2 | 25 // f2 |
24 // url3 (t0 + 1) | 26 // url3 (t0 + 1) |
25 class BookmarkTableModelTest : public testing::Test, | 27 class BookmarkTableModelTest : public testing::Test, |
26 public TableModelObserver { | 28 public TableModelObserver { |
27 public: | 29 public: |
28 BookmarkTableModelTest() | 30 BookmarkTableModelTest() |
29 : url1_("http://1"), | 31 : url1_("http://1"), |
30 url2_("http://2"), | 32 url2_("http://2"), |
31 url3_("http://3"), | 33 url3_("http://3"), |
32 changed_count_(0), | 34 changed_count_(0), |
33 item_changed_count_(0), | 35 item_changed_count_(0), |
34 added_count_(0), | 36 added_count_(0), |
35 removed_count_(0) { | 37 removed_count_(0), |
| 38 ui_thread_(ChromeThread::UI, &loop_), |
| 39 file_thread_(ChromeThread::FILE, &loop_) { |
36 } | 40 } |
37 | 41 |
38 virtual void SetUp() { | 42 virtual void SetUp() { |
39 profile_.reset(new TestingProfile()); | 43 profile_.reset(new TestingProfile()); |
40 profile_->CreateBookmarkModel(true); | 44 profile_->CreateBookmarkModel(true); |
| 45 profile_->BlockUntilBookmarkModelLoaded(); |
41 // Populate with some default data. | 46 // Populate with some default data. |
42 Time t0 = Time::Now(); | 47 Time t0 = Time::Now(); |
43 const BookmarkNode* bb = bookmark_model()->GetBookmarkBarNode(); | 48 const BookmarkNode* bb = bookmark_model()->GetBookmarkBarNode(); |
44 bookmark_model()->AddURLWithCreationTime(bb, 0, L"a", url1_, t0); | 49 bookmark_model()->AddURLWithCreationTime(bb, 0, L"a", url1_, t0); |
45 bookmark_model()->AddGroup(bb, 1, L"f1"); | 50 bookmark_model()->AddGroup(bb, 1, L"f1"); |
46 | 51 |
47 const BookmarkNode* other = bookmark_model()->other_node(); | 52 const BookmarkNode* other = bookmark_model()->other_node(); |
48 bookmark_model()->AddURLWithCreationTime(other, 0, L"b", | 53 bookmark_model()->AddURLWithCreationTime(other, 0, L"b", |
49 url2_, t0 + TimeDelta::FromDays(2)); | 54 url2_, t0 + TimeDelta::FromDays(2)); |
50 bookmark_model()->AddGroup(other, 1, L"f2"); | 55 bookmark_model()->AddGroup(other, 1, L"f2"); |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
103 const GURL url1_; | 108 const GURL url1_; |
104 const GURL url2_; | 109 const GURL url2_; |
105 const GURL url3_; | 110 const GURL url3_; |
106 | 111 |
107 private: | 112 private: |
108 int changed_count_; | 113 int changed_count_; |
109 int item_changed_count_; | 114 int item_changed_count_; |
110 int added_count_; | 115 int added_count_; |
111 int removed_count_; | 116 int removed_count_; |
112 scoped_ptr<TestingProfile> profile_; | 117 scoped_ptr<TestingProfile> profile_; |
| 118 MessageLoop loop_; |
| 119 ChromeThread ui_thread_; |
| 120 ChromeThread file_thread_; |
113 }; | 121 }; |
114 | 122 |
115 // Verifies the count when showing various nodes. | 123 // Verifies the count when showing various nodes. |
116 TEST_F(BookmarkTableModelTest, FolderInitialState) { | 124 TEST_F(BookmarkTableModelTest, FolderInitialState) { |
117 SetModel(BookmarkTableModel::CreateBookmarkTableModelForFolder( | 125 SetModel(BookmarkTableModel::CreateBookmarkTableModelForFolder( |
118 bookmark_model(), bookmark_model()->GetBookmarkBarNode())); | 126 bookmark_model(), bookmark_model()->GetBookmarkBarNode())); |
119 ASSERT_EQ(2, model_->RowCount()); | 127 ASSERT_EQ(2, model_->RowCount()); |
120 EXPECT_TRUE(bookmark_model()->GetBookmarkBarNode()->GetChild(0) == | 128 EXPECT_TRUE(bookmark_model()->GetBookmarkBarNode()->GetChild(0) == |
121 model_->GetNodeForRow(0)); | 129 model_->GetNodeForRow(0)); |
122 EXPECT_TRUE(bookmark_model()->GetBookmarkBarNode()->GetChild(1) == | 130 EXPECT_TRUE(bookmark_model()->GetBookmarkBarNode()->GetChild(1) == |
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
312 // Change a folder, this shouldn't change the model. | 320 // Change a folder, this shouldn't change the model. |
313 bookmark_model()->SetTitle(bookmark_model()->other_node()->GetChild(1), | 321 bookmark_model()->SetTitle(bookmark_model()->other_node()->GetChild(1), |
314 L"new"); | 322 L"new"); |
315 VerifyAndClearOberserverCounts(0, 0, 0, 0); | 323 VerifyAndClearOberserverCounts(0, 0, 0, 0); |
316 | 324 |
317 // Change a url that isn't in the model, this shouldn't send change. | 325 // Change a url that isn't in the model, this shouldn't send change. |
318 bookmark_model()->SetTitle(bookmark_model()->other_node()->GetChild(0), | 326 bookmark_model()->SetTitle(bookmark_model()->other_node()->GetChild(0), |
319 L"new"); | 327 L"new"); |
320 VerifyAndClearOberserverCounts(0, 0, 0, 0); | 328 VerifyAndClearOberserverCounts(0, 0, 0, 0); |
321 } | 329 } |
OLD | NEW |