Index: views/controls/combobox/native_combobox_views_unittest.cc |
diff --git a/views/controls/combobox/native_combobox_views_unittest.cc b/views/controls/combobox/native_combobox_views_unittest.cc |
deleted file mode 100644 |
index 30b03e1775cd95a818cb394188fdfbf3641efe1d..0000000000000000000000000000000000000000 |
--- a/views/controls/combobox/native_combobox_views_unittest.cc |
+++ /dev/null |
@@ -1,166 +0,0 @@ |
-// Copyright (c) 2011 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "base/utf_string_conversions.h" |
-#include "ui/base/keycodes/keyboard_codes.h" |
-#include "ui/base/models/combobox_model.h" |
-#include "ui/views/ime/mock_input_method.h" |
-#include "ui/views/test/views_test_base.h" |
-#include "ui/views/widget/native_widget_private.h" |
-#include "ui/views/widget/widget.h" |
-#include "views/controls/combobox/combobox.h" |
-#include "views/controls/combobox/native_combobox_views.h" |
- |
-namespace { |
- |
-// A wrapper of Combobox to intercept the result of OnKeyPressed() and |
-// OnKeyReleased() methods. |
-class TestCombobox : public views::Combobox { |
- public: |
- TestCombobox(ui::ComboboxModel* model) |
- : Combobox(model), |
- key_handled_(false), |
- key_received_(false) { |
- } |
- |
- virtual bool OnKeyPressed(const views::KeyEvent& e) OVERRIDE { |
- key_received_ = true; |
- key_handled_ = views::Combobox::OnKeyPressed(e); |
- return key_handled_; |
- } |
- |
- virtual bool OnKeyReleased(const views::KeyEvent& e) OVERRIDE { |
- key_received_ = true; |
- key_handled_ = views::Combobox::OnKeyReleased(e); |
- return key_handled_; |
- } |
- |
- bool key_handled() const { return key_handled_; } |
- bool key_received() const { return key_received_; } |
- |
- void clear() { |
- key_received_ = key_handled_ = false; |
- } |
- |
- private: |
- bool key_handled_; |
- bool key_received_; |
- |
- DISALLOW_COPY_AND_ASSIGN(TestCombobox); |
-}; |
- |
-// A concrete class is needed to test the combobox |
-class TestComboboxModel : public ui::ComboboxModel { |
- public: |
- TestComboboxModel() {} |
- virtual ~TestComboboxModel() {} |
- virtual int GetItemCount() { |
- return 4; |
- } |
- virtual string16 GetItemAt(int index) { |
- EXPECT_GE(index, 0); |
- EXPECT_LT(index, GetItemCount()); |
- return string16(); |
- } |
- private: |
- DISALLOW_COPY_AND_ASSIGN(TestComboboxModel); |
-}; |
- |
-} // namespace |
- |
-namespace views { |
- |
-class NativeComboboxViewsTest : public ViewsTestBase { |
- public: |
- NativeComboboxViewsTest() |
- : widget_(NULL), |
- combobox_(NULL), |
- combobox_view_(NULL), |
- model_(NULL), |
- input_method_(NULL) { |
- } |
- |
- // ::testing::Test: |
- virtual void SetUp() { |
- ViewsTestBase::SetUp(); |
- Widget::SetPureViews(true); |
- } |
- |
- virtual void TearDown() { |
- Widget::SetPureViews(false); |
- if (widget_) |
- widget_->Close(); |
- ViewsTestBase::TearDown(); |
- } |
- |
- void InitCombobox() { |
- model_.reset(new TestComboboxModel()); |
- |
- ASSERT_FALSE(combobox_); |
- combobox_ = new TestCombobox(model_.get()); |
- combobox_->set_id(1); |
- |
- widget_ = new Widget; |
- Widget::InitParams params(Widget::InitParams::TYPE_POPUP); |
- params.bounds = gfx::Rect(100, 100, 100, 100); |
- widget_->Init(params); |
- View* container = new View(); |
- widget_->SetContentsView(container); |
- container->AddChildView(combobox_); |
- |
- combobox_view_ = static_cast<NativeComboboxViews*>( |
- combobox_->GetNativeWrapperForTesting()); |
- ASSERT_TRUE(combobox_view_); |
- |
- input_method_ = new MockInputMethod(); |
- widget_->ReplaceInputMethod(input_method_); |
- |
- // Assumes the Widget is always focused. |
- input_method_->OnFocus(); |
- |
- combobox_->RequestFocus(); |
- } |
- |
- protected: |
- void SendKeyEvent(ui::KeyboardCode key_code) { |
- KeyEvent event(ui::ET_KEY_PRESSED, key_code, 0); |
- input_method_->DispatchKeyEvent(event); |
- } |
- |
- View* GetFocusedView() { |
- return widget_->GetFocusManager()->GetFocusedView(); |
- } |
- |
- // We need widget to populate wrapper class. |
- Widget* widget_; |
- |
- // combobox_ will be allocated InitCombobox() and then owned by widget_. |
- TestCombobox* combobox_; |
- |
- // combobox_view_ is the pointer to the pure Views interface of combobox_. |
- NativeComboboxViews* combobox_view_; |
- |
- // Combobox does not take ownership of model_, which needs to be scoped. |
- scoped_ptr<ui::ComboboxModel> model_; |
- |
- // For testing input method related behaviors. |
- MockInputMethod* input_method_; |
-}; |
- |
-TEST_F(NativeComboboxViewsTest, KeyTest) { |
- InitCombobox(); |
- SendKeyEvent(ui::VKEY_END); |
- EXPECT_EQ(combobox_->selected_item() + 1, model_->GetItemCount()); |
- SendKeyEvent(ui::VKEY_HOME); |
- EXPECT_EQ(combobox_->selected_item(), 0); |
- SendKeyEvent(ui::VKEY_DOWN); |
- SendKeyEvent(ui::VKEY_DOWN); |
- EXPECT_EQ(combobox_->selected_item(), 2); |
- SendKeyEvent(ui::VKEY_RIGHT); |
- EXPECT_EQ(combobox_->selected_item(), 2); |
- SendKeyEvent(ui::VKEY_LEFT); |
- EXPECT_EQ(combobox_->selected_item(), 2); |
-} |
- |
-} // namespace views |