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

Unified Diff: content/browser/renderer_host/input/touch_selection_controller_client_aura_browsertest.cc

Issue 1740193002: Fix the coordinates for touch selection. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 10 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 | content/browser/renderer_host/render_widget_host_view_aura.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/renderer_host/input/touch_selection_controller_client_aura_browsertest.cc
diff --git a/content/browser/renderer_host/input/touch_selection_controller_client_aura_browsertest.cc b/content/browser/renderer_host/input/touch_selection_controller_client_aura_browsertest.cc
index b59cc2bd010a0c14a22ad0066f8813b3e08efa6b..348b5e6fea0e69081e2e41ef286901b8b358082d 100644
--- a/content/browser/renderer_host/input/touch_selection_controller_client_aura_browsertest.cc
+++ b/content/browser/renderer_host/input/touch_selection_controller_client_aura_browsertest.cc
@@ -4,6 +4,7 @@
#include "content/browser/renderer_host/input/touch_selection_controller_client_aura.h"
+#include "base/command_line.h"
#include "base/json/json_reader.h"
#include "base/macros.h"
#include "base/run_loop.h"
@@ -17,6 +18,7 @@
#include "ui/aura/window_tree_host.h"
#include "ui/events/event_utils.h"
#include "ui/events/test/event_generator.h"
+#include "ui/gfx/switches.h"
#include "ui/touch_selection/touch_selection_controller_test_api.h"
namespace content {
@@ -153,6 +155,23 @@ class TouchSelectionControllerClientAuraTest : public ContentBrowserTest {
"empty_textfield()");
}
+ RenderWidgetHostViewAura* GetRenderWidgetHostViewAura() {
+ return static_cast<RenderWidgetHostViewAura*>(
+ shell()->web_contents()->GetRenderWidgetHostView());
+ }
+
+ TestTouchSelectionControllerClientAura* selection_controller_client() {
+ return selection_controller_client_;
+ }
+
+ void InitSelectionController() {
+ RenderWidgetHostViewAura* rwhva = GetRenderWidgetHostViewAura();
+ selection_controller_client_ =
+ new TestTouchSelectionControllerClientAura(rwhva);
+ rwhva->SetSelectionControllerClientForTest(
+ make_scoped_ptr(selection_controller_client_));
+ }
+
private:
void SetUpOnMainThread() override {
ContentBrowserTest::SetUpOnMainThread();
@@ -162,11 +181,15 @@ class TouchSelectionControllerClientAuraTest : public ContentBrowserTest {
void TearDownOnMainThread() override {
menu_runner_ = nullptr;
+ selection_controller_client_ = nullptr;
ContentBrowserTest::TearDownOnMainThread();
}
scoped_ptr<TestTouchSelectionMenuRunner> menu_runner_;
+ TestTouchSelectionControllerClientAura* selection_controller_client_ =
+ nullptr;
+
DISALLOW_COPY_AND_ASSIGN(TouchSelectionControllerClientAuraTest);
};
@@ -175,21 +198,15 @@ class TouchSelectionControllerClientAuraTest : public ContentBrowserTest {
IN_PROC_BROWSER_TEST_F(TouchSelectionControllerClientAuraTest, BasicSelection) {
// Set the test page up.
ASSERT_NO_FATAL_FAILURE(StartTestWithPage("/touch_selection.html"));
- WebContents* web_contents =
- static_cast<WebContentsImpl*>(shell()->web_contents());
- RenderWidgetHostViewAura* rwhva = static_cast<RenderWidgetHostViewAura*>(
- web_contents->GetRenderWidgetHostView());
- TestTouchSelectionControllerClientAura* selection_controller_client =
- new TestTouchSelectionControllerClientAura(rwhva);
- rwhva->SetSelectionControllerClientForTest(
- make_scoped_ptr(selection_controller_client));
+ InitSelectionController();
+ RenderWidgetHostViewAura* rwhva = GetRenderWidgetHostViewAura();
EXPECT_EQ(ui::TouchSelectionController::INACTIVE,
rwhva->selection_controller()->active_status());
EXPECT_FALSE(ui::TouchSelectionMenuRunner::GetInstance()->IsRunning());
// Long-press on the text and wait for handles to appear.
- selection_controller_client->InitWaitForSelectionEvent(
+ selection_controller_client()->InitWaitForSelectionEvent(
ui::SELECTION_HANDLES_SHOWN);
gfx::PointF point;
@@ -199,7 +216,7 @@ IN_PROC_BROWSER_TEST_F(TouchSelectionControllerClientAuraTest, BasicSelection) {
ui::GestureEventDetails(ui::ET_GESTURE_LONG_PRESS));
rwhva->OnGestureEvent(&long_press);
- selection_controller_client->Wait();
+ selection_controller_client()->Wait();
// Check that selection is active and the quick menu is showing.
EXPECT_EQ(ui::TouchSelectionController::SELECTION_ACTIVE,
@@ -214,36 +231,29 @@ IN_PROC_BROWSER_TEST_F(TouchSelectionControllerClientAuraTest,
BasicInsertionFollowedByTapsOnHandle) {
// Set the test page up.
ASSERT_NO_FATAL_FAILURE(StartTestWithPage("/touch_selection.html"));
- WebContents* web_contents =
- static_cast<WebContentsImpl*>(shell()->web_contents());
- RenderWidgetHostViewAura* rwhva = static_cast<RenderWidgetHostViewAura*>(
- web_contents->GetRenderWidgetHostView());
- TestTouchSelectionControllerClientAura* selection_controller_client =
- new TestTouchSelectionControllerClientAura(rwhva);
- rwhva->SetSelectionControllerClientForTest(
- make_scoped_ptr(selection_controller_client));
+ InitSelectionController();
+ RenderWidgetHostViewAura* rwhva = GetRenderWidgetHostViewAura();
EXPECT_EQ(ui::TouchSelectionController::INACTIVE,
rwhva->selection_controller()->active_status());
EXPECT_FALSE(ui::TouchSelectionMenuRunner::GetInstance()->IsRunning());
ui::test::EventGeneratorDelegate* generator_delegate =
ui::test::EventGenerator::default_delegate;
- ui::test::EventGenerator generator(
- web_contents->GetContentNativeView()->GetRootWindow());
+ gfx::NativeView native_view = rwhva->GetNativeView();
+ ui::test::EventGenerator generator(native_view->GetRootWindow());
// Tap inside the textfield and wait for the insertion handle to appear.
- selection_controller_client->InitWaitForSelectionEvent(
+ selection_controller_client()->InitWaitForSelectionEvent(
ui::INSERTION_HANDLE_SHOWN);
gfx::PointF point_f;
ASSERT_TRUE(GetPointInsideTextfield(&point_f));
gfx::Point point = gfx::ToRoundedPoint(point_f);
- generator_delegate->ConvertPointFromTarget(
- web_contents->GetContentNativeView(), &point);
+ generator_delegate->ConvertPointFromTarget(native_view, &point);
generator.GestureTapAt(point);
- selection_controller_client->Wait();
+ selection_controller_client()->Wait();
// Check that insertion is active, but the quick menu is not showing.
EXPECT_EQ(ui::TouchSelectionController::INSERTION_ACTIVE,
@@ -253,8 +263,7 @@ IN_PROC_BROWSER_TEST_F(TouchSelectionControllerClientAuraTest,
// Tap on the insertion handle; the quick menu should appear.
gfx::Point handle_center = gfx::ToRoundedPoint(
rwhva->selection_controller()->GetStartHandleRect().CenterPoint());
- generator_delegate->ConvertPointFromTarget(
- web_contents->GetContentNativeView(), &handle_center);
+ generator_delegate->ConvertPointFromTarget(native_view, &handle_center);
generator.GestureTapAt(handle_center);
EXPECT_TRUE(ui::TouchSelectionMenuRunner::GetInstance()->IsRunning());
@@ -269,14 +278,9 @@ IN_PROC_BROWSER_TEST_F(TouchSelectionControllerClientAuraTest,
EmptyTextfieldInsertionOnTap) {
// Set the test page up.
ASSERT_NO_FATAL_FAILURE(StartTestWithPage("/touch_selection.html"));
- WebContents* web_contents =
- static_cast<WebContentsImpl*>(shell()->web_contents());
- RenderWidgetHostViewAura* rwhva = static_cast<RenderWidgetHostViewAura*>(
- web_contents->GetRenderWidgetHostView());
- TestTouchSelectionControllerClientAura* selection_controller_client =
- new TestTouchSelectionControllerClientAura(rwhva);
- rwhva->SetSelectionControllerClientForTest(
- make_scoped_ptr(selection_controller_client));
+ InitSelectionController();
+
+ RenderWidgetHostViewAura* rwhva = GetRenderWidgetHostViewAura();
// Clear textfield contents.
ASSERT_TRUE(EmptyTextfield());
@@ -286,7 +290,7 @@ IN_PROC_BROWSER_TEST_F(TouchSelectionControllerClientAuraTest,
EXPECT_FALSE(ui::TouchSelectionMenuRunner::GetInstance()->IsRunning());
// Tap inside the textfield and wait for the insertion cursor.
- selection_controller_client->InitWaitForSelectionEvent(
+ selection_controller_client()->InitWaitForSelectionEvent(
ui::SELECTION_ESTABLISHED);
gfx::PointF point;
@@ -297,7 +301,7 @@ IN_PROC_BROWSER_TEST_F(TouchSelectionControllerClientAuraTest,
tap_details);
rwhva->OnGestureEvent(&tap);
- selection_controller_client->Wait();
+ selection_controller_client()->Wait();
// Check that insertion is not active and the quick menu is not showing.
EXPECT_EQ(ui::TouchSelectionController::INACTIVE,
@@ -310,21 +314,15 @@ IN_PROC_BROWSER_TEST_F(TouchSelectionControllerClientAuraTest,
QuickMenuHiddenOnTouch) {
// Set the test page up.
ASSERT_NO_FATAL_FAILURE(StartTestWithPage("/touch_selection.html"));
- WebContents* web_contents =
- static_cast<WebContentsImpl*>(shell()->web_contents());
- RenderWidgetHostViewAura* rwhva = static_cast<RenderWidgetHostViewAura*>(
- web_contents->GetRenderWidgetHostView());
- TestTouchSelectionControllerClientAura* selection_controller_client =
- new TestTouchSelectionControllerClientAura(rwhva);
- rwhva->SetSelectionControllerClientForTest(
- make_scoped_ptr(selection_controller_client));
+ InitSelectionController();
+ RenderWidgetHostViewAura* rwhva = GetRenderWidgetHostViewAura();
EXPECT_EQ(ui::TouchSelectionController::INACTIVE,
rwhva->selection_controller()->active_status());
EXPECT_FALSE(ui::TouchSelectionMenuRunner::GetInstance()->IsRunning());
// Long-press on the text and wait for selection handles to appear.
- selection_controller_client->InitWaitForSelectionEvent(
+ selection_controller_client()->InitWaitForSelectionEvent(
ui::SELECTION_HANDLES_SHOWN);
gfx::PointF point;
@@ -334,15 +332,14 @@ IN_PROC_BROWSER_TEST_F(TouchSelectionControllerClientAuraTest,
ui::GestureEventDetails(ui::ET_GESTURE_LONG_PRESS));
rwhva->OnGestureEvent(&long_press);
- selection_controller_client->Wait();
+ selection_controller_client()->Wait();
EXPECT_EQ(ui::TouchSelectionController::SELECTION_ACTIVE,
rwhva->selection_controller()->active_status());
EXPECT_TRUE(ui::TouchSelectionMenuRunner::GetInstance()->IsRunning());
- ui::test::EventGenerator generator(
- web_contents->GetContentNativeView()->GetRootWindow(),
- web_contents->GetContentNativeView());
+ ui::test::EventGenerator generator(rwhva->GetNativeView()->GetRootWindow(),
+ rwhva->GetNativeView());
// Put the first finger down: the quick menu should get hidden.
generator.PressTouchId(0);
@@ -373,14 +370,9 @@ IN_PROC_BROWSER_TEST_F(TouchSelectionControllerClientAuraTest,
IN_PROC_BROWSER_TEST_F(TouchSelectionControllerClientAuraTest, HiddenOnScroll) {
// Set the test page up.
ASSERT_NO_FATAL_FAILURE(StartTestWithPage("/touch_selection.html"));
- WebContents* web_contents =
- static_cast<WebContentsImpl*>(shell()->web_contents());
- RenderWidgetHostViewAura* rwhva = static_cast<RenderWidgetHostViewAura*>(
- web_contents->GetRenderWidgetHostView());
- TestTouchSelectionControllerClientAura* selection_controller_client =
- new TestTouchSelectionControllerClientAura(rwhva);
- rwhva->SetSelectionControllerClientForTest(
- make_scoped_ptr(selection_controller_client));
+ InitSelectionController();
+
+ RenderWidgetHostViewAura* rwhva = GetRenderWidgetHostViewAura();
ui::TouchSelectionControllerTestApi selection_controller_test_api(
rwhva->selection_controller());
@@ -389,7 +381,7 @@ IN_PROC_BROWSER_TEST_F(TouchSelectionControllerClientAuraTest, HiddenOnScroll) {
EXPECT_FALSE(ui::TouchSelectionMenuRunner::GetInstance()->IsRunning());
// Long-press on the text and wait for selection handles to appear.
- selection_controller_client->InitWaitForSelectionEvent(
+ selection_controller_client()->InitWaitForSelectionEvent(
ui::SELECTION_HANDLES_SHOWN);
gfx::PointF point;
@@ -399,7 +391,7 @@ IN_PROC_BROWSER_TEST_F(TouchSelectionControllerClientAuraTest, HiddenOnScroll) {
ui::GestureEventDetails(ui::ET_GESTURE_LONG_PRESS));
rwhva->OnGestureEvent(&long_press);
- selection_controller_client->Wait();
+ selection_controller_client()->Wait();
EXPECT_EQ(ui::TouchSelectionController::SELECTION_ACTIVE,
rwhva->selection_controller()->active_status());
@@ -452,21 +444,15 @@ IN_PROC_BROWSER_TEST_F(TouchSelectionControllerClientAuraTest,
HiddenAfterOverscroll) {
// Set the page up.
ASSERT_NO_FATAL_FAILURE(StartTestWithPage("/touch_selection.html"));
- WebContents* web_contents =
- static_cast<WebContentsImpl*>(shell()->web_contents());
- RenderWidgetHostViewAura* rwhva = static_cast<RenderWidgetHostViewAura*>(
- web_contents->GetRenderWidgetHostView());
- TestTouchSelectionControllerClientAura* selection_controller_client =
- new TestTouchSelectionControllerClientAura(rwhva);
- rwhva->SetSelectionControllerClientForTest(
- make_scoped_ptr(selection_controller_client));
+ InitSelectionController();
+ RenderWidgetHostViewAura* rwhva = GetRenderWidgetHostViewAura();
EXPECT_EQ(ui::TouchSelectionController::INACTIVE,
rwhva->selection_controller()->active_status());
EXPECT_FALSE(ui::TouchSelectionMenuRunner::GetInstance()->IsRunning());
// Long-press on the text and wait for touch handles to appear.
- selection_controller_client->InitWaitForSelectionEvent(
+ selection_controller_client()->InitWaitForSelectionEvent(
ui::SELECTION_HANDLES_SHOWN);
gfx::PointF point;
@@ -476,7 +462,7 @@ IN_PROC_BROWSER_TEST_F(TouchSelectionControllerClientAuraTest,
ui::GestureEventDetails(ui::ET_GESTURE_LONG_PRESS));
rwhva->OnGestureEvent(&long_press);
- selection_controller_client->Wait();
+ selection_controller_client()->Wait();
EXPECT_EQ(ui::TouchSelectionController::SELECTION_ACTIVE,
rwhva->selection_controller()->active_status());
@@ -484,7 +470,7 @@ IN_PROC_BROWSER_TEST_F(TouchSelectionControllerClientAuraTest,
// Scroll such that an overscroll is initiated and wait for it to complete:
// touch selection should not be active at the end.
- selection_controller_client->InitWaitForSelectionEvent(
+ selection_controller_client()->InitWaitForSelectionEvent(
ui::SELECTION_HANDLES_CLEARED);
ui::GestureEvent scroll_begin(
@@ -502,11 +488,182 @@ IN_PROC_BROWSER_TEST_F(TouchSelectionControllerClientAuraTest,
ui::GestureEventDetails(ui::ET_GESTURE_SCROLL_END));
rwhva->OnGestureEvent(&scroll_end);
- selection_controller_client->Wait();
+ selection_controller_client()->Wait();
EXPECT_EQ(ui::TouchSelectionController::INACTIVE,
rwhva->selection_controller()->active_status());
EXPECT_FALSE(ui::TouchSelectionMenuRunner::GetInstance()->IsRunning());
}
+class TouchSelectionControllerClientAuraScaleFactorTest
+ : public TouchSelectionControllerClientAuraTest {
+ public:
+ void SetUpCommandLine(base::CommandLine* command_line) override {
+ command_line->AppendSwitchASCII(switches::kForceDeviceScaleFactor, "2");
+ }
+};
+
+#if defined(OS_WIN)
+// High DPI tests are disabled on Windows due to crbug.com/545547.
+#define MAYBE_SelectionHandleCoordinates DISABLED_SelectionHandleCoordinates
+#define MAYBE_InsertionHandleCoordinates DISABLED_InsertionHandleCoordinates
+#else
+#define MAYBE_SelectionHandleCoordinates SelectionHandleCoordinates
+#define MAYBE_InsertionHandleCoordinates InsertionHandleCoordinates
+#endif
+
+// Tests that selection handles are properly positioned at 2x DSF.
+IN_PROC_BROWSER_TEST_F(TouchSelectionControllerClientAuraScaleFactorTest,
+ MAYBE_SelectionHandleCoordinates) {
+ // Set the test page up.
+ ASSERT_NO_FATAL_FAILURE(StartTestWithPage("/touch_selection.html"));
+ InitSelectionController();
+
+ RenderWidgetHostViewAura* rwhva = GetRenderWidgetHostViewAura();
+
+ EXPECT_EQ(ui::TouchSelectionController::INACTIVE,
+ rwhva->selection_controller()->active_status());
+ EXPECT_FALSE(ui::TouchSelectionMenuRunner::GetInstance()->IsRunning());
+ EXPECT_EQ(2.f, rwhva->current_device_scale_factor());
+
+ // Long-press on the text and wait for handles to appear.
+ selection_controller_client()->InitWaitForSelectionEvent(
+ ui::SELECTION_HANDLES_SHOWN);
+ gfx::PointF point;
+ ASSERT_TRUE(GetPointInsideText(&point));
+ ui::GestureEvent long_press(
+ point.x(), point.y(), 0, ui::EventTimeForNow(),
+ ui::GestureEventDetails(ui::ET_GESTURE_LONG_PRESS));
+ rwhva->OnGestureEvent(&long_press);
+ selection_controller_client()->Wait();
+
+ // Check that selection is active and the quick menu is showing.
+ EXPECT_EQ(ui::TouchSelectionController::SELECTION_ACTIVE,
+ rwhva->selection_controller()->active_status());
+ EXPECT_TRUE(ui::TouchSelectionMenuRunner::GetInstance()->IsRunning());
+ const ui::TouchSelectionController* controller =
+ GetRenderWidgetHostViewAura()->selection_controller();
+
+ gfx::PointF start_top = controller->start().edge_top();
+
+ // The selection start should be uppper left, and selection end should be
+ // upper right.
+ EXPECT_LT(controller->start().edge_top().x(), point.x());
+ EXPECT_LT(controller->start().edge_bottom().x(), point.x());
+
+ EXPECT_LT(point.x(), controller->end().edge_top().x());
+ EXPECT_LT(point.x(), controller->end().edge_bottom().x());
+
+ // Handles are created below the selection. The top position should roughly
+ // be within the handle size from the touch position.
+ float handle_size = controller->start().edge_bottom().y() -
+ controller->start().edge_top().y();
+ float handle_max_bottom = point.y() + handle_size;
+ EXPECT_GT(handle_max_bottom, controller->start().edge_top().y());
+ EXPECT_GT(handle_max_bottom, controller->end().edge_top().y());
+
+ gfx::Point handle_point = gfx::ToRoundedPoint(
+ rwhva->selection_controller()->GetStartHandleRect().CenterPoint());
+
+ // Move the selection handle. Touch the handle first.
+ selection_controller_client()->InitWaitForSelectionEvent(
+ ui::SELECTION_HANDLE_DRAG_STARTED);
+ ui::TouchEvent touch_down(ui::ET_TOUCH_PRESSED, handle_point, 0,
+ ui::EventTimeForNow());
+ rwhva->OnTouchEvent(&touch_down);
+ selection_controller_client()->Wait();
+
+ // Move it.
+ selection_controller_client()->InitWaitForSelectionEvent(
+ ui::SELECTION_HANDLES_MOVED);
+ handle_point.Offset(10, 0);
+ ui::TouchEvent touch_move(ui::ET_TOUCH_MOVED, handle_point, 0,
+ ui::EventTimeForNow());
+ rwhva->OnTouchEvent(&touch_move);
+ selection_controller_client()->Wait();
+
+ // Then release.
+ selection_controller_client()->InitWaitForSelectionEvent(
+ ui::SELECTION_HANDLE_DRAG_STOPPED);
+ ui::TouchEvent touch_up(ui::ET_TOUCH_RELEASED, handle_point, 0,
+ ui::EventTimeForNow());
+ rwhva->OnTouchEvent(&touch_up);
+ selection_controller_client()->Wait();
+
+ // The handle should have moved to right.
+ EXPECT_EQ(start_top.y(), controller->start().edge_top().y());
+ EXPECT_LT(start_top.x(), controller->start().edge_top().x());
+
+ EXPECT_EQ(ui::TouchSelectionController::SELECTION_ACTIVE,
+ rwhva->selection_controller()->active_status());
+}
+
+// Tests that insertion handles are properly positioned at 2x DSF.
+IN_PROC_BROWSER_TEST_F(TouchSelectionControllerClientAuraScaleFactorTest,
+ MAYBE_InsertionHandleCoordinates) {
+ // Set the test page up.
+ ASSERT_NO_FATAL_FAILURE(StartTestWithPage("/touch_selection.html"));
+ InitSelectionController();
+
+ RenderWidgetHostViewAura* rwhva = GetRenderWidgetHostViewAura();
+
+ // Tap inside the textfield and wait for the insertion cursor.
+ selection_controller_client()->InitWaitForSelectionEvent(
+ ui::INSERTION_HANDLE_SHOWN);
+
+ gfx::PointF point;
+ ASSERT_TRUE(GetPointInsideTextfield(&point));
+ ui::GestureEventDetails tap_details(ui::ET_GESTURE_TAP);
+ tap_details.set_tap_count(1);
+ ui::GestureEvent tap(point.x(), point.y(), 0, ui::EventTimeForNow(),
+ tap_details);
+ rwhva->OnGestureEvent(&tap);
+
+ selection_controller_client()->Wait();
+
+ EXPECT_EQ(ui::TouchSelectionController::INSERTION_ACTIVE,
+ rwhva->selection_controller()->active_status());
+
+ gfx::RectF initial_handle_rect =
+ rwhva->selection_controller()->GetStartHandleRect();
+
+ // Move the insertion handle. Touch the handle first.
+ gfx::Point handle_point =
+ gfx::ToRoundedPoint(initial_handle_rect.CenterPoint());
+
+ selection_controller_client()->InitWaitForSelectionEvent(
+ ui::INSERTION_HANDLE_DRAG_STARTED);
+ ui::TouchEvent touch_down(ui::ET_TOUCH_PRESSED, handle_point, 0,
+ ui::EventTimeForNow());
+ rwhva->OnTouchEvent(&touch_down);
+ selection_controller_client()->Wait();
+
+ // Move it.
+ selection_controller_client()->InitWaitForSelectionEvent(
+ ui::INSERTION_HANDLE_MOVED);
+ handle_point.Offset(10, 0);
+ ui::TouchEvent touch_move(ui::ET_TOUCH_MOVED, handle_point, 0,
+ ui::EventTimeForNow());
+ rwhva->OnTouchEvent(&touch_move);
+ selection_controller_client()->Wait();
+
+ // Then release.
+ selection_controller_client()->InitWaitForSelectionEvent(
+ ui::INSERTION_HANDLE_DRAG_STOPPED);
+ ui::TouchEvent touch_up(ui::ET_TOUCH_RELEASED, handle_point, 0,
+ ui::EventTimeForNow());
+ rwhva->OnTouchEvent(&touch_up);
+ selection_controller_client()->Wait();
+
+ gfx::RectF moved_handle_rect =
+ rwhva->selection_controller()->GetStartHandleRect();
+
+ // The handle should have moved to right.
+ EXPECT_EQ(initial_handle_rect.y(), moved_handle_rect.y());
+ EXPECT_LT(initial_handle_rect.x(), moved_handle_rect.x());
+
+ EXPECT_EQ(ui::TouchSelectionController::INSERTION_ACTIVE,
+ rwhva->selection_controller()->active_status());
+}
+
} // namespace content
« no previous file with comments | « no previous file | content/browser/renderer_host/render_widget_host_view_aura.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698