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

Side by Side Diff: content/browser/renderer_host/render_widget_host_unittest.cc

Issue 154083008: Remove Tabpose feature on mac, and supporting infrastructure (PaintAtSize) (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase, merge Created 6 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 unified diff | Download patch | Annotate | Revision Log
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 "base/basictypes.h" 5 #include "base/basictypes.h"
6 #include "base/bind.h" 6 #include "base/bind.h"
7 #include "base/memory/scoped_ptr.h" 7 #include "base/memory/scoped_ptr.h"
8 #include "base/memory/shared_memory.h" 8 #include "base/memory/shared_memory.h"
9 #include "base/timer/timer.h" 9 #include "base/timer/timer.h"
10 #include "content/browser/browser_thread_impl.h" 10 #include "content/browser/browser_thread_impl.h"
11 #include "content/browser/renderer_host/backing_store.h" 11 #include "content/browser/renderer_host/backing_store.h"
12 #include "content/browser/renderer_host/input/gesture_event_queue.h" 12 #include "content/browser/renderer_host/input/gesture_event_queue.h"
13 #include "content/browser/renderer_host/input/input_router_impl.h" 13 #include "content/browser/renderer_host/input/input_router_impl.h"
14 #include "content/browser/renderer_host/input/tap_suppression_controller.h" 14 #include "content/browser/renderer_host/input/tap_suppression_controller.h"
15 #include "content/browser/renderer_host/input/tap_suppression_controller_client. h" 15 #include "content/browser/renderer_host/input/tap_suppression_controller_client. h"
16 #include "content/browser/renderer_host/input/touch_event_queue.h" 16 #include "content/browser/renderer_host/input/touch_event_queue.h"
17 #include "content/browser/renderer_host/overscroll_controller.h" 17 #include "content/browser/renderer_host/overscroll_controller.h"
18 #include "content/browser/renderer_host/overscroll_controller_delegate.h" 18 #include "content/browser/renderer_host/overscroll_controller_delegate.h"
19 #include "content/browser/renderer_host/render_widget_host_delegate.h" 19 #include "content/browser/renderer_host/render_widget_host_delegate.h"
20 #include "content/common/input/synthetic_web_input_event_builders.h" 20 #include "content/common/input/synthetic_web_input_event_builders.h"
21 #include "content/common/input_messages.h" 21 #include "content/common/input_messages.h"
22 #include "content/common/view_messages.h" 22 #include "content/common/view_messages.h"
23 #include "content/port/browser/render_widget_host_view_port.h" 23 #include "content/port/browser/render_widget_host_view_port.h"
24 #include "content/public/browser/notification_details.h"
25 #include "content/public/browser/notification_observer.h"
26 #include "content/public/browser/notification_registrar.h"
27 #include "content/public/browser/notification_source.h"
28 #include "content/public/browser/notification_types.h"
29 #include "content/public/test/mock_render_process_host.h" 24 #include "content/public/test/mock_render_process_host.h"
30 #include "content/public/test/test_browser_context.h" 25 #include "content/public/test/test_browser_context.h"
31 #include "content/test/test_render_view_host.h" 26 #include "content/test/test_render_view_host.h"
32 #include "testing/gtest/include/gtest/gtest.h" 27 #include "testing/gtest/include/gtest/gtest.h"
33 #include "ui/events/keycodes/keyboard_codes.h" 28 #include "ui/events/keycodes/keyboard_codes.h"
34 #include "ui/gfx/canvas.h" 29 #include "ui/gfx/canvas.h"
35 #include "ui/gfx/screen.h" 30 #include "ui/gfx/screen.h"
36 31
37 #if defined(USE_AURA) 32 #if defined(USE_AURA)
38 #include "content/browser/compositor/image_transport_factory.h" 33 #include "content/browser/compositor/image_transport_factory.h"
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
198 MockRenderWidgetHost( 193 MockRenderWidgetHost(
199 RenderWidgetHostDelegate* delegate, 194 RenderWidgetHostDelegate* delegate,
200 RenderProcessHost* process, 195 RenderProcessHost* process,
201 int routing_id) 196 int routing_id)
202 : RenderWidgetHostImpl(delegate, process, routing_id, false), 197 : RenderWidgetHostImpl(delegate, process, routing_id, false),
203 unresponsive_timer_fired_(false) { 198 unresponsive_timer_fired_(false) {
204 input_router_impl_ = static_cast<InputRouterImpl*>(input_router_.get()); 199 input_router_impl_ = static_cast<InputRouterImpl*>(input_router_.get());
205 } 200 }
206 201
207 // Allow poking at a few private members. 202 // Allow poking at a few private members.
208 using RenderWidgetHostImpl::OnPaintAtSizeAck;
209 using RenderWidgetHostImpl::OnUpdateRect; 203 using RenderWidgetHostImpl::OnUpdateRect;
210 using RenderWidgetHostImpl::RendererExited; 204 using RenderWidgetHostImpl::RendererExited;
211 using RenderWidgetHostImpl::last_requested_size_; 205 using RenderWidgetHostImpl::last_requested_size_;
212 using RenderWidgetHostImpl::is_hidden_; 206 using RenderWidgetHostImpl::is_hidden_;
213 using RenderWidgetHostImpl::resize_ack_pending_; 207 using RenderWidgetHostImpl::resize_ack_pending_;
214 using RenderWidgetHostImpl::input_router_; 208 using RenderWidgetHostImpl::input_router_;
215 209
216 bool unresponsive_timer_fired() const { 210 bool unresponsive_timer_fired() const {
217 return unresponsive_timer_fired_; 211 return unresponsive_timer_fired_;
218 } 212 }
(...skipping 333 matching lines...) Expand 10 before | Expand all | Expand 10 after
552 546
553 private: 547 private:
554 bool prehandle_keyboard_event_; 548 bool prehandle_keyboard_event_;
555 bool prehandle_keyboard_event_called_; 549 bool prehandle_keyboard_event_called_;
556 WebInputEvent::Type prehandle_keyboard_event_type_; 550 WebInputEvent::Type prehandle_keyboard_event_type_;
557 551
558 bool unhandled_keyboard_event_called_; 552 bool unhandled_keyboard_event_called_;
559 WebInputEvent::Type unhandled_keyboard_event_type_; 553 WebInputEvent::Type unhandled_keyboard_event_type_;
560 }; 554 };
561 555
562 // MockPaintingObserver --------------------------------------------------------
563
564 class MockPaintingObserver : public NotificationObserver {
565 public:
566 void WidgetDidReceivePaintAtSizeAck(RenderWidgetHostImpl* host,
567 int tag,
568 const gfx::Size& size) {
569 host_ = reinterpret_cast<MockRenderWidgetHost*>(host);
570 tag_ = tag;
571 size_ = size;
572 }
573
574 virtual void Observe(int type,
575 const NotificationSource& source,
576 const NotificationDetails& details) OVERRIDE {
577 if (type == NOTIFICATION_RENDER_WIDGET_HOST_DID_RECEIVE_PAINT_AT_SIZE_ACK) {
578 std::pair<int, gfx::Size>* size_ack_details =
579 Details<std::pair<int, gfx::Size> >(details).ptr();
580 WidgetDidReceivePaintAtSizeAck(
581 RenderWidgetHostImpl::From(Source<RenderWidgetHost>(source).ptr()),
582 size_ack_details->first,
583 size_ack_details->second);
584 }
585 }
586
587 MockRenderWidgetHost* host() const { return host_; }
588 int tag() const { return tag_; }
589 gfx::Size size() const { return size_; }
590
591 private:
592 MockRenderWidgetHost* host_;
593 int tag_;
594 gfx::Size size_;
595 };
596
597 // RenderWidgetHostTest -------------------------------------------------------- 556 // RenderWidgetHostTest --------------------------------------------------------
598 557
599 class RenderWidgetHostTest : public testing::Test { 558 class RenderWidgetHostTest : public testing::Test {
600 public: 559 public:
601 RenderWidgetHostTest() 560 RenderWidgetHostTest()
602 : process_(NULL), 561 : process_(NULL),
603 handle_key_press_event_(false), 562 handle_key_press_event_(false),
604 handle_mouse_event_(false) { 563 handle_mouse_event_(false) {
605 } 564 }
606 virtual ~RenderWidgetHostTest() { 565 virtual ~RenderWidgetHostTest() {
(...skipping 504 matching lines...) Expand 10 before | Expand all | Expand 10 after
1111 1070
1112 // It should have sent out a restored message with a request to paint. 1071 // It should have sent out a restored message with a request to paint.
1113 const IPC::Message* restored = process_->sink().GetUniqueMessageMatching( 1072 const IPC::Message* restored = process_->sink().GetUniqueMessageMatching(
1114 ViewMsg_WasShown::ID); 1073 ViewMsg_WasShown::ID);
1115 ASSERT_TRUE(restored); 1074 ASSERT_TRUE(restored);
1116 Tuple1<bool> needs_repaint; 1075 Tuple1<bool> needs_repaint;
1117 ViewMsg_WasShown::Read(restored, &needs_repaint); 1076 ViewMsg_WasShown::Read(restored, &needs_repaint);
1118 EXPECT_TRUE(needs_repaint.a); 1077 EXPECT_TRUE(needs_repaint.a);
1119 } 1078 }
1120 1079
1121 TEST_F(RenderWidgetHostTest, PaintAtSize) {
1122 const int kPaintAtSizeTag = 42;
1123 host_->PaintAtSize(TransportDIB::GetFakeHandleForTest(), kPaintAtSizeTag,
1124 gfx::Size(40, 60), gfx::Size(20, 30));
1125 EXPECT_TRUE(
1126 process_->sink().GetUniqueMessageMatching(ViewMsg_PaintAtSize::ID));
1127
1128 NotificationRegistrar registrar;
1129 MockPaintingObserver observer;
1130 registrar.Add(
1131 &observer,
1132 NOTIFICATION_RENDER_WIDGET_HOST_DID_RECEIVE_PAINT_AT_SIZE_ACK,
1133 Source<RenderWidgetHost>(host_.get()));
1134
1135 host_->OnPaintAtSizeAck(kPaintAtSizeTag, gfx::Size(20, 30));
1136 EXPECT_EQ(host_.get(), observer.host());
1137 EXPECT_EQ(kPaintAtSizeTag, observer.tag());
1138 EXPECT_EQ(20, observer.size().width());
1139 EXPECT_EQ(30, observer.size().height());
1140 }
1141
1142 TEST_F(RenderWidgetHostTest, IgnoreKeyEventsHandledByRenderer) { 1080 TEST_F(RenderWidgetHostTest, IgnoreKeyEventsHandledByRenderer) {
1143 // Simulate a keyboard event. 1081 // Simulate a keyboard event.
1144 SimulateKeyboardEvent(WebInputEvent::RawKeyDown); 1082 SimulateKeyboardEvent(WebInputEvent::RawKeyDown);
1145 1083
1146 // Make sure we sent the input event to the renderer. 1084 // Make sure we sent the input event to the renderer.
1147 EXPECT_TRUE(process_->sink().GetUniqueMessageMatching( 1085 EXPECT_TRUE(process_->sink().GetUniqueMessageMatching(
1148 InputMsg_HandleInputEvent::ID)); 1086 InputMsg_HandleInputEvent::ID));
1149 process_->sink().ClearMessages(); 1087 process_->sink().ClearMessages();
1150 1088
1151 // Send the simulated response from the renderer back. 1089 // Send the simulated response from the renderer back.
(...skipping 1464 matching lines...) Expand 10 before | Expand all | Expand 10 after
2616 2554
2617 // Tests RWHI::ForwardTouchEventWithLatencyInfo(). 2555 // Tests RWHI::ForwardTouchEventWithLatencyInfo().
2618 PressTouchPoint(0, 1); 2556 PressTouchPoint(0, 1);
2619 SendTouchEvent(); 2557 SendTouchEvent();
2620 CheckLatencyInfoComponentInMessage( 2558 CheckLatencyInfoComponentInMessage(
2621 process_, GetLatencyComponentId(), WebInputEvent::TouchStart); 2559 process_, GetLatencyComponentId(), WebInputEvent::TouchStart);
2622 SendInputEventACK(WebInputEvent::TouchStart, INPUT_EVENT_ACK_STATE_CONSUMED); 2560 SendInputEventACK(WebInputEvent::TouchStart, INPUT_EVENT_ACK_STATE_CONSUMED);
2623 } 2561 }
2624 2562
2625 } // namespace content 2563 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/renderer_host/render_widget_host_impl.cc ('k') | content/common/swapped_out_messages.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698