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_bounds_changed_(NULL) { | |
730 } | 729 } |
731 | 730 |
732 virtual ~WidgetObserverTest() {} | 731 virtual ~WidgetObserverTest() {} |
733 | 732 |
734 // Overridden from WidgetObserver: | 733 // Overridden from WidgetObserver: |
735 virtual void OnWidgetClosing(Widget* widget) OVERRIDE { | 734 virtual void OnWidgetClosing(Widget* widget) OVERRIDE { |
736 if (active_ == widget) | 735 if (active_ == widget) |
737 active_ = NULL; | 736 active_ = NULL; |
738 widget_closed_ = widget; | 737 widget_closed_ = widget; |
739 } | 738 } |
(...skipping 13 matching lines...) Expand all Loading... |
753 } | 752 } |
754 | 753 |
755 virtual void OnWidgetVisibilityChanged(Widget* widget, | 754 virtual void OnWidgetVisibilityChanged(Widget* widget, |
756 bool visible) OVERRIDE { | 755 bool visible) OVERRIDE { |
757 if (visible) | 756 if (visible) |
758 widget_shown_ = widget; | 757 widget_shown_ = widget; |
759 else | 758 else |
760 widget_hidden_ = widget; | 759 widget_hidden_ = widget; |
761 } | 760 } |
762 | 761 |
763 virtual void OnWidgetBoundsChanged(Widget* widget, | |
764 const gfx::Rect& new_bounds) OVERRIDE { | |
765 widget_bounds_changed_ = widget; | |
766 } | |
767 | |
768 void reset() { | 762 void reset() { |
769 active_ = NULL; | 763 active_ = NULL; |
770 widget_closed_ = NULL; | 764 widget_closed_ = NULL; |
771 widget_activated_ = NULL; | 765 widget_activated_ = NULL; |
772 widget_deactivated_ = NULL; | 766 widget_deactivated_ = NULL; |
773 widget_shown_ = NULL; | 767 widget_shown_ = NULL; |
774 widget_hidden_ = NULL; | 768 widget_hidden_ = NULL; |
775 widget_bounds_changed_ = NULL; | |
776 } | 769 } |
777 | 770 |
778 Widget* NewWidget() { | 771 Widget* NewWidget() { |
779 Widget* widget = CreateTopLevelNativeWidget(); | 772 Widget* widget = CreateTopLevelNativeWidget(); |
780 widget->AddObserver(this); | 773 widget->AddObserver(this); |
781 return widget; | 774 return widget; |
782 } | 775 } |
783 | 776 |
784 const Widget* active() const { return active_; } | 777 const Widget* active() const { return active_; } |
785 const Widget* widget_closed() const { return widget_closed_; } | 778 const Widget* widget_closed() const { return widget_closed_; } |
786 const Widget* widget_activated() const { return widget_activated_; } | 779 const Widget* widget_activated() const { return widget_activated_; } |
787 const Widget* widget_deactivated() const { return widget_deactivated_; } | 780 const Widget* widget_deactivated() const { return widget_deactivated_; } |
788 const Widget* widget_shown() const { return widget_shown_; } | 781 const Widget* widget_shown() const { return widget_shown_; } |
789 const Widget* widget_hidden() const { return widget_hidden_; } | 782 const Widget* widget_hidden() const { return widget_hidden_; } |
790 const Widget* widget_bounds_changed() const { return widget_bounds_changed_; } | |
791 | 783 |
792 private: | 784 private: |
793 | 785 |
794 Widget* active_; | 786 Widget* active_; |
795 | 787 |
796 Widget* widget_closed_; | 788 Widget* widget_closed_; |
797 Widget* widget_activated_; | 789 Widget* widget_activated_; |
798 Widget* widget_deactivated_; | 790 Widget* widget_deactivated_; |
799 Widget* widget_shown_; | 791 Widget* widget_shown_; |
800 Widget* widget_hidden_; | 792 Widget* widget_hidden_; |
801 Widget* widget_bounds_changed_; | |
802 }; | 793 }; |
803 | 794 |
804 TEST_F(WidgetObserverTest, DISABLED_ActivationChange) { | 795 TEST_F(WidgetObserverTest, DISABLED_ActivationChange) { |
805 Widget* toplevel = CreateTopLevelPlatformWidget(); | 796 Widget* toplevel = CreateTopLevelPlatformWidget(); |
806 | 797 |
807 Widget* toplevel1 = NewWidget(); | 798 Widget* toplevel1 = NewWidget(); |
808 Widget* toplevel2 = NewWidget(); | 799 Widget* toplevel2 = NewWidget(); |
809 | 800 |
810 toplevel1->Show(); | 801 toplevel1->Show(); |
811 toplevel2->Show(); | 802 toplevel2->Show(); |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
862 BubbleDelegateView* bubble_delegate = | 853 BubbleDelegateView* bubble_delegate = |
863 new BubbleDelegateView(view, BubbleBorder::NONE); | 854 new BubbleDelegateView(view, BubbleBorder::NONE); |
864 Widget* bubble_widget(BubbleDelegateView::CreateBubble(bubble_delegate)); | 855 Widget* bubble_widget(BubbleDelegateView::CreateBubble(bubble_delegate)); |
865 bubble_widget->Show(); | 856 bubble_widget->Show(); |
866 bubble_widget->CloseNow(); | 857 bubble_widget->CloseNow(); |
867 | 858 |
868 anchor->Hide(); | 859 anchor->Hide(); |
869 anchor->CloseNow(); | 860 anchor->CloseNow(); |
870 } | 861 } |
871 | 862 |
872 TEST_F(WidgetObserverTest, WidgetBoundsChanged) { | |
873 Widget* child1 = NewWidget(); | |
874 Widget* child2 = NewWidget(); | |
875 | |
876 child1->OnNativeWidgetMove(); | |
877 EXPECT_EQ(child1, widget_bounds_changed()); | |
878 | |
879 child2->OnNativeWidgetMove(); | |
880 EXPECT_EQ(child2, widget_bounds_changed()); | |
881 | |
882 child1->OnNativeWidgetSizeChanged(gfx::Size()); | |
883 EXPECT_EQ(child1, widget_bounds_changed()); | |
884 | |
885 child2->OnNativeWidgetSizeChanged(gfx::Size()); | |
886 EXPECT_EQ(child2, widget_bounds_changed()); | |
887 } | |
888 | |
889 #if !defined(USE_AURA) && defined(OS_WIN) | 863 #if !defined(USE_AURA) && defined(OS_WIN) |
890 // Aura needs shell to maximize/fullscreen window. | 864 // Aura needs shell to maximize/fullscreen window. |
891 // NativeWidgetGtk doesn't implement GetRestoredBounds. | 865 // NativeWidgetGtk doesn't implement GetRestoredBounds. |
892 TEST_F(WidgetTest, GetRestoredBounds) { | 866 TEST_F(WidgetTest, GetRestoredBounds) { |
893 Widget* toplevel = CreateTopLevelPlatformWidget(); | 867 Widget* toplevel = CreateTopLevelPlatformWidget(); |
894 EXPECT_EQ(toplevel->GetWindowBoundsInScreen().ToString(), | 868 EXPECT_EQ(toplevel->GetWindowBoundsInScreen().ToString(), |
895 toplevel->GetRestoredBounds().ToString()); | 869 toplevel->GetRestoredBounds().ToString()); |
896 toplevel->Show(); | 870 toplevel->Show(); |
897 toplevel->Maximize(); | 871 toplevel->Maximize(); |
898 RunPendingMessages(); | 872 RunPendingMessages(); |
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1023 EXPECT_TRUE(toplevel->OnKeyEvent(backspace_p)); | 997 EXPECT_TRUE(toplevel->OnKeyEvent(backspace_p)); |
1024 ui::KeyEvent backspace_r(ui::ET_KEY_RELEASED, ui::VKEY_DELETE, 0, false); | 998 ui::KeyEvent backspace_r(ui::ET_KEY_RELEASED, ui::VKEY_DELETE, 0, false); |
1025 EXPECT_FALSE(toplevel->OnKeyEvent(backspace_r)); | 999 EXPECT_FALSE(toplevel->OnKeyEvent(backspace_r)); |
1026 | 1000 |
1027 toplevel->Close(); | 1001 toplevel->Close(); |
1028 } | 1002 } |
1029 #endif // defined(USE_AURA) | 1003 #endif // defined(USE_AURA) |
1030 | 1004 |
1031 } // namespace | 1005 } // namespace |
1032 } // namespace views | 1006 } // namespace views |
OLD | NEW |