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

Side by Side Diff: ui/views/controls/button/custom_button_unittest.cc

Issue 191723003: Nukes USE_AURA ifdefs from views (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: incorporate feedback Created 6 years, 9 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 | « ui/views/bubble/bubble_delegate.cc ('k') | ui/views/controls/button/menu_button.cc » ('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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "ui/views/controls/button/custom_button.h" 5 #include "ui/views/controls/button/custom_button.h"
6 6
7 #include "testing/gtest/include/gtest/gtest.h" 7 #include "testing/gtest/include/gtest/gtest.h"
8 #include "ui/aura/test/test_cursor_client.h"
9 #include "ui/aura/window.h"
10 #include "ui/aura/window_event_dispatcher.h"
8 #include "ui/base/layout.h" 11 #include "ui/base/layout.h"
9 #include "ui/gfx/screen.h" 12 #include "ui/gfx/screen.h"
10 #include "ui/views/controls/button/checkbox.h" 13 #include "ui/views/controls/button/checkbox.h"
11 #include "ui/views/controls/button/image_button.h" 14 #include "ui/views/controls/button/image_button.h"
12 #include "ui/views/controls/button/menu_button.h" 15 #include "ui/views/controls/button/menu_button.h"
13 #include "ui/views/controls/button/radio_button.h" 16 #include "ui/views/controls/button/radio_button.h"
14 #include "ui/views/controls/button/text_button.h" 17 #include "ui/views/controls/button/text_button.h"
15 #include "ui/views/controls/link.h" 18 #include "ui/views/controls/link.h"
16 #include "ui/views/controls/textfield/textfield.h" 19 #include "ui/views/controls/textfield/textfield.h"
17 #include "ui/views/test/views_test_base.h" 20 #include "ui/views/test/views_test_base.h"
18 21
19 #if defined(USE_AURA)
20 #include "ui/aura/test/test_cursor_client.h"
21 #include "ui/aura/window.h"
22 #include "ui/aura/window_event_dispatcher.h"
23 #endif
24
25 namespace views { 22 namespace views {
26 23
27 namespace { 24 namespace {
28 25
29 class TestCustomButton : public CustomButton { 26 class TestCustomButton : public CustomButton {
30 public: 27 public:
31 explicit TestCustomButton(ButtonListener* listener) 28 explicit TestCustomButton(ButtonListener* listener)
32 : CustomButton(listener) { 29 : CustomButton(listener) {
33 } 30 }
34 31
35 virtual ~TestCustomButton() {} 32 virtual ~TestCustomButton() {}
36 33
37 private: 34 private:
38 DISALLOW_COPY_AND_ASSIGN(TestCustomButton); 35 DISALLOW_COPY_AND_ASSIGN(TestCustomButton);
39 }; 36 };
40 37
41 #if defined(USE_AURA)
42 void PerformGesture(CustomButton* button, ui::EventType event_type) { 38 void PerformGesture(CustomButton* button, ui::EventType event_type) {
43 ui::GestureEventDetails gesture_details(event_type, 0, 0); 39 ui::GestureEventDetails gesture_details(event_type, 0, 0);
44 base::TimeDelta time_stamp = base::TimeDelta::FromMicroseconds(0); 40 base::TimeDelta time_stamp = base::TimeDelta::FromMicroseconds(0);
45 ui::GestureEvent gesture_event(gesture_details.type(), 0, 0, 0, time_stamp, 41 ui::GestureEvent gesture_event(gesture_details.type(), 0, 0, 0, time_stamp,
46 gesture_details, 1); 42 gesture_details, 1);
47 button->OnGestureEvent(&gesture_event); 43 button->OnGestureEvent(&gesture_event);
48 } 44 }
49 #endif // USE_AURA
50 45
51 } // namespace 46 } // namespace
52 47
53 typedef ViewsTestBase CustomButtonTest; 48 typedef ViewsTestBase CustomButtonTest;
54 49
55 // Tests that hover state changes correctly when visiblity/enableness changes. 50 // Tests that hover state changes correctly when visiblity/enableness changes.
56 TEST_F(CustomButtonTest, HoverStateOnVisibilityChange) { 51 TEST_F(CustomButtonTest, HoverStateOnVisibilityChange) {
57 // Create a widget so that the CustomButton can query the hover state 52 // Create a widget so that the CustomButton can query the hover state
58 // correctly. 53 // correctly.
59 scoped_ptr<Widget> widget(new Widget); 54 scoped_ptr<Widget> widget(new Widget);
60 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP); 55 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP);
61 params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; 56 params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
62 params.bounds = gfx::Rect(0, 0, 650, 650); 57 params.bounds = gfx::Rect(0, 0, 650, 650);
63 widget->Init(params); 58 widget->Init(params);
64 widget->Show(); 59 widget->Show();
65 60
66 #if defined(USE_AURA)
67 aura::test::TestCursorClient cursor_client( 61 aura::test::TestCursorClient cursor_client(
68 widget->GetNativeView()->GetRootWindow()); 62 widget->GetNativeView()->GetRootWindow());
69 #endif
70 63
71 // Position the widget in a way so that it is under the cursor. 64 // Position the widget in a way so that it is under the cursor.
72 gfx::Point cursor = gfx::Screen::GetScreenFor( 65 gfx::Point cursor = gfx::Screen::GetScreenFor(
73 widget->GetNativeView())->GetCursorScreenPoint(); 66 widget->GetNativeView())->GetCursorScreenPoint();
74 gfx::Rect widget_bounds = widget->GetWindowBoundsInScreen(); 67 gfx::Rect widget_bounds = widget->GetWindowBoundsInScreen();
75 widget_bounds.set_origin(cursor); 68 widget_bounds.set_origin(cursor);
76 widget->SetBounds(widget_bounds); 69 widget->SetBounds(widget_bounds);
77 70
78 TestCustomButton* button = new TestCustomButton(NULL); 71 TestCustomButton* button = new TestCustomButton(NULL);
79 widget->SetContentsView(button); 72 widget->SetContentsView(button);
(...skipping 14 matching lines...) Expand all
94 87
95 button->SetEnabled(true); 88 button->SetEnabled(true);
96 EXPECT_EQ(CustomButton::STATE_HOVERED, button->state()); 89 EXPECT_EQ(CustomButton::STATE_HOVERED, button->state());
97 90
98 button->SetVisible(false); 91 button->SetVisible(false);
99 EXPECT_EQ(CustomButton::STATE_NORMAL, button->state()); 92 EXPECT_EQ(CustomButton::STATE_NORMAL, button->state());
100 93
101 button->SetVisible(true); 94 button->SetVisible(true);
102 EXPECT_EQ(CustomButton::STATE_HOVERED, button->state()); 95 EXPECT_EQ(CustomButton::STATE_HOVERED, button->state());
103 96
104 #if defined(USE_AURA)
105 // In Aura views, no new hover effects are invoked if mouse events 97 // In Aura views, no new hover effects are invoked if mouse events
106 // are disabled. 98 // are disabled.
107 cursor_client.DisableMouseEvents(); 99 cursor_client.DisableMouseEvents();
108 100
109 button->SetEnabled(false); 101 button->SetEnabled(false);
110 EXPECT_EQ(CustomButton::STATE_DISABLED, button->state()); 102 EXPECT_EQ(CustomButton::STATE_DISABLED, button->state());
111 103
112 button->SetEnabled(true); 104 button->SetEnabled(true);
113 EXPECT_EQ(CustomButton::STATE_NORMAL, button->state()); 105 EXPECT_EQ(CustomButton::STATE_NORMAL, button->state());
114 106
115 button->SetVisible(false); 107 button->SetVisible(false);
116 EXPECT_EQ(CustomButton::STATE_NORMAL, button->state()); 108 EXPECT_EQ(CustomButton::STATE_NORMAL, button->state());
117 109
118 button->SetVisible(true); 110 button->SetVisible(true);
119 EXPECT_EQ(CustomButton::STATE_NORMAL, button->state()); 111 EXPECT_EQ(CustomButton::STATE_NORMAL, button->state());
120 #endif
121 } 112 }
122 113
123 #if defined(USE_AURA)
124 // Tests that gesture events correctly change the button state. 114 // Tests that gesture events correctly change the button state.
125 TEST_F(CustomButtonTest, GestureEventsSetState) { 115 TEST_F(CustomButtonTest, GestureEventsSetState) {
126 // Create a widget so that the CustomButton can query the hover state 116 // Create a widget so that the CustomButton can query the hover state
127 // correctly. 117 // correctly.
128 scoped_ptr<Widget> widget(new Widget); 118 scoped_ptr<Widget> widget(new Widget);
129 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP); 119 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP);
130 params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; 120 params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
131 params.bounds = gfx::Rect(0, 0, 650, 650); 121 params.bounds = gfx::Rect(0, 0, 650, 650);
132 widget->Init(params); 122 widget->Init(params);
133 widget->Show(); 123 widget->Show();
134 124
135 aura::test::TestCursorClient cursor_client( 125 aura::test::TestCursorClient cursor_client(
136 widget->GetNativeView()->GetRootWindow()); 126 widget->GetNativeView()->GetRootWindow());
137 127
138 TestCustomButton* button = new TestCustomButton(NULL); 128 TestCustomButton* button = new TestCustomButton(NULL);
139 widget->SetContentsView(button); 129 widget->SetContentsView(button);
140 130
141 EXPECT_EQ(CustomButton::STATE_NORMAL, button->state()); 131 EXPECT_EQ(CustomButton::STATE_NORMAL, button->state());
142 132
143 PerformGesture(button, ui::ET_GESTURE_TAP_DOWN); 133 PerformGesture(button, ui::ET_GESTURE_TAP_DOWN);
144 EXPECT_EQ(CustomButton::STATE_PRESSED, button->state()); 134 EXPECT_EQ(CustomButton::STATE_PRESSED, button->state());
145 135
146 PerformGesture(button, ui::ET_GESTURE_SHOW_PRESS); 136 PerformGesture(button, ui::ET_GESTURE_SHOW_PRESS);
147 EXPECT_EQ(CustomButton::STATE_PRESSED, button->state()); 137 EXPECT_EQ(CustomButton::STATE_PRESSED, button->state());
148 138
149 PerformGesture(button, ui::ET_GESTURE_TAP_CANCEL); 139 PerformGesture(button, ui::ET_GESTURE_TAP_CANCEL);
150 EXPECT_EQ(CustomButton::STATE_NORMAL, button->state()); 140 EXPECT_EQ(CustomButton::STATE_NORMAL, button->state());
151 } 141 }
152 142
153 #endif // USE_AURA
154
155 // Make sure all subclasses of CustomButton are correctly recognized 143 // Make sure all subclasses of CustomButton are correctly recognized
156 // as CustomButton. 144 // as CustomButton.
157 TEST_F(CustomButtonTest, AsCustomButton) { 145 TEST_F(CustomButtonTest, AsCustomButton) {
158 base::string16 text; 146 base::string16 text;
159 147
160 TextButton text_button(NULL, text); 148 TextButton text_button(NULL, text);
161 EXPECT_TRUE(CustomButton::AsCustomButton(&text_button)); 149 EXPECT_TRUE(CustomButton::AsCustomButton(&text_button));
162 150
163 ImageButton image_button(NULL); 151 ImageButton image_button(NULL);
164 EXPECT_TRUE(CustomButton::AsCustomButton(&image_button)); 152 EXPECT_TRUE(CustomButton::AsCustomButton(&image_button));
(...skipping 11 matching lines...) Expand all
176 EXPECT_FALSE(CustomButton::AsCustomButton(&label)); 164 EXPECT_FALSE(CustomButton::AsCustomButton(&label));
177 165
178 Link link(text); 166 Link link(text);
179 EXPECT_FALSE(CustomButton::AsCustomButton(&link)); 167 EXPECT_FALSE(CustomButton::AsCustomButton(&link));
180 168
181 Textfield textfield; 169 Textfield textfield;
182 EXPECT_FALSE(CustomButton::AsCustomButton(&textfield)); 170 EXPECT_FALSE(CustomButton::AsCustomButton(&textfield));
183 } 171 }
184 172
185 } // namespace views 173 } // namespace views
OLDNEW
« no previous file with comments | « ui/views/bubble/bubble_delegate.cc ('k') | ui/views/controls/button/menu_button.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698