OLD | NEW |
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 "ash/wm/custom_frame_view_ash.h" | 5 #include "ash/wm/custom_frame_view_ash.h" |
6 | 6 |
7 #include "ash/shell.h" | 7 #include "ash/shell.h" |
8 #include "ash/test/ash_test_base.h" | 8 #include "ash/test/ash_test_base.h" |
9 #include "ash/wm/window_util.h" | 9 #include "ash/wm/window_util.h" |
10 #include "ash/wm/workspace/snap_sizer.h" | 10 #include "ash/wm/workspace/snap_sizer.h" |
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
105 }; | 105 }; |
106 | 106 |
107 // Tests that clicking on the resize-button toggles between maximize and normal | 107 // Tests that clicking on the resize-button toggles between maximize and normal |
108 // state. | 108 // state. |
109 TEST_F(CustomFrameViewAshTest, ResizeButtonToggleMaximize) { | 109 TEST_F(CustomFrameViewAshTest, ResizeButtonToggleMaximize) { |
110 views::Widget* widget = CreateWidget(); | 110 views::Widget* widget = CreateWidget(); |
111 aura::Window* window = widget->GetNativeWindow(); | 111 aura::Window* window = widget->GetNativeWindow(); |
112 CustomFrameViewAsh* frame = custom_frame_view_ash(widget); | 112 CustomFrameViewAsh* frame = custom_frame_view_ash(widget); |
113 CustomFrameViewAsh::TestApi test(frame); | 113 CustomFrameViewAsh::TestApi test(frame); |
114 views::View* view = test.maximize_button(); | 114 views::View* view = test.maximize_button(); |
115 gfx::Point center = view->GetScreenBounds().CenterPoint(); | 115 gfx::Point center = view->GetBoundsInScreen().CenterPoint(); |
116 | 116 |
117 aura::test::EventGenerator generator(window->GetRootWindow(), center); | 117 aura::test::EventGenerator generator(window->GetRootWindow(), center); |
118 | 118 |
119 EXPECT_FALSE(ash::wm::IsWindowMaximized(window)); | 119 EXPECT_FALSE(ash::wm::IsWindowMaximized(window)); |
120 | 120 |
121 generator.ClickLeftButton(); | 121 generator.ClickLeftButton(); |
122 RunAllPendingInMessageLoop(); | 122 RunAllPendingInMessageLoop(); |
123 EXPECT_TRUE(ash::wm::IsWindowMaximized(window)); | 123 EXPECT_TRUE(ash::wm::IsWindowMaximized(window)); |
124 | 124 |
125 center = view->GetScreenBounds().CenterPoint(); | 125 center = view->GetBoundsInScreen().CenterPoint(); |
126 generator.MoveMouseTo(center); | 126 generator.MoveMouseTo(center); |
127 generator.ClickLeftButton(); | 127 generator.ClickLeftButton(); |
128 RunAllPendingInMessageLoop(); | 128 RunAllPendingInMessageLoop(); |
129 EXPECT_FALSE(ash::wm::IsWindowMaximized(window)); | 129 EXPECT_FALSE(ash::wm::IsWindowMaximized(window)); |
130 | 130 |
131 generator.GestureTapAt(view->GetScreenBounds().CenterPoint()); | 131 generator.GestureTapAt(view->GetBoundsInScreen().CenterPoint()); |
132 EXPECT_TRUE(ash::wm::IsWindowMaximized(window)); | 132 EXPECT_TRUE(ash::wm::IsWindowMaximized(window)); |
133 | 133 |
134 generator.GestureTapAt(view->GetScreenBounds().CenterPoint()); | 134 generator.GestureTapAt(view->GetBoundsInScreen().CenterPoint()); |
135 EXPECT_FALSE(ash::wm::IsWindowMaximized(window)); | 135 EXPECT_FALSE(ash::wm::IsWindowMaximized(window)); |
136 | 136 |
137 generator.GestureTapDownAndUp(view->GetScreenBounds().CenterPoint()); | 137 generator.GestureTapDownAndUp(view->GetBoundsInScreen().CenterPoint()); |
138 EXPECT_TRUE(ash::wm::IsWindowMaximized(window)); | 138 EXPECT_TRUE(ash::wm::IsWindowMaximized(window)); |
139 | 139 |
140 generator.GestureTapDownAndUp(view->GetScreenBounds().CenterPoint()); | 140 generator.GestureTapDownAndUp(view->GetBoundsInScreen().CenterPoint()); |
141 EXPECT_FALSE(ash::wm::IsWindowMaximized(window)); | 141 EXPECT_FALSE(ash::wm::IsWindowMaximized(window)); |
142 | 142 |
143 widget->Close(); | 143 widget->Close(); |
144 } | 144 } |
145 | 145 |
146 // Tests that click+dragging on the resize-button tiles or minimizes the window. | 146 // Tests that click+dragging on the resize-button tiles or minimizes the window. |
147 TEST_F(CustomFrameViewAshTest, ResizeButtonDrag) { | 147 TEST_F(CustomFrameViewAshTest, ResizeButtonDrag) { |
148 views::Widget* widget = CreateWidget(); | 148 views::Widget* widget = CreateWidget(); |
149 aura::Window* window = widget->GetNativeWindow(); | 149 aura::Window* window = widget->GetNativeWindow(); |
150 CustomFrameViewAsh* frame = custom_frame_view_ash(widget); | 150 CustomFrameViewAsh* frame = custom_frame_view_ash(widget); |
151 CustomFrameViewAsh::TestApi test(frame); | 151 CustomFrameViewAsh::TestApi test(frame); |
152 views::View* view = test.maximize_button(); | 152 views::View* view = test.maximize_button(); |
153 gfx::Point center = view->GetScreenBounds().CenterPoint(); | 153 gfx::Point center = view->GetBoundsInScreen().CenterPoint(); |
154 const int kGridSize = ash::Shell::GetInstance()->GetGridSize(); | 154 const int kGridSize = ash::Shell::GetInstance()->GetGridSize(); |
155 | 155 |
156 aura::test::EventGenerator generator(window->GetRootWindow(), center); | 156 aura::test::EventGenerator generator(window->GetRootWindow(), center); |
157 | 157 |
158 EXPECT_TRUE(ash::wm::IsWindowNormal(window)); | 158 EXPECT_TRUE(ash::wm::IsWindowNormal(window)); |
159 | 159 |
160 // Snap right. | 160 // Snap right. |
161 { | 161 { |
162 generator.PressLeftButton(); | 162 generator.PressLeftButton(); |
163 generator.MoveMouseBy(10, 0); | 163 generator.MoveMouseBy(10, 0); |
164 generator.ReleaseLeftButton(); | 164 generator.ReleaseLeftButton(); |
165 RunAllPendingInMessageLoop(); | 165 RunAllPendingInMessageLoop(); |
166 | 166 |
167 EXPECT_FALSE(ash::wm::IsWindowMaximized(window)); | 167 EXPECT_FALSE(ash::wm::IsWindowMaximized(window)); |
168 EXPECT_FALSE(ash::wm::IsWindowMinimized(window)); | 168 EXPECT_FALSE(ash::wm::IsWindowMinimized(window)); |
169 internal::SnapSizer sizer(window, center, | 169 internal::SnapSizer sizer(window, center, |
170 internal::SnapSizer::RIGHT_EDGE, kGridSize); | 170 internal::SnapSizer::RIGHT_EDGE, kGridSize); |
171 EXPECT_EQ(sizer.target_bounds().ToString(), window->bounds().ToString()); | 171 EXPECT_EQ(sizer.target_bounds().ToString(), window->bounds().ToString()); |
172 } | 172 } |
173 | 173 |
174 // Snap left. | 174 // Snap left. |
175 { | 175 { |
176 center = view->GetScreenBounds().CenterPoint(); | 176 center = view->GetBoundsInScreen().CenterPoint(); |
177 generator.MoveMouseTo(center); | 177 generator.MoveMouseTo(center); |
178 generator.PressLeftButton(); | 178 generator.PressLeftButton(); |
179 generator.MoveMouseBy(-10, 0); | 179 generator.MoveMouseBy(-10, 0); |
180 generator.ReleaseLeftButton(); | 180 generator.ReleaseLeftButton(); |
181 RunAllPendingInMessageLoop(); | 181 RunAllPendingInMessageLoop(); |
182 | 182 |
183 EXPECT_FALSE(ash::wm::IsWindowMaximized(window)); | 183 EXPECT_FALSE(ash::wm::IsWindowMaximized(window)); |
184 EXPECT_FALSE(ash::wm::IsWindowMinimized(window)); | 184 EXPECT_FALSE(ash::wm::IsWindowMinimized(window)); |
185 internal::SnapSizer sizer(window, center, | 185 internal::SnapSizer sizer(window, center, |
186 internal::SnapSizer::LEFT_EDGE, kGridSize); | 186 internal::SnapSizer::LEFT_EDGE, kGridSize); |
187 EXPECT_EQ(sizer.target_bounds().ToString(), window->bounds().ToString()); | 187 EXPECT_EQ(sizer.target_bounds().ToString(), window->bounds().ToString()); |
188 } | 188 } |
189 | 189 |
190 // Minimize. | 190 // Minimize. |
191 { | 191 { |
192 center = view->GetScreenBounds().CenterPoint(); | 192 center = view->GetBoundsInScreen().CenterPoint(); |
193 generator.MoveMouseTo(center); | 193 generator.MoveMouseTo(center); |
194 generator.PressLeftButton(); | 194 generator.PressLeftButton(); |
195 generator.MoveMouseBy(0, 10); | 195 generator.MoveMouseBy(0, 10); |
196 generator.ReleaseLeftButton(); | 196 generator.ReleaseLeftButton(); |
197 RunAllPendingInMessageLoop(); | 197 RunAllPendingInMessageLoop(); |
198 | 198 |
199 EXPECT_TRUE(ash::wm::IsWindowMinimized(window)); | 199 EXPECT_TRUE(ash::wm::IsWindowMinimized(window)); |
200 } | 200 } |
201 | 201 |
202 ash::wm::RestoreWindow(window); | 202 ash::wm::RestoreWindow(window); |
203 | 203 |
204 // Now test the same behaviour for gesture events. | 204 // Now test the same behaviour for gesture events. |
205 | 205 |
206 // Snap right. | 206 // Snap right. |
207 { | 207 { |
208 center = view->GetScreenBounds().CenterPoint(); | 208 center = view->GetBoundsInScreen().CenterPoint(); |
209 gfx::Point end = center; | 209 gfx::Point end = center; |
210 end.Offset(40, 0); | 210 end.Offset(40, 0); |
211 generator.GestureScrollSequence(center, end, | 211 generator.GestureScrollSequence(center, end, |
212 base::TimeDelta::FromMilliseconds(100), | 212 base::TimeDelta::FromMilliseconds(100), |
213 3); | 213 3); |
214 RunAllPendingInMessageLoop(); | 214 RunAllPendingInMessageLoop(); |
215 | 215 |
216 EXPECT_FALSE(ash::wm::IsWindowMaximized(window)); | 216 EXPECT_FALSE(ash::wm::IsWindowMaximized(window)); |
217 EXPECT_FALSE(ash::wm::IsWindowMinimized(window)); | 217 EXPECT_FALSE(ash::wm::IsWindowMinimized(window)); |
218 internal::SnapSizer sizer(window, center, | 218 internal::SnapSizer sizer(window, center, |
219 internal::SnapSizer::RIGHT_EDGE, kGridSize); | 219 internal::SnapSizer::RIGHT_EDGE, kGridSize); |
220 EXPECT_EQ(sizer.target_bounds().ToString(), window->bounds().ToString()); | 220 EXPECT_EQ(sizer.target_bounds().ToString(), window->bounds().ToString()); |
221 } | 221 } |
222 | 222 |
223 // Snap left. | 223 // Snap left. |
224 { | 224 { |
225 center = view->GetScreenBounds().CenterPoint(); | 225 center = view->GetBoundsInScreen().CenterPoint(); |
226 gfx::Point end = center; | 226 gfx::Point end = center; |
227 end.Offset(-40, 0); | 227 end.Offset(-40, 0); |
228 generator.GestureScrollSequence(center, end, | 228 generator.GestureScrollSequence(center, end, |
229 base::TimeDelta::FromMilliseconds(100), | 229 base::TimeDelta::FromMilliseconds(100), |
230 3); | 230 3); |
231 RunAllPendingInMessageLoop(); | 231 RunAllPendingInMessageLoop(); |
232 | 232 |
233 EXPECT_FALSE(ash::wm::IsWindowMaximized(window)); | 233 EXPECT_FALSE(ash::wm::IsWindowMaximized(window)); |
234 EXPECT_FALSE(ash::wm::IsWindowMinimized(window)); | 234 EXPECT_FALSE(ash::wm::IsWindowMinimized(window)); |
235 internal::SnapSizer sizer(window, center, | 235 internal::SnapSizer sizer(window, center, |
236 internal::SnapSizer::LEFT_EDGE, kGridSize); | 236 internal::SnapSizer::LEFT_EDGE, kGridSize); |
237 EXPECT_EQ(sizer.target_bounds().ToString(), window->bounds().ToString()); | 237 EXPECT_EQ(sizer.target_bounds().ToString(), window->bounds().ToString()); |
238 } | 238 } |
239 | 239 |
240 // Minimize. | 240 // Minimize. |
241 { | 241 { |
242 center = view->GetScreenBounds().CenterPoint(); | 242 center = view->GetBoundsInScreen().CenterPoint(); |
243 gfx::Point end = center; | 243 gfx::Point end = center; |
244 end.Offset(0, 40); | 244 end.Offset(0, 40); |
245 generator.GestureScrollSequence(center, end, | 245 generator.GestureScrollSequence(center, end, |
246 base::TimeDelta::FromMilliseconds(100), | 246 base::TimeDelta::FromMilliseconds(100), |
247 3); | 247 3); |
248 RunAllPendingInMessageLoop(); | 248 RunAllPendingInMessageLoop(); |
249 | 249 |
250 EXPECT_TRUE(ash::wm::IsWindowMinimized(window)); | 250 EXPECT_TRUE(ash::wm::IsWindowMinimized(window)); |
251 } | 251 } |
252 | 252 |
253 // Test with gesture events. | 253 // Test with gesture events. |
254 | 254 |
255 widget->Close(); | 255 widget->Close(); |
256 } | 256 } |
257 | 257 |
258 } // namespace internal | 258 } // namespace internal |
259 } // namespace ash | 259 } // namespace ash |
OLD | NEW |