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

Side by Side Diff: ui/views/widget/widget_unittest.cc

Issue 11795004: Continue threading context through unit tests. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 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 | « ui/views/view_unittest.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 (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 "base/basictypes.h" 5 #include "base/basictypes.h"
6 #include "base/memory/scoped_ptr.h" 6 #include "base/memory/scoped_ptr.h"
7 #include "base/message_loop.h" 7 #include "base/message_loop.h"
8 #include "base/utf_string_conversions.h" 8 #include "base/utf_string_conversions.h"
9 #include "testing/gtest/include/gtest/gtest.h" 9 #include "testing/gtest/include/gtest/gtest.h"
10 #include "ui/gfx/native_widget_types.h" 10 #include "ui/gfx/native_widget_types.h"
(...skipping 594 matching lines...) Expand 10 before | Expand all | Expand 10 after
605 EXPECT_TRUE(state.widget_deleted); 605 EXPECT_TRUE(state.widget_deleted);
606 EXPECT_TRUE(state.native_widget_deleted); 606 EXPECT_TRUE(state.native_widget_deleted);
607 } 607 }
608 608
609 // NativeWidget owns its Widget, part 1: NativeWidget is a platform-native 609 // NativeWidget owns its Widget, part 1: NativeWidget is a platform-native
610 // widget. 610 // widget.
611 TEST_F(WidgetOwnershipTest, Ownership_PlatformNativeWidgetOwnsWidget) { 611 TEST_F(WidgetOwnershipTest, Ownership_PlatformNativeWidgetOwnsWidget) {
612 OwnershipTestState state; 612 OwnershipTestState state;
613 613
614 Widget* widget = new OwnershipTestWidget(&state); 614 Widget* widget = new OwnershipTestWidget(&state);
615 Widget::InitParams params(Widget::InitParams::TYPE_POPUP); 615 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP);
616 params.native_widget = 616 params.native_widget =
617 new OwnershipTestNativeWidgetPlatform(widget, &state); 617 new OwnershipTestNativeWidgetPlatform(widget, &state);
618 widget->Init(params); 618 widget->Init(params);
619 619
620 // Now destroy the native widget. 620 // Now destroy the native widget.
621 widget->CloseNow(); 621 widget->CloseNow();
622 622
623 EXPECT_TRUE(state.widget_deleted); 623 EXPECT_TRUE(state.widget_deleted);
624 EXPECT_TRUE(state.native_widget_deleted); 624 EXPECT_TRUE(state.native_widget_deleted);
625 } 625 }
626 626
627 // NativeWidget owns its Widget, part 2: NativeWidget is a NativeWidget. 627 // NativeWidget owns its Widget, part 2: NativeWidget is a NativeWidget.
628 TEST_F(WidgetOwnershipTest, Ownership_ViewsNativeWidgetOwnsWidget) { 628 TEST_F(WidgetOwnershipTest, Ownership_ViewsNativeWidgetOwnsWidget) {
629 OwnershipTestState state; 629 OwnershipTestState state;
630 630
631 Widget* toplevel = CreateTopLevelPlatformWidget(); 631 Widget* toplevel = CreateTopLevelPlatformWidget();
632 632
633 Widget* widget = new OwnershipTestWidget(&state); 633 Widget* widget = new OwnershipTestWidget(&state);
634 Widget::InitParams params(Widget::InitParams::TYPE_POPUP); 634 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP);
635 params.native_widget = 635 params.native_widget =
636 new OwnershipTestNativeWidgetPlatform(widget, &state); 636 new OwnershipTestNativeWidgetPlatform(widget, &state);
637 params.parent = toplevel->GetNativeView(); 637 params.parent = toplevel->GetNativeView();
638 widget->Init(params); 638 widget->Init(params);
639 639
640 // Now destroy the native widget. This is achieved by closing the toplevel. 640 // Now destroy the native widget. This is achieved by closing the toplevel.
641 toplevel->CloseNow(); 641 toplevel->CloseNow();
642 642
643 // The NativeWidget won't be deleted until after a return to the message loop 643 // The NativeWidget won't be deleted until after a return to the message loop
644 // so we have to run pending messages before testing the destruction status. 644 // so we have to run pending messages before testing the destruction status.
645 RunPendingMessages(); 645 RunPendingMessages();
646 646
647 EXPECT_TRUE(state.widget_deleted); 647 EXPECT_TRUE(state.widget_deleted);
648 EXPECT_TRUE(state.native_widget_deleted); 648 EXPECT_TRUE(state.native_widget_deleted);
649 } 649 }
650 650
651 // NativeWidget owns its Widget, part 3: NativeWidget is a platform-native 651 // NativeWidget owns its Widget, part 3: NativeWidget is a platform-native
652 // widget, destroyed out from under it by the OS. 652 // widget, destroyed out from under it by the OS.
653 TEST_F(WidgetOwnershipTest, 653 TEST_F(WidgetOwnershipTest,
654 Ownership_PlatformNativeWidgetOwnsWidget_NativeDestroy) { 654 Ownership_PlatformNativeWidgetOwnsWidget_NativeDestroy) {
655 OwnershipTestState state; 655 OwnershipTestState state;
656 656
657 Widget* widget = new OwnershipTestWidget(&state); 657 Widget* widget = new OwnershipTestWidget(&state);
658 Widget::InitParams params(Widget::InitParams::TYPE_POPUP); 658 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP);
659 params.native_widget = 659 params.native_widget =
660 new OwnershipTestNativeWidgetPlatform(widget, &state); 660 new OwnershipTestNativeWidgetPlatform(widget, &state);
661 widget->Init(params); 661 widget->Init(params);
662 662
663 // Now simulate a destroy of the platform native widget from the OS: 663 // Now simulate a destroy of the platform native widget from the OS:
664 #if defined(USE_AURA) 664 #if defined(USE_AURA)
665 delete widget->GetNativeView(); 665 delete widget->GetNativeView();
666 #elif defined(OS_WIN) 666 #elif defined(OS_WIN)
667 DestroyWindow(widget->GetNativeView()); 667 DestroyWindow(widget->GetNativeView());
668 #endif 668 #endif
669 669
670 EXPECT_TRUE(state.widget_deleted); 670 EXPECT_TRUE(state.widget_deleted);
671 EXPECT_TRUE(state.native_widget_deleted); 671 EXPECT_TRUE(state.native_widget_deleted);
672 } 672 }
673 673
674 // NativeWidget owns its Widget, part 4: NativeWidget is a NativeWidget, 674 // NativeWidget owns its Widget, part 4: NativeWidget is a NativeWidget,
675 // destroyed by the view hierarchy that contains it. 675 // destroyed by the view hierarchy that contains it.
676 TEST_F(WidgetOwnershipTest, 676 TEST_F(WidgetOwnershipTest,
677 Ownership_ViewsNativeWidgetOwnsWidget_NativeDestroy) { 677 Ownership_ViewsNativeWidgetOwnsWidget_NativeDestroy) {
678 OwnershipTestState state; 678 OwnershipTestState state;
679 679
680 Widget* toplevel = CreateTopLevelPlatformWidget(); 680 Widget* toplevel = CreateTopLevelPlatformWidget();
681 681
682 Widget* widget = new OwnershipTestWidget(&state); 682 Widget* widget = new OwnershipTestWidget(&state);
683 Widget::InitParams params(Widget::InitParams::TYPE_POPUP); 683 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP);
684 params.native_widget = 684 params.native_widget =
685 new OwnershipTestNativeWidgetPlatform(widget, &state); 685 new OwnershipTestNativeWidgetPlatform(widget, &state);
686 params.parent = toplevel->GetNativeView(); 686 params.parent = toplevel->GetNativeView();
687 widget->Init(params); 687 widget->Init(params);
688 688
689 // Destroy the widget (achieved by closing the toplevel). 689 // Destroy the widget (achieved by closing the toplevel).
690 toplevel->CloseNow(); 690 toplevel->CloseNow();
691 691
692 // The NativeWidget won't be deleted until after a return to the message loop 692 // The NativeWidget won't be deleted until after a return to the message loop
693 // so we have to run pending messages before testing the destruction status. 693 // so we have to run pending messages before testing the destruction status.
694 RunPendingMessages(); 694 RunPendingMessages();
695 695
696 EXPECT_TRUE(state.widget_deleted); 696 EXPECT_TRUE(state.widget_deleted);
697 EXPECT_TRUE(state.native_widget_deleted); 697 EXPECT_TRUE(state.native_widget_deleted);
698 } 698 }
699 699
700 // NativeWidget owns its Widget, part 5: NativeWidget is a NativeWidget, 700 // NativeWidget owns its Widget, part 5: NativeWidget is a NativeWidget,
701 // we close it directly. 701 // we close it directly.
702 TEST_F(WidgetOwnershipTest, 702 TEST_F(WidgetOwnershipTest,
703 Ownership_ViewsNativeWidgetOwnsWidget_Close) { 703 Ownership_ViewsNativeWidgetOwnsWidget_Close) {
704 OwnershipTestState state; 704 OwnershipTestState state;
705 705
706 Widget* toplevel = CreateTopLevelPlatformWidget(); 706 Widget* toplevel = CreateTopLevelPlatformWidget();
707 707
708 Widget* widget = new OwnershipTestWidget(&state); 708 Widget* widget = new OwnershipTestWidget(&state);
709 Widget::InitParams params(Widget::InitParams::TYPE_POPUP); 709 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP);
710 params.native_widget = 710 params.native_widget =
711 new OwnershipTestNativeWidgetPlatform(widget, &state); 711 new OwnershipTestNativeWidgetPlatform(widget, &state);
712 params.parent = toplevel->GetNativeView(); 712 params.parent = toplevel->GetNativeView();
713 widget->Init(params); 713 widget->Init(params);
714 714
715 // Destroy the widget. 715 // Destroy the widget.
716 widget->Close(); 716 widget->Close();
717 toplevel->CloseNow(); 717 toplevel->CloseNow();
718 718
719 // The NativeWidget won't be deleted until after a return to the message loop 719 // The NativeWidget won't be deleted until after a return to the message loop
(...skipping 444 matching lines...) Expand 10 before | Expand all | Expand 10 after
1164 EXPECT_FALSE(widget.received_paint_while_hidden()); 1164 EXPECT_FALSE(widget.received_paint_while_hidden());
1165 widget.Close(); 1165 widget.Close();
1166 } 1166 }
1167 1167
1168 #endif // !defined(OS_CHROMEOS) 1168 #endif // !defined(OS_CHROMEOS)
1169 1169
1170 #endif // defined(USE_AURA) 1170 #endif // defined(USE_AURA)
1171 1171
1172 } // namespace 1172 } // namespace
1173 } // namespace views 1173 } // namespace views
OLDNEW
« no previous file with comments | « ui/views/view_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698