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

Side by Side Diff: chrome/browser/ui/views/frame/opaque_browser_frame_view_layout_unittest.cc

Issue 24647003: Redesign of the avatar menu button. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: unbork test Created 7 years, 2 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 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 #include "chrome/browser/ui/views/frame/opaque_browser_frame_view_layout.h" 5 #include "chrome/browser/ui/views/frame/opaque_browser_frame_view_layout.h"
6 6
7 #include "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "base/command_line.h"
8 #include "base/strings/utf_string_conversions.h" 9 #include "base/strings/utf_string_conversions.h"
9 #include "chrome/browser/ui/views/tab_icon_view.h" 10 #include "chrome/browser/ui/views/tab_icon_view.h"
10 #include "chrome/browser/ui/views/tabs/tab.h" 11 #include "chrome/browser/ui/views/tabs/tab.h"
12 #include "chrome/common/chrome_switches.h"
11 #include "ui/gfx/image/image_skia.h" 13 #include "ui/gfx/image/image_skia.h"
12 #include "ui/gfx/image/image_skia_rep.h" 14 #include "ui/gfx/image/image_skia_rep.h"
13 #include "ui/gfx/text_constants.h" 15 #include "ui/gfx/text_constants.h"
14 #include "ui/views/controls/button/image_button.h" 16 #include "ui/views/controls/button/image_button.h"
15 #include "ui/views/controls/button/menu_button.h" 17 #include "ui/views/controls/button/menu_button.h"
16 #include "ui/views/controls/label.h" 18 #include "ui/views/controls/label.h"
17 #include "ui/views/test/views_test_base.h" 19 #include "ui/views/test/views_test_base.h"
18 20
19 using views::Widget; 21 using views::Widget;
20 22
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
73 75
74 virtual gfx::Size GetBrowserViewMinimumSize() const OVERRIDE { 76 virtual gfx::Size GetBrowserViewMinimumSize() const OVERRIDE {
75 // Taken from a calculation in BrowserViewLayout. 77 // Taken from a calculation in BrowserViewLayout.
76 return gfx::Size(168, 64); 78 return gfx::Size(168, 64);
77 } 79 }
78 80
79 virtual bool ShouldShowAvatar() const OVERRIDE { 81 virtual bool ShouldShowAvatar() const OVERRIDE {
80 return show_avatar_; 82 return show_avatar_;
81 } 83 }
82 84
85 virtual bool IsRegularOrGuestSession() const {
86 return true;
87 }
88
83 virtual gfx::ImageSkia GetOTRAvatarIcon() const OVERRIDE { 89 virtual gfx::ImageSkia GetOTRAvatarIcon() const OVERRIDE {
84 // The calculations depend on the size of the OTR resource, and chromeos 90 // The calculations depend on the size of the OTR resource, and chromeos
85 // uses a different sized image, so hard code the size of the current 91 // uses a different sized image, so hard code the size of the current
86 // windows/linux one. 92 // windows/linux one.
87 gfx::ImageSkiaRep rep(gfx::Size(40, 29), 1.0f); 93 gfx::ImageSkiaRep rep(gfx::Size(40, 29), 1.0f);
88 gfx::ImageSkia image(rep); 94 gfx::ImageSkia image(rep);
89 return image; 95 return image;
90 } 96 }
91 97
92 virtual bool IsMaximized() const OVERRIDE { 98 virtual bool IsMaximized() const OVERRIDE {
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
206 212
207 void AddAvatarLabel() { 213 void AddAvatarLabel() {
208 avatar_label_ = new views::MenuButton(NULL, string16(), NULL, false); 214 avatar_label_ = new views::MenuButton(NULL, string16(), NULL, false);
209 avatar_label_->set_id(VIEW_ID_AVATAR_LABEL); 215 avatar_label_->set_id(VIEW_ID_AVATAR_LABEL);
210 root_view_->AddChildView(avatar_label_); 216 root_view_->AddChildView(avatar_label_);
211 217
212 // The avatar label should only be used together with the avatar button. 218 // The avatar label should only be used together with the avatar button.
213 AddAvatarButton(); 219 AddAvatarButton();
214 } 220 }
215 221
222 void AddNewAvatarButton() {
223 new_avatar_button_ = new views::MenuButton(NULL, string16(), NULL, false);
224 new_avatar_button_->set_id(VIEW_ID_NEW_AVATAR_BUTTON);
225 root_view_->AddChildView(new_avatar_button_);
226 }
227
216 void ExpectBasicWindowBounds() { 228 void ExpectBasicWindowBounds() {
217 EXPECT_EQ("428,1 25x18", maximize_button_->bounds().ToString()); 229 EXPECT_EQ("428,1 25x18", maximize_button_->bounds().ToString());
218 EXPECT_EQ("402,1 26x18", minimize_button_->bounds().ToString()); 230 EXPECT_EQ("402,1 26x18", minimize_button_->bounds().ToString());
219 EXPECT_EQ("0,0 0x0", restore_button_->bounds().ToString()); 231 EXPECT_EQ("0,0 0x0", restore_button_->bounds().ToString());
220 EXPECT_EQ("453,1 43x18", close_button_->bounds().ToString()); 232 EXPECT_EQ("453,1 43x18", close_button_->bounds().ToString());
221 } 233 }
222 234
223 gfx::Font default_font_; 235 gfx::Font default_font_;
224 236
225 Widget* widget_; 237 Widget* widget_;
226 views::View* root_view_; 238 views::View* root_view_;
227 OpaqueBrowserFrameViewLayout* layout_manager_; 239 OpaqueBrowserFrameViewLayout* layout_manager_;
228 scoped_ptr<TestLayoutDelegate> delegate_; 240 scoped_ptr<TestLayoutDelegate> delegate_;
229 241
230 // Widgets: 242 // Widgets:
231 views::ImageButton* minimize_button_; 243 views::ImageButton* minimize_button_;
232 views::ImageButton* maximize_button_; 244 views::ImageButton* maximize_button_;
233 views::ImageButton* restore_button_; 245 views::ImageButton* restore_button_;
234 views::ImageButton* close_button_; 246 views::ImageButton* close_button_;
235 247
236 TabIconView* tab_icon_view_; 248 TabIconView* tab_icon_view_;
237 views::Label* window_title_; 249 views::Label* window_title_;
238 250
239 views::MenuButton* menu_button_; 251 views::MenuButton* menu_button_;
240 views::MenuButton* avatar_label_; 252 views::MenuButton* avatar_label_;
253 views::MenuButton* new_avatar_button_;
241 254
242 DISALLOW_COPY_AND_ASSIGN(OpaqueBrowserFrameViewLayoutTest); 255 DISALLOW_COPY_AND_ASSIGN(OpaqueBrowserFrameViewLayoutTest);
243 }; 256 };
244 257
245 TEST_F(OpaqueBrowserFrameViewLayoutTest, BasicWindow) { 258 TEST_F(OpaqueBrowserFrameViewLayoutTest, BasicWindow) {
246 // Tests the layout of a default chrome window with no avatars, no window 259 // Tests the layout of a default chrome window with no avatars, no window
247 // titles, and a tabstrip. 260 // titles, and a tabstrip.
248 root_view_->Layout(); 261 root_view_->Layout();
249 262
250 ExpectBasicWindowBounds(); 263 ExpectBasicWindowBounds();
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
307 ExpectBasicWindowBounds(); 320 ExpectBasicWindowBounds();
308 321
309 // Check the location of the avatar 322 // Check the location of the avatar
310 EXPECT_EQ("7,11 40x29", menu_button_->bounds().ToString()); 323 EXPECT_EQ("7,11 40x29", menu_button_->bounds().ToString());
311 EXPECT_EQ("45,13 352x29", 324 EXPECT_EQ("45,13 352x29",
312 layout_manager_->GetBoundsForTabStrip( 325 layout_manager_->GetBoundsForTabStrip(
313 delegate_->GetTabstripPreferredSize(), kWidth).ToString()); 326 delegate_->GetTabstripPreferredSize(), kWidth).ToString());
314 EXPECT_EQ("261x73", layout_manager_->GetMinimumSize(kWidth).ToString()); 327 EXPECT_EQ("261x73", layout_manager_->GetMinimumSize(kWidth).ToString());
315 } 328 }
316 329
330
331 TEST_F(OpaqueBrowserFrameViewLayoutTest, WindowWithNewAvatar) {
332 CommandLine::ForCurrentProcess()->AppendSwitch(
333 switches::kNewProfileManagement);
Elliot Glaysher 2013/10/03 21:52:53 Isn't this permanently changing the command line?
noms (inactive) 2013/10/07 21:18:15 The TestClientInitializer has two functions, OnTes
334
335 // Tests a normal tabstrip window with the new style avatar icon.
336 AddNewAvatarButton();
337 root_view_->Layout();
338
339 ExpectBasicWindowBounds();
340
341 // Check the location of the caption button
342 EXPECT_EQ("385,1 12x20", new_avatar_button_->bounds().ToString());
343 // The basic window bounds are (-1, 13 398x29). There should not be an icon
344 // avatar in the left, and the new avatar button has an offset of 5 to its
345 // next control.
346 EXPECT_EQ("-1,13 381x29",
347 layout_manager_->GetBoundsForTabStrip(
348 delegate_->GetTabstripPreferredSize(), kWidth).ToString());
349 EXPECT_EQ("261x73", layout_manager_->GetMinimumSize(kWidth).ToString());
350 }
351
317 TEST_F(OpaqueBrowserFrameViewLayoutTest, WindowWithAvatarLabelAndButton) { 352 TEST_F(OpaqueBrowserFrameViewLayoutTest, WindowWithAvatarLabelAndButton) {
318 AddAvatarLabel(); 353 AddAvatarLabel();
319 root_view_->Layout(); 354 root_view_->Layout();
320 355
321 ExpectBasicWindowBounds(); 356 ExpectBasicWindowBounds();
322 357
323 // Check the location of the avatar label relative to the avatar button. 358 // Check the location of the avatar label relative to the avatar button.
324 // The label height and width depends on the font size and the text displayed. 359 // The label height and width depends on the font size and the text displayed.
325 // This may possibly change, so we don't test it here. 360 // This may possibly change, so we don't test it here.
326 EXPECT_EQ(menu_button_->bounds().x() - 2, avatar_label_->bounds().x()); 361 EXPECT_EQ(menu_button_->bounds().x() - 2, avatar_label_->bounds().x());
327 EXPECT_EQ( 362 EXPECT_EQ(
328 menu_button_->bounds().bottom() - 3 - avatar_label_->bounds().height(), 363 menu_button_->bounds().bottom() - 3 - avatar_label_->bounds().height(),
329 avatar_label_->bounds().y()); 364 avatar_label_->bounds().y());
330 } 365 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698