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 "base/basictypes.h" | 5 #include "base/basictypes.h" |
6 #include "base/bind.h" | 6 #include "base/bind.h" |
7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
9 #include "base/memory/shared_memory.h" | 9 #include "base/memory/shared_memory.h" |
10 #include "base/timer/timer.h" | 10 #include "base/timer/timer.h" |
(...skipping 1014 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1025 result += WebInputEventTraits::GetName(event->type); | 1025 result += WebInputEventTraits::GetName(event->type); |
1026 } | 1026 } |
1027 process->sink().ClearMessages(); | 1027 process->sink().ClearMessages(); |
1028 return result; | 1028 return result; |
1029 } | 1029 } |
1030 | 1030 |
1031 TEST_F(RenderWidgetHostTest, TouchEmulator) { | 1031 TEST_F(RenderWidgetHostTest, TouchEmulator) { |
1032 simulated_event_time_delta_seconds_ = 0.1; | 1032 simulated_event_time_delta_seconds_ = 0.1; |
1033 // Immediately ack all touches instead of sending them to the renderer. | 1033 // Immediately ack all touches instead of sending them to the renderer. |
1034 host_->OnMessageReceived(ViewHostMsg_HasTouchEventHandlers(0, false)); | 1034 host_->OnMessageReceived(ViewHostMsg_HasTouchEventHandlers(0, false)); |
1035 host_->OnMessageReceived( | 1035 host_->SetTouchEventEmulationEnabled(true); |
1036 ViewHostMsg_SetTouchEventEmulationEnabled(0, true, true)); | |
1037 process_->sink().ClearMessages(); | 1036 process_->sink().ClearMessages(); |
1038 view_->set_bounds(gfx::Rect(0, 0, 400, 200)); | 1037 view_->set_bounds(gfx::Rect(0, 0, 400, 200)); |
1039 view_->Show(); | 1038 view_->Show(); |
1040 | 1039 |
1041 SimulateMouseEvent(WebInputEvent::MouseMove, 10, 10, 0, false); | 1040 SimulateMouseEvent(WebInputEvent::MouseMove, 10, 10, 0, false); |
1042 EXPECT_EQ(0U, process_->sink().message_count()); | 1041 EXPECT_EQ(0U, process_->sink().message_count()); |
1043 | 1042 |
1044 // Mouse press becomes touch start which in turn becomes tap. | 1043 // Mouse press becomes touch start which in turn becomes tap. |
1045 SimulateMouseEvent(WebInputEvent::MouseDown, 10, 10, 0, true); | 1044 SimulateMouseEvent(WebInputEvent::MouseDown, 10, 10, 0, true); |
1046 EXPECT_EQ(WebInputEvent::TouchStart, host_->acked_touch_event_type()); | 1045 EXPECT_EQ(WebInputEvent::TouchStart, host_->acked_touch_event_type()); |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1125 SimulateMouseEvent( | 1124 SimulateMouseEvent( |
1126 WebInputEvent::MouseMove, 10, 120, WebInputEvent::ShiftKey, true); | 1125 WebInputEvent::MouseMove, 10, 120, WebInputEvent::ShiftKey, true); |
1127 EXPECT_EQ(WebInputEvent::TouchMove, host_->acked_touch_event_type()); | 1126 EXPECT_EQ(WebInputEvent::TouchMove, host_->acked_touch_event_type()); |
1128 EXPECT_EQ("GesturePinchUpdate", | 1127 EXPECT_EQ("GesturePinchUpdate", |
1129 GetInputMessageTypes(process_)); | 1128 GetInputMessageTypes(process_)); |
1130 SendInputEventACK(WebInputEvent::GesturePinchUpdate, | 1129 SendInputEventACK(WebInputEvent::GesturePinchUpdate, |
1131 INPUT_EVENT_ACK_STATE_CONSUMED); | 1130 INPUT_EVENT_ACK_STATE_CONSUMED); |
1132 EXPECT_EQ(0U, process_->sink().message_count()); | 1131 EXPECT_EQ(0U, process_->sink().message_count()); |
1133 | 1132 |
1134 // Turn off emulation during a pinch. | 1133 // Turn off emulation during a pinch. |
1135 host_->OnMessageReceived( | 1134 host_->SetTouchEventEmulationEnabled(false); |
1136 ViewHostMsg_SetTouchEventEmulationEnabled(0, false, false)); | |
1137 EXPECT_EQ(WebInputEvent::TouchCancel, host_->acked_touch_event_type()); | 1135 EXPECT_EQ(WebInputEvent::TouchCancel, host_->acked_touch_event_type()); |
1138 EXPECT_EQ("GesturePinchEnd GestureScrollEnd", | 1136 EXPECT_EQ("GesturePinchEnd GestureScrollEnd", |
1139 GetInputMessageTypes(process_)); | 1137 GetInputMessageTypes(process_)); |
1140 EXPECT_EQ(0U, process_->sink().message_count()); | 1138 EXPECT_EQ(0U, process_->sink().message_count()); |
1141 | 1139 |
1142 // Mouse event should pass untouched. | 1140 // Mouse event should pass untouched. |
1143 SimulateMouseEvent( | 1141 SimulateMouseEvent( |
1144 WebInputEvent::MouseMove, 10, 10, WebInputEvent::ShiftKey, true); | 1142 WebInputEvent::MouseMove, 10, 10, WebInputEvent::ShiftKey, true); |
1145 EXPECT_EQ("MouseMove", GetInputMessageTypes(process_)); | 1143 EXPECT_EQ("MouseMove", GetInputMessageTypes(process_)); |
1146 SendInputEventACK(WebInputEvent::MouseMove, | 1144 SendInputEventACK(WebInputEvent::MouseMove, |
1147 INPUT_EVENT_ACK_STATE_CONSUMED); | 1145 INPUT_EVENT_ACK_STATE_CONSUMED); |
1148 EXPECT_EQ(0U, process_->sink().message_count()); | 1146 EXPECT_EQ(0U, process_->sink().message_count()); |
1149 | 1147 |
1150 // Turn on emulation. | 1148 // Turn on emulation. |
1151 host_->OnMessageReceived( | 1149 host_->SetTouchEventEmulationEnabled(true); |
1152 ViewHostMsg_SetTouchEventEmulationEnabled(0, true, true)); | |
1153 EXPECT_EQ(0U, process_->sink().message_count()); | 1150 EXPECT_EQ(0U, process_->sink().message_count()); |
1154 | 1151 |
1155 // Another touch. | 1152 // Another touch. |
1156 SimulateMouseEvent(WebInputEvent::MouseDown, 10, 10, 0, true); | 1153 SimulateMouseEvent(WebInputEvent::MouseDown, 10, 10, 0, true); |
1157 EXPECT_EQ(WebInputEvent::TouchStart, host_->acked_touch_event_type()); | 1154 EXPECT_EQ(WebInputEvent::TouchStart, host_->acked_touch_event_type()); |
1158 EXPECT_EQ("GestureTapDown", GetInputMessageTypes(process_)); | 1155 EXPECT_EQ("GestureTapDown", GetInputMessageTypes(process_)); |
1159 EXPECT_EQ(0U, process_->sink().message_count()); | 1156 EXPECT_EQ(0U, process_->sink().message_count()); |
1160 | 1157 |
1161 // Scroll. | 1158 // Scroll. |
1162 SimulateMouseEvent(WebInputEvent::MouseMove, 10, 30, 0, true); | 1159 SimulateMouseEvent(WebInputEvent::MouseMove, 10, 30, 0, true); |
1163 EXPECT_EQ(WebInputEvent::TouchMove, host_->acked_touch_event_type()); | 1160 EXPECT_EQ(WebInputEvent::TouchMove, host_->acked_touch_event_type()); |
1164 EXPECT_EQ( | 1161 EXPECT_EQ( |
1165 "GestureTapCancel GestureScrollBegin GestureScrollUpdate", | 1162 "GestureTapCancel GestureScrollBegin GestureScrollUpdate", |
1166 GetInputMessageTypes(process_)); | 1163 GetInputMessageTypes(process_)); |
1167 SendInputEventACK(WebInputEvent::GestureScrollUpdate, | 1164 SendInputEventACK(WebInputEvent::GestureScrollUpdate, |
1168 INPUT_EVENT_ACK_STATE_CONSUMED); | 1165 INPUT_EVENT_ACK_STATE_CONSUMED); |
1169 | 1166 |
1170 // Turn off emulation during a scroll. | 1167 // Turn off emulation during a scroll. |
1171 host_->OnMessageReceived( | 1168 host_->SetTouchEventEmulationEnabled(false); |
1172 ViewHostMsg_SetTouchEventEmulationEnabled(0, false, false)); | |
1173 EXPECT_EQ(WebInputEvent::TouchCancel, host_->acked_touch_event_type()); | 1169 EXPECT_EQ(WebInputEvent::TouchCancel, host_->acked_touch_event_type()); |
1174 | 1170 |
1175 EXPECT_EQ("GestureScrollEnd", GetInputMessageTypes(process_)); | 1171 EXPECT_EQ("GestureScrollEnd", GetInputMessageTypes(process_)); |
1176 EXPECT_EQ(0U, process_->sink().message_count()); | 1172 EXPECT_EQ(0U, process_->sink().message_count()); |
1177 } | 1173 } |
1178 | 1174 |
1179 #define TEST_InputRouterRoutes_NOARGS(INPUTMSG) \ | 1175 #define TEST_InputRouterRoutes_NOARGS(INPUTMSG) \ |
1180 TEST_F(RenderWidgetHostTest, InputRouterRoutes##INPUTMSG) { \ | 1176 TEST_F(RenderWidgetHostTest, InputRouterRoutes##INPUTMSG) { \ |
1181 host_->SetupForInputRouterTest(); \ | 1177 host_->SetupForInputRouterTest(); \ |
1182 host_->INPUTMSG(); \ | 1178 host_->INPUTMSG(); \ |
(...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1414 TEST_F(RenderWidgetHostTest, RendererExitedResetsInputRouter) { | 1410 TEST_F(RenderWidgetHostTest, RendererExitedResetsInputRouter) { |
1415 // RendererExited will delete the view. | 1411 // RendererExited will delete the view. |
1416 host_->SetView(new TestView(host_.get())); | 1412 host_->SetView(new TestView(host_.get())); |
1417 host_->RendererExited(base::TERMINATION_STATUS_PROCESS_CRASHED, -1); | 1413 host_->RendererExited(base::TERMINATION_STATUS_PROCESS_CRASHED, -1); |
1418 | 1414 |
1419 // Make sure the input router is in a fresh state. | 1415 // Make sure the input router is in a fresh state. |
1420 ASSERT_FALSE(host_->input_router()->HasPendingEvents()); | 1416 ASSERT_FALSE(host_->input_router()->HasPendingEvents()); |
1421 } | 1417 } |
1422 | 1418 |
1423 } // namespace content | 1419 } // namespace content |
OLD | NEW |