OLD | NEW |
| (Empty) |
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 | |
3 // found in the LICENSE file. | |
4 | |
5 #include "ash/frame/header_painter.h" | |
6 | |
7 #include "ash/frame/caption_buttons/frame_caption_button_container_view.h" | |
8 #include "ash/shell.h" | |
9 #include "ash/test/ash_test_base.h" | |
10 #include "ash/wm/window_state.h" | |
11 #include "base/memory/scoped_ptr.h" | |
12 #include "grit/ash_resources.h" | |
13 #include "ui/gfx/font_list.h" | |
14 #include "ui/views/widget/widget.h" | |
15 #include "ui/views/window/non_client_view.h" | |
16 | |
17 using ash::HeaderPainter; | |
18 using views::NonClientFrameView; | |
19 using views::Widget; | |
20 | |
21 namespace ash { | |
22 | |
23 class HeaderPainterTest : public ash::test::AshTestBase { | |
24 public: | |
25 // Creates a test widget that owns its native widget. | |
26 Widget* CreateTestWidget() { | |
27 Widget* widget = new Widget; | |
28 Widget::InitParams params; | |
29 params.ownership = Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; | |
30 params.context = CurrentContext(); | |
31 widget->Init(params); | |
32 return widget; | |
33 } | |
34 }; | |
35 | |
36 // Ensure the title text is vertically aligned with the window icon. | |
37 TEST_F(HeaderPainterTest, TitleIconAlignment) { | |
38 scoped_ptr<Widget> w(CreateTestWidget()); | |
39 ash::FrameCaptionButtonContainerView container(w.get(), | |
40 ash::FrameCaptionButtonContainerView::MINIMIZE_ALLOWED); | |
41 views::View window_icon; | |
42 window_icon.SetBounds(0, 0, 16, 16); | |
43 w->SetBounds(gfx::Rect(0, 0, 500, 500)); | |
44 w->Show(); | |
45 | |
46 gfx::FontList default_font_list; | |
47 | |
48 // 1) Non-browser windows. | |
49 HeaderPainter non_browser_painter; | |
50 non_browser_painter.Init(HeaderPainter::STYLE_OTHER, | |
51 w.get(), | |
52 w->non_client_view()->frame_view(), | |
53 &window_icon, | |
54 &container); | |
55 non_browser_painter.LayoutHeader(); | |
56 gfx::Rect non_browser_header_title_bounds = | |
57 non_browser_painter.GetTitleBounds(default_font_list); | |
58 EXPECT_EQ(window_icon.bounds().CenterPoint().y(), | |
59 non_browser_header_title_bounds.CenterPoint().y()); | |
60 | |
61 // 2) Non-maximized browser windows. | |
62 HeaderPainter browser_painter; | |
63 browser_painter.Init(HeaderPainter::STYLE_BROWSER, | |
64 w.get(), | |
65 w->non_client_view()->frame_view(), | |
66 &window_icon, | |
67 &container); | |
68 browser_painter.LayoutHeader(); | |
69 gfx::Rect browser_header_title_bounds = | |
70 browser_painter.GetTitleBounds(default_font_list); | |
71 EXPECT_EQ(window_icon.bounds().CenterPoint().y(), | |
72 browser_header_title_bounds.CenterPoint().y()); | |
73 | |
74 // 3) Maximized browser windows. | |
75 w->Maximize(); | |
76 browser_painter.LayoutHeader(); | |
77 gfx::Rect maximized_browser_header_title_bounds = | |
78 browser_painter.GetTitleBounds(default_font_list); | |
79 EXPECT_EQ(window_icon.bounds().CenterPoint().y(), | |
80 maximized_browser_header_title_bounds.CenterPoint().y()); | |
81 } | |
82 | |
83 } // namespace ash | |
OLD | NEW |