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

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

Issue 127253004: Support displaying the avatar label on the right side. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address nits. 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
« no previous file with comments | « chrome/browser/ui/views/frame/opaque_browser_frame_view_layout.cc ('k') | no next file » | 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 #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/command_line.h"
9 #include "base/strings/utf_string_conversions.h" 9 #include "base/strings/utf_string_conversions.h"
10 #include "chrome/browser/ui/views/avatar_label.h"
10 #include "chrome/browser/ui/views/avatar_menu_button.h" 11 #include "chrome/browser/ui/views/avatar_menu_button.h"
11 #include "chrome/browser/ui/views/tab_icon_view.h" 12 #include "chrome/browser/ui/views/tab_icon_view.h"
12 #include "chrome/browser/ui/views/tabs/tab.h" 13 #include "chrome/browser/ui/views/tabs/tab.h"
13 #include "chrome/common/chrome_switches.h" 14 #include "chrome/common/chrome_switches.h"
14 #include "ui/gfx/image/image_skia.h" 15 #include "ui/gfx/image/image_skia.h"
15 #include "ui/gfx/image/image_skia_rep.h" 16 #include "ui/gfx/image/image_skia_rep.h"
16 #include "ui/gfx/text_constants.h" 17 #include "ui/gfx/text_constants.h"
17 #include "ui/views/controls/button/image_button.h" 18 #include "ui/views/controls/button/image_button.h"
18 #include "ui/views/controls/button/menu_button.h" 19 #include "ui/views/controls/button/menu_button.h"
19 #include "ui/views/controls/label.h" 20 #include "ui/views/controls/label.h"
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after
216 } 217 }
217 218
218 void AddAvatarButton() { 219 void AddAvatarButton() {
219 menu_button_ = new AvatarMenuButton(NULL, false); 220 menu_button_ = new AvatarMenuButton(NULL, false);
220 menu_button_->set_id(VIEW_ID_AVATAR_BUTTON); 221 menu_button_->set_id(VIEW_ID_AVATAR_BUTTON);
221 delegate_->SetShouldShowAvatar(true); 222 delegate_->SetShouldShowAvatar(true);
222 root_view_->AddChildView(menu_button_); 223 root_view_->AddChildView(menu_button_);
223 } 224 }
224 225
225 void AddAvatarLabel() { 226 void AddAvatarLabel() {
226 avatar_label_ = new views::MenuButton(NULL, base::string16(), NULL, false); 227 avatar_label_ = new AvatarLabel(NULL);
227 avatar_label_->set_id(VIEW_ID_AVATAR_LABEL); 228 avatar_label_->set_id(VIEW_ID_AVATAR_LABEL);
228 root_view_->AddChildView(avatar_label_); 229 root_view_->AddChildView(avatar_label_);
229 230
230 // The avatar label should only be used together with the avatar button. 231 // The avatar label should only be used together with the avatar button.
231 AddAvatarButton(); 232 AddAvatarButton();
232 } 233 }
233 234
234 void AddNewAvatarButton() { 235 void AddNewAvatarButton() {
235 new_avatar_button_ = 236 new_avatar_button_ =
236 new views::MenuButton(NULL, base::string16(), NULL, false); 237 new views::MenuButton(NULL, base::string16(), NULL, false);
(...skipping 15 matching lines...) Expand all
252 253
253 // Widgets: 254 // Widgets:
254 views::ImageButton* minimize_button_; 255 views::ImageButton* minimize_button_;
255 views::ImageButton* maximize_button_; 256 views::ImageButton* maximize_button_;
256 views::ImageButton* restore_button_; 257 views::ImageButton* restore_button_;
257 views::ImageButton* close_button_; 258 views::ImageButton* close_button_;
258 259
259 TabIconView* tab_icon_view_; 260 TabIconView* tab_icon_view_;
260 views::Label* window_title_; 261 views::Label* window_title_;
261 262
263 AvatarLabel* avatar_label_;
262 AvatarMenuButton* menu_button_; 264 AvatarMenuButton* menu_button_;
263 views::MenuButton* avatar_label_;
264 views::MenuButton* new_avatar_button_; 265 views::MenuButton* new_avatar_button_;
265 266
266 DISALLOW_COPY_AND_ASSIGN(OpaqueBrowserFrameViewLayoutTest); 267 DISALLOW_COPY_AND_ASSIGN(OpaqueBrowserFrameViewLayoutTest);
267 }; 268 };
268 269
269 TEST_F(OpaqueBrowserFrameViewLayoutTest, BasicWindow) { 270 TEST_F(OpaqueBrowserFrameViewLayoutTest, BasicWindow) {
270 // Tests the layout of a default chrome window with no avatars, no window 271 // Tests the layout of a default chrome window with no avatars, no window
271 // titles, and a tabstrip. 272 // titles, and a tabstrip.
272 root_view_->Layout(); 273 root_view_->Layout();
273 274
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
427 EXPECT_EQ("7,11 40x29", menu_button_->bounds().ToString()); 428 EXPECT_EQ("7,11 40x29", menu_button_->bounds().ToString());
428 EXPECT_EQ("45,13 352x29", 429 EXPECT_EQ("45,13 352x29",
429 layout_manager_->GetBoundsForTabStrip( 430 layout_manager_->GetBoundsForTabStrip(
430 delegate_->GetTabstripPreferredSize(), kWidth).ToString()); 431 delegate_->GetTabstripPreferredSize(), kWidth).ToString());
431 EXPECT_EQ("261x73", layout_manager_->GetMinimumSize(kWidth).ToString()); 432 EXPECT_EQ("261x73", layout_manager_->GetMinimumSize(kWidth).ToString());
432 } 433 }
433 434
434 TEST_F(OpaqueBrowserFrameViewLayoutTest, WindowWithAvatarWithButtonsOnLeft) { 435 TEST_F(OpaqueBrowserFrameViewLayoutTest, WindowWithAvatarWithButtonsOnLeft) {
435 // Tests the layout of a chrome window with an avatar icon and caption buttons 436 // Tests the layout of a chrome window with an avatar icon and caption buttons
436 // on the left. The avatar icon should therefore be on the right. 437 // on the left. The avatar icon should therefore be on the right.
437 AddAvatarButton(); 438 // AddAvatarLabel() also adds the avatar button.
439 AddAvatarLabel();
438 std::vector<views::FrameButton> leading_buttons; 440 std::vector<views::FrameButton> leading_buttons;
439 std::vector<views::FrameButton> trailing_buttons; 441 std::vector<views::FrameButton> trailing_buttons;
440 leading_buttons.push_back(views::FRAME_BUTTON_CLOSE); 442 leading_buttons.push_back(views::FRAME_BUTTON_CLOSE);
441 leading_buttons.push_back(views::FRAME_BUTTON_MINIMIZE); 443 leading_buttons.push_back(views::FRAME_BUTTON_MINIMIZE);
442 leading_buttons.push_back(views::FRAME_BUTTON_MAXIMIZE); 444 leading_buttons.push_back(views::FRAME_BUTTON_MAXIMIZE);
443 layout_manager_->SetButtonOrdering(leading_buttons, trailing_buttons); 445 layout_manager_->SetButtonOrdering(leading_buttons, trailing_buttons);
444 root_view_->Layout(); 446 root_view_->Layout();
445 447
446 EXPECT_EQ("73,1 25x18", maximize_button_->bounds().ToString()); 448 EXPECT_EQ("73,1 25x18", maximize_button_->bounds().ToString());
447 EXPECT_EQ("47,1 26x18", minimize_button_->bounds().ToString()); 449 EXPECT_EQ("47,1 26x18", minimize_button_->bounds().ToString());
448 EXPECT_EQ("0,0 0x0", restore_button_->bounds().ToString()); 450 EXPECT_EQ("0,0 0x0", restore_button_->bounds().ToString());
449 EXPECT_EQ("4,1 43x18", close_button_->bounds().ToString()); 451 EXPECT_EQ("4,1 43x18", close_button_->bounds().ToString());
450 452
451 // Check the location of the avatar 453 // Check the location of the avatar
452 EXPECT_EQ("454,11 40x29", menu_button_->bounds().ToString()); 454 EXPECT_EQ("454,11 40x29", menu_button_->bounds().ToString());
453 EXPECT_EQ("93,13 356x29", 455
454 layout_manager_->GetBoundsForTabStrip( 456 // Check the tab strip bounds.
455 delegate_->GetTabstripPreferredSize(), kWidth).ToString()); 457 gfx::Rect tab_strip_bounds = layout_manager_->GetBoundsForTabStrip(
458 delegate_->GetTabstripPreferredSize(), kWidth);
459 EXPECT_GT(tab_strip_bounds.x(), maximize_button_->bounds().x());
460 EXPECT_GT(maximize_button_->bounds().right(), tab_strip_bounds.x());
461 EXPECT_EQ(13, tab_strip_bounds.y());
462 EXPECT_EQ(29, tab_strip_bounds.height());
463 EXPECT_GT(avatar_label_->bounds().x(), tab_strip_bounds.right());
456 EXPECT_EQ("261x73", layout_manager_->GetMinimumSize(kWidth).ToString()); 464 EXPECT_EQ("261x73", layout_manager_->GetMinimumSize(kWidth).ToString());
457 465
466 // Check the relative location of the avatar label to the avatar. The right
467 // end of the avatar label should be slightly to the right of the right end of
468 // the avatar icon.
469 EXPECT_GT(avatar_label_->bounds().right(), menu_button_->bounds().right());
470 EXPECT_GT(menu_button_->bounds().x(), avatar_label_->bounds().x());
471 EXPECT_GT(menu_button_->bounds().bottom(),
472 avatar_label_->bounds().bottom());
473 EXPECT_GT(avatar_label_->bounds().y(), menu_button_->bounds().y());
474
458 // This means that the menu will pop out facing the left (if it were to face 475 // This means that the menu will pop out facing the left (if it were to face
459 // the right, it would go outside the window frame and be clipped). 476 // the right, it would go outside the window frame and be clipped).
460 EXPECT_TRUE(menu_button_->button_on_right()); 477 EXPECT_TRUE(menu_button_->button_on_right());
461 478
462 // If the buttons are on the left, there should be no hidden icon for the user 479 // If the buttons are on the left, there should be no hidden icon for the user
463 // to double click. 480 // to double click.
464 EXPECT_EQ("0,0 0x0", layout_manager_->IconBounds().ToString()); 481 EXPECT_EQ("0,0 0x0", layout_manager_->IconBounds().ToString());
465 } 482 }
466 483
467 TEST_F(OpaqueBrowserFrameViewLayoutTest, 484 TEST_F(OpaqueBrowserFrameViewLayoutTest,
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
511 EXPECT_EQ("385,1 12x20", new_avatar_button_->bounds().ToString()); 528 EXPECT_EQ("385,1 12x20", new_avatar_button_->bounds().ToString());
512 // The basic window bounds are (-1, 13 398x29). There should not be an icon 529 // The basic window bounds are (-1, 13 398x29). There should not be an icon
513 // avatar in the left, and the new avatar button has an offset of 5 to its 530 // avatar in the left, and the new avatar button has an offset of 5 to its
514 // next control. 531 // next control.
515 EXPECT_EQ("-1,13 381x29", 532 EXPECT_EQ("-1,13 381x29",
516 layout_manager_->GetBoundsForTabStrip( 533 layout_manager_->GetBoundsForTabStrip(
517 delegate_->GetTabstripPreferredSize(), kWidth).ToString()); 534 delegate_->GetTabstripPreferredSize(), kWidth).ToString());
518 EXPECT_EQ("261x73", layout_manager_->GetMinimumSize(kWidth).ToString()); 535 EXPECT_EQ("261x73", layout_manager_->GetMinimumSize(kWidth).ToString());
519 } 536 }
520 537
521 TEST_F(OpaqueBrowserFrameViewLayoutTest, WindowWithAvatarLabelAndButton) { 538 TEST_F(OpaqueBrowserFrameViewLayoutTest, WindowWithAvatarLabelAndButtonOnLeft) {
522 AddAvatarLabel(); 539 AddAvatarLabel();
523 root_view_->Layout(); 540 root_view_->Layout();
524 541
525 ExpectBasicWindowBounds(); 542 ExpectBasicWindowBounds();
526 543
527 // Check the location of the avatar label relative to the avatar button. 544 // Check the location of the avatar label relative to the avatar button if
545 // both are displayed on the left side.
528 // The label height and width depends on the font size and the text displayed. 546 // The label height and width depends on the font size and the text displayed.
529 // This may possibly change, so we don't test it here. 547 // This may possibly change, so we don't test it here.
530 EXPECT_EQ(menu_button_->bounds().x() - 2, avatar_label_->bounds().x()); 548 EXPECT_EQ(menu_button_->bounds().x() - 2, avatar_label_->bounds().x());
531 EXPECT_EQ( 549 EXPECT_EQ(
532 menu_button_->bounds().bottom() - 3 - avatar_label_->bounds().height(), 550 menu_button_->bounds().bottom() - 3 - avatar_label_->bounds().height(),
533 avatar_label_->bounds().y()); 551 avatar_label_->bounds().y());
534 } 552 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/views/frame/opaque_browser_frame_view_layout.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698