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

Unified Diff: content/renderer/render_widget_unittest.cc

Issue 1245863003: Initialize CompositorDependencies in RenderWidget's constructor. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 5 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 side-by-side diff with in-line comments
Download patch
Index: content/renderer/render_widget_unittest.cc
diff --git a/content/renderer/render_widget_unittest.cc b/content/renderer/render_widget_unittest.cc
index 508ebc181b21d5c933cd3b6d08053955f34d2bbf..9211acac8199e10ff50b97e7323c1d4b3d922ccd 100644
--- a/content/renderer/render_widget_unittest.cc
+++ b/content/renderer/render_widget_unittest.cc
@@ -9,6 +9,7 @@
#include "content/common/input/synthetic_web_input_event_builders.h"
#include "content/common/input_messages.h"
#include "content/public/test/mock_render_thread.h"
+#include "content/test/fake_compositor_dependencies.h"
#include "content/test/mock_render_process.h"
#include "ipc/ipc_test_sink.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -17,22 +18,11 @@
namespace content {
-class RenderWidgetUnittest : public testing::Test {
- public:
- RenderWidgetUnittest() {}
- ~RenderWidgetUnittest() override {}
-
- private:
- MockRenderProcess render_process_;
- MockRenderThread render_thread_;
-
- DISALLOW_COPY_AND_ASSIGN(RenderWidgetUnittest);
-};
-
class InteractiveRenderWidget : public RenderWidget {
public:
- InteractiveRenderWidget()
- : RenderWidget(blink::WebPopupTypeNone,
+ explicit InteractiveRenderWidget(CompositorDependencies* compositor_deps)
+ : RenderWidget(compositor_deps,
+ blink::WebPopupTypeNone,
blink::WebScreenInfo(),
false,
false,
@@ -96,89 +86,102 @@ class InteractiveRenderWidget : public RenderWidget {
DISALLOW_COPY_AND_ASSIGN(InteractiveRenderWidget);
};
-TEST_F(RenderWidgetUnittest, TouchHitTestSinglePoint) {
- scoped_refptr<InteractiveRenderWidget> widget = new InteractiveRenderWidget();
+class RenderWidgetUnittest : public testing::Test {
+ public:
+ RenderWidgetUnittest()
+ : widget_(new InteractiveRenderWidget(&compositor_deps_)) {}
+ ~RenderWidgetUnittest() override {}
+
+ InteractiveRenderWidget* widget() const { return widget_.get(); }
+
+ private:
+ MockRenderProcess render_process_;
+ MockRenderThread render_thread_;
+ FakeCompositorDependencies compositor_deps_;
+ scoped_refptr<InteractiveRenderWidget> widget_;
+
+ DISALLOW_COPY_AND_ASSIGN(RenderWidgetUnittest);
+};
+TEST_F(RenderWidgetUnittest, TouchHitTestSinglePoint) {
SyntheticWebTouchEvent touch;
touch.PressPoint(10, 10);
- widget->SendInputEvent(touch);
- ASSERT_EQ(1u, widget->sink()->message_count());
+ widget()->SendInputEvent(touch);
+ ASSERT_EQ(1u, widget()->sink()->message_count());
// Since there's currently no touch-event handling region, the response should
// be 'no consumer exists'.
- const IPC::Message* message = widget->sink()->GetMessageAt(0);
+ const IPC::Message* message = widget()->sink()->GetMessageAt(0);
EXPECT_EQ(InputHostMsg_HandleInputEvent_ACK::ID, message->type());
InputHostMsg_HandleInputEvent_ACK::Param params;
InputHostMsg_HandleInputEvent_ACK::Read(message, &params);
InputEventAckState ack_state = base::get<0>(params).state;
EXPECT_EQ(INPUT_EVENT_ACK_STATE_NO_CONSUMER_EXISTS, ack_state);
- widget->sink()->ClearMessages();
+ widget()->sink()->ClearMessages();
std::vector<gfx::Rect> rects;
rects.push_back(gfx::Rect(0, 0, 20, 20));
rects.push_back(gfx::Rect(25, 0, 10, 10));
- widget->SetTouchRegion(rects);
+ widget()->SetTouchRegion(rects);
- widget->SendInputEvent(touch);
- ASSERT_EQ(1u, widget->sink()->message_count());
- message = widget->sink()->GetMessageAt(0);
+ widget()->SendInputEvent(touch);
+ ASSERT_EQ(1u, widget()->sink()->message_count());
+ message = widget()->sink()->GetMessageAt(0);
EXPECT_EQ(InputHostMsg_HandleInputEvent_ACK::ID, message->type());
InputHostMsg_HandleInputEvent_ACK::Read(message, &params);
ack_state = base::get<0>(params).state;
EXPECT_EQ(INPUT_EVENT_ACK_STATE_NOT_CONSUMED, ack_state);
- widget->sink()->ClearMessages();
+ widget()->sink()->ClearMessages();
}
TEST_F(RenderWidgetUnittest, TouchHitTestMultiplePoints) {
- scoped_refptr<InteractiveRenderWidget> widget = new InteractiveRenderWidget();
std::vector<gfx::Rect> rects;
rects.push_back(gfx::Rect(0, 0, 20, 20));
rects.push_back(gfx::Rect(25, 0, 10, 10));
- widget->SetTouchRegion(rects);
+ widget()->SetTouchRegion(rects);
SyntheticWebTouchEvent touch;
touch.PressPoint(25, 25);
- widget->SendInputEvent(touch);
- ASSERT_EQ(1u, widget->sink()->message_count());
+ widget()->SendInputEvent(touch);
+ ASSERT_EQ(1u, widget()->sink()->message_count());
// Since there's currently no touch-event handling region, the response should
// be 'no consumer exists'.
- const IPC::Message* message = widget->sink()->GetMessageAt(0);
+ const IPC::Message* message = widget()->sink()->GetMessageAt(0);
EXPECT_EQ(InputHostMsg_HandleInputEvent_ACK::ID, message->type());
InputHostMsg_HandleInputEvent_ACK::Param params;
InputHostMsg_HandleInputEvent_ACK::Read(message, &params);
InputEventAckState ack_state = base::get<0>(params).state;
EXPECT_EQ(INPUT_EVENT_ACK_STATE_NO_CONSUMER_EXISTS, ack_state);
- widget->sink()->ClearMessages();
+ widget()->sink()->ClearMessages();
// Press a second touch point. This time, on a touch-handling region.
touch.PressPoint(10, 10);
- widget->SendInputEvent(touch);
- ASSERT_EQ(1u, widget->sink()->message_count());
- message = widget->sink()->GetMessageAt(0);
+ widget()->SendInputEvent(touch);
+ ASSERT_EQ(1u, widget()->sink()->message_count());
+ message = widget()->sink()->GetMessageAt(0);
EXPECT_EQ(InputHostMsg_HandleInputEvent_ACK::ID, message->type());
InputHostMsg_HandleInputEvent_ACK::Read(message, &params);
ack_state = base::get<0>(params).state;
EXPECT_EQ(INPUT_EVENT_ACK_STATE_NOT_CONSUMED, ack_state);
- widget->sink()->ClearMessages();
+ widget()->sink()->ClearMessages();
}
TEST_F(RenderWidgetUnittest, EventOverscroll) {
- scoped_refptr<InteractiveRenderWidget> widget = new InteractiveRenderWidget();
- widget->set_always_overscroll(true);
+ widget()->set_always_overscroll(true);
blink::WebGestureEvent scroll;
scroll.type = blink::WebInputEvent::GestureScrollUpdate;
scroll.x = -10;
scroll.data.scrollUpdate.deltaY = 10;
- widget->SendInputEvent(scroll);
+ widget()->SendInputEvent(scroll);
// Overscroll notifications received while handling an input event should
// be bundled with the event ack IPC.
- ASSERT_EQ(1u, widget->sink()->message_count());
- const IPC::Message* message = widget->sink()->GetMessageAt(0);
+ ASSERT_EQ(1u, widget()->sink()->message_count());
+ const IPC::Message* message = widget()->sink()->GetMessageAt(0);
ASSERT_EQ(InputHostMsg_HandleInputEvent_ACK::ID, message->type());
InputHostMsg_HandleInputEvent_ACK::Param params;
InputHostMsg_HandleInputEvent_ACK::Read(message, &params);
@@ -189,18 +192,17 @@ TEST_F(RenderWidgetUnittest, EventOverscroll) {
EXPECT_EQ(gfx::Vector2dF(0, 10), ack.overscroll->latest_overscroll_delta);
EXPECT_EQ(gfx::Vector2dF(), ack.overscroll->current_fling_velocity);
EXPECT_EQ(gfx::PointF(-10, 0), ack.overscroll->causal_event_viewport_point);
- widget->sink()->ClearMessages();
+ widget()->sink()->ClearMessages();
}
TEST_F(RenderWidgetUnittest, FlingOverscroll) {
- scoped_refptr<InteractiveRenderWidget> widget = new InteractiveRenderWidget();
-
// Overscroll notifications received outside of handling an input event should
// be sent as a separate IPC.
- widget->didOverscroll(blink::WebFloatSize(10, 5), blink::WebFloatSize(5, 5),
- blink::WebFloatPoint(1, 1), blink::WebFloatSize(10, 5));
- ASSERT_EQ(1u, widget->sink()->message_count());
- const IPC::Message* message = widget->sink()->GetMessageAt(0);
+ widget()->didOverscroll(blink::WebFloatSize(10, 5), blink::WebFloatSize(5, 5),
+ blink::WebFloatPoint(1, 1),
+ blink::WebFloatSize(10, 5));
+ ASSERT_EQ(1u, widget()->sink()->message_count());
+ const IPC::Message* message = widget()->sink()->GetMessageAt(0);
ASSERT_EQ(InputHostMsg_DidOverscroll::ID, message->type());
InputHostMsg_DidOverscroll::Param params;
InputHostMsg_DidOverscroll::Read(message, &params);
@@ -209,7 +211,7 @@ TEST_F(RenderWidgetUnittest, FlingOverscroll) {
EXPECT_EQ(gfx::Vector2dF(5, 5), overscroll.accumulated_overscroll);
EXPECT_EQ(gfx::PointF(1, 1), overscroll.causal_event_viewport_point);
EXPECT_EQ(gfx::Vector2dF(-10, -5), overscroll.current_fling_velocity);
- widget->sink()->ClearMessages();
+ widget()->sink()->ClearMessages();
}
} // namespace content

Powered by Google App Engine
This is Rietveld 408576698