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 "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 707 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
718 // | 718 // |
719 | 719 |
720 class WidgetObserverTest : public WidgetTest, | 720 class WidgetObserverTest : public WidgetTest, |
721 public WidgetObserver { | 721 public WidgetObserver { |
722 public: | 722 public: |
723 WidgetObserverTest() | 723 WidgetObserverTest() |
724 : active_(NULL), | 724 : active_(NULL), |
725 widget_closed_(NULL), | 725 widget_closed_(NULL), |
726 widget_activated_(NULL), | 726 widget_activated_(NULL), |
727 widget_shown_(NULL), | 727 widget_shown_(NULL), |
728 widget_hidden_(NULL) { | 728 widget_hidden_(NULL), |
| 729 widget_moved_(NULL), |
| 730 widget_size_changed_(NULL) { |
729 } | 731 } |
730 | 732 |
731 virtual ~WidgetObserverTest() {} | 733 virtual ~WidgetObserverTest() {} |
732 | 734 |
733 // Overridden from WidgetObserver: | 735 // Overridden from WidgetObserver: |
734 virtual void OnWidgetClosing(Widget* widget) OVERRIDE { | 736 virtual void OnWidgetClosing(Widget* widget) OVERRIDE { |
735 if (active_ == widget) | 737 if (active_ == widget) |
736 active_ = NULL; | 738 active_ = NULL; |
737 widget_closed_ = widget; | 739 widget_closed_ = widget; |
738 } | 740 } |
(...skipping 13 matching lines...) Expand all Loading... |
752 } | 754 } |
753 | 755 |
754 virtual void OnWidgetVisibilityChanged(Widget* widget, | 756 virtual void OnWidgetVisibilityChanged(Widget* widget, |
755 bool visible) OVERRIDE { | 757 bool visible) OVERRIDE { |
756 if (visible) | 758 if (visible) |
757 widget_shown_ = widget; | 759 widget_shown_ = widget; |
758 else | 760 else |
759 widget_hidden_ = widget; | 761 widget_hidden_ = widget; |
760 } | 762 } |
761 | 763 |
| 764 virtual void OnWidgetMoved(Widget* widget) OVERRIDE { |
| 765 widget_moved_ = widget; |
| 766 } |
| 767 |
| 768 virtual void OnWidgetSizeChanged(Widget* widget, |
| 769 const gfx::Size& size) OVERRIDE { |
| 770 widget_size_changed_ = widget; |
| 771 } |
| 772 |
762 void reset() { | 773 void reset() { |
763 active_ = NULL; | 774 active_ = NULL; |
764 widget_closed_ = NULL; | 775 widget_closed_ = NULL; |
765 widget_activated_ = NULL; | 776 widget_activated_ = NULL; |
766 widget_deactivated_ = NULL; | 777 widget_deactivated_ = NULL; |
767 widget_shown_ = NULL; | 778 widget_shown_ = NULL; |
768 widget_hidden_ = NULL; | 779 widget_hidden_ = NULL; |
| 780 widget_moved_ = NULL; |
| 781 widget_size_changed_ = NULL; |
769 } | 782 } |
770 | 783 |
771 Widget* NewWidget() { | 784 Widget* NewWidget() { |
772 Widget* widget = CreateTopLevelNativeWidget(); | 785 Widget* widget = CreateTopLevelNativeWidget(); |
773 widget->AddObserver(this); | 786 widget->AddObserver(this); |
774 return widget; | 787 return widget; |
775 } | 788 } |
776 | 789 |
777 const Widget* active() const { return active_; } | 790 const Widget* active() const { return active_; } |
778 const Widget* widget_closed() const { return widget_closed_; } | 791 const Widget* widget_closed() const { return widget_closed_; } |
779 const Widget* widget_activated() const { return widget_activated_; } | 792 const Widget* widget_activated() const { return widget_activated_; } |
780 const Widget* widget_deactivated() const { return widget_deactivated_; } | 793 const Widget* widget_deactivated() const { return widget_deactivated_; } |
781 const Widget* widget_shown() const { return widget_shown_; } | 794 const Widget* widget_shown() const { return widget_shown_; } |
782 const Widget* widget_hidden() const { return widget_hidden_; } | 795 const Widget* widget_hidden() const { return widget_hidden_; } |
| 796 const Widget* widget_moved() const { return widget_moved_; } |
| 797 const Widget* widget_size_changed() const { return widget_size_changed_; } |
783 | 798 |
784 private: | 799 private: |
785 | 800 |
786 Widget* active_; | 801 Widget* active_; |
787 | 802 |
788 Widget* widget_closed_; | 803 Widget* widget_closed_; |
789 Widget* widget_activated_; | 804 Widget* widget_activated_; |
790 Widget* widget_deactivated_; | 805 Widget* widget_deactivated_; |
791 Widget* widget_shown_; | 806 Widget* widget_shown_; |
792 Widget* widget_hidden_; | 807 Widget* widget_hidden_; |
| 808 Widget* widget_moved_; |
| 809 Widget* widget_size_changed_; |
793 }; | 810 }; |
794 | 811 |
795 TEST_F(WidgetObserverTest, DISABLED_ActivationChange) { | 812 TEST_F(WidgetObserverTest, DISABLED_ActivationChange) { |
796 Widget* toplevel = CreateTopLevelPlatformWidget(); | 813 Widget* toplevel = CreateTopLevelPlatformWidget(); |
797 | 814 |
798 Widget* toplevel1 = NewWidget(); | 815 Widget* toplevel1 = NewWidget(); |
799 Widget* toplevel2 = NewWidget(); | 816 Widget* toplevel2 = NewWidget(); |
800 | 817 |
801 toplevel1->Show(); | 818 toplevel1->Show(); |
802 toplevel2->Show(); | 819 toplevel2->Show(); |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
853 BubbleDelegateView* bubble_delegate = | 870 BubbleDelegateView* bubble_delegate = |
854 new BubbleDelegateView(view, BubbleBorder::NONE); | 871 new BubbleDelegateView(view, BubbleBorder::NONE); |
855 Widget* bubble_widget(BubbleDelegateView::CreateBubble(bubble_delegate)); | 872 Widget* bubble_widget(BubbleDelegateView::CreateBubble(bubble_delegate)); |
856 bubble_widget->Show(); | 873 bubble_widget->Show(); |
857 bubble_widget->CloseNow(); | 874 bubble_widget->CloseNow(); |
858 | 875 |
859 anchor->Hide(); | 876 anchor->Hide(); |
860 anchor->CloseNow(); | 877 anchor->CloseNow(); |
861 } | 878 } |
862 | 879 |
| 880 TEST_F(WidgetObserverTest, WidgetMoved) { |
| 881 Widget* child1 = NewWidget(); |
| 882 Widget* child2 = NewWidget(); |
| 883 |
| 884 child1->OnNativeWidgetMove(); |
| 885 EXPECT_EQ(child1, widget_moved()); |
| 886 |
| 887 child2->OnNativeWidgetMove(); |
| 888 EXPECT_EQ(child2, widget_moved()); |
| 889 } |
| 890 |
| 891 TEST_F(WidgetObserverTest, WidgetSizeChanged) { |
| 892 Widget* child1 = NewWidget(); |
| 893 Widget* child2 = NewWidget(); |
| 894 |
| 895 child1->OnNativeWidgetSizeChanged(gfx::Size()); |
| 896 EXPECT_EQ(child1, widget_size_changed()); |
| 897 |
| 898 child2->OnNativeWidgetSizeChanged(gfx::Size()); |
| 899 EXPECT_EQ(child2, widget_size_changed()); |
| 900 } |
| 901 |
863 #if !defined(USE_AURA) && defined(OS_WIN) | 902 #if !defined(USE_AURA) && defined(OS_WIN) |
864 // Aura needs shell to maximize/fullscreen window. | 903 // Aura needs shell to maximize/fullscreen window. |
865 // NativeWidgetGtk doesn't implement GetRestoredBounds. | 904 // NativeWidgetGtk doesn't implement GetRestoredBounds. |
866 TEST_F(WidgetTest, GetRestoredBounds) { | 905 TEST_F(WidgetTest, GetRestoredBounds) { |
867 Widget* toplevel = CreateTopLevelPlatformWidget(); | 906 Widget* toplevel = CreateTopLevelPlatformWidget(); |
868 EXPECT_EQ(toplevel->GetWindowBoundsInScreen().ToString(), | 907 EXPECT_EQ(toplevel->GetWindowBoundsInScreen().ToString(), |
869 toplevel->GetRestoredBounds().ToString()); | 908 toplevel->GetRestoredBounds().ToString()); |
870 toplevel->Show(); | 909 toplevel->Show(); |
871 toplevel->Maximize(); | 910 toplevel->Maximize(); |
872 RunPendingMessages(); | 911 RunPendingMessages(); |
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
997 EXPECT_TRUE(toplevel->OnKeyEvent(backspace_p)); | 1036 EXPECT_TRUE(toplevel->OnKeyEvent(backspace_p)); |
998 ui::KeyEvent backspace_r(ui::ET_KEY_RELEASED, ui::VKEY_DELETE, 0, false); | 1037 ui::KeyEvent backspace_r(ui::ET_KEY_RELEASED, ui::VKEY_DELETE, 0, false); |
999 EXPECT_FALSE(toplevel->OnKeyEvent(backspace_r)); | 1038 EXPECT_FALSE(toplevel->OnKeyEvent(backspace_r)); |
1000 | 1039 |
1001 toplevel->Close(); | 1040 toplevel->Close(); |
1002 } | 1041 } |
1003 #endif // defined(USE_AURA) | 1042 #endif // defined(USE_AURA) |
1004 | 1043 |
1005 } // namespace | 1044 } // namespace |
1006 } // namespace views | 1045 } // namespace views |
OLD | NEW |