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, 0, 0)); | 210 ui::GestureEventDetails(ui::ET_GESTURE_LONG_PRESS)); |
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, 0, 0)); | 230 ui::GestureEventDetails(ui::ET_GESTURE_SCROLL_BEGIN)); |
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, 0, 0)); | 240 ui::GestureEventDetails(ui::ET_GESTURE_SCROLL_END)); |
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, 0, 0)); | 265 ui::GestureEventDetails(ui::ET_GESTURE_LONG_PRESS)); |
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::GestureEvent double_tap( | 295 ui::GestureEventDetails details(ui::ET_GESTURE_TAP); |
296 10, | 296 details.set_tap_count(2); |
297 10, | 297 ui::GestureEvent double_tap(10, 10, 0, ui::EventTimeForNow(), details); |
298 0, | |
299 ui::EventTimeForNow(), | |
300 ui::GestureEventDetails(ui::ET_GESTURE_TAP, 2, 0)); | |
301 touch_editable->Reset(); | 298 touch_editable->Reset(); |
302 rwhva->OnGestureEvent(&double_tap); | 299 rwhva->OnGestureEvent(&double_tap); |
303 touch_editable->WaitForSelectionChangeCallback(); | 300 touch_editable->WaitForSelectionChangeCallback(); |
304 | 301 |
305 // Make sure touch selection handles are not showing. | 302 // Make sure touch selection handles are not showing. |
306 EXPECT_FALSE(GetTouchSelectionController(touch_editable)); | 303 EXPECT_FALSE(GetTouchSelectionController(touch_editable)); |
307 | 304 |
308 scoped_ptr<base::Value> value = | 305 scoped_ptr<base::Value> value = |
309 content::ExecuteScriptAndGetValue(main_frame, "get_selection()"); | 306 content::ExecuteScriptAndGetValue(main_frame, "get_selection()"); |
310 std::string selection; | 307 std::string selection; |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
367 value = content::ExecuteScriptAndGetValue(main_frame, | 364 value = content::ExecuteScriptAndGetValue(main_frame, |
368 "get_cursor_position()"); | 365 "get_cursor_position()"); |
369 int new_cursor_pos = -1; | 366 int new_cursor_pos = -1; |
370 value->GetAsInteger(&new_cursor_pos); | 367 value->GetAsInteger(&new_cursor_pos); |
371 EXPECT_NE(-1, new_cursor_pos); | 368 EXPECT_NE(-1, new_cursor_pos); |
372 // Cursor should have moved. | 369 // Cursor should have moved. |
373 EXPECT_NE(new_cursor_pos, cursor_pos); | 370 EXPECT_NE(new_cursor_pos, cursor_pos); |
374 } | 371 } |
375 | 372 |
376 } // namespace content | 373 } // namespace content |
OLD | NEW |