OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "chrome/browser/ui/toolbar/back_forward_menu_model.h" | 5 #include "chrome/browser/ui/toolbar/back_forward_menu_model.h" |
6 | 6 |
7 #include "base/macros.h" | 7 #include "base/macros.h" |
8 #include "base/strings/string16.h" | 8 #include "base/strings/string16.h" |
9 #include "base/strings/string_util.h" | 9 #include "base/strings/string_util.h" |
10 #include "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
99 controller().GoBack(); | 99 controller().GoBack(); |
100 WebContentsTester::For(web_contents())->CommitPendingNavigation(); | 100 WebContentsTester::For(web_contents())->CommitPendingNavigation(); |
101 } | 101 } |
102 void GoForward() { | 102 void GoForward() { |
103 controller().GoForward(); | 103 controller().GoForward(); |
104 WebContentsTester::For(web_contents())->CommitPendingNavigation(); | 104 WebContentsTester::For(web_contents())->CommitPendingNavigation(); |
105 } | 105 } |
106 }; | 106 }; |
107 | 107 |
108 TEST_F(BackFwdMenuModelTest, BasicCase) { | 108 TEST_F(BackFwdMenuModelTest, BasicCase) { |
109 scoped_ptr<BackForwardMenuModel> back_model(new BackForwardMenuModel( | 109 std::unique_ptr<BackForwardMenuModel> back_model( |
110 NULL, BackForwardMenuModel::BACKWARD_MENU)); | 110 new BackForwardMenuModel(NULL, BackForwardMenuModel::BACKWARD_MENU)); |
111 back_model->set_test_web_contents(web_contents()); | 111 back_model->set_test_web_contents(web_contents()); |
112 | 112 |
113 scoped_ptr<BackForwardMenuModel> forward_model(new BackForwardMenuModel( | 113 std::unique_ptr<BackForwardMenuModel> forward_model( |
114 NULL, BackForwardMenuModel::FORWARD_MENU)); | 114 new BackForwardMenuModel(NULL, BackForwardMenuModel::FORWARD_MENU)); |
115 forward_model->set_test_web_contents(web_contents()); | 115 forward_model->set_test_web_contents(web_contents()); |
116 | 116 |
117 EXPECT_EQ(0, back_model->GetItemCount()); | 117 EXPECT_EQ(0, back_model->GetItemCount()); |
118 EXPECT_EQ(0, forward_model->GetItemCount()); | 118 EXPECT_EQ(0, forward_model->GetItemCount()); |
119 EXPECT_FALSE(back_model->ItemHasCommand(1)); | 119 EXPECT_FALSE(back_model->ItemHasCommand(1)); |
120 | 120 |
121 // Seed the controller with a few URLs | 121 // Seed the controller with a few URLs |
122 LoadURLAndUpdateState("http://www.a.com/1", "A1"); | 122 LoadURLAndUpdateState("http://www.a.com/1", "A1"); |
123 LoadURLAndUpdateState("http://www.a.com/2", "A2"); | 123 LoadURLAndUpdateState("http://www.a.com/2", "A2"); |
124 LoadURLAndUpdateState("http://www.a.com/3", "A3"); | 124 LoadURLAndUpdateState("http://www.a.com/3", "A3"); |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
167 EXPECT_EQ(ASCIIToUTF16("A1"), back_model->GetLabelAt(3)); | 167 EXPECT_EQ(ASCIIToUTF16("A1"), back_model->GetLabelAt(3)); |
168 EXPECT_EQ(back_model->GetShowFullHistoryLabel(), | 168 EXPECT_EQ(back_model->GetShowFullHistoryLabel(), |
169 back_model->GetLabelAt(5)); | 169 back_model->GetLabelAt(5)); |
170 EXPECT_EQ(ASCIIToUTF16("C1"), forward_model->GetLabelAt(0)); | 170 EXPECT_EQ(ASCIIToUTF16("C1"), forward_model->GetLabelAt(0)); |
171 EXPECT_EQ(ASCIIToUTF16("C3"), forward_model->GetLabelAt(2)); | 171 EXPECT_EQ(ASCIIToUTF16("C3"), forward_model->GetLabelAt(2)); |
172 EXPECT_EQ(forward_model->GetShowFullHistoryLabel(), | 172 EXPECT_EQ(forward_model->GetShowFullHistoryLabel(), |
173 forward_model->GetLabelAt(4)); | 173 forward_model->GetLabelAt(4)); |
174 } | 174 } |
175 | 175 |
176 TEST_F(BackFwdMenuModelTest, MaxItemsTest) { | 176 TEST_F(BackFwdMenuModelTest, MaxItemsTest) { |
177 scoped_ptr<BackForwardMenuModel> back_model(new BackForwardMenuModel( | 177 std::unique_ptr<BackForwardMenuModel> back_model( |
178 NULL, BackForwardMenuModel::BACKWARD_MENU)); | 178 new BackForwardMenuModel(NULL, BackForwardMenuModel::BACKWARD_MENU)); |
179 back_model->set_test_web_contents(web_contents()); | 179 back_model->set_test_web_contents(web_contents()); |
180 | 180 |
181 scoped_ptr<BackForwardMenuModel> forward_model(new BackForwardMenuModel( | 181 std::unique_ptr<BackForwardMenuModel> forward_model( |
182 NULL, BackForwardMenuModel::FORWARD_MENU)); | 182 new BackForwardMenuModel(NULL, BackForwardMenuModel::FORWARD_MENU)); |
183 forward_model->set_test_web_contents(web_contents()); | 183 forward_model->set_test_web_contents(web_contents()); |
184 | 184 |
185 // Seed the controller with 32 URLs | 185 // Seed the controller with 32 URLs |
186 LoadURLAndUpdateState("http://www.a.com/1", "A1"); | 186 LoadURLAndUpdateState("http://www.a.com/1", "A1"); |
187 LoadURLAndUpdateState("http://www.a.com/2", "A2"); | 187 LoadURLAndUpdateState("http://www.a.com/2", "A2"); |
188 LoadURLAndUpdateState("http://www.a.com/3", "A3"); | 188 LoadURLAndUpdateState("http://www.a.com/3", "A3"); |
189 LoadURLAndUpdateState("http://www.b.com/1", "B1"); | 189 LoadURLAndUpdateState("http://www.b.com/1", "B1"); |
190 LoadURLAndUpdateState("http://www.b.com/2", "B2"); | 190 LoadURLAndUpdateState("http://www.b.com/2", "B2"); |
191 LoadURLAndUpdateState("http://www.b.com/3", "B3"); | 191 LoadURLAndUpdateState("http://www.b.com/3", "B3"); |
192 LoadURLAndUpdateState("http://www.c.com/1", "C1"); | 192 LoadURLAndUpdateState("http://www.c.com/1", "C1"); |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
249 EXPECT_FALSE(forward_model->ItemHasCommand( | 249 EXPECT_FALSE(forward_model->ItemHasCommand( |
250 BackForwardMenuModel::kMaxHistoryItems + 2 + chapter_stop_offset)); | 250 BackForwardMenuModel::kMaxHistoryItems + 2 + chapter_stop_offset)); |
251 | 251 |
252 EXPECT_TRUE(forward_model->ItemHasCommand( | 252 EXPECT_TRUE(forward_model->ItemHasCommand( |
253 BackForwardMenuModel::kMaxHistoryItems - 1)); | 253 BackForwardMenuModel::kMaxHistoryItems - 1)); |
254 EXPECT_TRUE(forward_model->IsSeparator( | 254 EXPECT_TRUE(forward_model->IsSeparator( |
255 BackForwardMenuModel::kMaxHistoryItems)); | 255 BackForwardMenuModel::kMaxHistoryItems)); |
256 } | 256 } |
257 | 257 |
258 TEST_F(BackFwdMenuModelTest, ChapterStops) { | 258 TEST_F(BackFwdMenuModelTest, ChapterStops) { |
259 scoped_ptr<BackForwardMenuModel> back_model(new BackForwardMenuModel( | 259 std::unique_ptr<BackForwardMenuModel> back_model( |
260 NULL, BackForwardMenuModel::BACKWARD_MENU)); | 260 new BackForwardMenuModel(NULL, BackForwardMenuModel::BACKWARD_MENU)); |
261 back_model->set_test_web_contents(web_contents()); | 261 back_model->set_test_web_contents(web_contents()); |
262 | 262 |
263 scoped_ptr<BackForwardMenuModel> forward_model(new BackForwardMenuModel( | 263 std::unique_ptr<BackForwardMenuModel> forward_model( |
264 NULL, BackForwardMenuModel::FORWARD_MENU)); | 264 new BackForwardMenuModel(NULL, BackForwardMenuModel::FORWARD_MENU)); |
265 forward_model->set_test_web_contents(web_contents()); | 265 forward_model->set_test_web_contents(web_contents()); |
266 | 266 |
267 // Seed the controller with 32 URLs. | 267 // Seed the controller with 32 URLs. |
268 int i = 0; | 268 int i = 0; |
269 LoadURLAndUpdateState("http://www.a.com/1", "A1"); | 269 LoadURLAndUpdateState("http://www.a.com/1", "A1"); |
270 ValidateModel(back_model.get(), i++, 0); | 270 ValidateModel(back_model.get(), i++, 0); |
271 LoadURLAndUpdateState("http://www.a.com/2", "A2"); | 271 LoadURLAndUpdateState("http://www.a.com/2", "A2"); |
272 ValidateModel(back_model.get(), i++, 0); | 272 ValidateModel(back_model.get(), i++, 0); |
273 LoadURLAndUpdateState("http://www.a.com/3", "A3"); | 273 LoadURLAndUpdateState("http://www.a.com/3", "A3"); |
274 ValidateModel(back_model.get(), i++, 0); | 274 ValidateModel(back_model.get(), i++, 0); |
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
460 EXPECT_EQ(3, back_model->GetIndexOfNextChapterStop(2, true)); | 460 EXPECT_EQ(3, back_model->GetIndexOfNextChapterStop(2, true)); |
461 EXPECT_EQ(4, back_model->GetIndexOfNextChapterStop(3, true)); | 461 EXPECT_EQ(4, back_model->GetIndexOfNextChapterStop(3, true)); |
462 // And try backwards as well. | 462 // And try backwards as well. |
463 EXPECT_EQ(3, back_model->GetIndexOfNextChapterStop(4, false)); | 463 EXPECT_EQ(3, back_model->GetIndexOfNextChapterStop(4, false)); |
464 EXPECT_EQ(1, back_model->GetIndexOfNextChapterStop(3, false)); | 464 EXPECT_EQ(1, back_model->GetIndexOfNextChapterStop(3, false)); |
465 EXPECT_EQ(1, back_model->GetIndexOfNextChapterStop(2, false)); | 465 EXPECT_EQ(1, back_model->GetIndexOfNextChapterStop(2, false)); |
466 EXPECT_EQ(-1, back_model->GetIndexOfNextChapterStop(1, false)); | 466 EXPECT_EQ(-1, back_model->GetIndexOfNextChapterStop(1, false)); |
467 } | 467 } |
468 | 468 |
469 TEST_F(BackFwdMenuModelTest, EscapeLabel) { | 469 TEST_F(BackFwdMenuModelTest, EscapeLabel) { |
470 scoped_ptr<BackForwardMenuModel> back_model(new BackForwardMenuModel( | 470 std::unique_ptr<BackForwardMenuModel> back_model( |
471 NULL, BackForwardMenuModel::BACKWARD_MENU)); | 471 new BackForwardMenuModel(NULL, BackForwardMenuModel::BACKWARD_MENU)); |
472 back_model->set_test_web_contents(web_contents()); | 472 back_model->set_test_web_contents(web_contents()); |
473 | 473 |
474 EXPECT_EQ(0, back_model->GetItemCount()); | 474 EXPECT_EQ(0, back_model->GetItemCount()); |
475 EXPECT_FALSE(back_model->ItemHasCommand(1)); | 475 EXPECT_FALSE(back_model->ItemHasCommand(1)); |
476 | 476 |
477 LoadURLAndUpdateState("http://www.a.com/1", "A B"); | 477 LoadURLAndUpdateState("http://www.a.com/1", "A B"); |
478 LoadURLAndUpdateState("http://www.a.com/1", "A & B"); | 478 LoadURLAndUpdateState("http://www.a.com/1", "A & B"); |
479 LoadURLAndUpdateState("http://www.a.com/2", "A && B"); | 479 LoadURLAndUpdateState("http://www.a.com/2", "A && B"); |
480 LoadURLAndUpdateState("http://www.a.com/2", "A &&& B"); | 480 LoadURLAndUpdateState("http://www.a.com/2", "A &&& B"); |
481 LoadURLAndUpdateState("http://www.a.com/3", ""); | 481 LoadURLAndUpdateState("http://www.a.com/3", ""); |
(...skipping 12 matching lines...) Expand all Loading... |
494 EXPECT_EQ(ASCIIToUTF16("A &&&& B"), back_model->GetLabelAt(1)); | 494 EXPECT_EQ(ASCIIToUTF16("A &&&& B"), back_model->GetLabelAt(1)); |
495 EXPECT_EQ(ASCIIToUTF16("A &&&&&& B"), back_model->GetLabelAt(0)); | 495 EXPECT_EQ(ASCIIToUTF16("A &&&&&& B"), back_model->GetLabelAt(0)); |
496 #endif // defined(OS_MACOSX) | 496 #endif // defined(OS_MACOSX) |
497 } | 497 } |
498 | 498 |
499 // Test asynchronous loading of favicon from history service. | 499 // Test asynchronous loading of favicon from history service. |
500 TEST_F(BackFwdMenuModelTest, FaviconLoadTest) { | 500 TEST_F(BackFwdMenuModelTest, FaviconLoadTest) { |
501 ASSERT_TRUE(profile()->CreateHistoryService(true, false)); | 501 ASSERT_TRUE(profile()->CreateHistoryService(true, false)); |
502 profile()->CreateFaviconService(); | 502 profile()->CreateFaviconService(); |
503 Browser::CreateParams native_params(profile()); | 503 Browser::CreateParams native_params(profile()); |
504 scoped_ptr<Browser> browser( | 504 std::unique_ptr<Browser> browser( |
505 chrome::CreateBrowserWithTestWindowForParams(&native_params)); | 505 chrome::CreateBrowserWithTestWindowForParams(&native_params)); |
506 FaviconDelegate favicon_delegate; | 506 FaviconDelegate favicon_delegate; |
507 | 507 |
508 BackForwardMenuModel back_model( | 508 BackForwardMenuModel back_model( |
509 browser.get(), BackForwardMenuModel::BACKWARD_MENU); | 509 browser.get(), BackForwardMenuModel::BACKWARD_MENU); |
510 back_model.set_test_web_contents(controller().GetWebContents()); | 510 back_model.set_test_web_contents(controller().GetWebContents()); |
511 back_model.SetMenuModelDelegate(&favicon_delegate); | 511 back_model.SetMenuModelDelegate(&favicon_delegate); |
512 | 512 |
513 SkBitmap new_icon_bitmap(CreateBitmap(SK_ColorRED)); | 513 SkBitmap new_icon_bitmap(CreateBitmap(SK_ColorRED)); |
514 | 514 |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
559 // Verify we did get the expected favicon. | 559 // Verify we did get the expected favicon. |
560 EXPECT_EQ(0, memcmp(new_icon_bitmap.getPixels(), | 560 EXPECT_EQ(0, memcmp(new_icon_bitmap.getPixels(), |
561 valid_icon_bitmap.getPixels(), | 561 valid_icon_bitmap.getPixels(), |
562 new_icon_bitmap.getSize())); | 562 new_icon_bitmap.getSize())); |
563 | 563 |
564 // Make sure the browser deconstructor doesn't have problems. | 564 // Make sure the browser deconstructor doesn't have problems. |
565 browser->tab_strip_model()->CloseAllTabs(); | 565 browser->tab_strip_model()->CloseAllTabs(); |
566 // This is required to prevent the message loop from hanging. | 566 // This is required to prevent the message loop from hanging. |
567 profile()->DestroyHistoryService(); | 567 profile()->DestroyHistoryService(); |
568 } | 568 } |
OLD | NEW |