Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/views/bookmarks/bookmark_context_menu.h" | 5 #include "chrome/browser/ui/views/bookmarks/bookmark_context_menu.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <memory> | 9 #include <memory> |
| 10 #include <string> | 10 #include <string> |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 47 using content::PageNavigator; | 47 using content::PageNavigator; |
| 48 using content::WebContents; | 48 using content::WebContents; |
| 49 | 49 |
| 50 namespace { | 50 namespace { |
| 51 | 51 |
| 52 // PageNavigator implementation that records the URL. | 52 // PageNavigator implementation that records the URL. |
| 53 class TestingPageNavigator : public PageNavigator { | 53 class TestingPageNavigator : public PageNavigator { |
| 54 public: | 54 public: |
| 55 WebContents* OpenURL(const OpenURLParams& params) override { | 55 WebContents* OpenURL(const OpenURLParams& params) override { |
| 56 urls_.push_back(params.url); | 56 urls_.push_back(params.url); |
| 57 return NULL; | 57 return nullptr; |
| 58 } | 58 } |
| 59 | 59 |
| 60 std::vector<GURL> urls_; | 60 std::vector<GURL> urls_; |
| 61 }; | 61 }; |
| 62 | 62 |
| 63 } // namespace | 63 } // namespace |
| 64 | 64 |
| 65 class BookmarkContextMenuTest : public testing::Test { | 65 class BookmarkContextMenuTest : public testing::Test { |
| 66 public: | 66 public: |
| 67 BookmarkContextMenuTest() : model_(nullptr) {} | 67 BookmarkContextMenuTest() : model_(nullptr) {} |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 113 model_->AddFolder(bb_node, 3, ASCIIToUTF16("F3")); | 113 model_->AddFolder(bb_node, 3, ASCIIToUTF16("F3")); |
| 114 const BookmarkNode* f4 = model_->AddFolder(bb_node, 4, ASCIIToUTF16("F4")); | 114 const BookmarkNode* f4 = model_->AddFolder(bb_node, 4, ASCIIToUTF16("F4")); |
| 115 model_->AddURL(f4, 0, ASCIIToUTF16("f4a"), GURL(test_base + "f4a")); | 115 model_->AddURL(f4, 0, ASCIIToUTF16("f4a"), GURL(test_base + "f4a")); |
| 116 } | 116 } |
| 117 }; | 117 }; |
| 118 | 118 |
| 119 // Tests Deleting from the menu. | 119 // Tests Deleting from the menu. |
| 120 TEST_F(BookmarkContextMenuTest, DeleteURL) { | 120 TEST_F(BookmarkContextMenuTest, DeleteURL) { |
| 121 std::vector<const BookmarkNode*> nodes; | 121 std::vector<const BookmarkNode*> nodes; |
| 122 nodes.push_back(model_->bookmark_bar_node()->GetChild(0)); | 122 nodes.push_back(model_->bookmark_bar_node()->GetChild(0)); |
| 123 BookmarkContextMenu controller( | 123 BookmarkContextMenu controller(nullptr, nullptr, profile_.get(), nullptr, |
| 124 NULL, NULL, profile_.get(), NULL, nodes[0]->parent(), nodes, false); | 124 nodes[0]->parent(), nodes, false); |
| 125 GURL url = model_->bookmark_bar_node()->GetChild(0)->url(); | 125 GURL url = model_->bookmark_bar_node()->GetChild(0)->url(); |
| 126 ASSERT_TRUE(controller.IsCommandEnabled(IDC_BOOKMARK_BAR_REMOVE)); | 126 ASSERT_TRUE(controller.IsCommandEnabled(IDC_BOOKMARK_BAR_REMOVE)); |
| 127 // Delete the URL. | 127 // Delete the URL. |
| 128 controller.ExecuteCommand(IDC_BOOKMARK_BAR_REMOVE, 0); | 128 controller.ExecuteCommand(IDC_BOOKMARK_BAR_REMOVE, 0); |
| 129 // Model shouldn't have URL anymore. | 129 // Model shouldn't have URL anymore. |
| 130 ASSERT_FALSE(model_->IsBookmarked(url)); | 130 ASSERT_FALSE(model_->IsBookmarked(url)); |
| 131 } | 131 } |
| 132 | 132 |
| 133 // Tests open all on a folder with a couple of bookmarks. | 133 // Tests open all on a folder with a couple of bookmarks. |
| 134 TEST_F(BookmarkContextMenuTest, OpenAll) { | 134 TEST_F(BookmarkContextMenuTest, OpenAll) { |
| 135 const BookmarkNode* folder = model_->bookmark_bar_node()->GetChild(1); | 135 const BookmarkNode* folder = model_->bookmark_bar_node()->GetChild(1); |
| 136 chrome::OpenAll(NULL, &navigator_, folder, | 136 chrome::OpenAll(nullptr, &navigator_, folder, |
| 137 WindowOpenDisposition::NEW_FOREGROUND_TAB, NULL); | 137 WindowOpenDisposition::NEW_FOREGROUND_TAB, nullptr); |
| 138 | 138 |
| 139 // Should have navigated to F1's child but not F11's child. | 139 // Should have navigated to F1's child but not F11's child. |
| 140 ASSERT_EQ(static_cast<size_t>(2), navigator_.urls_.size()); | 140 ASSERT_EQ(static_cast<size_t>(2), navigator_.urls_.size()); |
| 141 ASSERT_TRUE(folder->GetChild(0)->url() == navigator_.urls_[0]); | 141 ASSERT_TRUE(folder->GetChild(0)->url() == navigator_.urls_[0]); |
| 142 } | 142 } |
| 143 | 143 |
| 144 // Tests open all on a folder with a couple of bookmarks in incognito window. | 144 // Tests open all on a folder with a couple of bookmarks in incognito window. |
| 145 TEST_F(BookmarkContextMenuTest, OpenAllIncognito) { | 145 TEST_F(BookmarkContextMenuTest, OpenAllIncognito) { |
| 146 const BookmarkNode* folder = model_->bookmark_bar_node()->GetChild(1); | 146 const BookmarkNode* folder = model_->bookmark_bar_node()->GetChild(1); |
| 147 chrome::OpenAll(NULL, &navigator_, folder, | 147 chrome::OpenAll(nullptr, &navigator_, folder, |
| 148 WindowOpenDisposition::OFF_THE_RECORD, profile_.get()); | 148 WindowOpenDisposition::OFF_THE_RECORD, profile_.get()); |
| 149 | 149 |
| 150 // Should have navigated to only f1a but not f2a. | 150 // Should have navigated to only f1a but not f2a. |
| 151 ASSERT_EQ(static_cast<size_t>(1), navigator_.urls_.size()); | 151 ASSERT_EQ(static_cast<size_t>(1), navigator_.urls_.size()); |
| 152 ASSERT_TRUE(folder->GetChild(0)->url() == navigator_.urls_[0]); | 152 ASSERT_TRUE(folder->GetChild(0)->url() == navigator_.urls_[0]); |
| 153 } | 153 } |
| 154 | 154 |
| 155 // Tests counting tabs for 'open all' on a folder with a couple of bookmarks. | |
| 156 TEST_F(BookmarkContextMenuTest, OpenCount) { | |
| 157 const BookmarkNode* folder = model_->bookmark_bar_node()->GetChild(1); | |
| 158 int result = chrome::OpenCount(nullptr, folder); | |
|
Peter Kasting
2017/04/14 19:04:40
Nit: You may inline this below, if you want (2 pla
Paezagon
2017/04/14 19:52:35
Done.
| |
| 159 | |
| 160 // Should have counted F1's child but not F11's child, as that's what OpenAll | |
| 161 // would open. | |
| 162 EXPECT_EQ(2U, result); | |
| 163 } | |
| 164 | |
| 165 // Same as above, but for counting bookmarks that would be opened in an | |
| 166 // incognito window. | |
| 167 TEST_F(BookmarkContextMenuTest, OpenCountIncognito) { | |
| 168 const BookmarkNode* folder = model_->bookmark_bar_node()->GetChild(1); | |
| 169 int result = chrome::OpenCount(nullptr, folder, profile_.get()); | |
| 170 | |
| 171 // Should have counted f1a but not f2a, as that's what OpenAll would open. | |
| 172 EXPECT_EQ(1U, result); | |
| 173 } | |
| 174 | |
| 155 // Tests the enabled state of the menus when supplied an empty vector. | 175 // Tests the enabled state of the menus when supplied an empty vector. |
| 156 TEST_F(BookmarkContextMenuTest, EmptyNodes) { | 176 TEST_F(BookmarkContextMenuTest, EmptyNodes) { |
| 157 BookmarkContextMenu controller( | 177 BookmarkContextMenu controller(nullptr, nullptr, profile_.get(), nullptr, |
| 158 NULL, NULL, profile_.get(), NULL, model_->other_node(), | 178 model_->other_node(), |
| 159 std::vector<const BookmarkNode*>(), false); | 179 std::vector<const BookmarkNode*>(), false); |
| 160 EXPECT_FALSE(controller.IsCommandEnabled(IDC_BOOKMARK_BAR_OPEN_ALL)); | 180 EXPECT_FALSE(controller.IsCommandEnabled(IDC_BOOKMARK_BAR_OPEN_ALL)); |
| 161 EXPECT_FALSE( | 181 EXPECT_FALSE( |
| 162 controller.IsCommandEnabled(IDC_BOOKMARK_BAR_OPEN_ALL_NEW_WINDOW)); | 182 controller.IsCommandEnabled(IDC_BOOKMARK_BAR_OPEN_ALL_NEW_WINDOW)); |
| 163 EXPECT_FALSE( | 183 EXPECT_FALSE( |
| 164 controller.IsCommandEnabled(IDC_BOOKMARK_BAR_OPEN_ALL_INCOGNITO)); | 184 controller.IsCommandEnabled(IDC_BOOKMARK_BAR_OPEN_ALL_INCOGNITO)); |
| 165 EXPECT_FALSE(controller.IsCommandEnabled(IDC_BOOKMARK_BAR_REMOVE)); | 185 EXPECT_FALSE(controller.IsCommandEnabled(IDC_BOOKMARK_BAR_REMOVE)); |
| 166 EXPECT_TRUE( | 186 EXPECT_TRUE( |
| 167 controller.IsCommandEnabled(IDC_BOOKMARK_BAR_ADD_NEW_BOOKMARK)); | 187 controller.IsCommandEnabled(IDC_BOOKMARK_BAR_ADD_NEW_BOOKMARK)); |
| 168 EXPECT_TRUE( | 188 EXPECT_TRUE( |
| 169 controller.IsCommandEnabled(IDC_BOOKMARK_BAR_NEW_FOLDER)); | 189 controller.IsCommandEnabled(IDC_BOOKMARK_BAR_NEW_FOLDER)); |
| 170 } | 190 } |
| 171 | 191 |
| 172 // Tests the enabled state of the menus when supplied a vector with a single | 192 // Tests the enabled state of the menus when supplied a vector with a single |
| 173 // url. | 193 // url. |
| 174 TEST_F(BookmarkContextMenuTest, SingleURL) { | 194 TEST_F(BookmarkContextMenuTest, SingleURL) { |
| 175 std::vector<const BookmarkNode*> nodes; | 195 std::vector<const BookmarkNode*> nodes; |
| 176 nodes.push_back(model_->bookmark_bar_node()->GetChild(0)); | 196 nodes.push_back(model_->bookmark_bar_node()->GetChild(0)); |
| 177 BookmarkContextMenu controller( | 197 BookmarkContextMenu controller(nullptr, nullptr, profile_.get(), nullptr, |
| 178 NULL, NULL, profile_.get(), NULL, nodes[0]->parent(), nodes, false); | 198 nodes[0]->parent(), nodes, false); |
| 179 EXPECT_TRUE(controller.IsCommandEnabled(IDC_BOOKMARK_BAR_OPEN_ALL)); | 199 EXPECT_TRUE(controller.IsCommandEnabled(IDC_BOOKMARK_BAR_OPEN_ALL)); |
| 180 EXPECT_TRUE( | 200 EXPECT_TRUE( |
| 181 controller.IsCommandEnabled(IDC_BOOKMARK_BAR_OPEN_ALL_NEW_WINDOW)); | 201 controller.IsCommandEnabled(IDC_BOOKMARK_BAR_OPEN_ALL_NEW_WINDOW)); |
| 182 EXPECT_TRUE(controller.IsCommandEnabled(IDC_BOOKMARK_BAR_OPEN_ALL_INCOGNITO)); | 202 EXPECT_TRUE(controller.IsCommandEnabled(IDC_BOOKMARK_BAR_OPEN_ALL_INCOGNITO)); |
| 183 EXPECT_TRUE(controller.IsCommandEnabled(IDC_BOOKMARK_BAR_REMOVE)); | 203 EXPECT_TRUE(controller.IsCommandEnabled(IDC_BOOKMARK_BAR_REMOVE)); |
| 184 EXPECT_TRUE( | 204 EXPECT_TRUE( |
| 185 controller.IsCommandEnabled(IDC_BOOKMARK_BAR_ADD_NEW_BOOKMARK)); | 205 controller.IsCommandEnabled(IDC_BOOKMARK_BAR_ADD_NEW_BOOKMARK)); |
| 186 EXPECT_TRUE( | 206 EXPECT_TRUE( |
| 187 controller.IsCommandEnabled(IDC_BOOKMARK_BAR_NEW_FOLDER)); | 207 controller.IsCommandEnabled(IDC_BOOKMARK_BAR_NEW_FOLDER)); |
| 188 } | 208 } |
| 189 | 209 |
| 190 // Tests the enabled state of the menus when supplied a vector with multiple | 210 // Tests the enabled state of the menus when supplied a vector with multiple |
| 191 // urls. | 211 // urls. |
| 192 TEST_F(BookmarkContextMenuTest, MultipleURLs) { | 212 TEST_F(BookmarkContextMenuTest, MultipleURLs) { |
| 193 std::vector<const BookmarkNode*> nodes; | 213 std::vector<const BookmarkNode*> nodes; |
| 194 nodes.push_back(model_->bookmark_bar_node()->GetChild(0)); | 214 nodes.push_back(model_->bookmark_bar_node()->GetChild(0)); |
| 195 nodes.push_back(model_->bookmark_bar_node()->GetChild(1)->GetChild(0)); | 215 nodes.push_back(model_->bookmark_bar_node()->GetChild(1)->GetChild(0)); |
| 196 BookmarkContextMenu controller( | 216 BookmarkContextMenu controller(nullptr, nullptr, profile_.get(), nullptr, |
| 197 NULL, NULL, profile_.get(), NULL, nodes[0]->parent(), nodes, false); | 217 nodes[0]->parent(), nodes, false); |
| 198 EXPECT_TRUE(controller.IsCommandEnabled(IDC_BOOKMARK_BAR_OPEN_ALL)); | 218 EXPECT_TRUE(controller.IsCommandEnabled(IDC_BOOKMARK_BAR_OPEN_ALL)); |
| 199 EXPECT_TRUE( | 219 EXPECT_TRUE( |
| 200 controller.IsCommandEnabled(IDC_BOOKMARK_BAR_OPEN_ALL_NEW_WINDOW)); | 220 controller.IsCommandEnabled(IDC_BOOKMARK_BAR_OPEN_ALL_NEW_WINDOW)); |
| 201 EXPECT_TRUE(controller.IsCommandEnabled(IDC_BOOKMARK_BAR_OPEN_ALL_INCOGNITO)); | 221 EXPECT_TRUE(controller.IsCommandEnabled(IDC_BOOKMARK_BAR_OPEN_ALL_INCOGNITO)); |
| 202 EXPECT_TRUE(controller.IsCommandEnabled(IDC_BOOKMARK_BAR_REMOVE)); | 222 EXPECT_TRUE(controller.IsCommandEnabled(IDC_BOOKMARK_BAR_REMOVE)); |
| 203 EXPECT_TRUE( | 223 EXPECT_TRUE( |
| 204 controller.IsCommandEnabled(IDC_BOOKMARK_BAR_ADD_NEW_BOOKMARK)); | 224 controller.IsCommandEnabled(IDC_BOOKMARK_BAR_ADD_NEW_BOOKMARK)); |
| 205 EXPECT_TRUE( | 225 EXPECT_TRUE( |
| 206 controller.IsCommandEnabled(IDC_BOOKMARK_BAR_NEW_FOLDER)); | 226 controller.IsCommandEnabled(IDC_BOOKMARK_BAR_NEW_FOLDER)); |
| 207 } | 227 } |
| 208 | 228 |
| 209 // Tests the enabled state of the menus when supplied an vector with a single | 229 // Tests the enabled state of the menus when supplied an vector with a single |
| 210 // folder. | 230 // folder. |
| 211 TEST_F(BookmarkContextMenuTest, SingleFolder) { | 231 TEST_F(BookmarkContextMenuTest, SingleFolder) { |
| 212 std::vector<const BookmarkNode*> nodes; | 232 std::vector<const BookmarkNode*> nodes; |
| 213 nodes.push_back(model_->bookmark_bar_node()->GetChild(2)); | 233 nodes.push_back(model_->bookmark_bar_node()->GetChild(2)); |
| 214 BookmarkContextMenu controller( | 234 BookmarkContextMenu controller(nullptr, nullptr, profile_.get(), nullptr, |
| 215 NULL, NULL, profile_.get(), NULL, nodes[0]->parent(), nodes, false); | 235 nodes[0]->parent(), nodes, false); |
| 216 EXPECT_FALSE(controller.IsCommandEnabled(IDC_BOOKMARK_BAR_OPEN_ALL)); | 236 EXPECT_FALSE(controller.IsCommandEnabled(IDC_BOOKMARK_BAR_OPEN_ALL)); |
| 217 EXPECT_FALSE( | 237 EXPECT_FALSE( |
| 218 controller.IsCommandEnabled(IDC_BOOKMARK_BAR_OPEN_ALL_NEW_WINDOW)); | 238 controller.IsCommandEnabled(IDC_BOOKMARK_BAR_OPEN_ALL_NEW_WINDOW)); |
| 219 EXPECT_FALSE( | 239 EXPECT_FALSE( |
| 220 controller.IsCommandEnabled(IDC_BOOKMARK_BAR_OPEN_ALL_INCOGNITO)); | 240 controller.IsCommandEnabled(IDC_BOOKMARK_BAR_OPEN_ALL_INCOGNITO)); |
| 221 EXPECT_TRUE(controller.IsCommandEnabled(IDC_BOOKMARK_BAR_REMOVE)); | 241 EXPECT_TRUE(controller.IsCommandEnabled(IDC_BOOKMARK_BAR_REMOVE)); |
| 222 EXPECT_TRUE( | 242 EXPECT_TRUE( |
| 223 controller.IsCommandEnabled(IDC_BOOKMARK_BAR_ADD_NEW_BOOKMARK)); | 243 controller.IsCommandEnabled(IDC_BOOKMARK_BAR_ADD_NEW_BOOKMARK)); |
| 224 EXPECT_TRUE( | 244 EXPECT_TRUE( |
| 225 controller.IsCommandEnabled(IDC_BOOKMARK_BAR_NEW_FOLDER)); | 245 controller.IsCommandEnabled(IDC_BOOKMARK_BAR_NEW_FOLDER)); |
| 226 } | 246 } |
| 227 | 247 |
| 228 // Tests the enabled state of the menus when supplied a vector with multiple | 248 // Tests the enabled state of the menus when supplied a vector with multiple |
| 229 // folders, all of which are empty. | 249 // folders, all of which are empty. |
| 230 TEST_F(BookmarkContextMenuTest, MultipleEmptyFolders) { | 250 TEST_F(BookmarkContextMenuTest, MultipleEmptyFolders) { |
| 231 std::vector<const BookmarkNode*> nodes; | 251 std::vector<const BookmarkNode*> nodes; |
| 232 nodes.push_back(model_->bookmark_bar_node()->GetChild(2)); | 252 nodes.push_back(model_->bookmark_bar_node()->GetChild(2)); |
| 233 nodes.push_back(model_->bookmark_bar_node()->GetChild(3)); | 253 nodes.push_back(model_->bookmark_bar_node()->GetChild(3)); |
| 234 BookmarkContextMenu controller( | 254 BookmarkContextMenu controller(nullptr, nullptr, profile_.get(), nullptr, |
| 235 NULL, NULL, profile_.get(), NULL, nodes[0]->parent(), nodes, false); | 255 nodes[0]->parent(), nodes, false); |
| 236 EXPECT_FALSE(controller.IsCommandEnabled(IDC_BOOKMARK_BAR_OPEN_ALL)); | 256 EXPECT_FALSE(controller.IsCommandEnabled(IDC_BOOKMARK_BAR_OPEN_ALL)); |
| 237 EXPECT_FALSE( | 257 EXPECT_FALSE( |
| 238 controller.IsCommandEnabled(IDC_BOOKMARK_BAR_OPEN_ALL_NEW_WINDOW)); | 258 controller.IsCommandEnabled(IDC_BOOKMARK_BAR_OPEN_ALL_NEW_WINDOW)); |
| 239 EXPECT_FALSE( | 259 EXPECT_FALSE( |
| 240 controller.IsCommandEnabled(IDC_BOOKMARK_BAR_OPEN_ALL_INCOGNITO)); | 260 controller.IsCommandEnabled(IDC_BOOKMARK_BAR_OPEN_ALL_INCOGNITO)); |
| 241 EXPECT_TRUE(controller.IsCommandEnabled(IDC_BOOKMARK_BAR_REMOVE)); | 261 EXPECT_TRUE(controller.IsCommandEnabled(IDC_BOOKMARK_BAR_REMOVE)); |
| 242 EXPECT_TRUE( | 262 EXPECT_TRUE( |
| 243 controller.IsCommandEnabled(IDC_BOOKMARK_BAR_ADD_NEW_BOOKMARK)); | 263 controller.IsCommandEnabled(IDC_BOOKMARK_BAR_ADD_NEW_BOOKMARK)); |
| 244 EXPECT_TRUE( | 264 EXPECT_TRUE( |
| 245 controller.IsCommandEnabled(IDC_BOOKMARK_BAR_NEW_FOLDER)); | 265 controller.IsCommandEnabled(IDC_BOOKMARK_BAR_NEW_FOLDER)); |
| 246 } | 266 } |
| 247 | 267 |
| 248 // Tests the enabled state of the menus when supplied a vector with multiple | 268 // Tests the enabled state of the menus when supplied a vector with multiple |
| 249 // folders, some of which contain URLs. | 269 // folders, some of which contain URLs. |
| 250 TEST_F(BookmarkContextMenuTest, MultipleFoldersWithURLs) { | 270 TEST_F(BookmarkContextMenuTest, MultipleFoldersWithURLs) { |
| 251 std::vector<const BookmarkNode*> nodes; | 271 std::vector<const BookmarkNode*> nodes; |
| 252 nodes.push_back(model_->bookmark_bar_node()->GetChild(3)); | 272 nodes.push_back(model_->bookmark_bar_node()->GetChild(3)); |
| 253 nodes.push_back(model_->bookmark_bar_node()->GetChild(4)); | 273 nodes.push_back(model_->bookmark_bar_node()->GetChild(4)); |
| 254 BookmarkContextMenu controller( | 274 BookmarkContextMenu controller(nullptr, nullptr, profile_.get(), nullptr, |
| 255 NULL, NULL, profile_.get(), NULL, nodes[0]->parent(), nodes, false); | 275 nodes[0]->parent(), nodes, false); |
| 256 EXPECT_TRUE(controller.IsCommandEnabled(IDC_BOOKMARK_BAR_OPEN_ALL)); | 276 EXPECT_TRUE(controller.IsCommandEnabled(IDC_BOOKMARK_BAR_OPEN_ALL)); |
| 257 EXPECT_TRUE( | 277 EXPECT_TRUE( |
| 258 controller.IsCommandEnabled(IDC_BOOKMARK_BAR_OPEN_ALL_NEW_WINDOW)); | 278 controller.IsCommandEnabled(IDC_BOOKMARK_BAR_OPEN_ALL_NEW_WINDOW)); |
| 259 EXPECT_TRUE(controller.IsCommandEnabled(IDC_BOOKMARK_BAR_OPEN_ALL_INCOGNITO)); | 279 EXPECT_TRUE(controller.IsCommandEnabled(IDC_BOOKMARK_BAR_OPEN_ALL_INCOGNITO)); |
| 260 EXPECT_TRUE(controller.IsCommandEnabled(IDC_BOOKMARK_BAR_REMOVE)); | 280 EXPECT_TRUE(controller.IsCommandEnabled(IDC_BOOKMARK_BAR_REMOVE)); |
| 261 EXPECT_TRUE( | 281 EXPECT_TRUE( |
| 262 controller.IsCommandEnabled(IDC_BOOKMARK_BAR_ADD_NEW_BOOKMARK)); | 282 controller.IsCommandEnabled(IDC_BOOKMARK_BAR_ADD_NEW_BOOKMARK)); |
| 263 EXPECT_TRUE( | 283 EXPECT_TRUE( |
| 264 controller.IsCommandEnabled(IDC_BOOKMARK_BAR_NEW_FOLDER)); | 284 controller.IsCommandEnabled(IDC_BOOKMARK_BAR_NEW_FOLDER)); |
| 265 } | 285 } |
| 266 | 286 |
| 267 // Tests the enabled state of open incognito. | 287 // Tests the enabled state of open incognito. |
| 268 TEST_F(BookmarkContextMenuTest, DisableIncognito) { | 288 TEST_F(BookmarkContextMenuTest, DisableIncognito) { |
| 269 std::vector<const BookmarkNode*> nodes; | 289 std::vector<const BookmarkNode*> nodes; |
| 270 nodes.push_back(model_->bookmark_bar_node()->GetChild(0)); | 290 nodes.push_back(model_->bookmark_bar_node()->GetChild(0)); |
| 271 Profile* incognito = profile_->GetOffTheRecordProfile(); | 291 Profile* incognito = profile_->GetOffTheRecordProfile(); |
| 272 BookmarkContextMenu controller( | 292 BookmarkContextMenu controller(nullptr, nullptr, incognito, nullptr, |
| 273 NULL, NULL, incognito, NULL, nodes[0]->parent(), nodes, false); | 293 nodes[0]->parent(), nodes, false); |
| 274 EXPECT_FALSE(controller.IsCommandEnabled(IDC_BOOKMARK_BAR_OPEN_INCOGNITO)); | 294 EXPECT_FALSE(controller.IsCommandEnabled(IDC_BOOKMARK_BAR_OPEN_INCOGNITO)); |
| 275 EXPECT_FALSE( | 295 EXPECT_FALSE( |
| 276 controller.IsCommandEnabled(IDC_BOOKMARK_BAR_OPEN_ALL_INCOGNITO)); | 296 controller.IsCommandEnabled(IDC_BOOKMARK_BAR_OPEN_ALL_INCOGNITO)); |
| 277 } | 297 } |
| 278 | 298 |
| 279 // Tests that you can't remove/edit when showing the other node. | 299 // Tests that you can't remove/edit when showing the other node. |
| 280 TEST_F(BookmarkContextMenuTest, DisabledItemsWithOtherNode) { | 300 TEST_F(BookmarkContextMenuTest, DisabledItemsWithOtherNode) { |
| 281 std::vector<const BookmarkNode*> nodes; | 301 std::vector<const BookmarkNode*> nodes; |
| 282 nodes.push_back(model_->other_node()); | 302 nodes.push_back(model_->other_node()); |
| 283 BookmarkContextMenu controller( | 303 BookmarkContextMenu controller(nullptr, nullptr, profile_.get(), nullptr, |
| 284 NULL, NULL, profile_.get(), NULL, nodes[0], nodes, false); | 304 nodes[0], nodes, false); |
| 285 EXPECT_FALSE(controller.IsCommandEnabled(IDC_BOOKMARK_BAR_EDIT)); | 305 EXPECT_FALSE(controller.IsCommandEnabled(IDC_BOOKMARK_BAR_EDIT)); |
| 286 EXPECT_FALSE(controller.IsCommandEnabled(IDC_BOOKMARK_BAR_REMOVE)); | 306 EXPECT_FALSE(controller.IsCommandEnabled(IDC_BOOKMARK_BAR_REMOVE)); |
| 287 } | 307 } |
| 288 | 308 |
| 289 // Tests the enabled state of the menus when supplied an empty vector and null | 309 // Tests the enabled state of the menus when supplied an empty vector and null |
| 290 // parent. | 310 // parent. |
| 291 TEST_F(BookmarkContextMenuTest, EmptyNodesNullParent) { | 311 TEST_F(BookmarkContextMenuTest, EmptyNodesNullParent) { |
| 292 BookmarkContextMenu controller( | 312 BookmarkContextMenu controller(nullptr, nullptr, profile_.get(), nullptr, |
| 293 NULL, NULL, profile_.get(), NULL, NULL, | 313 nullptr, std::vector<const BookmarkNode*>(), |
| 294 std::vector<const BookmarkNode*>(), false); | 314 false); |
| 295 EXPECT_FALSE(controller.IsCommandEnabled(IDC_BOOKMARK_BAR_OPEN_ALL)); | 315 EXPECT_FALSE(controller.IsCommandEnabled(IDC_BOOKMARK_BAR_OPEN_ALL)); |
| 296 EXPECT_FALSE( | 316 EXPECT_FALSE( |
| 297 controller.IsCommandEnabled(IDC_BOOKMARK_BAR_OPEN_ALL_NEW_WINDOW)); | 317 controller.IsCommandEnabled(IDC_BOOKMARK_BAR_OPEN_ALL_NEW_WINDOW)); |
| 298 EXPECT_FALSE( | 318 EXPECT_FALSE( |
| 299 controller.IsCommandEnabled(IDC_BOOKMARK_BAR_OPEN_ALL_INCOGNITO)); | 319 controller.IsCommandEnabled(IDC_BOOKMARK_BAR_OPEN_ALL_INCOGNITO)); |
| 300 EXPECT_FALSE(controller.IsCommandEnabled(IDC_BOOKMARK_BAR_REMOVE)); | 320 EXPECT_FALSE(controller.IsCommandEnabled(IDC_BOOKMARK_BAR_REMOVE)); |
| 301 EXPECT_FALSE( | 321 EXPECT_FALSE( |
| 302 controller.IsCommandEnabled(IDC_BOOKMARK_BAR_ADD_NEW_BOOKMARK)); | 322 controller.IsCommandEnabled(IDC_BOOKMARK_BAR_ADD_NEW_BOOKMARK)); |
| 303 EXPECT_FALSE( | 323 EXPECT_FALSE( |
| 304 controller.IsCommandEnabled(IDC_BOOKMARK_BAR_NEW_FOLDER)); | 324 controller.IsCommandEnabled(IDC_BOOKMARK_BAR_NEW_FOLDER)); |
| 305 } | 325 } |
| 306 | 326 |
| 307 TEST_F(BookmarkContextMenuTest, CutCopyPasteNode) { | 327 TEST_F(BookmarkContextMenuTest, CutCopyPasteNode) { |
| 308 const BookmarkNode* bb_node = model_->bookmark_bar_node(); | 328 const BookmarkNode* bb_node = model_->bookmark_bar_node(); |
| 309 std::vector<const BookmarkNode*> nodes; | 329 std::vector<const BookmarkNode*> nodes; |
| 310 nodes.push_back(bb_node->GetChild(0)); | 330 nodes.push_back(bb_node->GetChild(0)); |
| 311 std::unique_ptr<BookmarkContextMenu> controller(new BookmarkContextMenu( | 331 std::unique_ptr<BookmarkContextMenu> controller( |
| 312 NULL, NULL, profile_.get(), NULL, nodes[0]->parent(), nodes, false)); | 332 new BookmarkContextMenu(nullptr, nullptr, profile_.get(), nullptr, |
| 333 nodes[0]->parent(), nodes, false)); | |
| 313 EXPECT_TRUE(controller->IsCommandEnabled(IDC_COPY)); | 334 EXPECT_TRUE(controller->IsCommandEnabled(IDC_COPY)); |
| 314 EXPECT_TRUE(controller->IsCommandEnabled(IDC_CUT)); | 335 EXPECT_TRUE(controller->IsCommandEnabled(IDC_CUT)); |
| 315 | 336 |
| 316 // Copy the URL. | 337 // Copy the URL. |
| 317 controller->ExecuteCommand(IDC_COPY, 0); | 338 controller->ExecuteCommand(IDC_COPY, 0); |
| 318 | 339 |
| 319 controller.reset(new BookmarkContextMenu( | 340 controller.reset(new BookmarkContextMenu(nullptr, nullptr, profile_.get(), |
| 320 NULL, NULL, profile_.get(), NULL, nodes[0]->parent(), nodes, false)); | 341 nullptr, nodes[0]->parent(), nodes, |
| 342 false)); | |
| 321 int old_count = bb_node->child_count(); | 343 int old_count = bb_node->child_count(); |
| 322 controller->ExecuteCommand(IDC_PASTE, 0); | 344 controller->ExecuteCommand(IDC_PASTE, 0); |
| 323 | 345 |
| 324 ASSERT_TRUE(bb_node->GetChild(1)->is_url()); | 346 ASSERT_TRUE(bb_node->GetChild(1)->is_url()); |
| 325 ASSERT_EQ(old_count + 1, bb_node->child_count()); | 347 ASSERT_EQ(old_count + 1, bb_node->child_count()); |
| 326 ASSERT_EQ(bb_node->GetChild(0)->url(), bb_node->GetChild(1)->url()); | 348 ASSERT_EQ(bb_node->GetChild(0)->url(), bb_node->GetChild(1)->url()); |
| 327 | 349 |
| 328 controller.reset(new BookmarkContextMenu( | 350 controller.reset(new BookmarkContextMenu(nullptr, nullptr, profile_.get(), |
| 329 NULL, NULL, profile_.get(), NULL, nodes[0]->parent(), nodes, false)); | 351 nullptr, nodes[0]->parent(), nodes, |
| 352 false)); | |
| 330 // Cut the URL. | 353 // Cut the URL. |
| 331 controller->ExecuteCommand(IDC_CUT, 0); | 354 controller->ExecuteCommand(IDC_CUT, 0); |
| 332 ASSERT_TRUE(bb_node->GetChild(0)->is_url()); | 355 ASSERT_TRUE(bb_node->GetChild(0)->is_url()); |
| 333 ASSERT_TRUE(bb_node->GetChild(1)->is_folder()); | 356 ASSERT_TRUE(bb_node->GetChild(1)->is_folder()); |
| 334 ASSERT_EQ(old_count, bb_node->child_count()); | 357 ASSERT_EQ(old_count, bb_node->child_count()); |
| 335 } | 358 } |
| 336 | 359 |
| 337 // Tests that the "Show managed bookmarks" option in the context menu is only | 360 // Tests that the "Show managed bookmarks" option in the context menu is only |
| 338 // visible if the policy is set. | 361 // visible if the policy is set. |
| 339 TEST_F(BookmarkContextMenuTest, ShowManagedBookmarks) { | 362 TEST_F(BookmarkContextMenuTest, ShowManagedBookmarks) { |
| 340 // Create a BookmarkContextMenu for the bookmarks bar. | 363 // Create a BookmarkContextMenu for the bookmarks bar. |
| 341 const BookmarkNode* bb_node = model_->bookmark_bar_node(); | 364 const BookmarkNode* bb_node = model_->bookmark_bar_node(); |
| 342 std::vector<const BookmarkNode*> nodes; | 365 std::vector<const BookmarkNode*> nodes; |
| 343 nodes.push_back(bb_node->GetChild(0)); | 366 nodes.push_back(bb_node->GetChild(0)); |
| 344 std::unique_ptr<BookmarkContextMenu> controller(new BookmarkContextMenu( | 367 std::unique_ptr<BookmarkContextMenu> controller( |
| 345 NULL, NULL, profile_.get(), NULL, nodes[0]->parent(), nodes, false)); | 368 new BookmarkContextMenu(nullptr, nullptr, profile_.get(), nullptr, |
| 369 nodes[0]->parent(), nodes, false)); | |
| 346 | 370 |
| 347 // Verify that there are no managed nodes yet. | 371 // Verify that there are no managed nodes yet. |
| 348 bookmarks::ManagedBookmarkService* managed = | 372 bookmarks::ManagedBookmarkService* managed = |
| 349 ManagedBookmarkServiceFactory::GetForProfile(profile_.get()); | 373 ManagedBookmarkServiceFactory::GetForProfile(profile_.get()); |
| 350 EXPECT_TRUE(managed->managed_node()->empty()); | 374 EXPECT_TRUE(managed->managed_node()->empty()); |
| 351 | 375 |
| 352 // The context menu should not show the option to "Show managed bookmarks". | 376 // The context menu should not show the option to "Show managed bookmarks". |
| 353 EXPECT_FALSE( | 377 EXPECT_FALSE( |
| 354 controller->IsCommandVisible(IDC_BOOKMARK_BAR_SHOW_MANAGED_BOOKMARKS)); | 378 controller->IsCommandVisible(IDC_BOOKMARK_BAR_SHOW_MANAGED_BOOKMARKS)); |
| 355 views::MenuItemView* menu = controller->menu(); | 379 views::MenuItemView* menu = controller->menu(); |
| 356 EXPECT_FALSE(menu->GetMenuItemByID(IDC_BOOKMARK_BAR_SHOW_MANAGED_BOOKMARKS) | 380 EXPECT_FALSE(menu->GetMenuItemByID(IDC_BOOKMARK_BAR_SHOW_MANAGED_BOOKMARKS) |
| 357 ->visible()); | 381 ->visible()); |
| 358 | 382 |
| 359 // Other options are not affected. | 383 // Other options are not affected. |
| 360 EXPECT_TRUE(controller->IsCommandVisible(IDC_BOOKMARK_BAR_NEW_FOLDER)); | 384 EXPECT_TRUE(controller->IsCommandVisible(IDC_BOOKMARK_BAR_NEW_FOLDER)); |
| 361 EXPECT_TRUE(menu->GetMenuItemByID(IDC_BOOKMARK_BAR_NEW_FOLDER)->visible()); | 385 EXPECT_TRUE(menu->GetMenuItemByID(IDC_BOOKMARK_BAR_NEW_FOLDER)->visible()); |
| 362 | 386 |
| 363 // Now set the managed bookmarks policy. | 387 // Now set the managed bookmarks policy. |
| 364 std::unique_ptr<base::DictionaryValue> dict(new base::DictionaryValue); | 388 std::unique_ptr<base::DictionaryValue> dict(new base::DictionaryValue); |
| 365 dict->SetString("name", "Google"); | 389 dict->SetString("name", "Google"); |
| 366 dict->SetString("url", "http://google.com"); | 390 dict->SetString("url", "http://google.com"); |
| 367 base::ListValue list; | 391 base::ListValue list; |
| 368 list.Append(std::move(dict)); | 392 list.Append(std::move(dict)); |
| 369 EXPECT_TRUE(managed->managed_node()->empty()); | 393 EXPECT_TRUE(managed->managed_node()->empty()); |
| 370 profile_->GetPrefs()->Set(bookmarks::prefs::kManagedBookmarks, list); | 394 profile_->GetPrefs()->Set(bookmarks::prefs::kManagedBookmarks, list); |
| 371 EXPECT_FALSE(managed->managed_node()->empty()); | 395 EXPECT_FALSE(managed->managed_node()->empty()); |
| 372 | 396 |
| 373 // New context menus now show the "Show managed bookmarks" option. | 397 // New context menus now show the "Show managed bookmarks" option. |
| 374 controller.reset(new BookmarkContextMenu( | 398 controller.reset(new BookmarkContextMenu(nullptr, nullptr, profile_.get(), |
| 375 NULL, NULL, profile_.get(), NULL, nodes[0]->parent(), nodes, false)); | 399 nullptr, nodes[0]->parent(), nodes, |
| 400 false)); | |
| 376 EXPECT_TRUE(controller->IsCommandVisible(IDC_BOOKMARK_BAR_NEW_FOLDER)); | 401 EXPECT_TRUE(controller->IsCommandVisible(IDC_BOOKMARK_BAR_NEW_FOLDER)); |
| 377 EXPECT_TRUE( | 402 EXPECT_TRUE( |
| 378 controller->IsCommandVisible(IDC_BOOKMARK_BAR_SHOW_MANAGED_BOOKMARKS)); | 403 controller->IsCommandVisible(IDC_BOOKMARK_BAR_SHOW_MANAGED_BOOKMARKS)); |
| 379 menu = controller->menu(); | 404 menu = controller->menu(); |
| 380 EXPECT_TRUE(menu->GetMenuItemByID(IDC_BOOKMARK_BAR_NEW_FOLDER)->visible()); | 405 EXPECT_TRUE(menu->GetMenuItemByID(IDC_BOOKMARK_BAR_NEW_FOLDER)->visible()); |
| 381 EXPECT_TRUE(menu->GetMenuItemByID(IDC_BOOKMARK_BAR_SHOW_MANAGED_BOOKMARKS) | 406 EXPECT_TRUE(menu->GetMenuItemByID(IDC_BOOKMARK_BAR_SHOW_MANAGED_BOOKMARKS) |
| 382 ->visible()); | 407 ->visible()); |
| 383 } | 408 } |
| OLD | NEW |