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

Unified Diff: ash/root_window_controller_unittest.cc

Issue 276483002: Fix calculation of usable area of screen when VK is shown. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add unit test Created 6 years, 7 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 | « no previous file | chrome/browser/ui/ash/ash_keyboard_controller_proxy.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ash/root_window_controller_unittest.cc
diff --git a/ash/root_window_controller_unittest.cc b/ash/root_window_controller_unittest.cc
index 3edd28013e160131fde6d374312f1c40f5da724c..e051a74e323471b405a2c86397827fe368d47468 100644
--- a/ash/root_window_controller_unittest.cc
+++ b/ash/root_window_controller_unittest.cc
@@ -25,6 +25,10 @@
#include "ui/aura/window.h"
#include "ui/aura/window_event_dispatcher.h"
#include "ui/aura/window_tracker.h"
+#include "ui/base/ime/dummy_text_input_client.h"
+#include "ui/base/ime/input_method.h"
+#include "ui/base/ime/input_method_factory.h"
+#include "ui/base/ime/text_input_client.h"
#include "ui/events/test/test_event_handler.h"
#include "ui/keyboard/keyboard_controller_proxy.h"
#include "ui/keyboard/keyboard_switches.h"
@@ -605,6 +609,7 @@ class VirtualKeyboardRootWindowControllerTest : public RootWindowControllerTest
virtual ~VirtualKeyboardRootWindowControllerTest() {};
virtual void SetUp() OVERRIDE {
+ ui::SetUpInputMethodFactoryForTesting();
CommandLine::ForCurrentProcess()->AppendSwitch(
keyboard::switches::kEnableVirtualKeyboard);
test::AshTestBase::SetUp();
@@ -616,6 +621,23 @@ class VirtualKeyboardRootWindowControllerTest : public RootWindowControllerTest
DISALLOW_COPY_AND_ASSIGN(VirtualKeyboardRootWindowControllerTest);
};
+class MockTextInputClient : public ui::DummyTextInputClient {
+ public:
+ MockTextInputClient() :
+ ui::DummyTextInputClient(ui::TEXT_INPUT_TYPE_TEXT) {}
+
+ virtual void EnsureCaretInRect(const gfx::Rect& rect) OVERRIDE {
+ visible_rect_ = rect;
+ }
+
+ gfx::Rect& visible_rect() {
oshima 2014/05/12 18:09:59 const const ?
kevers 2014/05/13 00:07:49 Done.
+ return visible_rect_;
+ }
+
+ private:
+ gfx::Rect visible_rect_;
oshima 2014/05/12 18:09:59 DISALLOW_COPY_AND_ASSIGN
kevers 2014/05/13 00:07:49 Done.
+};
+
// Test for http://crbug.com/297858. Virtual keyboard container should only show
// on primary root window.
TEST_F(VirtualKeyboardRootWindowControllerTest,
@@ -766,5 +788,35 @@ TEST_F(VirtualKeyboardRootWindowControllerTest, ClickWithActiveModalDialog) {
root_window->RemovePreTargetHandler(&handler);
}
+// Ensure that the visible area for scrolling the text caret excludes the
+// region occluded by the on-screen keyboard.
+TEST_F(VirtualKeyboardRootWindowControllerTest, EnsureCaretInWorkArea) {
+ keyboard::KeyboardController* keyboard_controller =
+ keyboard::KeyboardController::GetInstance();
+ keyboard::KeyboardControllerProxy* proxy = keyboard_controller->proxy();
+
+ MockTextInputClient text_input_client;
+ ui::InputMethod* input_method = proxy->GetInputMethod();
+ input_method->SetFocusedTextInputClient(&text_input_client);
+
+ aura::Window* root_window = Shell::GetPrimaryRootWindow();
+ aura::Window* keyboard_container =
+ Shell::GetContainer(root_window, kShellWindowId_VirtualKeyboardContainer);
+ ASSERT_TRUE(keyboard_container);
+ keyboard_container->Show();
+
+ aura::Window* keyboard_window =proxy->GetKeyboardWindow();
+ keyboard_container->AddChild(keyboard_window);
+ keyboard_window->set_owned_by_parent(false);
+ keyboard_window->SetBounds(keyboard::KeyboardBoundsFromWindowBounds(
+ keyboard_container->bounds(), 100));
oshima 2014/05/12 18:09:59 define const for vk height
kevers 2014/05/13 00:07:49 Done.
+
+ proxy->EnsureCaretInWorkArea();
+ ASSERT_EQ(keyboard_container->bounds().width(),
+ text_input_client.visible_rect().width());
+ ASSERT_EQ(keyboard_container->bounds().height() - 100,
+ text_input_client.visible_rect().height());
+}
+
} // namespace test
} // namespace ash
« no previous file with comments | « no previous file | chrome/browser/ui/ash/ash_keyboard_controller_proxy.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698