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

Side by Side Diff: ui/keyboard/keyboard_controller_unittest.cc

Issue 2445293002: Make the virtual keyboard show up on the display with input focus. (Closed)
Patch Set: fix one more compilation error on Windows Created 4 years 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 unified diff | Download patch
« no previous file with comments | « ui/keyboard/keyboard_controller.cc ('k') | ui/keyboard/keyboard_layout_delegate.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ui/keyboard/keyboard_controller.h" 5 #include "ui/keyboard/keyboard_controller.h"
6 6
7 #include <memory> 7 #include <memory>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after
159 if (!visible) 159 if (!visible)
160 run_loop_->QuitWhenIdle(); 160 run_loop_->QuitWhenIdle();
161 } 161 }
162 162
163 aura::Window* window_; 163 aura::Window* window_;
164 base::RunLoop* const run_loop_; 164 base::RunLoop* const run_loop_;
165 165
166 DISALLOW_COPY_AND_ASSIGN(KeyboardContainerObserver); 166 DISALLOW_COPY_AND_ASSIGN(KeyboardContainerObserver);
167 }; 167 };
168 168
169 class TestKeyboardLayoutDelegate : public KeyboardLayoutDelegate {
170 public:
171 TestKeyboardLayoutDelegate() {}
172 ~TestKeyboardLayoutDelegate() override {}
173
174 // Overridden from keyboard::KeyboardLayoutDelegate
175 void MoveKeyboardToDisplay(int64_t /* display_id */) override {}
176 void MoveKeyboardToTouchableDisplay() override {}
177
178 private:
179 DISALLOW_COPY_AND_ASSIGN(TestKeyboardLayoutDelegate);
180 };
181
169 } // namespace 182 } // namespace
170 183
171 class KeyboardControllerTest : public testing::Test, 184 class KeyboardControllerTest : public testing::Test,
172 public KeyboardControllerObserver { 185 public KeyboardControllerObserver {
173 public: 186 public:
174 KeyboardControllerTest() 187 KeyboardControllerTest()
175 : number_of_calls_(0), ui_(nullptr), keyboard_closed_(false) {} 188 : number_of_calls_(0), ui_(nullptr), keyboard_closed_(false) {}
176 ~KeyboardControllerTest() override {} 189 ~KeyboardControllerTest() override {}
177 190
178 void SetUp() override { 191 void SetUp() override {
179 // The ContextFactory must exist before any Compositors are created. 192 // The ContextFactory must exist before any Compositors are created.
180 bool enable_pixel_output = false; 193 bool enable_pixel_output = false;
181 ui::ContextFactory* context_factory = 194 ui::ContextFactory* context_factory =
182 ui::InitializeContextFactoryForTests(enable_pixel_output); 195 ui::InitializeContextFactoryForTests(enable_pixel_output);
183 196
184 ui::SetUpInputMethodFactoryForTesting(); 197 ui::SetUpInputMethodFactoryForTesting();
185 aura_test_helper_.reset(new aura::test::AuraTestHelper(&message_loop_)); 198 aura_test_helper_.reset(new aura::test::AuraTestHelper(&message_loop_));
186 aura_test_helper_->SetUp(context_factory); 199 aura_test_helper_->SetUp(context_factory);
187 new wm::DefaultActivationClient(aura_test_helper_->root_window()); 200 new wm::DefaultActivationClient(aura_test_helper_->root_window());
188 focus_controller_.reset(new TestFocusController(root_window())); 201 focus_controller_.reset(new TestFocusController(root_window()));
189 ui_ = new TestKeyboardUI(aura_test_helper_->host()->GetInputMethod()); 202 ui_ = new TestKeyboardUI(aura_test_helper_->host()->GetInputMethod());
190 controller_.reset(new KeyboardController(ui_)); 203 layout_delegate_.reset(new TestKeyboardLayoutDelegate());
204 controller_.reset(new KeyboardController(ui_, layout_delegate_.get()));
191 controller()->AddObserver(this); 205 controller()->AddObserver(this);
192 } 206 }
193 207
194 void TearDown() override { 208 void TearDown() override {
195 if (controller()) 209 if (controller())
196 controller()->RemoveObserver(this); 210 controller()->RemoveObserver(this);
197 controller_.reset(); 211 controller_.reset();
198 focus_controller_.reset(); 212 focus_controller_.reset();
199 aura_test_helper_->TearDown(); 213 aura_test_helper_->TearDown();
200 ui::TerminateContextFactoryForTests(); 214 ui::TerminateContextFactoryForTests();
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
259 void ResetController() { controller_.reset(); } 273 void ResetController() { controller_.reset(); }
260 274
261 base::MessageLoopForUI message_loop_; 275 base::MessageLoopForUI message_loop_;
262 std::unique_ptr<aura::test::AuraTestHelper> aura_test_helper_; 276 std::unique_ptr<aura::test::AuraTestHelper> aura_test_helper_;
263 std::unique_ptr<TestFocusController> focus_controller_; 277 std::unique_ptr<TestFocusController> focus_controller_;
264 278
265 private: 279 private:
266 int number_of_calls_; 280 int number_of_calls_;
267 gfx::Rect notified_bounds_; 281 gfx::Rect notified_bounds_;
268 KeyboardUI* ui_; 282 KeyboardUI* ui_;
283 std::unique_ptr<KeyboardLayoutDelegate> layout_delegate_;
269 std::unique_ptr<KeyboardController> controller_; 284 std::unique_ptr<KeyboardController> controller_;
270 std::unique_ptr<ui::TextInputClient> test_text_input_client_; 285 std::unique_ptr<ui::TextInputClient> test_text_input_client_;
271 bool keyboard_closed_; 286 bool keyboard_closed_;
272 DISALLOW_COPY_AND_ASSIGN(KeyboardControllerTest); 287 DISALLOW_COPY_AND_ASSIGN(KeyboardControllerTest);
273 }; 288 };
274 289
275 TEST_F(KeyboardControllerTest, KeyboardSize) { 290 TEST_F(KeyboardControllerTest, KeyboardSize) {
276 aura::Window* container(controller()->GetContainerWindow()); 291 aura::Window* container(controller()->GetContainerWindow());
277 aura::Window* keyboard(ui()->GetKeyboardWindow()); 292 aura::Window* keyboard(ui()->GetKeyboardWindow());
278 gfx::Rect screen_bounds = root_window()->bounds(); 293 gfx::Rect screen_bounds = root_window()->bounds();
(...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after
505 aura::Window* keyboard_container(controller()->GetContainerWindow()); 520 aura::Window* keyboard_container(controller()->GetContainerWindow());
506 std::unique_ptr<KeyboardContainerObserver> keyboard_container_observer( 521 std::unique_ptr<KeyboardContainerObserver> keyboard_container_observer(
507 new KeyboardContainerObserver(keyboard_container, &run_loop)); 522 new KeyboardContainerObserver(keyboard_container, &run_loop));
508 root_window()->AddChild(keyboard_container); 523 root_window()->AddChild(keyboard_container);
509 524
510 SetFocus(&input_client_0); 525 SetFocus(&input_client_0);
511 526
512 EXPECT_TRUE(keyboard_container->IsVisible()); 527 EXPECT_TRUE(keyboard_container->IsVisible());
513 528
514 // Lock keyboard. 529 // Lock keyboard.
515 controller()->set_lock_keyboard(true); 530 controller()->set_keyboard_locked(true);
516 531
517 SetFocus(&no_input_client_0); 532 SetFocus(&no_input_client_0);
518 // Keyboard should not try to hide itself as it is locked. 533 // Keyboard should not try to hide itself as it is locked.
519 EXPECT_TRUE(keyboard_container->IsVisible()); 534 EXPECT_TRUE(keyboard_container->IsVisible());
520 EXPECT_FALSE(WillHideKeyboard()); 535 EXPECT_FALSE(WillHideKeyboard());
521 536
522 SetFocus(&input_client_1); 537 SetFocus(&input_client_1);
523 EXPECT_TRUE(keyboard_container->IsVisible()); 538 EXPECT_TRUE(keyboard_container->IsVisible());
524 539
525 // Unlock keyboard. 540 // Unlock keyboard.
526 controller()->set_lock_keyboard(false); 541 controller()->set_keyboard_locked(false);
527 542
528 // Keyboard should hide when focus on no input client. 543 // Keyboard should hide when focus on no input client.
529 SetFocus(&no_input_client_1); 544 SetFocus(&no_input_client_1);
530 EXPECT_TRUE(WillHideKeyboard()); 545 EXPECT_TRUE(WillHideKeyboard());
531 546
532 // Wait for hide keyboard to finish. 547 // Wait for hide keyboard to finish.
533 run_loop.Run(); 548 run_loop.Run();
534 EXPECT_FALSE(keyboard_container->IsVisible()); 549 EXPECT_FALSE(keyboard_container->IsVisible());
535 keyboard::SetAccessibilityKeyboardEnabled(false); 550 keyboard::SetAccessibilityKeyboardEnabled(false);
536 } 551 }
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
682 gfx::Rect new_bounds(0, 0, 1280, 800); 697 gfx::Rect new_bounds(0, 0, 1280, 800);
683 ASSERT_NE(new_bounds, root_window()->bounds()); 698 ASSERT_NE(new_bounds, root_window()->bounds());
684 EXPECT_EQ(1, number_of_calls()); 699 EXPECT_EQ(1, number_of_calls());
685 root_window()->SetBounds(new_bounds); 700 root_window()->SetBounds(new_bounds);
686 EXPECT_EQ(2, number_of_calls()); 701 EXPECT_EQ(2, number_of_calls());
687 MockRotateScreen(); 702 MockRotateScreen();
688 EXPECT_EQ(3, number_of_calls()); 703 EXPECT_EQ(3, number_of_calls());
689 } 704 }
690 705
691 } // namespace keyboard 706 } // namespace keyboard
OLDNEW
« no previous file with comments | « ui/keyboard/keyboard_controller.cc ('k') | ui/keyboard/keyboard_layout_delegate.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698