| 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 <algorithm> | 5 #include <algorithm> |
| 6 #include <set> | 6 #include <set> |
| 7 | 7 |
| 8 #include "base/basictypes.h" | 8 #include "base/basictypes.h" |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
| (...skipping 933 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 944 | 944 |
| 945 toplevel->Close(); | 945 toplevel->Close(); |
| 946 } | 946 } |
| 947 | 947 |
| 948 // Verifies bubbles result in a focus lost when shown. | 948 // Verifies bubbles result in a focus lost when shown. |
| 949 // TODO(msw): this tests relies on focus, it needs to be in | 949 // TODO(msw): this tests relies on focus, it needs to be in |
| 950 // interactive_ui_tests. | 950 // interactive_ui_tests. |
| 951 TEST_F(WidgetTest, DISABLED_FocusChangesOnBubble) { | 951 TEST_F(WidgetTest, DISABLED_FocusChangesOnBubble) { |
| 952 // Create a widget, show and activate it and focus the contents view. | 952 // Create a widget, show and activate it and focus the contents view. |
| 953 View* contents_view = new View; | 953 View* contents_view = new View; |
| 954 contents_view->set_focusable(true); | 954 contents_view->SetFocusable(true); |
| 955 Widget widget; | 955 Widget widget; |
| 956 Widget::InitParams init_params = | 956 Widget::InitParams init_params = |
| 957 CreateParams(Widget::InitParams::TYPE_WINDOW_FRAMELESS); | 957 CreateParams(Widget::InitParams::TYPE_WINDOW_FRAMELESS); |
| 958 init_params.bounds = gfx::Rect(0, 0, 200, 200); | 958 init_params.bounds = gfx::Rect(0, 0, 200, 200); |
| 959 init_params.ownership = Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; | 959 init_params.ownership = Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; |
| 960 #if !defined(OS_CHROMEOS) | 960 #if !defined(OS_CHROMEOS) |
| 961 init_params.native_widget = new DesktopNativeWidgetAura(&widget); | 961 init_params.native_widget = new DesktopNativeWidgetAura(&widget); |
| 962 #endif | 962 #endif |
| 963 widget.Init(init_params); | 963 widget.Init(init_params); |
| 964 widget.SetContentsView(contents_view); | 964 widget.SetContentsView(contents_view); |
| 965 widget.Show(); | 965 widget.Show(); |
| 966 widget.Activate(); | 966 widget.Activate(); |
| 967 contents_view->RequestFocus(); | 967 contents_view->RequestFocus(); |
| 968 EXPECT_TRUE(contents_view->HasFocus()); | 968 EXPECT_TRUE(contents_view->HasFocus()); |
| 969 | 969 |
| 970 // Show a bubble. | 970 // Show a bubble. |
| 971 BubbleDelegateView* bubble_delegate_view = | 971 BubbleDelegateView* bubble_delegate_view = |
| 972 new BubbleDelegateView(contents_view, BubbleBorder::TOP_LEFT); | 972 new BubbleDelegateView(contents_view, BubbleBorder::TOP_LEFT); |
| 973 bubble_delegate_view->set_focusable(true); | 973 bubble_delegate_view->SetFocusable(true); |
| 974 BubbleDelegateView::CreateBubble(bubble_delegate_view)->Show(); | 974 BubbleDelegateView::CreateBubble(bubble_delegate_view)->Show(); |
| 975 bubble_delegate_view->RequestFocus(); | 975 bubble_delegate_view->RequestFocus(); |
| 976 | 976 |
| 977 // |contents_view_| should no longer have focus. | 977 // |contents_view_| should no longer have focus. |
| 978 EXPECT_FALSE(contents_view->HasFocus()); | 978 EXPECT_FALSE(contents_view->HasFocus()); |
| 979 EXPECT_TRUE(bubble_delegate_view->HasFocus()); | 979 EXPECT_TRUE(bubble_delegate_view->HasFocus()); |
| 980 | 980 |
| 981 bubble_delegate_view->GetWidget()->CloseNow(); | 981 bubble_delegate_view->GetWidget()->CloseNow(); |
| 982 | 982 |
| 983 // Closing the bubble should result in focus going back to the contents view. | 983 // Closing the bubble should result in focus going back to the contents view. |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1045 return received_paint_while_hidden_; | 1045 return received_paint_while_hidden_; |
| 1046 } | 1046 } |
| 1047 | 1047 |
| 1048 private: | 1048 private: |
| 1049 bool expect_paint_; | 1049 bool expect_paint_; |
| 1050 bool received_paint_while_hidden_; | 1050 bool received_paint_while_hidden_; |
| 1051 }; | 1051 }; |
| 1052 | 1052 |
| 1053 TEST_F(WidgetTest, DesktopNativeWidgetAuraNoPaintAfterCloseTest) { | 1053 TEST_F(WidgetTest, DesktopNativeWidgetAuraNoPaintAfterCloseTest) { |
| 1054 View* contents_view = new View; | 1054 View* contents_view = new View; |
| 1055 contents_view->set_focusable(true); | 1055 contents_view->SetFocusable(true); |
| 1056 DesktopAuraTestValidPaintWidget widget; | 1056 DesktopAuraTestValidPaintWidget widget; |
| 1057 Widget::InitParams init_params = | 1057 Widget::InitParams init_params = |
| 1058 CreateParams(Widget::InitParams::TYPE_WINDOW_FRAMELESS); | 1058 CreateParams(Widget::InitParams::TYPE_WINDOW_FRAMELESS); |
| 1059 init_params.bounds = gfx::Rect(0, 0, 200, 200); | 1059 init_params.bounds = gfx::Rect(0, 0, 200, 200); |
| 1060 init_params.ownership = Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; | 1060 init_params.ownership = Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; |
| 1061 init_params.native_widget = new DesktopNativeWidgetAura(&widget); | 1061 init_params.native_widget = new DesktopNativeWidgetAura(&widget); |
| 1062 widget.Init(init_params); | 1062 widget.Init(init_params); |
| 1063 widget.SetContentsView(contents_view); | 1063 widget.SetContentsView(contents_view); |
| 1064 widget.Show(); | 1064 widget.Show(); |
| 1065 widget.Activate(); | 1065 widget.Activate(); |
| 1066 RunPendingMessages(); | 1066 RunPendingMessages(); |
| 1067 widget.SchedulePaintInRect(init_params.bounds); | 1067 widget.SchedulePaintInRect(init_params.bounds); |
| 1068 widget.Close(); | 1068 widget.Close(); |
| 1069 RunPendingMessages(); | 1069 RunPendingMessages(); |
| 1070 EXPECT_FALSE(widget.received_paint_while_hidden()); | 1070 EXPECT_FALSE(widget.received_paint_while_hidden()); |
| 1071 } | 1071 } |
| 1072 | 1072 |
| 1073 TEST_F(WidgetTest, DesktopNativeWidgetAuraNoPaintAfterHideTest) { | 1073 TEST_F(WidgetTest, DesktopNativeWidgetAuraNoPaintAfterHideTest) { |
| 1074 View* contents_view = new View; | 1074 View* contents_view = new View; |
| 1075 contents_view->set_focusable(true); | 1075 contents_view->SetFocusable(true); |
| 1076 DesktopAuraTestValidPaintWidget widget; | 1076 DesktopAuraTestValidPaintWidget widget; |
| 1077 Widget::InitParams init_params = | 1077 Widget::InitParams init_params = |
| 1078 CreateParams(Widget::InitParams::TYPE_WINDOW_FRAMELESS); | 1078 CreateParams(Widget::InitParams::TYPE_WINDOW_FRAMELESS); |
| 1079 init_params.bounds = gfx::Rect(0, 0, 200, 200); | 1079 init_params.bounds = gfx::Rect(0, 0, 200, 200); |
| 1080 init_params.ownership = Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; | 1080 init_params.ownership = Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; |
| 1081 init_params.native_widget = new DesktopNativeWidgetAura(&widget); | 1081 init_params.native_widget = new DesktopNativeWidgetAura(&widget); |
| 1082 widget.Init(init_params); | 1082 widget.Init(init_params); |
| 1083 widget.SetContentsView(contents_view); | 1083 widget.SetContentsView(contents_view); |
| 1084 widget.Show(); | 1084 widget.Show(); |
| 1085 widget.Activate(); | 1085 widget.Activate(); |
| (...skipping 1148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2234 EXPECT_EQ(activate_result, MA_ACTIVATE); | 2234 EXPECT_EQ(activate_result, MA_ACTIVATE); |
| 2235 | 2235 |
| 2236 modal_dialog_widget->CloseNow(); | 2236 modal_dialog_widget->CloseNow(); |
| 2237 top_level_widget.CloseNow(); | 2237 top_level_widget.CloseNow(); |
| 2238 } | 2238 } |
| 2239 #endif | 2239 #endif |
| 2240 #endif | 2240 #endif |
| 2241 | 2241 |
| 2242 } // namespace test | 2242 } // namespace test |
| 2243 } // namespace views | 2243 } // namespace views |
| OLD | NEW |