| Index: ui/views/view_unittest.cc
|
| diff --git a/ui/views/view_unittest.cc b/ui/views/view_unittest.cc
|
| index e9af12ad5a964d0a67207326d15e99dbd2163f12..f40f5b258b2369c81f53916bb761460ea9807bc2 100644
|
| --- a/ui/views/view_unittest.cc
|
| +++ b/ui/views/view_unittest.cc
|
| @@ -2103,28 +2103,57 @@ bool TestView::AcceleratorPressed(const ui::Accelerator& accelerator) {
|
| return true;
|
| }
|
|
|
| +namespace {
|
| +
|
| +class TestViewWidget {
|
| + public:
|
| + TestViewWidget(const Widget::InitParams& create_params,
|
| + ui::Accelerator* initial_accelerator,
|
| + bool show_after_init = true)
|
| + : view_(new TestView) {
|
| + view_->Reset();
|
| +
|
| + // Register a keyboard accelerator before the view is added to a window.
|
| + if (initial_accelerator) {
|
| + view_->AddAccelerator(*initial_accelerator);
|
| + EXPECT_EQ(view_->accelerator_count_map_[*initial_accelerator], 0);
|
| + }
|
| +
|
| + // Create a window and add the view as its child.
|
| + Widget::InitParams params = create_params;
|
| + params.ownership = Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
|
| + params.bounds = gfx::Rect(0, 0, 100, 100);
|
| + widget_.Init(params);
|
| + View* root = widget_.GetRootView();
|
| + root->AddChildView(view_);
|
| + if (show_after_init)
|
| + widget_.Show();
|
| +
|
| + EXPECT_TRUE(widget_.GetFocusManager());
|
| + }
|
| +
|
| + TestView* view() { return view_; }
|
| + Widget* widget() { return &widget_; }
|
| +
|
| + private:
|
| + TestView* view_;
|
| + Widget widget_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(TestViewWidget);
|
| +};
|
| +
|
| +} // namespace
|
| +
|
| // On non-ChromeOS aura there is extra logic to determine whether a view should
|
| // handle accelerators or not (see View::CanHandleAccelerators for details).
|
| // This test targets that extra logic, but should also work on other platforms.
|
| TEST_F(ViewTest, HandleAccelerator) {
|
| ui::Accelerator return_accelerator(ui::VKEY_RETURN, ui::EF_NONE);
|
| - TestView* view = new TestView();
|
| - view->Reset();
|
| - view->AddAccelerator(return_accelerator);
|
| - EXPECT_EQ(view->accelerator_count_map_[return_accelerator], 0);
|
| -
|
| - // Create a window and add the view as its child.
|
| - std::unique_ptr<Widget> widget(new Widget);
|
| - Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP);
|
| - params.ownership = Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
|
| - params.bounds = gfx::Rect(0, 0, 100, 100);
|
| - widget->Init(params);
|
| - View* root = widget->GetRootView();
|
| - root->AddChildView(view);
|
| - widget->Show();
|
| -
|
| + TestViewWidget test_widget(CreateParams(Widget::InitParams::TYPE_POPUP),
|
| + &return_accelerator);
|
| + TestView* view = test_widget.view();
|
| + Widget* widget = test_widget.widget();
|
| FocusManager* focus_manager = widget->GetFocusManager();
|
| - ASSERT_TRUE(focus_manager);
|
|
|
| #if defined(USE_AURA) && !defined(OS_CHROMEOS)
|
| // When a non-child view is not active, it shouldn't handle accelerators.
|
| @@ -2181,30 +2210,12 @@ TEST_F(ViewTest, HandleAccelerator) {
|
| #endif
|
| }
|
|
|
| -// TODO: these tests were initially commented out when getting aura to
|
| -// run. Figure out if still valuable and either nuke or fix.
|
| -#if 0
|
| TEST_F(ViewTest, ActivateAccelerator) {
|
| - // Register a keyboard accelerator before the view is added to a window.
|
| ui::Accelerator return_accelerator(ui::VKEY_RETURN, ui::EF_NONE);
|
| - TestView* view = new TestView();
|
| - view->Reset();
|
| - view->AddAccelerator(return_accelerator);
|
| - EXPECT_EQ(view->accelerator_count_map_[return_accelerator], 0);
|
| -
|
| - // Create a window and add the view as its child.
|
| - std::unique_ptr<Widget> widget(new Widget);
|
| - Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP);
|
| - params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
|
| - params.bounds = gfx::Rect(0, 0, 100, 100);
|
| - widget->Init(params);
|
| - View* root = widget->GetRootView();
|
| - root->AddChildView(view);
|
| - widget->Show();
|
| -
|
| - // Get the focus manager.
|
| - FocusManager* focus_manager = widget->GetFocusManager();
|
| - ASSERT_TRUE(focus_manager);
|
| + TestViewWidget test_widget(CreateParams(Widget::InitParams::TYPE_POPUP),
|
| + &return_accelerator);
|
| + TestView* view = test_widget.view();
|
| + FocusManager* focus_manager = test_widget.widget()->GetFocusManager();
|
|
|
| // Hit the return key and see if it takes effect.
|
| EXPECT_TRUE(focus_manager->ProcessAccelerator(return_accelerator));
|
| @@ -2245,55 +2256,29 @@ TEST_F(ViewTest, ActivateAccelerator) {
|
| EXPECT_FALSE(focus_manager->ProcessAccelerator(escape_accelerator));
|
| EXPECT_EQ(view->accelerator_count_map_[return_accelerator], 2);
|
| EXPECT_EQ(view->accelerator_count_map_[escape_accelerator], 2);
|
| -
|
| - widget->CloseNow();
|
| }
|
|
|
| TEST_F(ViewTest, HiddenViewWithAccelerator) {
|
| ui::Accelerator return_accelerator(ui::VKEY_RETURN, ui::EF_NONE);
|
| - TestView* view = new TestView();
|
| - view->Reset();
|
| - view->AddAccelerator(return_accelerator);
|
| - EXPECT_EQ(view->accelerator_count_map_[return_accelerator], 0);
|
| -
|
| - std::unique_ptr<Widget> widget(new Widget);
|
| - Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP);
|
| - params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
|
| - params.bounds = gfx::Rect(0, 0, 100, 100);
|
| - widget->Init(params);
|
| - View* root = widget->GetRootView();
|
| - root->AddChildView(view);
|
| - widget->Show();
|
| -
|
| - FocusManager* focus_manager = widget->GetFocusManager();
|
| - ASSERT_TRUE(focus_manager);
|
| + TestViewWidget test_widget(CreateParams(Widget::InitParams::TYPE_POPUP),
|
| + &return_accelerator);
|
| + TestView* view = test_widget.view();
|
| + FocusManager* focus_manager = test_widget.widget()->GetFocusManager();
|
|
|
| view->SetVisible(false);
|
| EXPECT_FALSE(focus_manager->ProcessAccelerator(return_accelerator));
|
|
|
| view->SetVisible(true);
|
| EXPECT_TRUE(focus_manager->ProcessAccelerator(return_accelerator));
|
| -
|
| - widget->CloseNow();
|
| }
|
|
|
| TEST_F(ViewTest, ViewInHiddenWidgetWithAccelerator) {
|
| ui::Accelerator return_accelerator(ui::VKEY_RETURN, ui::EF_NONE);
|
| - TestView* view = new TestView();
|
| - view->Reset();
|
| - view->AddAccelerator(return_accelerator);
|
| - EXPECT_EQ(view->accelerator_count_map_[return_accelerator], 0);
|
| -
|
| - std::unique_ptr<Widget> widget(new Widget);
|
| - Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP);
|
| - params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
|
| - params.bounds = gfx::Rect(0, 0, 100, 100);
|
| - widget->Init(params);
|
| - View* root = widget->GetRootView();
|
| - root->AddChildView(view);
|
| -
|
| - FocusManager* focus_manager = widget->GetFocusManager();
|
| - ASSERT_TRUE(focus_manager);
|
| + TestViewWidget test_widget(CreateParams(Widget::InitParams::TYPE_POPUP),
|
| + &return_accelerator, false);
|
| + TestView* view = test_widget.view();
|
| + Widget* widget = test_widget.widget();
|
| + FocusManager* focus_manager = test_widget.widget()->GetFocusManager();
|
|
|
| EXPECT_FALSE(focus_manager->ProcessAccelerator(return_accelerator));
|
| EXPECT_EQ(0, view->accelerator_count_map_[return_accelerator]);
|
| @@ -2305,10 +2290,10 @@ TEST_F(ViewTest, ViewInHiddenWidgetWithAccelerator) {
|
| widget->Hide();
|
| EXPECT_FALSE(focus_manager->ProcessAccelerator(return_accelerator));
|
| EXPECT_EQ(1, view->accelerator_count_map_[return_accelerator]);
|
| -
|
| - widget->CloseNow();
|
| }
|
|
|
| +#if 0
|
| +
|
| ////////////////////////////////////////////////////////////////////////////////
|
| // Mouse-wheel message rerouting
|
| ////////////////////////////////////////////////////////////////////////////////
|
|
|