Chromium Code Reviews| Index: ui/views/focus/focus_manager_unittest.cc |
| diff --git a/ui/views/focus/focus_manager_unittest.cc b/ui/views/focus/focus_manager_unittest.cc |
| index b121e447441a19e645795498b20d7b70a249d2b4..c545bb81cf052e92f1f3b43cd5873eba1ea3bc23 100644 |
| --- a/ui/views/focus/focus_manager_unittest.cc |
| +++ b/ui/views/focus/focus_manager_unittest.cc |
| @@ -2,6 +2,9 @@ |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| +#include <utility> |
| +#include <vector> |
| + |
| #include "base/utf_string_conversions.h" |
| #include "ui/base/accelerators/accelerator.h" |
| #include "ui/base/keycodes/keyboard_codes.h" |
| @@ -10,6 +13,7 @@ |
| #include "ui/views/focus/accelerator_handler.h" |
| #include "ui/views/focus/focus_manager_factory.h" |
| #include "ui/views/focus/focus_manager_test.h" |
| +#include "ui/views/focus/widget_focus_manager.h" |
| #include "ui/views/widget/widget.h" |
| #if !defined(USE_AURA) |
| @@ -115,6 +119,41 @@ TEST_F(FocusManagerTest, FocusChangeListener) { |
| EXPECT_TRUE(listener.focus_changes()[0] == ViewPair(view2, null_view)); |
| } |
| +TEST_F(FocusManagerTest, WidgetFocusChangeListener) { |
|
Daniel Erat
2012/06/18 19:25:15
This test times out on non-Aura Windows. I know n
|
| + TestWidgetFocusChangeListener widget_listener; |
| + AddWidgetFocusChangeListener(&widget_listener); |
| + |
| + Widget::InitParams params; |
| + params.type = views::Widget::InitParams::TYPE_WINDOW; |
| + params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; |
| + params.bounds = gfx::Rect(10, 10, 100, 100); |
| + params.parent_widget = GetWidget(); |
| + |
| + scoped_ptr<Widget> widget1(new Widget); |
| + widget1->Init(params); |
| + widget1->Show(); |
| + |
| + scoped_ptr<Widget> widget2(new Widget); |
| + widget2->Init(params); |
| + widget2->Show(); |
| + |
| + widget_listener.ClearFocusChanges(); |
| + gfx::NativeView native_view1 = widget1->GetNativeView(); |
| + GetWidget()->FocusNativeView(native_view1); |
| + ASSERT_EQ(2, static_cast<int>(widget_listener.focus_changes().size())); |
| + EXPECT_EQ(native_view1, widget_listener.focus_changes()[0].second); |
| + EXPECT_EQ(native_view1, widget_listener.focus_changes()[1].second); |
| + |
| + widget_listener.ClearFocusChanges(); |
| + gfx::NativeView native_view2 = widget2->GetNativeView(); |
| + GetWidget()->FocusNativeView(native_view2); |
| + ASSERT_EQ(2, static_cast<int>(widget_listener.focus_changes().size())); |
| + EXPECT_EQ(NativeViewPair(native_view1, native_view2), |
| + widget_listener.focus_changes()[0]); |
| + EXPECT_EQ(NativeViewPair(native_view1, native_view2), |
| + widget_listener.focus_changes()[1]); |
| +} |
| + |
| #if !defined(USE_AURA) |
| class TestTextfield : public Textfield { |
| public: |