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 "chrome/browser/bookmark_bar_context_menu_controller.h" | 5 #include "chrome/browser/bookmark_bar_context_menu_controller.h" |
6 #include "chrome/browser/bookmarks/bookmark_model.h" | 6 #include "chrome/browser/bookmarks/bookmark_model.h" |
7 #include "chrome/browser/profile.h" | 7 #include "chrome/browser/profile.h" |
8 #include "chrome/browser/views/bookmark_bar_view.h" | 8 #include "chrome/browser/views/bookmark_bar_view.h" |
9 #include "chrome/common/pref_names.h" | 9 #include "chrome/common/pref_names.h" |
10 #include "chrome/common/pref_service.h" | 10 #include "chrome/common/pref_service.h" |
11 #include "chrome/browser/page_navigator.h" | 11 #include "chrome/browser/page_navigator.h" |
12 #include "chrome/test/testing_profile.h" | 12 #include "chrome/test/testing_profile.h" |
13 #include "testing/gtest/include/gtest/gtest.h" | 13 #include "testing/gtest/include/gtest/gtest.h" |
14 | 14 |
| 15 #include "generated_resources.h" |
| 16 |
15 namespace { | 17 namespace { |
16 | 18 |
17 // PageNavigator implementation that records the URL. | 19 // PageNavigator implementation that records the URL. |
18 class TestingPageNavigator : public PageNavigator { | 20 class TestingPageNavigator : public PageNavigator { |
19 public: | 21 public: |
20 virtual void OpenURL(const GURL& url, | 22 virtual void OpenURL(const GURL& url, |
21 WindowOpenDisposition disposition, | 23 WindowOpenDisposition disposition, |
22 PageTransition::Type transition) { | 24 PageTransition::Type transition) { |
23 urls_.push_back(url); | 25 urls_.push_back(url); |
24 } | 26 } |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
83 model_->AddURL(f11, 0, L"f11a", GURL(test_base + "f11a")); | 85 model_->AddURL(f11, 0, L"f11a", GURL(test_base + "f11a")); |
84 model_->AddGroup(model_->GetBookmarkBarNode(), 2, L"F2"); | 86 model_->AddGroup(model_->GetBookmarkBarNode(), 2, L"F2"); |
85 } | 87 } |
86 }; | 88 }; |
87 | 89 |
88 // Tests Deleting from the menu. | 90 // Tests Deleting from the menu. |
89 TEST_F(BookmarkBarContextMenuControllerTest, DeleteURL) { | 91 TEST_F(BookmarkBarContextMenuControllerTest, DeleteURL) { |
90 BookmarkBarContextMenuController controller( | 92 BookmarkBarContextMenuController controller( |
91 bb_view_.get(), model_->GetBookmarkBarNode()->GetChild(0)); | 93 bb_view_.get(), model_->GetBookmarkBarNode()->GetChild(0)); |
92 GURL url = model_->GetBookmarkBarNode()->GetChild(0)->GetURL(); | 94 GURL url = model_->GetBookmarkBarNode()->GetChild(0)->GetURL(); |
93 ASSERT_TRUE(controller.IsCommandEnabled( | 95 ASSERT_TRUE(controller.IsCommandEnabled(IDS_BOOKMARK_BAR_REMOVE)); |
94 BookmarkBarContextMenuController::delete_bookmark_id)); | |
95 // Delete the URL. | 96 // Delete the URL. |
96 controller.ExecuteCommand( | 97 controller.ExecuteCommand(IDS_BOOKMARK_BAR_REMOVE); |
97 BookmarkBarContextMenuController::delete_bookmark_id); | |
98 // Model shouldn't have URL anymore. | 98 // Model shouldn't have URL anymore. |
99 ASSERT_FALSE(model_->IsBookmarked(url)); | 99 ASSERT_FALSE(model_->IsBookmarked(url)); |
100 } | 100 } |
101 | 101 |
102 // Tests openning from the menu. | |
103 TEST_F(BookmarkBarContextMenuControllerTest, OpenURL) { | |
104 BookmarkBarContextMenuController controller( | |
105 bb_view_.get(), model_->GetBookmarkBarNode()->GetChild(0)); | |
106 GURL url = model_->GetBookmarkBarNode()->GetChild(0)->GetURL(); | |
107 ASSERT_TRUE(controller.IsCommandEnabled( | |
108 BookmarkBarContextMenuController::open_bookmark_id)); | |
109 // Open it. | |
110 controller.ExecuteCommand( | |
111 BookmarkBarContextMenuController::open_bookmark_id); | |
112 // Should have navigated to it. | |
113 ASSERT_EQ(1, navigator_.urls_.size()); | |
114 ASSERT_TRUE(url == navigator_.urls_[0]); | |
115 } | |
116 | |
117 // Tests open all on a folder with a couple of bookmarks. | 102 // Tests open all on a folder with a couple of bookmarks. |
118 TEST_F(BookmarkBarContextMenuControllerTest, OpenAll) { | 103 TEST_F(BookmarkBarContextMenuControllerTest, OpenAll) { |
119 BookmarkNode* folder = model_->GetBookmarkBarNode()->GetChild(1); | 104 BookmarkNode* folder = model_->GetBookmarkBarNode()->GetChild(1); |
120 BookmarkBarContextMenuController controller(bb_view_.get(), folder); | 105 BookmarkBarContextMenuController controller(bb_view_.get(), folder); |
121 ASSERT_TRUE(controller.IsCommandEnabled( | 106 ASSERT_TRUE(controller.IsCommandEnabled(IDS_BOOMARK_BAR_OPEN_ALL)); |
122 BookmarkBarContextMenuController::open_all_bookmarks_id)); | 107 ASSERT_TRUE(controller.IsCommandEnabled(IDS_BOOMARK_BAR_OPEN_ALL_INCOGNITO)); |
123 ASSERT_TRUE(controller.IsCommandEnabled( | 108 ASSERT_TRUE(controller.IsCommandEnabled(IDS_BOOMARK_BAR_OPEN_ALL_NEW_WINDOW)); |
124 BookmarkBarContextMenuController::open_all_bookmarks_in_new_window_id)); | |
125 // Open it. | 109 // Open it. |
126 controller.ExecuteCommand( | 110 controller.ExecuteCommand(IDS_BOOMARK_BAR_OPEN_ALL); |
127 BookmarkBarContextMenuController::open_all_bookmarks_id); | |
128 // Should have navigated to F1's children. | 111 // Should have navigated to F1's children. |
129 ASSERT_EQ(2, navigator_.urls_.size()); | 112 ASSERT_EQ(2, navigator_.urls_.size()); |
130 ASSERT_TRUE(folder->GetChild(0)->GetURL() == navigator_.urls_[0]); | 113 ASSERT_TRUE(folder->GetChild(0)->GetURL() == navigator_.urls_[0]); |
131 ASSERT_TRUE(folder->GetChild(1)->GetChild(0)->GetURL() == | 114 ASSERT_TRUE(folder->GetChild(1)->GetChild(0)->GetURL() == |
132 navigator_.urls_[1]); | 115 navigator_.urls_[1]); |
| 116 |
| 117 // Make sure incognito is disabled when OTR. |
| 118 profile_->set_off_the_record(true); |
| 119 ASSERT_TRUE(controller.IsCommandEnabled(IDS_BOOMARK_BAR_OPEN_ALL)); |
| 120 ASSERT_FALSE(controller.IsCommandEnabled(IDS_BOOMARK_BAR_OPEN_ALL_INCOGNITO)); |
| 121 ASSERT_TRUE( |
| 122 controller.IsCommandEnabled(IDS_BOOMARK_BAR_OPEN_ALL_NEW_WINDOW)); |
133 } | 123 } |
134 | 124 |
135 // Tests that menus are appropriately disabled for empty folders. | 125 // Tests that menus are appropriately disabled for empty folders. |
136 TEST_F(BookmarkBarContextMenuControllerTest, DisableForEmptyFolder) { | 126 TEST_F(BookmarkBarContextMenuControllerTest, DisableForEmptyFolder) { |
137 BookmarkNode* folder = model_->GetBookmarkBarNode()->GetChild(2); | 127 BookmarkNode* folder = model_->GetBookmarkBarNode()->GetChild(2); |
138 BookmarkBarContextMenuController controller(bb_view_.get(), folder); | 128 BookmarkBarContextMenuController controller(bb_view_.get(), folder); |
139 EXPECT_FALSE(controller.IsCommandEnabled( | 129 EXPECT_FALSE(controller.IsCommandEnabled(IDS_BOOMARK_BAR_OPEN_ALL)); |
140 BookmarkBarContextMenuController::open_all_bookmarks_id)); | 130 EXPECT_FALSE( |
141 EXPECT_FALSE(controller.IsCommandEnabled( | 131 controller.IsCommandEnabled(IDS_BOOMARK_BAR_OPEN_ALL_NEW_WINDOW)); |
142 BookmarkBarContextMenuController::open_all_bookmarks_in_new_window_id)); | |
143 } | 132 } |
144 | 133 |
| 134 // Tests the enabled state of open incognito. |
| 135 TEST_F(BookmarkBarContextMenuControllerTest, DisableIncognito) { |
| 136 BookmarkBarContextMenuController controller( |
| 137 bb_view_.get(), model_->GetBookmarkBarNode()->GetChild(0)); |
| 138 EXPECT_TRUE(controller.IsCommandEnabled(IDS_BOOMARK_BAR_OPEN_INCOGNITO)); |
| 139 profile_->set_off_the_record(true); |
| 140 EXPECT_FALSE(controller.IsCommandEnabled(IDS_BOOMARK_BAR_OPEN_INCOGNITO)); |
| 141 } |
OLD | NEW |