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

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: Fix unittests 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 | ash/shell/keyboard_controller_proxy_stub.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..191ad379ad1c379e64463c714e93f28e853519dd 100644
--- a/ash/root_window_controller_unittest.cc
+++ b/ash/root_window_controller_unittest.cc
@@ -25,6 +25,9 @@
#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/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"
@@ -616,6 +619,25 @@ 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;
+ }
+
+ const gfx::Rect& visible_rect() const {
+ return visible_rect_;
+ }
+
+ private:
+ gfx::Rect visible_rect_;
+
+ DISALLOW_COPY_AND_ASSIGN(MockTextInputClient);
+};
+
// Test for http://crbug.com/297858. Virtual keyboard container should only show
// on primary root window.
TEST_F(VirtualKeyboardRootWindowControllerTest,
@@ -766,5 +788,37 @@ 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();
+ ASSERT_TRUE(input_method);
+ 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();
+
+ const int keyboard_height = 100;
+ 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(), keyboard_height));
+
+ proxy->EnsureCaretInWorkArea();
+ ASSERT_EQ(keyboard_container->bounds().width(),
+ text_input_client.visible_rect().width());
+ ASSERT_EQ(keyboard_container->bounds().height() - keyboard_height,
+ text_input_client.visible_rect().height());
+}
+
} // namespace test
} // namespace ash
« no previous file with comments | « no previous file | ash/shell/keyboard_controller_proxy_stub.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698