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 |