Chromium Code Reviews| Index: ui/keyboard/keyboard_controller_unittest.cc |
| diff --git a/ui/keyboard/keyboard_controller_unittest.cc b/ui/keyboard/keyboard_controller_unittest.cc |
| index 407cc6a1835ae7bccb1c0ef2f9fd1dc737e6b002..39a18a5f67893a5f344906b72d3a2d8142e0d3d6 100644 |
| --- a/ui/keyboard/keyboard_controller_unittest.cc |
| +++ b/ui/keyboard/keyboard_controller_unittest.cc |
| @@ -3,6 +3,7 @@ |
| // found in the LICENSE file. |
| #include "base/bind.h" |
| +#include "base/command_line.h" |
| #include "base/memory/scoped_ptr.h" |
| #include "base/message_loop/message_loop.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| @@ -19,6 +20,7 @@ |
| #include "ui/gfx/rect.h" |
| #include "ui/keyboard/keyboard_controller.h" |
| #include "ui/keyboard/keyboard_controller_proxy.h" |
| +#include "ui/keyboard/keyboard_switches.h" |
| namespace keyboard { |
| namespace { |
| @@ -187,7 +189,7 @@ class KeyboardContainerObserver : public aura::WindowObserver { |
| class KeyboardControllerTest : public testing::Test { |
| public: |
| - KeyboardControllerTest() {} |
| + KeyboardControllerTest() : command_line_(CommandLine::NO_PROGRAM) {} |
| virtual ~KeyboardControllerTest() {} |
| virtual void SetUp() OVERRIDE { |
| @@ -208,6 +210,11 @@ class KeyboardControllerTest : public testing::Test { |
| KeyboardControllerProxy* proxy() { return proxy_; } |
| KeyboardController* controller() { return controller_.get(); } |
| + void AppendSwitch(const std::string& switch_string) { |
| + command_line_.AppendSwitch(switch_string); |
| + controller_->set_command_line_for_testing(&command_line_); |
|
sadrul
2013/10/24 01:21:01
You don't do this.
For this kind of tests, where
bshe
2013/10/24 03:35:36
eh. I followed the pattern that is used in desktop
|
| + } |
| + |
| void ShowKeyboard() { |
| TestTextInputClient test_text_input_client(ui::TEXT_INPUT_TYPE_TEXT); |
| controller_->OnTextInputStateChanged(&test_text_input_client); |
| @@ -223,6 +230,9 @@ class KeyboardControllerTest : public testing::Test { |
| scoped_ptr<TestFocusController> focus_controller_; |
| private: |
| + // Custom command line passed to KeyboardController by AppendSwitch(). |
| + CommandLine command_line_; |
| + |
| KeyboardControllerProxy* proxy_; |
| scoped_ptr<KeyboardController> controller_; |
| @@ -329,4 +339,27 @@ TEST_F(KeyboardControllerTest, VisibilityChangeWithTextInputTypeChange) { |
| EXPECT_TRUE(keyboard_container->IsVisible()); |
| } |
| +TEST_F(KeyboardControllerTest, KeyboardAlwaysVisibleInKeyboardUsabilityTest) { |
| + const gfx::Rect& root_bounds = root_window()->bounds(); |
| + |
| + AppendSwitch(switches::kKeyboardUsabilityTest); |
| + ui::InputMethod* input_method = proxy()->GetInputMethod(); |
| + TestTextInputClient input_client(ui::TEXT_INPUT_TYPE_TEXT); |
| + TestTextInputClient no_input_client(ui::TEXT_INPUT_TYPE_NONE); |
| + input_method->SetFocusedTextInputClient(&input_client); |
| + |
| + aura::Window* keyboard_container(controller()->GetContainerWindow()); |
| + scoped_ptr<KeyboardContainerObserver> keyboard_container_observer( |
| + new KeyboardContainerObserver(keyboard_container)); |
| + keyboard_container->SetBounds(root_bounds); |
| + root_window()->AddChild(keyboard_container); |
| + |
| + EXPECT_TRUE(keyboard_container->IsVisible()); |
| + |
| + input_method->SetFocusedTextInputClient(&no_input_client); |
| + // Keyboard should not hide itself after lost focus. |
| + EXPECT_TRUE(keyboard_container->IsVisible()); |
| + EXPECT_FALSE(WillHideKeyboard()); |
| +} |
| + |
| } // namespace keyboard |