| Index: ui/keyboard/keyboard_controller_unittest.cc
|
| diff --git a/ui/keyboard/keyboard_controller_unittest.cc b/ui/keyboard/keyboard_controller_unittest.cc
|
| index 88a3647807954b396a5f9d0eb7b94c876dbac1f1..98e08957b22d3899c2db9a47e5740b27d08da4b9 100644
|
| --- a/ui/keyboard/keyboard_controller_unittest.cc
|
| +++ b/ui/keyboard/keyboard_controller_unittest.cc
|
| @@ -218,10 +218,17 @@ class KeyboardControllerTest : public testing::Test {
|
|
|
| void ShowKeyboard() {
|
| TestTextInputClient test_text_input_client(ui::TEXT_INPUT_TYPE_TEXT);
|
| - controller_->OnTextInputStateChanged(&test_text_input_client);
|
| + SetFocus(&test_text_input_client);
|
| }
|
|
|
| protected:
|
| + void SetFocus(ui::TextInputClient* client) {
|
| + ui::InputMethod* input_method = proxy()->GetInputMethod();
|
| + input_method->SetFocusedTextInputClient(client);
|
| + if (client && client->GetTextInputType() != ui::TEXT_INPUT_TYPE_NONE)
|
| + input_method->ShowImeIfNeeded();
|
| + }
|
| +
|
| bool WillHideKeyboard() {
|
| return controller_->WillHideKeyboard();
|
| }
|
| @@ -339,13 +346,11 @@ TEST_F(KeyboardControllerTest, EventHitTestingInContainer) {
|
| TEST_F(KeyboardControllerTest, VisibilityChangeWithTextInputTypeChange) {
|
| const gfx::Rect& root_bounds = root_window()->bounds();
|
|
|
| - ui::InputMethod* input_method = proxy()->GetInputMethod();
|
| TestTextInputClient input_client_0(ui::TEXT_INPUT_TYPE_TEXT);
|
| TestTextInputClient input_client_1(ui::TEXT_INPUT_TYPE_TEXT);
|
| TestTextInputClient input_client_2(ui::TEXT_INPUT_TYPE_TEXT);
|
| TestTextInputClient no_input_client_0(ui::TEXT_INPUT_TYPE_NONE);
|
| TestTextInputClient no_input_client_1(ui::TEXT_INPUT_TYPE_NONE);
|
| - input_method->SetFocusedTextInputClient(&input_client_0);
|
|
|
| aura::Window* keyboard_container(controller()->GetContainerWindow());
|
| scoped_ptr<KeyboardContainerObserver> keyboard_container_observer(
|
| @@ -353,9 +358,11 @@ TEST_F(KeyboardControllerTest, VisibilityChangeWithTextInputTypeChange) {
|
| keyboard_container->SetBounds(root_bounds);
|
| root_window()->AddChild(keyboard_container);
|
|
|
| + SetFocus(&input_client_0);
|
| +
|
| EXPECT_TRUE(keyboard_container->IsVisible());
|
|
|
| - input_method->SetFocusedTextInputClient(&no_input_client_0);
|
| + SetFocus(&no_input_client_0);
|
| // Keyboard should not immediately hide itself. It is delayed to avoid layout
|
| // flicker when the focus of input field quickly change.
|
| EXPECT_TRUE(keyboard_container->IsVisible());
|
| @@ -364,14 +371,14 @@ TEST_F(KeyboardControllerTest, VisibilityChangeWithTextInputTypeChange) {
|
| base::MessageLoop::current()->Run();
|
| EXPECT_FALSE(keyboard_container->IsVisible());
|
|
|
| - input_method->SetFocusedTextInputClient(&input_client_1);
|
| + SetFocus(&input_client_1);
|
| EXPECT_TRUE(keyboard_container->IsVisible());
|
|
|
| // Schedule to hide keyboard.
|
| - input_method->SetFocusedTextInputClient(&no_input_client_1);
|
| + SetFocus(&no_input_client_1);
|
| EXPECT_TRUE(WillHideKeyboard());
|
| // Cancel keyboard hide.
|
| - input_method->SetFocusedTextInputClient(&input_client_2);
|
| + SetFocus(&input_client_2);
|
|
|
| EXPECT_FALSE(WillHideKeyboard());
|
| EXPECT_TRUE(keyboard_container->IsVisible());
|
| @@ -380,12 +387,10 @@ TEST_F(KeyboardControllerTest, VisibilityChangeWithTextInputTypeChange) {
|
| TEST_F(KeyboardControllerTest, AlwaysVisibleWhenLocked) {
|
| const gfx::Rect& root_bounds = root_window()->bounds();
|
|
|
| - ui::InputMethod* input_method = proxy()->GetInputMethod();
|
| TestTextInputClient input_client_0(ui::TEXT_INPUT_TYPE_TEXT);
|
| TestTextInputClient input_client_1(ui::TEXT_INPUT_TYPE_TEXT);
|
| TestTextInputClient no_input_client_0(ui::TEXT_INPUT_TYPE_NONE);
|
| TestTextInputClient no_input_client_1(ui::TEXT_INPUT_TYPE_NONE);
|
| - input_method->SetFocusedTextInputClient(&input_client_0);
|
|
|
| aura::Window* keyboard_container(controller()->GetContainerWindow());
|
| scoped_ptr<KeyboardContainerObserver> keyboard_container_observer(
|
| @@ -393,24 +398,26 @@ TEST_F(KeyboardControllerTest, AlwaysVisibleWhenLocked) {
|
| keyboard_container->SetBounds(root_bounds);
|
| root_window()->AddChild(keyboard_container);
|
|
|
| + SetFocus(&input_client_0);
|
| +
|
| EXPECT_TRUE(keyboard_container->IsVisible());
|
|
|
| // Lock keyboard.
|
| controller()->set_lock_keyboard(true);
|
|
|
| - input_method->SetFocusedTextInputClient(&no_input_client_0);
|
| + SetFocus(&no_input_client_0);
|
| // Keyboard should not try to hide itself as it is locked.
|
| EXPECT_TRUE(keyboard_container->IsVisible());
|
| EXPECT_FALSE(WillHideKeyboard());
|
|
|
| - input_method->SetFocusedTextInputClient(&input_client_1);
|
| + SetFocus(&input_client_1);
|
| EXPECT_TRUE(keyboard_container->IsVisible());
|
|
|
| // Unlock keyboard.
|
| controller()->set_lock_keyboard(false);
|
|
|
| // Keyboard should hide when focus on no input client.
|
| - input_method->SetFocusedTextInputClient(&no_input_client_1);
|
| + SetFocus(&no_input_client_1);
|
| EXPECT_TRUE(WillHideKeyboard());
|
|
|
| // Wait for hide keyboard to finish.
|
| @@ -464,18 +471,17 @@ class KeyboardControllerUsabilityTest : public KeyboardControllerTest {
|
| TEST_F(KeyboardControllerUsabilityTest, KeyboardAlwaysVisibleInUsabilityTest) {
|
| const gfx::Rect& root_bounds = root_window()->bounds();
|
|
|
| - 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());
|
| keyboard_container->SetBounds(root_bounds);
|
| root_window()->AddChild(keyboard_container);
|
|
|
| + SetFocus(&input_client);
|
| EXPECT_TRUE(keyboard_container->IsVisible());
|
|
|
| - input_method->SetFocusedTextInputClient(&no_input_client);
|
| + SetFocus(&no_input_client);
|
| // Keyboard should not hide itself after lost focus.
|
| EXPECT_TRUE(keyboard_container->IsVisible());
|
| EXPECT_FALSE(WillHideKeyboard());
|
|
|