Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(89)

Side by Side Diff: chrome/browser/ui/cocoa/bookmarks/bookmark_menu_bridge_unittest.mm

Issue 2809003002: Making bookmark folder context menu display the number of bookmarks that will be opened by Open All (Closed)
Patch Set: Fixing compilation issues Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 #import <AppKit/AppKit.h> 5 #import <AppKit/AppKit.h>
6 6
7 #include "base/strings/string16.h" 7 #include "base/strings/string16.h"
8 #include "base/strings/string_util.h" 8 #include "base/strings/string_util.h"
9 #include "base/strings/utf_string_conversions.h" 9 #include "base/strings/utf_string_conversions.h"
10 #include "chrome/app/chrome_command_ids.h" 10 #include "chrome/app/chrome_command_ids.h"
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
74 bool enable) { 74 bool enable) {
75 bridge->AddItemToMenu(command_id, message_id, node, menu, enable); 75 bridge->AddItemToMenu(command_id, message_id, node, menu, enable);
76 } 76 }
77 77
78 NSMenuItem* MenuItemForNode(BookmarkMenuBridge* bridge, 78 NSMenuItem* MenuItemForNode(BookmarkMenuBridge* bridge,
79 const BookmarkNode* node) { 79 const BookmarkNode* node) {
80 return bridge->MenuItemForNode(node); 80 return bridge->MenuItemForNode(node);
81 } 81 }
82 82
83 NSMenuItem* AddTestMenuItem(NSMenu *menu, NSString *title, SEL selector) { 83 NSMenuItem* AddTestMenuItem(NSMenu *menu, NSString *title, SEL selector) {
84 NSMenuItem *item = [[[NSMenuItem alloc] initWithTitle:title action:NULL 84 NSMenuItem* item = [[[NSMenuItem alloc] initWithTitle:title
85 action:nullptr
85 keyEquivalent:@""] autorelease]; 86 keyEquivalent:@""] autorelease];
86 if (selector) 87 if (selector)
87 [item setAction:selector]; 88 [item setAction:selector];
88 [menu addItem:item]; 89 [menu addItem:item];
89 return item; 90 return item;
90 } 91 }
91 std::unique_ptr<TestBookmarkMenuBridge> bridge_; 92 std::unique_ptr<TestBookmarkMenuBridge> bridge_;
92 }; 93 };
93 94
94 TEST_F(BookmarkMenuBridgeTest, TestBookmarkMenuAutoSeparator) { 95 TEST_F(BookmarkMenuBridgeTest, TestBookmarkMenuAutoSeparator) {
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
175 EXPECT_TRUE(model && root); 176 EXPECT_TRUE(model && root);
176 177
177 const char* short_url = "http://foo/"; 178 const char* short_url = "http://foo/";
178 const char* long_url = "http://super-duper-long-url--." 179 const char* long_url = "http://super-duper-long-url--."
179 "that.cannot.possibly.fit.even-in-80-columns" 180 "that.cannot.possibly.fit.even-in-80-columns"
180 "or.be.reasonably-displayed-in-a-menu" 181 "or.be.reasonably-displayed-in-a-menu"
181 "without.looking-ridiculous.com/"; // 140 chars total 182 "without.looking-ridiculous.com/"; // 140 chars total
182 183
183 // 3 nodes; middle one has a child, last one has a HUGE URL 184 // 3 nodes; middle one has a child, last one has a HUGE URL
184 // Set their titles to be the same as the URLs 185 // Set their titles to be the same as the URLs
185 const BookmarkNode* node = NULL; 186 const BookmarkNode* node = nullptr;
186 model->AddURL(root, 0, ASCIIToUTF16(short_url), GURL(short_url)); 187 model->AddURL(root, 0, ASCIIToUTF16(short_url), GURL(short_url));
187 bridge_->UpdateMenu(menu); 188 bridge_->UpdateMenu(menu);
188 int prev_count = [menu numberOfItems] - 1; // "extras" added at this point 189 int prev_count = [menu numberOfItems] - 1; // "extras" added at this point
189 node = model->AddFolder(root, 1, empty); 190 node = model->AddFolder(root, 1, empty);
190 model->AddURL(root, 2, ASCIIToUTF16(long_url), GURL(long_url)); 191 model->AddURL(root, 2, ASCIIToUTF16(long_url), GURL(long_url));
191 192
192 // And the submenu fo the middle one 193 // And the submenu fo the middle one
193 model->AddURL(node, 0, empty, GURL("http://sub")); 194 model->AddURL(node, 0, empty, GURL("http://sub"));
194 bridge_->UpdateMenu(menu); 195 bridge_->UpdateMenu(menu);
195 196
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
253 EXPECT_EQ(0, [menu numberOfItems]); 254 EXPECT_EQ(0, [menu numberOfItems]);
254 255
255 AddItemToMenu(bridge_.get(), IDC_BOOKMARK_BAR_OPEN_ALL, 256 AddItemToMenu(bridge_.get(), IDC_BOOKMARK_BAR_OPEN_ALL,
256 IDS_BOOKMARK_BAR_OPEN_ALL, root, menu, true); 257 IDS_BOOKMARK_BAR_OPEN_ALL, root, menu, true);
257 AddItemToMenu(bridge_.get(), IDC_BOOKMARK_BAR_OPEN_ALL_NEW_WINDOW, 258 AddItemToMenu(bridge_.get(), IDC_BOOKMARK_BAR_OPEN_ALL_NEW_WINDOW,
258 IDS_BOOKMARK_BAR_OPEN_ALL_NEW_WINDOW, root, menu, true); 259 IDS_BOOKMARK_BAR_OPEN_ALL_NEW_WINDOW, root, menu, true);
259 AddItemToMenu(bridge_.get(), IDC_BOOKMARK_BAR_OPEN_ALL_INCOGNITO, 260 AddItemToMenu(bridge_.get(), IDC_BOOKMARK_BAR_OPEN_ALL_INCOGNITO,
260 IDS_BOOKMARK_BAR_OPEN_INCOGNITO, root, menu, true); 261 IDS_BOOKMARK_BAR_OPEN_INCOGNITO, root, menu, true);
261 EXPECT_EQ(3, [menu numberOfItems]); 262 EXPECT_EQ(3, [menu numberOfItems]);
262 263
263 title = l10n_util::GetNSStringWithFixup(IDS_BOOKMARK_BAR_OPEN_ALL); 264 title = l10n_util::GetPluralNSStringF(IDS_BOOKMARK_BAR_OPEN_ALL, 0);
264 item = [menu itemWithTitle:title]; 265 item = [menu itemWithTitle:title];
265 EXPECT_TRUE(item); 266 EXPECT_TRUE(item);
266 EXPECT_EQ(@selector(openAllBookmarks:), [item action]); 267 EXPECT_EQ(@selector(openAllBookmarks:), [item action]);
267 EXPECT_TRUE([item isEnabled]); 268 EXPECT_TRUE([item isEnabled]);
268 269
269 title = l10n_util::GetNSStringWithFixup(IDS_BOOKMARK_BAR_OPEN_ALL_NEW_WINDOW); 270 title =
271 l10n_util::GetPluralNSStringF(IDS_BOOKMARK_BAR_OPEN_ALL_NEW_WINDOW, 0);
270 item = [menu itemWithTitle:title]; 272 item = [menu itemWithTitle:title];
271 EXPECT_TRUE(item); 273 EXPECT_TRUE(item);
272 EXPECT_EQ(@selector(openAllBookmarksNewWindow:), [item action]); 274 EXPECT_EQ(@selector(openAllBookmarksNewWindow:), [item action]);
273 EXPECT_TRUE([item isEnabled]); 275 EXPECT_TRUE([item isEnabled]);
274 276
275 title = l10n_util::GetNSStringWithFixup(IDS_BOOKMARK_BAR_OPEN_INCOGNITO); 277 title = l10n_util::GetPluralNSStringF(IDS_BOOKMARK_BAR_OPEN_INCOGNITO, 0);
276 item = [menu itemWithTitle:title]; 278 item = [menu itemWithTitle:title];
277 EXPECT_TRUE(item); 279 EXPECT_TRUE(item);
278 EXPECT_EQ(@selector(openAllBookmarksIncognitoWindow:), [item action]); 280 EXPECT_EQ(@selector(openAllBookmarksIncognitoWindow:), [item action]);
279 EXPECT_TRUE([item isEnabled]); 281 EXPECT_TRUE([item isEnabled]);
280 282
281 ClearBookmarkMenu(bridge_.get(), menu); 283 ClearBookmarkMenu(bridge_.get(), menu);
282 EXPECT_EQ(0, [menu numberOfItems]); 284 EXPECT_EQ(0, [menu numberOfItems]);
283 285
284 AddItemToMenu(bridge_.get(), IDC_BOOKMARK_BAR_OPEN_ALL, 286 AddItemToMenu(bridge_.get(), IDC_BOOKMARK_BAR_OPEN_ALL,
285 IDS_BOOKMARK_BAR_OPEN_ALL, root, menu, false); 287 IDS_BOOKMARK_BAR_OPEN_ALL, root, menu, false);
286 AddItemToMenu(bridge_.get(), IDC_BOOKMARK_BAR_OPEN_ALL_NEW_WINDOW, 288 AddItemToMenu(bridge_.get(), IDC_BOOKMARK_BAR_OPEN_ALL_NEW_WINDOW,
287 IDS_BOOKMARK_BAR_OPEN_ALL_NEW_WINDOW, root, menu, false); 289 IDS_BOOKMARK_BAR_OPEN_ALL_NEW_WINDOW, root, menu, false);
288 AddItemToMenu(bridge_.get(), IDC_BOOKMARK_BAR_OPEN_ALL_INCOGNITO, 290 AddItemToMenu(bridge_.get(), IDC_BOOKMARK_BAR_OPEN_ALL_INCOGNITO,
289 IDS_BOOKMARK_BAR_OPEN_INCOGNITO, root, menu, false); 291 IDS_BOOKMARK_BAR_OPEN_INCOGNITO, root, menu, false);
290 EXPECT_EQ(3, [menu numberOfItems]); 292 EXPECT_EQ(3, [menu numberOfItems]);
291 293
292 title = l10n_util::GetNSStringWithFixup(IDS_BOOKMARK_BAR_OPEN_ALL); 294 title = l10n_util::GetPluralNSStringF(IDS_BOOKMARK_BAR_OPEN_ALL, 0);
293 item = [menu itemWithTitle:title]; 295 item = [menu itemWithTitle:title];
294 EXPECT_TRUE(item); 296 EXPECT_TRUE(item);
295 EXPECT_EQ(nil, [item action]); 297 EXPECT_EQ(nil, [item action]);
296 EXPECT_FALSE([item isEnabled]); 298 EXPECT_FALSE([item isEnabled]);
297 299
298 title = l10n_util::GetNSStringWithFixup(IDS_BOOKMARK_BAR_OPEN_ALL_NEW_WINDOW); 300 title =
301 l10n_util::GetPluralNSStringF(IDS_BOOKMARK_BAR_OPEN_ALL_NEW_WINDOW, 0);
299 item = [menu itemWithTitle:title]; 302 item = [menu itemWithTitle:title];
300 EXPECT_TRUE(item); 303 EXPECT_TRUE(item);
301 EXPECT_EQ(nil, [item action]); 304 EXPECT_EQ(nil, [item action]);
302 EXPECT_FALSE([item isEnabled]); 305 EXPECT_FALSE([item isEnabled]);
303 306
304 title = l10n_util::GetNSStringWithFixup(IDS_BOOKMARK_BAR_OPEN_INCOGNITO); 307 title = l10n_util::GetPluralNSStringF(IDS_BOOKMARK_BAR_OPEN_INCOGNITO, 0);
305 item = [menu itemWithTitle:title]; 308 item = [menu itemWithTitle:title];
306 EXPECT_TRUE(item); 309 EXPECT_TRUE(item);
307 EXPECT_EQ(nil, [item action]); 310 EXPECT_EQ(nil, [item action]);
308 EXPECT_FALSE([item isEnabled]); 311 EXPECT_FALSE([item isEnabled]);
309 } 312 }
310 313
311 // Makes sure our internal map of BookmarkNode to NSMenuItem works. 314 // Makes sure our internal map of BookmarkNode to NSMenuItem works.
312 TEST_F(BookmarkMenuBridgeTest, TestGetMenuItemForNode) { 315 TEST_F(BookmarkMenuBridgeTest, TestGetMenuItemForNode) {
313 base::string16 empty; 316 base::string16 empty;
314 NSMenu* menu = bridge_->menu_; 317 NSMenu* menu = bridge_->menu_;
(...skipping 15 matching lines...) Expand all
330 const BookmarkNode* removed_node = root->GetChild(0); 333 const BookmarkNode* removed_node = root->GetChild(0);
331 EXPECT_EQ(2, root->child_count()); 334 EXPECT_EQ(2, root->child_count());
332 model->Remove(root->GetChild(0)); 335 model->Remove(root->GetChild(0));
333 EXPECT_EQ(1, root->child_count()); 336 EXPECT_EQ(1, root->child_count());
334 bridge_->UpdateMenu(menu); 337 bridge_->UpdateMenu(menu);
335 EXPECT_FALSE(MenuItemForNode(bridge_.get(), removed_node)); 338 EXPECT_FALSE(MenuItemForNode(bridge_.get(), removed_node));
336 EXPECT_TRUE(MenuItemForNode(bridge_.get(), root->GetChild(0))); 339 EXPECT_TRUE(MenuItemForNode(bridge_.get(), root->GetChild(0)));
337 340
338 const BookmarkNode empty_node(GURL("http://no-where/")); 341 const BookmarkNode empty_node(GURL("http://no-where/"));
339 EXPECT_FALSE(MenuItemForNode(bridge_.get(), &empty_node)); 342 EXPECT_FALSE(MenuItemForNode(bridge_.get(), &empty_node));
340 EXPECT_FALSE(MenuItemForNode(bridge_.get(), NULL)); 343 EXPECT_FALSE(MenuItemForNode(bridge_.get(), nullptr));
341 } 344 }
342 345
343 // Test that Loaded() adds both the bookmark bar nodes and the "other" nodes. 346 // Test that Loaded() adds both the bookmark bar nodes and the "other" nodes.
344 TEST_F(BookmarkMenuBridgeTest, TestAddNodeToOther) { 347 TEST_F(BookmarkMenuBridgeTest, TestAddNodeToOther) {
345 NSMenu* menu = bridge_->menu_; 348 NSMenu* menu = bridge_->menu_;
346 349
347 BookmarkModel* model = bridge_->GetBookmarkModel(); 350 BookmarkModel* model = bridge_->GetBookmarkModel();
348 const BookmarkNode* root = model->other_node(); 351 const BookmarkNode* root = model->other_node();
349 EXPECT_TRUE(model && root); 352 EXPECT_TRUE(model && root);
350 353
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
392 EXPECT_TRUE([item image]); 395 EXPECT_TRUE([item image]);
393 396
394 model->SetTitle(node, ASCIIToUTF16("New Title")); 397 model->SetTitle(node, ASCIIToUTF16("New Title"));
395 398
396 item = [menu itemWithTitle:@"Test Item"]; 399 item = [menu itemWithTitle:@"Test Item"];
397 EXPECT_FALSE(item); 400 EXPECT_FALSE(item);
398 item = [menu itemWithTitle:@"New Title"]; 401 item = [menu itemWithTitle:@"New Title"];
399 EXPECT_TRUE(item); 402 EXPECT_TRUE(item);
400 } 403 }
401 404
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698