Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(602)

Unified Diff: ui/keyboard/keyboard_controller_unittest.cc

Issue 29943002: Limit display of the virtual keyboard to state changes triggered from a user gesture. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: un-const ShowImeIfNeeded. Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/keyboard/keyboard_controller.cc ('k') | ui/views/controls/textfield/native_textfield_views.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/keyboard/keyboard_controller_unittest.cc
diff --git a/ui/keyboard/keyboard_controller_unittest.cc b/ui/keyboard/keyboard_controller_unittest.cc
index d79c9ba3d8220008bc148121eb79cacaf014ad4d..fda189bdafb7b5447efd6ca71bc1f7c4b105117c 100644
--- a/ui/keyboard/keyboard_controller_unittest.cc
+++ b/ui/keyboard/keyboard_controller_unittest.cc
@@ -216,10 +216,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();
}
@@ -297,13 +304,11 @@ TEST_F(KeyboardControllerTest, ClickDoesNotFocusKeyboard) {
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(
@@ -311,9 +316,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());
@@ -322,28 +329,27 @@ 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());
}
+
sadrul 2014/01/13 20:37:47 remove
kevers 2014/01/14 16:55:02 Done.
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(
@@ -351,24 +357,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.
@@ -422,18 +430,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());
« no previous file with comments | « ui/keyboard/keyboard_controller.cc ('k') | ui/views/controls/textfield/native_textfield_views.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698