| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "content/browser/web_contents/touch_editable_impl_aura.h" | 5 #include "content/browser/web_contents/touch_editable_impl_aura.h" |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "base/run_loop.h" | 8 #include "base/run_loop.h" |
| 9 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
| 10 #include "base/test/test_timeouts.h" | 10 #include "base/test/test_timeouts.h" |
| (...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 200 RenderWidgetHostViewAura* rwhva = static_cast<RenderWidgetHostViewAura*>( | 200 RenderWidgetHostViewAura* rwhva = static_cast<RenderWidgetHostViewAura*>( |
| 201 web_contents->GetRenderWidgetHostView()); | 201 web_contents->GetRenderWidgetHostView()); |
| 202 EXPECT_EQ(GetRenderWidgetHostViewAura(touch_editable), rwhva); | 202 EXPECT_EQ(GetRenderWidgetHostViewAura(touch_editable), rwhva); |
| 203 | 203 |
| 204 // Long press to select word. | 204 // Long press to select word. |
| 205 ui::GestureEvent long_press( | 205 ui::GestureEvent long_press( |
| 206 10, | 206 10, |
| 207 10, | 207 10, |
| 208 0, | 208 0, |
| 209 ui::EventTimeForNow(), | 209 ui::EventTimeForNow(), |
| 210 ui::GestureEventDetails(ui::ET_GESTURE_LONG_PRESS)); | 210 ui::GestureEventDetails(ui::ET_GESTURE_LONG_PRESS, 0, 0)); |
| 211 touch_editable->Reset(); | 211 touch_editable->Reset(); |
| 212 rwhva->OnGestureEvent(&long_press); | 212 rwhva->OnGestureEvent(&long_press); |
| 213 touch_editable->WaitForSelectionChangeCallback(); | 213 touch_editable->WaitForSelectionChangeCallback(); |
| 214 | 214 |
| 215 // Check if selection handles are showing. | 215 // Check if selection handles are showing. |
| 216 EXPECT_TRUE(GetTouchSelectionController(touch_editable)); | 216 EXPECT_TRUE(GetTouchSelectionController(touch_editable)); |
| 217 | 217 |
| 218 scoped_ptr<base::Value> value = | 218 scoped_ptr<base::Value> value = |
| 219 content::ExecuteScriptAndGetValue(main_frame, "get_selection()"); | 219 content::ExecuteScriptAndGetValue(main_frame, "get_selection()"); |
| 220 std::string selection; | 220 std::string selection; |
| 221 value->GetAsString(&selection); | 221 value->GetAsString(&selection); |
| 222 EXPECT_STREQ("Some", selection.c_str()); | 222 EXPECT_STREQ("Some", selection.c_str()); |
| 223 | 223 |
| 224 // Start scrolling. Handles should get hidden. | 224 // Start scrolling. Handles should get hidden. |
| 225 ui::GestureEvent scroll_begin( | 225 ui::GestureEvent scroll_begin( |
| 226 10, | 226 10, |
| 227 10, | 227 10, |
| 228 0, | 228 0, |
| 229 ui::EventTimeForNow(), | 229 ui::EventTimeForNow(), |
| 230 ui::GestureEventDetails(ui::ET_GESTURE_SCROLL_BEGIN)); | 230 ui::GestureEventDetails(ui::ET_GESTURE_SCROLL_BEGIN, 0, 0)); |
| 231 rwhva->OnGestureEvent(&scroll_begin); | 231 rwhva->OnGestureEvent(&scroll_begin); |
| 232 EXPECT_FALSE(GetTouchSelectionController(touch_editable)); | 232 EXPECT_FALSE(GetTouchSelectionController(touch_editable)); |
| 233 | 233 |
| 234 // Handles should come back after scroll ends. | 234 // Handles should come back after scroll ends. |
| 235 ui::GestureEvent scroll_end( | 235 ui::GestureEvent scroll_end( |
| 236 10, | 236 10, |
| 237 10, | 237 10, |
| 238 0, | 238 0, |
| 239 ui::EventTimeForNow(), | 239 ui::EventTimeForNow(), |
| 240 ui::GestureEventDetails(ui::ET_GESTURE_SCROLL_END)); | 240 ui::GestureEventDetails(ui::ET_GESTURE_SCROLL_END, 0, 0)); |
| 241 rwhva->OnGestureEvent(&scroll_end); | 241 rwhva->OnGestureEvent(&scroll_end); |
| 242 EXPECT_TRUE(GetTouchSelectionController(touch_editable)); | 242 EXPECT_TRUE(GetTouchSelectionController(touch_editable)); |
| 243 } | 243 } |
| 244 | 244 |
| 245 IN_PROC_BROWSER_TEST_F(TouchEditableImplAuraTest, | 245 IN_PROC_BROWSER_TEST_F(TouchEditableImplAuraTest, |
| 246 TouchSelectionOnLongPressTest) { | 246 TouchSelectionOnLongPressTest) { |
| 247 ASSERT_NO_FATAL_FAILURE(StartTestWithPage("files/touch_selection.html")); | 247 ASSERT_NO_FATAL_FAILURE(StartTestWithPage("files/touch_selection.html")); |
| 248 WebContentsImpl* web_contents = | 248 WebContentsImpl* web_contents = |
| 249 static_cast<WebContentsImpl*>(shell()->web_contents()); | 249 static_cast<WebContentsImpl*>(shell()->web_contents()); |
| 250 RenderFrameHost* main_frame = web_contents->GetMainFrame(); | 250 RenderFrameHost* main_frame = web_contents->GetMainFrame(); |
| 251 WebContentsViewAura* view_aura = static_cast<WebContentsViewAura*>( | 251 WebContentsViewAura* view_aura = static_cast<WebContentsViewAura*>( |
| 252 web_contents->GetView()); | 252 web_contents->GetView()); |
| 253 TestTouchEditableImplAura* touch_editable = new TestTouchEditableImplAura; | 253 TestTouchEditableImplAura* touch_editable = new TestTouchEditableImplAura; |
| 254 view_aura->SetTouchEditableForTest(touch_editable); | 254 view_aura->SetTouchEditableForTest(touch_editable); |
| 255 RenderWidgetHostViewAura* rwhva = static_cast<RenderWidgetHostViewAura*>( | 255 RenderWidgetHostViewAura* rwhva = static_cast<RenderWidgetHostViewAura*>( |
| 256 web_contents->GetRenderWidgetHostView()); | 256 web_contents->GetRenderWidgetHostView()); |
| 257 EXPECT_EQ(GetRenderWidgetHostViewAura(touch_editable), rwhva); | 257 EXPECT_EQ(GetRenderWidgetHostViewAura(touch_editable), rwhva); |
| 258 | 258 |
| 259 // Long press to select word. | 259 // Long press to select word. |
| 260 ui::GestureEvent long_press( | 260 ui::GestureEvent long_press( |
| 261 10, | 261 10, |
| 262 10, | 262 10, |
| 263 0, | 263 0, |
| 264 ui::EventTimeForNow(), | 264 ui::EventTimeForNow(), |
| 265 ui::GestureEventDetails(ui::ET_GESTURE_LONG_PRESS)); | 265 ui::GestureEventDetails(ui::ET_GESTURE_LONG_PRESS, 0, 0)); |
| 266 touch_editable->Reset(); | 266 touch_editable->Reset(); |
| 267 rwhva->OnGestureEvent(&long_press); | 267 rwhva->OnGestureEvent(&long_press); |
| 268 touch_editable->WaitForSelectionChangeCallback(); | 268 touch_editable->WaitForSelectionChangeCallback(); |
| 269 | 269 |
| 270 // Check if selection handles are showing. | 270 // Check if selection handles are showing. |
| 271 EXPECT_TRUE(GetTouchSelectionController(touch_editable)); | 271 EXPECT_TRUE(GetTouchSelectionController(touch_editable)); |
| 272 | 272 |
| 273 scoped_ptr<base::Value> value = | 273 scoped_ptr<base::Value> value = |
| 274 content::ExecuteScriptAndGetValue(main_frame, "get_selection()"); | 274 content::ExecuteScriptAndGetValue(main_frame, "get_selection()"); |
| 275 std::string selection; | 275 std::string selection; |
| 276 value->GetAsString(&selection); | 276 value->GetAsString(&selection); |
| 277 EXPECT_STREQ("Some", selection.c_str()); | 277 EXPECT_STREQ("Some", selection.c_str()); |
| 278 } | 278 } |
| 279 | 279 |
| 280 IN_PROC_BROWSER_TEST_F(TouchEditableImplAuraTest, | 280 IN_PROC_BROWSER_TEST_F(TouchEditableImplAuraTest, |
| 281 NoTouchSelectionOnDoubleTapTest) { | 281 NoTouchSelectionOnDoubleTapTest) { |
| 282 ASSERT_NO_FATAL_FAILURE(StartTestWithPage("files/touch_selection.html")); | 282 ASSERT_NO_FATAL_FAILURE(StartTestWithPage("files/touch_selection.html")); |
| 283 WebContentsImpl* web_contents = | 283 WebContentsImpl* web_contents = |
| 284 static_cast<WebContentsImpl*>(shell()->web_contents()); | 284 static_cast<WebContentsImpl*>(shell()->web_contents()); |
| 285 RenderFrameHost* main_frame = web_contents->GetMainFrame(); | 285 RenderFrameHost* main_frame = web_contents->GetMainFrame(); |
| 286 WebContentsViewAura* view_aura = | 286 WebContentsViewAura* view_aura = |
| 287 static_cast<WebContentsViewAura*>(web_contents->GetView()); | 287 static_cast<WebContentsViewAura*>(web_contents->GetView()); |
| 288 TestTouchEditableImplAura* touch_editable = new TestTouchEditableImplAura; | 288 TestTouchEditableImplAura* touch_editable = new TestTouchEditableImplAura; |
| 289 view_aura->SetTouchEditableForTest(touch_editable); | 289 view_aura->SetTouchEditableForTest(touch_editable); |
| 290 RenderWidgetHostViewAura* rwhva = static_cast<RenderWidgetHostViewAura*>( | 290 RenderWidgetHostViewAura* rwhva = static_cast<RenderWidgetHostViewAura*>( |
| 291 web_contents->GetRenderWidgetHostView()); | 291 web_contents->GetRenderWidgetHostView()); |
| 292 EXPECT_EQ(GetRenderWidgetHostViewAura(touch_editable), rwhva); | 292 EXPECT_EQ(GetRenderWidgetHostViewAura(touch_editable), rwhva); |
| 293 | 293 |
| 294 // Double-tap to select word. | 294 // Double-tap to select word. |
| 295 ui::GestureEventDetails details(ui::ET_GESTURE_TAP); | 295 ui::GestureEvent double_tap( |
| 296 details.set_tap_count(2); | 296 10, |
| 297 ui::GestureEvent double_tap(10, 10, 0, ui::EventTimeForNow(), details); | 297 10, |
| 298 0, |
| 299 ui::EventTimeForNow(), |
| 300 ui::GestureEventDetails(ui::ET_GESTURE_TAP, 2, 0)); |
| 298 touch_editable->Reset(); | 301 touch_editable->Reset(); |
| 299 rwhva->OnGestureEvent(&double_tap); | 302 rwhva->OnGestureEvent(&double_tap); |
| 300 touch_editable->WaitForSelectionChangeCallback(); | 303 touch_editable->WaitForSelectionChangeCallback(); |
| 301 | 304 |
| 302 // Make sure touch selection handles are not showing. | 305 // Make sure touch selection handles are not showing. |
| 303 EXPECT_FALSE(GetTouchSelectionController(touch_editable)); | 306 EXPECT_FALSE(GetTouchSelectionController(touch_editable)); |
| 304 | 307 |
| 305 scoped_ptr<base::Value> value = | 308 scoped_ptr<base::Value> value = |
| 306 content::ExecuteScriptAndGetValue(main_frame, "get_selection()"); | 309 content::ExecuteScriptAndGetValue(main_frame, "get_selection()"); |
| 307 std::string selection; | 310 std::string selection; |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 364 value = content::ExecuteScriptAndGetValue(main_frame, | 367 value = content::ExecuteScriptAndGetValue(main_frame, |
| 365 "get_cursor_position()"); | 368 "get_cursor_position()"); |
| 366 int new_cursor_pos = -1; | 369 int new_cursor_pos = -1; |
| 367 value->GetAsInteger(&new_cursor_pos); | 370 value->GetAsInteger(&new_cursor_pos); |
| 368 EXPECT_NE(-1, new_cursor_pos); | 371 EXPECT_NE(-1, new_cursor_pos); |
| 369 // Cursor should have moved. | 372 // Cursor should have moved. |
| 370 EXPECT_NE(new_cursor_pos, cursor_pos); | 373 EXPECT_NE(new_cursor_pos, cursor_pos); |
| 371 } | 374 } |
| 372 | 375 |
| 373 } // namespace content | 376 } // namespace content |
| OLD | NEW |