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

Side by Side Diff: content/public/test/browser_test_utils.cc

Issue 2569273002: Add constructors to WebInputEvents and setters so we can work at cleaning up these public structs. (Closed)
Patch Set: Rebase Created 3 years, 11 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 unified diff | Download patch
OLDNEW
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/public/test/browser_test_utils.h" 5 #include "content/public/test/browser_test_utils.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <tuple> 8 #include <tuple>
9 #include <utility> 9 #include <utility>
10 10
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
73 #include "net/test/python_utils.h" 73 #include "net/test/python_utils.h"
74 #include "net/url_request/url_request_context.h" 74 #include "net/url_request/url_request_context.h"
75 #include "net/url_request/url_request_context_getter.h" 75 #include "net/url_request/url_request_context_getter.h"
76 #include "storage/browser/fileapi/file_system_context.h" 76 #include "storage/browser/fileapi/file_system_context.h"
77 #include "testing/gtest/include/gtest/gtest.h" 77 #include "testing/gtest/include/gtest/gtest.h"
78 #include "ui/base/clipboard/clipboard.h" 78 #include "ui/base/clipboard/clipboard.h"
79 #include "ui/base/clipboard/scoped_clipboard_writer.h" 79 #include "ui/base/clipboard/scoped_clipboard_writer.h"
80 #include "ui/base/resource/resource_bundle.h" 80 #include "ui/base/resource/resource_bundle.h"
81 #include "ui/base/test/test_clipboard.h" 81 #include "ui/base/test/test_clipboard.h"
82 #include "ui/compositor/test/draw_waiter_for_test.h" 82 #include "ui/compositor/test/draw_waiter_for_test.h"
83 #include "ui/events/base_event_utils.h"
83 #include "ui/events/gesture_detection/gesture_configuration.h" 84 #include "ui/events/gesture_detection/gesture_configuration.h"
84 #include "ui/events/keycodes/dom/dom_code.h" 85 #include "ui/events/keycodes/dom/dom_code.h"
85 #include "ui/events/keycodes/dom/keycode_converter.h" 86 #include "ui/events/keycodes/dom/keycode_converter.h"
86 #include "ui/events/latency_info.h" 87 #include "ui/events/latency_info.h"
87 #include "ui/resources/grit/webui_resources.h" 88 #include "ui/resources/grit/webui_resources.h"
88 89
89 #if defined(USE_AURA) 90 #if defined(USE_AURA)
90 #include "content/browser/renderer_host/render_widget_host_view_aura.h" 91 #include "content/browser/renderer_host/render_widget_host_view_aura.h"
91 #include "ui/aura/test/window_event_dispatcher_test_api.h" 92 #include "ui/aura/test/window_event_dispatcher_test_api.h"
92 #include "ui/aura/window.h" 93 #include "ui/aura/window.h"
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
199 return false; 200 return false;
200 } 201 }
201 202
202 return true; 203 return true;
203 } 204 }
204 205
205 void BuildSimpleWebKeyEvent(blink::WebInputEvent::Type type, 206 void BuildSimpleWebKeyEvent(blink::WebInputEvent::Type type,
206 ui::DomKey key, 207 ui::DomKey key,
207 ui::DomCode code, 208 ui::DomCode code,
208 ui::KeyboardCode key_code, 209 ui::KeyboardCode key_code,
209 int modifiers,
210 NativeWebKeyboardEvent* event) { 210 NativeWebKeyboardEvent* event) {
211 event->domKey = key; 211 event->domKey = key;
212 event->domCode = static_cast<int>(code); 212 event->domCode = static_cast<int>(code);
213 event->nativeKeyCode = ui::KeycodeConverter::DomCodeToNativeKeycode(code); 213 event->nativeKeyCode = ui::KeycodeConverter::DomCodeToNativeKeycode(code);
214 event->windowsKeyCode = key_code; 214 event->windowsKeyCode = key_code;
215 event->type = type;
216 event->modifiers = modifiers;
217 event->isSystemKey = false; 215 event->isSystemKey = false;
218 event->timeStampSeconds =
219 (base::TimeTicks::Now() - base::TimeTicks()).InSecondsF();
220 event->skip_in_browser = true; 216 event->skip_in_browser = true;
221 217
222 if (type == blink::WebInputEvent::Char || 218 if (type == blink::WebInputEvent::Char ||
223 type == blink::WebInputEvent::RawKeyDown) { 219 type == blink::WebInputEvent::RawKeyDown) {
224 event->text[0] = key_code; 220 event->text[0] = key_code;
225 event->unmodifiedText[0] = key_code; 221 event->unmodifiedText[0] = key_code;
226 } 222 }
227 } 223 }
228 224
229 void InjectRawKeyEvent(WebContents* web_contents, 225 void InjectRawKeyEvent(WebContents* web_contents,
230 blink::WebInputEvent::Type type, 226 blink::WebInputEvent::Type type,
231 ui::DomKey key, 227 ui::DomKey key,
232 ui::DomCode code, 228 ui::DomCode code,
233 ui::KeyboardCode key_code, 229 ui::KeyboardCode key_code,
234 int modifiers) { 230 int modifiers) {
235 NativeWebKeyboardEvent event; 231 NativeWebKeyboardEvent event(type, modifiers, base::TimeTicks::Now());
236 BuildSimpleWebKeyEvent(type, key, code, key_code, modifiers, &event); 232 BuildSimpleWebKeyEvent(type, key, code, key_code, &event);
237 WebContentsImpl* web_contents_impl = 233 WebContentsImpl* web_contents_impl =
238 static_cast<WebContentsImpl*>(web_contents); 234 static_cast<WebContentsImpl*>(web_contents);
239 RenderWidgetHostImpl* main_frame_rwh = 235 RenderWidgetHostImpl* main_frame_rwh =
240 web_contents_impl->GetMainFrame()->GetRenderWidgetHost(); 236 web_contents_impl->GetMainFrame()->GetRenderWidgetHost();
241 web_contents_impl->GetFocusedRenderWidgetHost(main_frame_rwh) 237 web_contents_impl->GetFocusedRenderWidgetHost(main_frame_rwh)
242 ->ForwardKeyboardEvent(event); 238 ->ForwardKeyboardEvent(event);
243 } 239 }
244 240
245 void GetCookiesCallback(std::string* cookies_out, 241 void GetCookiesCallback(std::string* cookies_out,
246 base::WaitableEvent* event, 242 base::WaitableEvent* event,
(...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after
523 blink::WebMouseEvent::Button button) { 519 blink::WebMouseEvent::Button button) {
524 int x = web_contents->GetContainerBounds().width() / 2; 520 int x = web_contents->GetContainerBounds().width() / 2;
525 int y = web_contents->GetContainerBounds().height() / 2; 521 int y = web_contents->GetContainerBounds().height() / 2;
526 SimulateMouseClickAt(web_contents, modifiers, button, gfx::Point(x, y)); 522 SimulateMouseClickAt(web_contents, modifiers, button, gfx::Point(x, y));
527 } 523 }
528 524
529 void SimulateMouseClickAt(WebContents* web_contents, 525 void SimulateMouseClickAt(WebContents* web_contents,
530 int modifiers, 526 int modifiers,
531 blink::WebMouseEvent::Button button, 527 blink::WebMouseEvent::Button button,
532 const gfx::Point& point) { 528 const gfx::Point& point) {
533 blink::WebMouseEvent mouse_event; 529 blink::WebMouseEvent mouse_event(
534 mouse_event.type = blink::WebInputEvent::MouseDown; 530 blink::WebInputEvent::MouseDown, modifiers,
531 ui::EventTimeStampToSeconds(ui::EventTimeForNow()));
535 mouse_event.button = button; 532 mouse_event.button = button;
536 mouse_event.x = point.x(); 533 mouse_event.x = point.x();
537 mouse_event.y = point.y(); 534 mouse_event.y = point.y();
538 mouse_event.modifiers = modifiers;
539 // Mac needs globalX/globalY for events to plugins. 535 // Mac needs globalX/globalY for events to plugins.
540 gfx::Rect offset = web_contents->GetContainerBounds(); 536 gfx::Rect offset = web_contents->GetContainerBounds();
541 mouse_event.globalX = point.x() + offset.x(); 537 mouse_event.globalX = point.x() + offset.x();
542 mouse_event.globalY = point.y() + offset.y(); 538 mouse_event.globalY = point.y() + offset.y();
543 mouse_event.clickCount = 1; 539 mouse_event.clickCount = 1;
544 web_contents->GetRenderViewHost()->GetWidget()->ForwardMouseEvent( 540 web_contents->GetRenderViewHost()->GetWidget()->ForwardMouseEvent(
545 mouse_event); 541 mouse_event);
546 mouse_event.type = blink::WebInputEvent::MouseUp; 542 mouse_event.setType(blink::WebInputEvent::MouseUp);
547 web_contents->GetRenderViewHost()->GetWidget()->ForwardMouseEvent( 543 web_contents->GetRenderViewHost()->GetWidget()->ForwardMouseEvent(
548 mouse_event); 544 mouse_event);
549 } 545 }
550 546
551 void SimulateMouseEvent(WebContents* web_contents, 547 void SimulateMouseEvent(WebContents* web_contents,
552 blink::WebInputEvent::Type type, 548 blink::WebInputEvent::Type type,
553 const gfx::Point& point) { 549 const gfx::Point& point) {
554 blink::WebMouseEvent mouse_event; 550 blink::WebMouseEvent mouse_event(
555 mouse_event.type = type; 551 type, blink::WebInputEvent::NoModifiers,
552 ui::EventTimeStampToSeconds(ui::EventTimeForNow()));
556 mouse_event.x = point.x(); 553 mouse_event.x = point.x();
557 mouse_event.y = point.y(); 554 mouse_event.y = point.y();
558 web_contents->GetRenderViewHost()->GetWidget()->ForwardMouseEvent( 555 web_contents->GetRenderViewHost()->GetWidget()->ForwardMouseEvent(
559 mouse_event); 556 mouse_event);
560 } 557 }
561 558
562 void SimulateMouseWheelEvent(WebContents* web_contents, 559 void SimulateMouseWheelEvent(WebContents* web_contents,
563 const gfx::Point& point, 560 const gfx::Point& point,
564 const gfx::Vector2d& delta) { 561 const gfx::Vector2d& delta) {
565 blink::WebMouseWheelEvent wheel_event; 562 blink::WebMouseWheelEvent wheel_event(
566 wheel_event.type = blink::WebInputEvent::MouseWheel; 563 blink::WebInputEvent::MouseWheel, blink::WebInputEvent::NoModifiers,
564 ui::EventTimeStampToSeconds(ui::EventTimeForNow()));
565
567 wheel_event.x = point.x(); 566 wheel_event.x = point.x();
568 wheel_event.y = point.y(); 567 wheel_event.y = point.y();
569 wheel_event.deltaX = delta.x(); 568 wheel_event.deltaX = delta.x();
570 wheel_event.deltaY = delta.y(); 569 wheel_event.deltaY = delta.y();
571 RenderWidgetHostImpl* widget_host = RenderWidgetHostImpl::From( 570 RenderWidgetHostImpl* widget_host = RenderWidgetHostImpl::From(
572 web_contents->GetRenderViewHost()->GetWidget()); 571 web_contents->GetRenderViewHost()->GetWidget());
573 widget_host->ForwardWheelEvent(wheel_event); 572 widget_host->ForwardWheelEvent(wheel_event);
574 } 573 }
575 574
576 void SimulateGestureScrollSequence(WebContents* web_contents, 575 void SimulateGestureScrollSequence(WebContents* web_contents,
577 const gfx::Point& point, 576 const gfx::Point& point,
578 const gfx::Vector2dF& delta) { 577 const gfx::Vector2dF& delta) {
579 RenderWidgetHostImpl* widget_host = RenderWidgetHostImpl::From( 578 RenderWidgetHostImpl* widget_host = RenderWidgetHostImpl::From(
580 web_contents->GetRenderViewHost()->GetWidget()); 579 web_contents->GetRenderViewHost()->GetWidget());
581 580
582 blink::WebGestureEvent scroll_begin; 581 blink::WebGestureEvent scroll_begin(
583 scroll_begin.type = blink::WebGestureEvent::GestureScrollBegin; 582 blink::WebGestureEvent::GestureScrollBegin,
583 blink::WebInputEvent::NoModifiers,
584 ui::EventTimeStampToSeconds(ui::EventTimeForNow()));
584 scroll_begin.sourceDevice = blink::WebGestureDeviceTouchpad; 585 scroll_begin.sourceDevice = blink::WebGestureDeviceTouchpad;
585 scroll_begin.x = point.x(); 586 scroll_begin.x = point.x();
586 scroll_begin.y = point.y(); 587 scroll_begin.y = point.y();
587 widget_host->ForwardGestureEvent(scroll_begin); 588 widget_host->ForwardGestureEvent(scroll_begin);
588 589
589 blink::WebGestureEvent scroll_update; 590 blink::WebGestureEvent scroll_update(
590 scroll_update.type = blink::WebGestureEvent::GestureScrollUpdate; 591 blink::WebGestureEvent::GestureScrollUpdate,
592 blink::WebInputEvent::NoModifiers,
593 ui::EventTimeStampToSeconds(ui::EventTimeForNow()));
591 scroll_update.sourceDevice = blink::WebGestureDeviceTouchpad; 594 scroll_update.sourceDevice = blink::WebGestureDeviceTouchpad;
592 scroll_update.x = point.x(); 595 scroll_update.x = point.x();
593 scroll_update.y = point.y(); 596 scroll_update.y = point.y();
594 scroll_update.data.scrollUpdate.deltaX = delta.x(); 597 scroll_update.data.scrollUpdate.deltaX = delta.x();
595 scroll_update.data.scrollUpdate.deltaY = delta.y(); 598 scroll_update.data.scrollUpdate.deltaY = delta.y();
596 scroll_update.data.scrollUpdate.velocityX = 0; 599 scroll_update.data.scrollUpdate.velocityX = 0;
597 scroll_update.data.scrollUpdate.velocityY = 0; 600 scroll_update.data.scrollUpdate.velocityY = 0;
598 widget_host->ForwardGestureEvent(scroll_update); 601 widget_host->ForwardGestureEvent(scroll_update);
599 602
600 blink::WebGestureEvent scroll_end; 603 blink::WebGestureEvent scroll_end(
601 scroll_end.type = blink::WebGestureEvent::GestureScrollEnd; 604 blink::WebGestureEvent::GestureScrollEnd,
605 blink::WebInputEvent::NoModifiers,
606 ui::EventTimeStampToSeconds(ui::EventTimeForNow()));
602 scroll_end.sourceDevice = blink::WebGestureDeviceTouchpad; 607 scroll_end.sourceDevice = blink::WebGestureDeviceTouchpad;
603 scroll_end.x = point.x() + delta.x(); 608 scroll_end.x = point.x() + delta.x();
604 scroll_end.y = point.y() + delta.y(); 609 scroll_end.y = point.y() + delta.y();
605 widget_host->ForwardGestureEvent(scroll_end); 610 widget_host->ForwardGestureEvent(scroll_end);
606 } 611 }
607 612
608 void SimulateGestureFlingSequence(WebContents* web_contents, 613 void SimulateGestureFlingSequence(WebContents* web_contents,
609 const gfx::Point& point, 614 const gfx::Point& point,
610 const gfx::Vector2dF& velocity) { 615 const gfx::Vector2dF& velocity) {
611 RenderWidgetHostImpl* widget_host = RenderWidgetHostImpl::From( 616 RenderWidgetHostImpl* widget_host = RenderWidgetHostImpl::From(
612 web_contents->GetRenderViewHost()->GetWidget()); 617 web_contents->GetRenderViewHost()->GetWidget());
613 618
614 blink::WebGestureEvent scroll_begin; 619 blink::WebGestureEvent scroll_begin(
615 scroll_begin.type = blink::WebGestureEvent::GestureScrollBegin; 620 blink::WebGestureEvent::GestureScrollBegin,
621 blink::WebInputEvent::NoModifiers,
622 ui::EventTimeStampToSeconds(ui::EventTimeForNow()));
616 scroll_begin.sourceDevice = blink::WebGestureDeviceTouchpad; 623 scroll_begin.sourceDevice = blink::WebGestureDeviceTouchpad;
617 scroll_begin.x = point.x(); 624 scroll_begin.x = point.x();
618 scroll_begin.y = point.y(); 625 scroll_begin.y = point.y();
619 widget_host->ForwardGestureEvent(scroll_begin); 626 widget_host->ForwardGestureEvent(scroll_begin);
620 627
621 blink::WebGestureEvent scroll_end; 628 blink::WebGestureEvent scroll_end(
622 scroll_end.type = blink::WebGestureEvent::GestureScrollEnd; 629 blink::WebGestureEvent::GestureScrollEnd,
630 blink::WebInputEvent::NoModifiers,
631 ui::EventTimeStampToSeconds(ui::EventTimeForNow()));
623 scroll_end.sourceDevice = blink::WebGestureDeviceTouchpad; 632 scroll_end.sourceDevice = blink::WebGestureDeviceTouchpad;
624 scroll_end.x = point.x(); 633 scroll_end.x = point.x();
625 scroll_end.y = point.y(); 634 scroll_end.y = point.y();
626 widget_host->ForwardGestureEvent(scroll_end); 635 widget_host->ForwardGestureEvent(scroll_end);
627 636
628 blink::WebGestureEvent fling_start; 637 blink::WebGestureEvent fling_start(
629 fling_start.type = blink::WebGestureEvent::GestureFlingStart; 638 blink::WebGestureEvent::GestureFlingStart,
639 blink::WebInputEvent::NoModifiers,
640 ui::EventTimeStampToSeconds(ui::EventTimeForNow()));
630 fling_start.sourceDevice = blink::WebGestureDeviceTouchpad; 641 fling_start.sourceDevice = blink::WebGestureDeviceTouchpad;
631 fling_start.x = point.x(); 642 fling_start.x = point.x();
632 fling_start.y = point.y(); 643 fling_start.y = point.y();
633 fling_start.data.flingStart.targetViewport = false; 644 fling_start.data.flingStart.targetViewport = false;
634 fling_start.data.flingStart.velocityX = velocity.x(); 645 fling_start.data.flingStart.velocityX = velocity.x();
635 fling_start.data.flingStart.velocityY = velocity.y(); 646 fling_start.data.flingStart.velocityY = velocity.y();
636 widget_host->ForwardGestureEvent(fling_start); 647 widget_host->ForwardGestureEvent(fling_start);
637 } 648 }
638 649
639 void SimulateTapAt(WebContents* web_contents, const gfx::Point& point) { 650 void SimulateTapAt(WebContents* web_contents, const gfx::Point& point) {
640 blink::WebGestureEvent tap; 651 blink::WebGestureEvent tap(
641 tap.type = blink::WebGestureEvent::GestureTap; 652 blink::WebGestureEvent::GestureTap, blink::WebInputEvent::ControlKey,
653 ui::EventTimeStampToSeconds(ui::EventTimeForNow()));
642 tap.sourceDevice = blink::WebGestureDeviceTouchpad; 654 tap.sourceDevice = blink::WebGestureDeviceTouchpad;
643 tap.x = point.x(); 655 tap.x = point.x();
644 tap.y = point.y(); 656 tap.y = point.y();
645 tap.modifiers = blink::WebInputEvent::ControlKey;
646 RenderWidgetHostImpl* widget_host = RenderWidgetHostImpl::From( 657 RenderWidgetHostImpl* widget_host = RenderWidgetHostImpl::From(
647 web_contents->GetRenderViewHost()->GetWidget()); 658 web_contents->GetRenderViewHost()->GetWidget());
648 widget_host->ForwardGestureEvent(tap); 659 widget_host->ForwardGestureEvent(tap);
649 } 660 }
650 661
651 void SimulateTapWithModifiersAt(WebContents* web_contents, 662 void SimulateTapWithModifiersAt(WebContents* web_contents,
652 unsigned modifiers, 663 unsigned modifiers,
653 const gfx::Point& point) { 664 const gfx::Point& point) {
654 blink::WebGestureEvent tap; 665 blink::WebGestureEvent tap(
655 tap.type = blink::WebGestureEvent::GestureTap; 666 blink::WebGestureEvent::GestureTap, modifiers,
667 ui::EventTimeStampToSeconds(ui::EventTimeForNow()));
656 tap.sourceDevice = blink::WebGestureDeviceTouchpad; 668 tap.sourceDevice = blink::WebGestureDeviceTouchpad;
657 tap.x = point.x(); 669 tap.x = point.x();
658 tap.y = point.y(); 670 tap.y = point.y();
659 tap.modifiers = modifiers;
660 RenderWidgetHostImpl* widget_host = RenderWidgetHostImpl::From( 671 RenderWidgetHostImpl* widget_host = RenderWidgetHostImpl::From(
661 web_contents->GetRenderViewHost()->GetWidget()); 672 web_contents->GetRenderViewHost()->GetWidget());
662 widget_host->ForwardGestureEvent(tap); 673 widget_host->ForwardGestureEvent(tap);
663 } 674 }
664 675
665 #if defined(USE_AURA) 676 #if defined(USE_AURA)
666 void SimulateTouchPressAt(WebContents* web_contents, const gfx::Point& point) { 677 void SimulateTouchPressAt(WebContents* web_contents, const gfx::Point& point) {
667 ui::TouchEvent touch(ui::ET_TOUCH_PRESSED, point, 0, base::TimeTicks()); 678 ui::TouchEvent touch(ui::ET_TOUCH_PRESSED, point, 0, base::TimeTicks());
668 static_cast<RenderWidgetHostViewAura*>( 679 static_cast<RenderWidgetHostViewAura*>(
669 web_contents->GetRenderWidgetHostView()) 680 web_contents->GetRenderWidgetHostView())
(...skipping 1170 matching lines...) Expand 10 before | Expand all | Expand 10 after
1840 IPC::IpcSecurityTestUtil::PwnMessageReceived( 1851 IPC::IpcSecurityTestUtil::PwnMessageReceived(
1841 process->GetChannel(), 1852 process->GetChannel(),
1842 FileSystemHostMsg_Write(request_id, file_path, blob_uuid, position)); 1853 FileSystemHostMsg_Write(request_id, file_path, blob_uuid, position));
1843 1854
1844 // If this started an async operation, wait for it to complete. 1855 // If this started an async operation, wait for it to complete.
1845 if (waiter.did_start_update()) 1856 if (waiter.did_start_update())
1846 waiter.WaitForEndUpdate(); 1857 waiter.WaitForEndUpdate();
1847 } 1858 }
1848 1859
1849 } // namespace content 1860 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698