OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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 "base/basictypes.h" | 5 #include "base/basictypes.h" |
6 #include "base/bind.h" | 6 #include "base/bind.h" |
| 7 #include "base/path_service.h" |
7 #include "base/run_loop.h" | 8 #include "base/run_loop.h" |
8 #include "ui/aura/client/activation_client.h" | 9 #include "ui/aura/client/activation_client.h" |
9 #include "ui/aura/client/focus_client.h" | 10 #include "ui/aura/client/focus_client.h" |
10 #include "ui/aura/env.h" | 11 #include "ui/aura/env.h" |
11 #include "ui/aura/window.h" | 12 #include "ui/aura/window.h" |
12 #include "ui/aura/window_event_dispatcher.h" | 13 #include "ui/aura/window_event_dispatcher.h" |
| 14 #include "ui/base/resource/resource_bundle.h" |
| 15 #include "ui/base/ui_base_paths.h" |
13 #include "ui/gfx/native_widget_types.h" | 16 #include "ui/gfx/native_widget_types.h" |
| 17 #include "ui/gl/gl_surface.h" |
14 #include "ui/views/test/widget_test.h" | 18 #include "ui/views/test/widget_test.h" |
15 #include "ui/views/widget/widget.h" | 19 #include "ui/views/widget/widget.h" |
16 #include "ui/views/window/dialog_delegate.h" | 20 #include "ui/views/window/dialog_delegate.h" |
17 | 21 |
18 #if !defined(OS_CHROMEOS) | 22 #if !defined(OS_CHROMEOS) |
19 #include "ui/views/widget/desktop_aura/desktop_native_widget_aura.h" | 23 #include "ui/views/widget/desktop_aura/desktop_native_widget_aura.h" |
20 #endif | 24 #endif |
21 | 25 |
22 #if defined(OS_WIN) | 26 #if defined(OS_WIN) |
23 #include "ui/views/win/hwnd_util.h" | 27 #include "ui/views/win/hwnd_util.h" |
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
135 return true; | 139 return true; |
136 } | 140 } |
137 | 141 |
138 Widget* widget_; | 142 Widget* widget_; |
139 | 143 |
140 DISALLOW_COPY_AND_ASSIGN(NestedLoopCaptureView); | 144 DISALLOW_COPY_AND_ASSIGN(NestedLoopCaptureView); |
141 }; | 145 }; |
142 | 146 |
143 } // namespace | 147 } // namespace |
144 | 148 |
| 149 class WidgetTestInteractive : public WidgetTest { |
| 150 public: |
| 151 WidgetTestInteractive() {} |
| 152 virtual ~WidgetTestInteractive() {} |
| 153 |
| 154 virtual void SetUp() OVERRIDE { |
| 155 gfx::GLSurface::InitializeOneOffForTests(); |
| 156 base::FilePath pak_dir; |
| 157 PathService::Get(base::DIR_MODULE, &pak_dir); |
| 158 base::FilePath pak_file; |
| 159 pak_file = pak_dir.Append(FILE_PATH_LITERAL("ui_test.pak")); |
| 160 ui::ResourceBundle::InitSharedInstanceWithPakPath(pak_file); |
| 161 WidgetTest::SetUp(); |
| 162 } |
| 163 }; |
| 164 |
145 #if defined(OS_WIN) | 165 #if defined(OS_WIN) |
146 // Tests whether activation and focus change works correctly in Windows. | 166 // Tests whether activation and focus change works correctly in Windows. |
147 // We test the following:- | 167 // We test the following:- |
148 // 1. If the active aura window is correctly set when a top level widget is | 168 // 1. If the active aura window is correctly set when a top level widget is |
149 // created. | 169 // created. |
150 // 2. If the active aura window in widget 1 created above, is set to NULL when | 170 // 2. If the active aura window in widget 1 created above, is set to NULL when |
151 // another top level widget is created and focused. | 171 // another top level widget is created and focused. |
152 // 3. On focusing the native platform window for widget 1, the active aura | 172 // 3. On focusing the native platform window for widget 1, the active aura |
153 // window for widget 1 should be set and that for widget 2 should reset. | 173 // window for widget 1 should be set and that for widget 2 should reset. |
154 // TODO(ananta) | 174 // TODO(ananta) |
155 // Discuss with erg on how to write this test for linux x11 aura. | 175 // Discuss with erg on how to write this test for linux x11 aura. |
156 TEST_F(WidgetTest, DesktopNativeWidgetAuraActivationAndFocusTest) { | 176 TEST_F(WidgetTestInteractive, DesktopNativeWidgetAuraActivationAndFocusTest) { |
157 // Create widget 1 and expect the active window to be its window. | 177 // Create widget 1 and expect the active window to be its window. |
158 View* contents_view1 = new View; | 178 View* contents_view1 = new View; |
159 contents_view1->SetFocusable(true); | 179 contents_view1->SetFocusable(true); |
160 Widget widget1; | 180 Widget widget1; |
161 Widget::InitParams init_params = | 181 Widget::InitParams init_params = |
162 CreateParams(Widget::InitParams::TYPE_WINDOW_FRAMELESS); | 182 CreateParams(Widget::InitParams::TYPE_WINDOW_FRAMELESS); |
163 init_params.bounds = gfx::Rect(0, 0, 200, 200); | 183 init_params.bounds = gfx::Rect(0, 0, 200, 200); |
164 init_params.ownership = Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; | 184 init_params.ownership = Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; |
165 init_params.native_widget = new DesktopNativeWidgetAura(&widget1); | 185 init_params.native_widget = new DesktopNativeWidgetAura(&widget1); |
166 widget1.Init(init_params); | 186 widget1.Init(init_params); |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
202 // window. | 222 // window. |
203 contents_view1->RequestFocus(); | 223 contents_view1->RequestFocus(); |
204 ::SetActiveWindow( | 224 ::SetActiveWindow( |
205 root_window1->GetHost()->GetAcceleratedWidget()); | 225 root_window1->GetHost()->GetAcceleratedWidget()); |
206 EXPECT_EQ(activation_client2->GetActiveWindow(), | 226 EXPECT_EQ(activation_client2->GetActiveWindow(), |
207 reinterpret_cast<aura::Window*>(NULL)); | 227 reinterpret_cast<aura::Window*>(NULL)); |
208 EXPECT_EQ(activation_client1->GetActiveWindow(), widget1.GetNativeView()); | 228 EXPECT_EQ(activation_client1->GetActiveWindow(), widget1.GetNativeView()); |
209 } | 229 } |
210 #endif | 230 #endif |
211 | 231 |
212 TEST_F(WidgetTest, CaptureAutoReset) { | 232 TEST_F(WidgetTestInteractive, CaptureAutoReset) { |
213 Widget* toplevel = CreateTopLevelFramelessPlatformWidget(); | 233 Widget* toplevel = CreateTopLevelFramelessPlatformWidget(); |
214 View* container = new View; | 234 View* container = new View; |
215 toplevel->SetContentsView(container); | 235 toplevel->SetContentsView(container); |
216 | 236 |
217 EXPECT_FALSE(toplevel->HasCapture()); | 237 EXPECT_FALSE(toplevel->HasCapture()); |
218 toplevel->SetCapture(NULL); | 238 toplevel->SetCapture(NULL); |
219 EXPECT_TRUE(toplevel->HasCapture()); | 239 EXPECT_TRUE(toplevel->HasCapture()); |
220 | 240 |
221 // By default, mouse release removes capture. | 241 // By default, mouse release removes capture. |
222 gfx::Point click_location(45, 15); | 242 gfx::Point click_location(45, 15); |
223 ui::MouseEvent release(ui::ET_MOUSE_RELEASED, click_location, click_location, | 243 ui::MouseEvent release(ui::ET_MOUSE_RELEASED, click_location, click_location, |
224 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON); | 244 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON); |
225 toplevel->OnMouseEvent(&release); | 245 toplevel->OnMouseEvent(&release); |
226 EXPECT_FALSE(toplevel->HasCapture()); | 246 EXPECT_FALSE(toplevel->HasCapture()); |
227 | 247 |
228 // Now a mouse release shouldn't remove capture. | 248 // Now a mouse release shouldn't remove capture. |
229 toplevel->set_auto_release_capture(false); | 249 toplevel->set_auto_release_capture(false); |
230 toplevel->SetCapture(NULL); | 250 toplevel->SetCapture(NULL); |
231 EXPECT_TRUE(toplevel->HasCapture()); | 251 EXPECT_TRUE(toplevel->HasCapture()); |
232 toplevel->OnMouseEvent(&release); | 252 toplevel->OnMouseEvent(&release); |
233 EXPECT_TRUE(toplevel->HasCapture()); | 253 EXPECT_TRUE(toplevel->HasCapture()); |
234 toplevel->ReleaseCapture(); | 254 toplevel->ReleaseCapture(); |
235 EXPECT_FALSE(toplevel->HasCapture()); | 255 EXPECT_FALSE(toplevel->HasCapture()); |
236 | 256 |
237 toplevel->Close(); | 257 toplevel->Close(); |
238 RunPendingMessages(); | 258 RunPendingMessages(); |
239 } | 259 } |
240 | 260 |
241 TEST_F(WidgetTest, ResetCaptureOnGestureEnd) { | 261 TEST_F(WidgetTestInteractive, ResetCaptureOnGestureEnd) { |
242 Widget* toplevel = CreateTopLevelFramelessPlatformWidget(); | 262 Widget* toplevel = CreateTopLevelFramelessPlatformWidget(); |
243 View* container = new View; | 263 View* container = new View; |
244 toplevel->SetContentsView(container); | 264 toplevel->SetContentsView(container); |
245 | 265 |
246 View* gesture = new GestureCaptureView; | 266 View* gesture = new GestureCaptureView; |
247 gesture->SetBounds(0, 0, 30, 30); | 267 gesture->SetBounds(0, 0, 30, 30); |
248 container->AddChildView(gesture); | 268 container->AddChildView(gesture); |
249 | 269 |
250 MouseView* mouse = new MouseView; | 270 MouseView* mouse = new MouseView; |
251 mouse->SetBounds(30, 0, 30, 30); | 271 mouse->SetBounds(30, 0, 30, 30); |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
287 toplevel->OnMouseEvent(&release); | 307 toplevel->OnMouseEvent(&release); |
288 EXPECT_EQ(1, mouse->pressed()); | 308 EXPECT_EQ(1, mouse->pressed()); |
289 | 309 |
290 toplevel->Close(); | 310 toplevel->Close(); |
291 RunPendingMessages(); | 311 RunPendingMessages(); |
292 } | 312 } |
293 | 313 |
294 // Checks that if a mouse-press triggers a capture on a different widget (which | 314 // Checks that if a mouse-press triggers a capture on a different widget (which |
295 // consumes the mouse-release event), then the target of the press does not have | 315 // consumes the mouse-release event), then the target of the press does not have |
296 // capture. | 316 // capture. |
297 TEST_F(WidgetTest, DisableCaptureWidgetFromMousePress) { | 317 TEST_F(WidgetTestInteractive, DisableCaptureWidgetFromMousePress) { |
298 // The test creates two widgets: |first| and |second|. | 318 // The test creates two widgets: |first| and |second|. |
299 // The View in |first| makes |second| visible, sets capture on it, and starts | 319 // The View in |first| makes |second| visible, sets capture on it, and starts |
300 // a nested loop (like a menu does). The View in |second| terminates the | 320 // a nested loop (like a menu does). The View in |second| terminates the |
301 // nested loop and closes the widget. | 321 // nested loop and closes the widget. |
302 // The test sends a mouse-press event to |first|, and posts a task to send a | 322 // The test sends a mouse-press event to |first|, and posts a task to send a |
303 // release event to |second|, to make sure that the release event is | 323 // release event to |second|, to make sure that the release event is |
304 // dispatched after the nested loop starts. | 324 // dispatched after the nested loop starts. |
305 | 325 |
306 Widget* first = CreateTopLevelFramelessPlatformWidget(); | 326 Widget* first = CreateTopLevelFramelessPlatformWidget(); |
307 Widget* second = CreateTopLevelFramelessPlatformWidget(); | 327 Widget* second = CreateTopLevelFramelessPlatformWidget(); |
(...skipping 18 matching lines...) Expand all Loading... |
326 ui::MouseEvent press(ui::ET_MOUSE_PRESSED, location, location, | 346 ui::MouseEvent press(ui::ET_MOUSE_PRESSED, location, location, |
327 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON); | 347 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON); |
328 first->OnMouseEvent(&press); | 348 first->OnMouseEvent(&press); |
329 EXPECT_FALSE(first->HasCapture()); | 349 EXPECT_FALSE(first->HasCapture()); |
330 first->Close(); | 350 first->Close(); |
331 RunPendingMessages(); | 351 RunPendingMessages(); |
332 } | 352 } |
333 | 353 |
334 // Tests some grab/ungrab events. | 354 // Tests some grab/ungrab events. |
335 // TODO(estade): can this be enabled now that this is an interactive ui test? | 355 // TODO(estade): can this be enabled now that this is an interactive ui test? |
336 TEST_F(WidgetTest, DISABLED_GrabUngrab) { | 356 TEST_F(WidgetTestInteractive, DISABLED_GrabUngrab) { |
337 Widget* toplevel = CreateTopLevelPlatformWidget(); | 357 Widget* toplevel = CreateTopLevelPlatformWidget(); |
338 Widget* child1 = CreateChildNativeWidgetWithParent(toplevel); | 358 Widget* child1 = CreateChildNativeWidgetWithParent(toplevel); |
339 Widget* child2 = CreateChildNativeWidgetWithParent(toplevel); | 359 Widget* child2 = CreateChildNativeWidgetWithParent(toplevel); |
340 | 360 |
341 toplevel->SetBounds(gfx::Rect(0, 0, 500, 500)); | 361 toplevel->SetBounds(gfx::Rect(0, 0, 500, 500)); |
342 | 362 |
343 child1->SetBounds(gfx::Rect(10, 10, 300, 300)); | 363 child1->SetBounds(gfx::Rect(10, 10, 300, 300)); |
344 View* view = new MouseView(); | 364 View* view = new MouseView(); |
345 view->SetBounds(0, 0, 300, 300); | 365 view->SetBounds(0, 0, 300, 300); |
346 child1->GetRootView()->AddChildView(view); | 366 child1->GetRootView()->AddChildView(view); |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
388 toplevel->OnMouseEvent(&released2); | 408 toplevel->OnMouseEvent(&released2); |
389 EXPECT_FALSE(toplevel->HasCapture()); | 409 EXPECT_FALSE(toplevel->HasCapture()); |
390 EXPECT_FALSE(child1->HasCapture()); | 410 EXPECT_FALSE(child1->HasCapture()); |
391 EXPECT_FALSE(child2->HasCapture()); | 411 EXPECT_FALSE(child2->HasCapture()); |
392 | 412 |
393 toplevel->CloseNow(); | 413 toplevel->CloseNow(); |
394 } | 414 } |
395 | 415 |
396 // Tests mouse move outside of the window into the "resize controller" and back | 416 // Tests mouse move outside of the window into the "resize controller" and back |
397 // will still generate an OnMouseEntered and OnMouseExited event.. | 417 // will still generate an OnMouseEntered and OnMouseExited event.. |
398 TEST_F(WidgetTest, CheckResizeControllerEvents) { | 418 TEST_F(WidgetTestInteractive, CheckResizeControllerEvents) { |
399 Widget* toplevel = CreateTopLevelPlatformWidget(); | 419 Widget* toplevel = CreateTopLevelPlatformWidget(); |
400 | 420 |
401 toplevel->SetBounds(gfx::Rect(0, 0, 100, 100)); | 421 toplevel->SetBounds(gfx::Rect(0, 0, 100, 100)); |
402 | 422 |
403 MouseView* view = new MouseView(); | 423 MouseView* view = new MouseView(); |
404 view->SetBounds(90, 90, 10, 10); | 424 view->SetBounds(90, 90, 10, 10); |
405 toplevel->GetRootView()->AddChildView(view); | 425 toplevel->GetRootView()->AddChildView(view); |
406 | 426 |
407 toplevel->Show(); | 427 toplevel->Show(); |
408 RunPendingMessages(); | 428 RunPendingMessages(); |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
464 bool active() const { return active_; } | 484 bool active() const { return active_; } |
465 | 485 |
466 private: | 486 private: |
467 bool active_; | 487 bool active_; |
468 | 488 |
469 DISALLOW_COPY_AND_ASSIGN(WidgetActivationTest); | 489 DISALLOW_COPY_AND_ASSIGN(WidgetActivationTest); |
470 }; | 490 }; |
471 | 491 |
472 // Tests whether the widget only becomes active when the underlying window | 492 // Tests whether the widget only becomes active when the underlying window |
473 // is really active. | 493 // is really active. |
474 TEST_F(WidgetTest, WidgetNotActivatedOnFakeActivationMessages) { | 494 TEST_F(WidgetTestInteractive, WidgetNotActivatedOnFakeActivationMessages) { |
475 WidgetActivationTest widget1; | 495 WidgetActivationTest widget1; |
476 Widget::InitParams init_params = | 496 Widget::InitParams init_params = |
477 CreateParams(Widget::InitParams::TYPE_WINDOW_FRAMELESS); | 497 CreateParams(Widget::InitParams::TYPE_WINDOW_FRAMELESS); |
478 init_params.ownership = Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; | 498 init_params.ownership = Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; |
479 init_params.native_widget = new DesktopNativeWidgetAura(&widget1); | 499 init_params.native_widget = new DesktopNativeWidgetAura(&widget1); |
480 init_params.bounds = gfx::Rect(0, 0, 200, 200); | 500 init_params.bounds = gfx::Rect(0, 0, 200, 200); |
481 widget1.Init(init_params); | 501 widget1.Init(init_params); |
482 widget1.Show(); | 502 widget1.Show(); |
483 EXPECT_EQ(true, widget1.active()); | 503 EXPECT_EQ(true, widget1.active()); |
484 | 504 |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
516 | 536 |
517 private: | 537 private: |
518 ui::ModalType type_; | 538 ui::ModalType type_; |
519 | 539 |
520 DISALLOW_COPY_AND_ASSIGN(ModalDialogDelegate); | 540 DISALLOW_COPY_AND_ASSIGN(ModalDialogDelegate); |
521 }; | 541 }; |
522 | 542 |
523 // Tests whether the focused window is set correctly when a modal window is | 543 // Tests whether the focused window is set correctly when a modal window is |
524 // created and destroyed. When it is destroyed it should focus the owner | 544 // created and destroyed. When it is destroyed it should focus the owner |
525 // window. | 545 // window. |
526 TEST_F(WidgetTest, WindowModalWindowDestroyedActivationTest) { | 546 TEST_F(WidgetTestInteractive, WindowModalWindowDestroyedActivationTest) { |
527 // Create a top level widget. | 547 // Create a top level widget. |
528 Widget top_level_widget; | 548 Widget top_level_widget; |
529 Widget::InitParams init_params = | 549 Widget::InitParams init_params = |
530 CreateParams(Widget::InitParams::TYPE_WINDOW); | 550 CreateParams(Widget::InitParams::TYPE_WINDOW); |
531 init_params.show_state = ui::SHOW_STATE_NORMAL; | 551 init_params.show_state = ui::SHOW_STATE_NORMAL; |
532 gfx::Rect initial_bounds(0, 0, 500, 500); | 552 gfx::Rect initial_bounds(0, 0, 500, 500); |
533 init_params.bounds = initial_bounds; | 553 init_params.bounds = initial_bounds; |
534 init_params.ownership = Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; | 554 init_params.ownership = Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; |
535 init_params.native_widget = new DesktopNativeWidgetAura(&top_level_widget); | 555 init_params.native_widget = new DesktopNativeWidgetAura(&top_level_widget); |
536 top_level_widget.Init(init_params); | 556 top_level_widget.Init(init_params); |
(...skipping 16 matching lines...) Expand all Loading... |
553 EXPECT_EQ(dialog_window, aura::client::GetFocusClient( | 573 EXPECT_EQ(dialog_window, aura::client::GetFocusClient( |
554 top_level_window)->GetFocusedWindow()); | 574 top_level_window)->GetFocusedWindow()); |
555 | 575 |
556 modal_dialog_widget->CloseNow(); | 576 modal_dialog_widget->CloseNow(); |
557 EXPECT_EQ(top_level_window, aura::client::GetFocusClient( | 577 EXPECT_EQ(top_level_window, aura::client::GetFocusClient( |
558 top_level_window)->GetFocusedWindow()); | 578 top_level_window)->GetFocusedWindow()); |
559 top_level_widget.CloseNow(); | 579 top_level_widget.CloseNow(); |
560 } | 580 } |
561 | 581 |
562 // Test that when opening a system-modal window, capture is released. | 582 // Test that when opening a system-modal window, capture is released. |
563 TEST_F(WidgetTest, SystemModalWindowReleasesCapture) { | 583 TEST_F(WidgetTestInteractive, SystemModalWindowReleasesCapture) { |
564 // Create a top level widget. | 584 // Create a top level widget. |
565 Widget top_level_widget; | 585 Widget top_level_widget; |
566 Widget::InitParams init_params = | 586 Widget::InitParams init_params = |
567 CreateParams(Widget::InitParams::TYPE_WINDOW); | 587 CreateParams(Widget::InitParams::TYPE_WINDOW); |
568 init_params.show_state = ui::SHOW_STATE_NORMAL; | 588 init_params.show_state = ui::SHOW_STATE_NORMAL; |
569 gfx::Rect initial_bounds(0, 0, 500, 500); | 589 gfx::Rect initial_bounds(0, 0, 500, 500); |
570 init_params.bounds = initial_bounds; | 590 init_params.bounds = initial_bounds; |
571 init_params.ownership = Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; | 591 init_params.ownership = Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; |
572 init_params.native_widget = new DesktopNativeWidgetAura(&top_level_widget); | 592 init_params.native_widget = new DesktopNativeWidgetAura(&top_level_widget); |
573 top_level_widget.Init(init_params); | 593 top_level_widget.Init(init_params); |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
627 } // namespace | 647 } // namespace |
628 | 648 |
629 class WidgetCaptureTest : public ViewsTestBase { | 649 class WidgetCaptureTest : public ViewsTestBase { |
630 public: | 650 public: |
631 WidgetCaptureTest() { | 651 WidgetCaptureTest() { |
632 } | 652 } |
633 | 653 |
634 virtual ~WidgetCaptureTest() { | 654 virtual ~WidgetCaptureTest() { |
635 } | 655 } |
636 | 656 |
| 657 virtual void SetUp() OVERRIDE { |
| 658 gfx::GLSurface::InitializeOneOffForTests(); |
| 659 base::FilePath pak_dir; |
| 660 PathService::Get(base::DIR_MODULE, &pak_dir); |
| 661 base::FilePath pak_file; |
| 662 pak_file = pak_dir.Append(FILE_PATH_LITERAL("ui_test.pak")); |
| 663 ui::ResourceBundle::InitSharedInstanceWithPakPath(pak_file); |
| 664 ViewsTestBase::SetUp(); |
| 665 } |
| 666 |
637 // Verifies Widget::SetCapture() results in updating native capture along with | 667 // Verifies Widget::SetCapture() results in updating native capture along with |
638 // invoking the right Widget function. | 668 // invoking the right Widget function. |
639 void TestCapture(bool use_desktop_native_widget) { | 669 void TestCapture(bool use_desktop_native_widget) { |
640 CaptureLostTrackingWidget widget1; | 670 CaptureLostTrackingWidget widget1; |
641 Widget::InitParams params1 = | 671 Widget::InitParams params1 = |
642 CreateParams(views::Widget::InitParams::TYPE_WINDOW); | 672 CreateParams(views::Widget::InitParams::TYPE_WINDOW); |
643 params1.native_widget = CreateNativeWidget(use_desktop_native_widget, | 673 params1.native_widget = CreateNativeWidget(use_desktop_native_widget, |
644 &widget1); | 674 &widget1); |
645 params1.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; | 675 params1.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; |
646 widget1.Init(params1); | 676 widget1.Init(params1); |
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
773 ui::EventDispatchDetails details = widget1.GetNativeWindow()-> | 803 ui::EventDispatchDetails details = widget1.GetNativeWindow()-> |
774 GetHost()->dispatcher()->OnEventFromSource(&mouse_event); | 804 GetHost()->dispatcher()->OnEventFromSource(&mouse_event); |
775 ASSERT_FALSE(details.dispatcher_destroyed); | 805 ASSERT_FALSE(details.dispatcher_destroyed); |
776 EXPECT_TRUE(widget1.GetAndClearGotMouseEvent()); | 806 EXPECT_TRUE(widget1.GetAndClearGotMouseEvent()); |
777 EXPECT_FALSE(widget2.GetAndClearGotMouseEvent()); | 807 EXPECT_FALSE(widget2.GetAndClearGotMouseEvent()); |
778 } | 808 } |
779 #endif | 809 #endif |
780 | 810 |
781 } // namespace test | 811 } // namespace test |
782 } // namespace views | 812 } // namespace views |
OLD | NEW |