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

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

Issue 117903006: Refactor: Makes menus use gfx::FontList instead of gfx::Font. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 11 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 | Annotate | Revision Log
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 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
103 } 103 }
104 } 104 }
105 void SetDynamicLabel(base::string16 label) { label_ = label; } 105 void SetDynamicLabel(base::string16 label) { label_ = label; }
106 void SetDynamicIcon(const gfx::Image& icon) { icon_ = icon; } 106 void SetDynamicIcon(const gfx::Image& icon) { icon_ = icon; }
107 107
108 private: 108 private:
109 base::string16 label_; 109 base::string16 label_;
110 gfx::Image icon_; 110 gfx::Image icon_;
111 }; 111 };
112 112
113 // Menu model that returns a gfx::Font object for one of the items in the menu. 113 // Menu model that returns a gfx::FontList object for one of the items in the
114 class FontMenuModel : public SimpleMenuModel { 114 // menu.
115 class FontListMenuModel : public SimpleMenuModel {
115 public: 116 public:
116 FontMenuModel(SimpleMenuModel::Delegate* delegate, 117 FontListMenuModel(SimpleMenuModel::Delegate* delegate,
117 const gfx::Font* font, int index) 118 const gfx::FontList* font_list, int index)
118 : SimpleMenuModel(delegate), 119 : SimpleMenuModel(delegate),
119 font_(font), 120 font_list_(font_list),
120 index_(index) { 121 index_(index) {
121 } 122 }
122 virtual ~FontMenuModel() {} 123 virtual ~FontListMenuModel() {}
123 virtual const gfx::Font* GetLabelFontAt(int index) const OVERRIDE { 124 virtual const gfx::FontList* GetLabelFontListAt(int index) const OVERRIDE {
124 return (index == index_) ? font_ : NULL; 125 return (index == index_) ? font_list_ : NULL;
125 } 126 }
126 127
127 private: 128 private:
128 const gfx::Font* font_; 129 const gfx::FontList* font_list_;
129 const int index_; 130 const int index_;
130 }; 131 };
131 132
132 TEST_F(MenuControllerTest, EmptyMenu) { 133 TEST_F(MenuControllerTest, EmptyMenu) {
133 Delegate delegate; 134 Delegate delegate;
134 SimpleMenuModel model(&delegate); 135 SimpleMenuModel model(&delegate);
135 base::scoped_nsobject<MenuController> menu( 136 base::scoped_nsobject<MenuController> menu(
136 [[MenuController alloc] initWithModel:&model useWithPopUpButtonCell:NO]); 137 [[MenuController alloc] initWithModel:&model useWithPopUpButtonCell:NO]);
137 EXPECT_EQ([[menu menu] numberOfItems], 0); 138 EXPECT_EQ([[menu menu] numberOfItems], 0);
138 } 139 }
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
265 model.AddSubMenuWithStringId(3, kTestLabelResourceId, &submodel); 266 model.AddSubMenuWithStringId(3, kTestLabelResourceId, &submodel);
266 267
267 base::scoped_nsobject<MenuController> menu( 268 base::scoped_nsobject<MenuController> menu(
268 [[MenuController alloc] initWithModel:&model useWithPopUpButtonCell:NO]); 269 [[MenuController alloc] initWithModel:&model useWithPopUpButtonCell:NO]);
269 EXPECT_EQ([[menu menu] numberOfItems], 3); 270 EXPECT_EQ([[menu menu] numberOfItems], 3);
270 271
271 Validate(menu.get(), [menu menu]); 272 Validate(menu.get(), [menu menu]);
272 } 273 }
273 274
274 // Tests that items which have a font set actually use that font. 275 // Tests that items which have a font set actually use that font.
275 TEST_F(MenuControllerTest, LabelFont) { 276 TEST_F(MenuControllerTest, LabelFontList) {
276 Delegate delegate; 277 Delegate delegate;
277 gfx::Font bold = (gfx::Font()).DeriveFont(0, gfx::Font::BOLD); 278 const gfx::FontList& bold = ResourceBundle::GetSharedInstance().GetFontList(
278 FontMenuModel model(&delegate, &bold, 0); 279 ResourceBundle::BoldFont);
280 FontListMenuModel model(&delegate, &bold, 0);
279 model.AddItem(1, ASCIIToUTF16("one")); 281 model.AddItem(1, ASCIIToUTF16("one"));
280 model.AddItem(2, ASCIIToUTF16("two")); 282 model.AddItem(2, ASCIIToUTF16("two"));
281 283
282 base::scoped_nsobject<MenuController> menu( 284 base::scoped_nsobject<MenuController> menu(
283 [[MenuController alloc] initWithModel:&model useWithPopUpButtonCell:NO]); 285 [[MenuController alloc] initWithModel:&model useWithPopUpButtonCell:NO]);
284 EXPECT_EQ([[menu menu] numberOfItems], 2); 286 EXPECT_EQ([[menu menu] numberOfItems], 2);
285 287
286 Validate(menu.get(), [menu menu]); 288 Validate(menu.get(), [menu menu]);
287 289
288 EXPECT_TRUE([[[menu menu] itemAtIndex:0] attributedTitle] != nil); 290 EXPECT_TRUE([[[menu menu] itemAtIndex:0] attributedTitle] != nil);
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
392 // Pump the task that notifies the delegate. 394 // Pump the task that notifies the delegate.
393 message_loop.RunUntilIdle(); 395 message_loop.RunUntilIdle();
394 396
395 // Expect that the delegate got notified properly. 397 // Expect that the delegate got notified properly.
396 EXPECT_TRUE(delegate.did_close_); 398 EXPECT_TRUE(delegate.did_close_);
397 } 399 }
398 400
399 } // namespace 401 } // namespace
400 402
401 } // namespace ui 403 } // namespace ui
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698