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

Side by Side Diff: content/public/test/render_view_test.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/render_view_test.h" 5 #include "content/public/test/render_view_test.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <cctype> 9 #include <cctype>
10 10
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
44 #include "third_party/WebKit/public/platform/WebURLRequest.h" 44 #include "third_party/WebKit/public/platform/WebURLRequest.h"
45 #include "third_party/WebKit/public/platform/scheduler/renderer/renderer_schedul er.h" 45 #include "third_party/WebKit/public/platform/scheduler/renderer/renderer_schedul er.h"
46 #include "third_party/WebKit/public/web/WebDocument.h" 46 #include "third_party/WebKit/public/web/WebDocument.h"
47 #include "third_party/WebKit/public/web/WebHistoryItem.h" 47 #include "third_party/WebKit/public/web/WebHistoryItem.h"
48 #include "third_party/WebKit/public/web/WebInputElement.h" 48 #include "third_party/WebKit/public/web/WebInputElement.h"
49 #include "third_party/WebKit/public/web/WebKit.h" 49 #include "third_party/WebKit/public/web/WebKit.h"
50 #include "third_party/WebKit/public/web/WebLocalFrame.h" 50 #include "third_party/WebKit/public/web/WebLocalFrame.h"
51 #include "third_party/WebKit/public/web/WebScriptSource.h" 51 #include "third_party/WebKit/public/web/WebScriptSource.h"
52 #include "third_party/WebKit/public/web/WebView.h" 52 #include "third_party/WebKit/public/web/WebView.h"
53 #include "ui/base/resource/resource_bundle.h" 53 #include "ui/base/resource/resource_bundle.h"
54 #include "ui/events/base_event_utils.h"
54 #include "ui/events/keycodes/keyboard_codes.h" 55 #include "ui/events/keycodes/keyboard_codes.h"
55 #include "v8/include/v8.h" 56 #include "v8/include/v8.h"
56 57
57 #if defined(OS_MACOSX) 58 #if defined(OS_MACOSX)
58 #include "base/mac/scoped_nsautorelease_pool.h" 59 #include "base/mac/scoped_nsautorelease_pool.h"
59 #endif 60 #endif
60 61
61 #if defined(OS_WIN) 62 #if defined(OS_WIN)
62 #include "content/child/dwrite_font_proxy/dwrite_font_proxy_init_win.h" 63 #include "content/child/dwrite_font_proxy/dwrite_font_proxy_init_win.h"
63 #include "content/test/dwrite_font_fake_sender_win.h" 64 #include "content/test/dwrite_font_fake_sender_win.h"
(...skipping 378 matching lines...) Expand 10 before | Expand all | Expand 10 after
442 443
443 bool RenderViewTest::SimulateElementClick(const std::string& element_id) { 444 bool RenderViewTest::SimulateElementClick(const std::string& element_id) {
444 gfx::Rect bounds = GetElementBounds(element_id); 445 gfx::Rect bounds = GetElementBounds(element_id);
445 if (bounds.IsEmpty()) 446 if (bounds.IsEmpty())
446 return false; 447 return false;
447 SimulatePointClick(bounds.CenterPoint()); 448 SimulatePointClick(bounds.CenterPoint());
448 return true; 449 return true;
449 } 450 }
450 451
451 void RenderViewTest::SimulatePointClick(const gfx::Point& point) { 452 void RenderViewTest::SimulatePointClick(const gfx::Point& point) {
452 WebMouseEvent mouse_event; 453 WebMouseEvent mouse_event(WebInputEvent::MouseDown,
453 mouse_event.type = WebInputEvent::MouseDown; 454 WebInputEvent::NoModifiers,
455 ui::EventTimeStampToSeconds(ui::EventTimeForNow()));
454 mouse_event.button = WebMouseEvent::Button::Left; 456 mouse_event.button = WebMouseEvent::Button::Left;
455 mouse_event.x = point.x(); 457 mouse_event.x = point.x();
456 mouse_event.y = point.y(); 458 mouse_event.y = point.y();
457 mouse_event.clickCount = 1; 459 mouse_event.clickCount = 1;
458 RenderViewImpl* impl = static_cast<RenderViewImpl*>(view_); 460 RenderViewImpl* impl = static_cast<RenderViewImpl*>(view_);
459 impl->OnMessageReceived(InputMsg_HandleInputEvent( 461 impl->OnMessageReceived(InputMsg_HandleInputEvent(
460 0, &mouse_event, ui::LatencyInfo(), 462 0, &mouse_event, ui::LatencyInfo(),
461 InputEventDispatchType::DISPATCH_TYPE_BLOCKING)); 463 InputEventDispatchType::DISPATCH_TYPE_BLOCKING));
462 mouse_event.type = WebInputEvent::MouseUp; 464 mouse_event.setType(WebInputEvent::MouseUp);
463 impl->OnMessageReceived(InputMsg_HandleInputEvent( 465 impl->OnMessageReceived(InputMsg_HandleInputEvent(
464 0, &mouse_event, ui::LatencyInfo(), 466 0, &mouse_event, ui::LatencyInfo(),
465 InputEventDispatchType::DISPATCH_TYPE_BLOCKING)); 467 InputEventDispatchType::DISPATCH_TYPE_BLOCKING));
466 } 468 }
467 469
468 470
469 bool RenderViewTest::SimulateElementRightClick(const std::string& element_id) { 471 bool RenderViewTest::SimulateElementRightClick(const std::string& element_id) {
470 gfx::Rect bounds = GetElementBounds(element_id); 472 gfx::Rect bounds = GetElementBounds(element_id);
471 if (bounds.IsEmpty()) 473 if (bounds.IsEmpty())
472 return false; 474 return false;
473 SimulatePointRightClick(bounds.CenterPoint()); 475 SimulatePointRightClick(bounds.CenterPoint());
474 return true; 476 return true;
475 } 477 }
476 478
477 void RenderViewTest::SimulatePointRightClick(const gfx::Point& point) { 479 void RenderViewTest::SimulatePointRightClick(const gfx::Point& point) {
478 WebMouseEvent mouse_event; 480 WebMouseEvent mouse_event(WebInputEvent::MouseDown,
479 mouse_event.type = WebInputEvent::MouseDown; 481 WebInputEvent::NoModifiers,
482 ui::EventTimeStampToSeconds(ui::EventTimeForNow()));
480 mouse_event.button = WebMouseEvent::Button::Right; 483 mouse_event.button = WebMouseEvent::Button::Right;
481 mouse_event.x = point.x(); 484 mouse_event.x = point.x();
482 mouse_event.y = point.y(); 485 mouse_event.y = point.y();
483 mouse_event.clickCount = 1; 486 mouse_event.clickCount = 1;
484 RenderViewImpl* impl = static_cast<RenderViewImpl*>(view_); 487 RenderViewImpl* impl = static_cast<RenderViewImpl*>(view_);
485 impl->OnMessageReceived(InputMsg_HandleInputEvent( 488 impl->OnMessageReceived(InputMsg_HandleInputEvent(
486 0, &mouse_event, ui::LatencyInfo(), 489 0, &mouse_event, ui::LatencyInfo(),
487 InputEventDispatchType::DISPATCH_TYPE_BLOCKING)); 490 InputEventDispatchType::DISPATCH_TYPE_BLOCKING));
488 mouse_event.type = WebInputEvent::MouseUp; 491 mouse_event.setType(WebInputEvent::MouseUp);
489 impl->OnMessageReceived(InputMsg_HandleInputEvent( 492 impl->OnMessageReceived(InputMsg_HandleInputEvent(
490 0, &mouse_event, ui::LatencyInfo(), 493 0, &mouse_event, ui::LatencyInfo(),
491 InputEventDispatchType::DISPATCH_TYPE_BLOCKING)); 494 InputEventDispatchType::DISPATCH_TYPE_BLOCKING));
492 } 495 }
493 496
494 void RenderViewTest::SimulateRectTap(const gfx::Rect& rect) { 497 void RenderViewTest::SimulateRectTap(const gfx::Rect& rect) {
495 WebGestureEvent gesture_event; 498 WebGestureEvent gesture_event(
499 WebInputEvent::GestureTap, WebInputEvent::NoModifiers,
500 ui::EventTimeStampToSeconds(ui::EventTimeForNow()));
496 gesture_event.x = rect.CenterPoint().x(); 501 gesture_event.x = rect.CenterPoint().x();
497 gesture_event.y = rect.CenterPoint().y(); 502 gesture_event.y = rect.CenterPoint().y();
498 gesture_event.data.tap.tapCount = 1; 503 gesture_event.data.tap.tapCount = 1;
499 gesture_event.data.tap.width = rect.width(); 504 gesture_event.data.tap.width = rect.width();
500 gesture_event.data.tap.height = rect.height(); 505 gesture_event.data.tap.height = rect.height();
501 gesture_event.type = WebInputEvent::GestureTap;
502 gesture_event.sourceDevice = blink::WebGestureDeviceTouchpad; 506 gesture_event.sourceDevice = blink::WebGestureDeviceTouchpad;
503 RenderViewImpl* impl = static_cast<RenderViewImpl*>(view_); 507 RenderViewImpl* impl = static_cast<RenderViewImpl*>(view_);
504 impl->OnMessageReceived(InputMsg_HandleInputEvent( 508 impl->OnMessageReceived(InputMsg_HandleInputEvent(
505 0, &gesture_event, ui::LatencyInfo(), 509 0, &gesture_event, ui::LatencyInfo(),
506 InputEventDispatchType::DISPATCH_TYPE_BLOCKING)); 510 InputEventDispatchType::DISPATCH_TYPE_BLOCKING));
507 impl->FocusChangeComplete(); 511 impl->FocusChangeComplete();
508 } 512 }
509 513
510 void RenderViewTest::SetFocused(const blink::WebNode& node) { 514 void RenderViewTest::SetFocused(const blink::WebNode& node) {
511 RenderViewImpl* impl = static_cast<RenderViewImpl*>(view_); 515 RenderViewImpl* impl = static_cast<RenderViewImpl*>(view_);
(...skipping 28 matching lines...) Expand all
540 params.top_controls_height = 0.f; 544 params.top_controls_height = 0.f;
541 params.browser_controls_shrink_blink_size = false; 545 params.browser_controls_shrink_blink_size = false;
542 params.is_fullscreen_granted = is_fullscreen_granted; 546 params.is_fullscreen_granted = is_fullscreen_granted;
543 params.display_mode = blink::WebDisplayModeBrowser; 547 params.display_mode = blink::WebDisplayModeBrowser;
544 std::unique_ptr<IPC::Message> resize_message(new ViewMsg_Resize(0, params)); 548 std::unique_ptr<IPC::Message> resize_message(new ViewMsg_Resize(0, params));
545 OnMessageReceived(*resize_message); 549 OnMessageReceived(*resize_message);
546 } 550 }
547 551
548 void RenderViewTest::SimulateUserTypingASCIICharacter(char ascii_character, 552 void RenderViewTest::SimulateUserTypingASCIICharacter(char ascii_character,
549 bool flush_message_loop) { 553 bool flush_message_loop) {
550 blink::WebKeyboardEvent event; 554 int modifiers = blink::WebInputEvent::NoModifiers;
555 if (isupper(ascii_character) || ascii_character == '@' ||
556 ascii_character == '_') {
557 modifiers = blink::WebKeyboardEvent::ShiftKey;
558 }
559
560 blink::WebKeyboardEvent event(
561 blink::WebKeyboardEvent::RawKeyDown, modifiers,
562 ui::EventTimeStampToSeconds(ui::EventTimeForNow()));
551 event.text[0] = ascii_character; 563 event.text[0] = ascii_character;
552 ASSERT_TRUE(GetWindowsKeyCode(ascii_character, &event.windowsKeyCode)); 564 ASSERT_TRUE(GetWindowsKeyCode(ascii_character, &event.windowsKeyCode));
553 if (isupper(ascii_character) || ascii_character == '@' ||
554 ascii_character == '_') {
555 event.modifiers = blink::WebKeyboardEvent::ShiftKey;
556 }
557
558 event.type = blink::WebKeyboardEvent::RawKeyDown;
559 SendWebKeyboardEvent(event); 565 SendWebKeyboardEvent(event);
560 566
561 event.type = blink::WebKeyboardEvent::Char; 567 event.setType(blink::WebKeyboardEvent::Char);
562 SendWebKeyboardEvent(event); 568 SendWebKeyboardEvent(event);
563 569
564 event.type = blink::WebKeyboardEvent::KeyUp; 570 event.setType(blink::WebKeyboardEvent::KeyUp);
565 SendWebKeyboardEvent(event); 571 SendWebKeyboardEvent(event);
566 572
567 if (flush_message_loop) { 573 if (flush_message_loop) {
568 // Processing is delayed because of a Blink bug: 574 // Processing is delayed because of a Blink bug:
569 // https://bugs.webkit.org/show_bug.cgi?id=16976 See 575 // https://bugs.webkit.org/show_bug.cgi?id=16976 See
570 // PasswordAutofillAgent::TextDidChangeInTextField() for details. 576 // PasswordAutofillAgent::TextDidChangeInTextField() for details.
571 base::RunLoop().RunUntilIdle(); 577 base::RunLoop().RunUntilIdle();
572 } 578 }
573 } 579 }
574 580
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
664 static_cast<TestRenderFrame*>(impl->GetMainRenderFrame()); 670 static_cast<TestRenderFrame*>(impl->GetMainRenderFrame());
665 frame->Navigate(common_params, StartNavigationParams(), request_params); 671 frame->Navigate(common_params, StartNavigationParams(), request_params);
666 672
667 // The load actually happens asynchronously, so we pump messages to process 673 // The load actually happens asynchronously, so we pump messages to process
668 // the pending continuation. 674 // the pending continuation.
669 FrameLoadWaiter(frame).Wait(); 675 FrameLoadWaiter(frame).Wait();
670 view_->GetWebView()->updateAllLifecyclePhases(); 676 view_->GetWebView()->updateAllLifecyclePhases();
671 } 677 }
672 678
673 } // namespace content 679 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698