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

Side by Side Diff: ui/base/cocoa/menu_controller_unittest.mm

Issue 117983002: Prefix string16 with base:: in ui/. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: merge Created 7 years 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 | Annotate | Revision Log
« no previous file with comments | « ui/base/cocoa/menu_controller.mm ('k') | ui/base/cursor/cursor_loader_win.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 <Cocoa/Cocoa.h> 5 #import <Cocoa/Cocoa.h>
6 6
7 #include "base/message_loop/message_loop.h" 7 #include "base/message_loop/message_loop.h"
8 #include "base/strings/sys_string_conversions.h" 8 #include "base/strings/sys_string_conversions.h"
9 #include "base/strings/utf_string_conversions.h" 9 #include "base/strings/utf_string_conversions.h"
10 #include "grit/ui_resources.h" 10 #include "grit/ui_resources.h"
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 }; 80 };
81 81
82 // Just like Delegate, except the items are treated as "dynamic" so updates to 82 // Just like Delegate, except the items are treated as "dynamic" so updates to
83 // the label/icon in the model are reflected in the menu. 83 // the label/icon in the model are reflected in the menu.
84 class DynamicDelegate : public Delegate { 84 class DynamicDelegate : public Delegate {
85 public: 85 public:
86 DynamicDelegate() {} 86 DynamicDelegate() {}
87 virtual bool IsItemForCommandIdDynamic(int command_id) const OVERRIDE { 87 virtual bool IsItemForCommandIdDynamic(int command_id) const OVERRIDE {
88 return true; 88 return true;
89 } 89 }
90 virtual string16 GetLabelForCommandId(int command_id) const OVERRIDE { 90 virtual base::string16 GetLabelForCommandId(int command_id) const OVERRIDE {
91 return label_; 91 return label_;
92 } 92 }
93 virtual bool GetIconForCommandId( 93 virtual bool GetIconForCommandId(
94 int command_id, 94 int command_id,
95 gfx::Image* icon) const OVERRIDE { 95 gfx::Image* icon) const OVERRIDE {
96 if (icon_.IsEmpty()) { 96 if (icon_.IsEmpty()) {
97 return false; 97 return false;
98 } else { 98 } else {
99 *icon = icon_; 99 *icon = icon_;
100 return true; 100 return true;
101 } 101 }
102 } 102 }
103 void SetDynamicLabel(string16 label) { label_ = label; } 103 void SetDynamicLabel(base::string16 label) { label_ = label; }
104 void SetDynamicIcon(const gfx::Image& icon) { icon_ = icon; } 104 void SetDynamicIcon(const gfx::Image& icon) { icon_ = icon; }
105 105
106 private: 106 private:
107 string16 label_; 107 base::string16 label_;
108 gfx::Image icon_; 108 gfx::Image icon_;
109 }; 109 };
110 110
111 // Menu model that returns a gfx::Font object for one of the items in the menu. 111 // Menu model that returns a gfx::Font object for one of the items in the menu.
112 class FontMenuModel : public SimpleMenuModel { 112 class FontMenuModel : public SimpleMenuModel {
113 public: 113 public:
114 FontMenuModel(SimpleMenuModel::Delegate* delegate, 114 FontMenuModel(SimpleMenuModel::Delegate* delegate,
115 const gfx::Font* font, int index) 115 const gfx::Font* font, int index)
116 : SimpleMenuModel(delegate), 116 : SimpleMenuModel(delegate),
117 font_(font), 117 font_(font),
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
215 model.AddItem(1, ASCIIToUTF16("one")); 215 model.AddItem(1, ASCIIToUTF16("one"));
216 model.AddItem(2, ASCIIToUTF16("two")); 216 model.AddItem(2, ASCIIToUTF16("two"));
217 model.AddItem(3, ASCIIToUTF16("three")); 217 model.AddItem(3, ASCIIToUTF16("three"));
218 218
219 // Menu should have an extra item inserted at position 0 that has an empty 219 // Menu should have an extra item inserted at position 0 that has an empty
220 // title. 220 // title.
221 base::scoped_nsobject<MenuController> menu( 221 base::scoped_nsobject<MenuController> menu(
222 [[MenuController alloc] initWithModel:&model useWithPopUpButtonCell:YES]); 222 [[MenuController alloc] initWithModel:&model useWithPopUpButtonCell:YES]);
223 EXPECT_EQ([[menu menu] numberOfItems], 4); 223 EXPECT_EQ([[menu menu] numberOfItems], 4);
224 EXPECT_EQ(base::SysNSStringToUTF16([[[menu menu] itemAtIndex:0] title]), 224 EXPECT_EQ(base::SysNSStringToUTF16([[[menu menu] itemAtIndex:0] title]),
225 string16()); 225 base::string16());
226 226
227 // Make sure the tags are still correct (the index no longer matches the tag). 227 // Make sure the tags are still correct (the index no longer matches the tag).
228 NSMenuItem* itemTwo = [[menu menu] itemAtIndex:2]; 228 NSMenuItem* itemTwo = [[menu menu] itemAtIndex:2];
229 EXPECT_EQ([itemTwo tag], 1); 229 EXPECT_EQ([itemTwo tag], 1);
230 } 230 }
231 231
232 TEST_F(MenuControllerTest, Execute) { 232 TEST_F(MenuControllerTest, Execute) {
233 Delegate delegate; 233 Delegate delegate;
234 SimpleMenuModel model(&delegate); 234 SimpleMenuModel model(&delegate);
235 model.AddItem(1, ASCIIToUTF16("one")); 235 model.AddItem(1, ASCIIToUTF16("one"));
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
306 model.AddItem(4, ASCIIToUTF16("four")); 306 model.AddItem(4, ASCIIToUTF16("four"));
307 EXPECT_EQ(3, [[menu menu] numberOfItems]); 307 EXPECT_EQ(3, [[menu menu] numberOfItems]);
308 } 308 }
309 309
310 // Test that menus with dynamic labels actually get updated. 310 // Test that menus with dynamic labels actually get updated.
311 TEST_F(MenuControllerTest, Dynamic) { 311 TEST_F(MenuControllerTest, Dynamic) {
312 DynamicDelegate delegate; 312 DynamicDelegate delegate;
313 313
314 // Create a menu containing a single item whose label is "initial" and who has 314 // Create a menu containing a single item whose label is "initial" and who has
315 // no icon. 315 // no icon.
316 string16 initial = ASCIIToUTF16("initial"); 316 base::string16 initial = ASCIIToUTF16("initial");
317 delegate.SetDynamicLabel(initial); 317 delegate.SetDynamicLabel(initial);
318 SimpleMenuModel model(&delegate); 318 SimpleMenuModel model(&delegate);
319 model.AddItem(1, ASCIIToUTF16("foo")); 319 model.AddItem(1, ASCIIToUTF16("foo"));
320 base::scoped_nsobject<MenuController> menu( 320 base::scoped_nsobject<MenuController> menu(
321 [[MenuController alloc] initWithModel:&model useWithPopUpButtonCell:NO]); 321 [[MenuController alloc] initWithModel:&model useWithPopUpButtonCell:NO]);
322 EXPECT_EQ([[menu menu] numberOfItems], 1); 322 EXPECT_EQ([[menu menu] numberOfItems], 1);
323 // Validate() simulates opening the menu - the item label/icon should be 323 // Validate() simulates opening the menu - the item label/icon should be
324 // initialized after this so we can validate the menu contents. 324 // initialized after this so we can validate the menu contents.
325 Validate(menu.get(), [menu menu]); 325 Validate(menu.get(), [menu menu]);
326 NSMenuItem* item = [[menu menu] itemAtIndex:0]; 326 NSMenuItem* item = [[menu menu] itemAtIndex:0];
327 // Item should have the "initial" label and no icon. 327 // Item should have the "initial" label and no icon.
328 EXPECT_EQ(initial, base::SysNSStringToUTF16([item title])); 328 EXPECT_EQ(initial, base::SysNSStringToUTF16([item title]));
329 EXPECT_EQ(nil, [item image]); 329 EXPECT_EQ(nil, [item image]);
330 330
331 // Now update the item to have a label of "second" and an icon. 331 // Now update the item to have a label of "second" and an icon.
332 string16 second = ASCIIToUTF16("second"); 332 base::string16 second = ASCIIToUTF16("second");
333 delegate.SetDynamicLabel(second); 333 delegate.SetDynamicLabel(second);
334 const gfx::Image& icon = 334 const gfx::Image& icon =
335 ResourceBundle::GetSharedInstance().GetNativeImageNamed(IDR_THROBBER); 335 ResourceBundle::GetSharedInstance().GetNativeImageNamed(IDR_THROBBER);
336 delegate.SetDynamicIcon(icon); 336 delegate.SetDynamicIcon(icon);
337 // Simulate opening the menu and validate that the item label + icon changes. 337 // Simulate opening the menu and validate that the item label + icon changes.
338 Validate(menu.get(), [menu menu]); 338 Validate(menu.get(), [menu menu]);
339 EXPECT_EQ(second, base::SysNSStringToUTF16([item title])); 339 EXPECT_EQ(second, base::SysNSStringToUTF16([item title]));
340 EXPECT_TRUE([item image] != nil); 340 EXPECT_TRUE([item image] != nil);
341 341
342 // Now get rid of the icon and make sure it goes away. 342 // Now get rid of the icon and make sure it goes away.
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
390 // Pump the task that notifies the delegate. 390 // Pump the task that notifies the delegate.
391 message_loop.RunUntilIdle(); 391 message_loop.RunUntilIdle();
392 392
393 // Expect that the delegate got notified properly. 393 // Expect that the delegate got notified properly.
394 EXPECT_TRUE(delegate.did_close_); 394 EXPECT_TRUE(delegate.did_close_);
395 } 395 }
396 396
397 } // namespace 397 } // namespace
398 398
399 } // namespace ui 399 } // namespace ui
OLDNEW
« no previous file with comments | « ui/base/cocoa/menu_controller.mm ('k') | ui/base/cursor/cursor_loader_win.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698