OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2012 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 919 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
930 WebMouseWheelEvent webMouseWheelEvent(WebInputEvent::MouseWheel, | 930 WebMouseWheelEvent webMouseWheelEvent(WebInputEvent::MouseWheel, |
931 WebInputEvent::NoModifiers, | 931 WebInputEvent::NoModifiers, |
932 WebInputEvent::TimeStampForTesting); | 932 WebInputEvent::TimeStampForTesting); |
933 webMouseWheelEvent.x = 10; | 933 webMouseWheelEvent.x = 10; |
934 webMouseWheelEvent.y = 10; | 934 webMouseWheelEvent.y = 10; |
935 webMouseWheelEvent.windowX = 10; | 935 webMouseWheelEvent.windowX = 10; |
936 webMouseWheelEvent.windowY = 10; | 936 webMouseWheelEvent.windowY = 10; |
937 webMouseWheelEvent.globalX = 10; | 937 webMouseWheelEvent.globalX = 10; |
938 webMouseWheelEvent.globalY = 10; | 938 webMouseWheelEvent.globalY = 10; |
939 | 939 |
940 PlatformWheelEventBuilder platformWheelBuilder(view, webMouseWheelEvent); | 940 WebMouseWheelEvent scaledMouseWheelEvent = |
941 EXPECT_EQ(5 + visualOffset.x(), platformWheelBuilder.position().x()); | 941 TransformWebMouseWheelEvent(view, webMouseWheelEvent); |
942 EXPECT_EQ(5 + visualOffset.y(), platformWheelBuilder.position().y()); | 942 IntPoint position = |
943 EXPECT_EQ(10, platformWheelBuilder.globalPosition().x()); | 943 flooredIntPoint(scaledMouseWheelEvent.positionInRootFrame()); |
944 EXPECT_EQ(10, platformWheelBuilder.globalPosition().y()); | 944 EXPECT_EQ(5 + visualOffset.x(), position.x()); |
| 945 EXPECT_EQ(5 + visualOffset.y(), position.y()); |
| 946 EXPECT_EQ(10, scaledMouseWheelEvent.globalX); |
| 947 EXPECT_EQ(10, scaledMouseWheelEvent.globalY); |
945 } | 948 } |
946 | 949 |
947 { | 950 { |
948 WebGestureEvent webGestureEvent(WebInputEvent::GestureScrollUpdate, | 951 WebGestureEvent webGestureEvent(WebInputEvent::GestureScrollUpdate, |
949 WebInputEvent::NoModifiers, | 952 WebInputEvent::NoModifiers, |
950 WebInputEvent::TimeStampForTesting); | 953 WebInputEvent::TimeStampForTesting); |
951 webGestureEvent.sourceDevice = WebGestureDeviceTouchscreen; | 954 webGestureEvent.sourceDevice = WebGestureDeviceTouchscreen; |
952 webGestureEvent.x = 10; | 955 webGestureEvent.x = 10; |
953 webGestureEvent.y = 10; | 956 webGestureEvent.y = 10; |
954 webGestureEvent.globalX = 10; | 957 webGestureEvent.globalX = 10; |
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1101 PlatformMouseEventBuilder platformMouseBuilder(view, webMouseEvent); | 1104 PlatformMouseEventBuilder platformMouseBuilder(view, webMouseEvent); |
1102 EXPECT_EQ(webMouseEvent.x + elasticOverscroll.width(), | 1105 EXPECT_EQ(webMouseEvent.x + elasticOverscroll.width(), |
1103 platformMouseBuilder.position().x()); | 1106 platformMouseBuilder.position().x()); |
1104 EXPECT_EQ(webMouseEvent.y + elasticOverscroll.height(), | 1107 EXPECT_EQ(webMouseEvent.y + elasticOverscroll.height(), |
1105 platformMouseBuilder.position().y()); | 1108 platformMouseBuilder.position().y()); |
1106 EXPECT_EQ(webMouseEvent.globalX, platformMouseBuilder.globalPosition().x()); | 1109 EXPECT_EQ(webMouseEvent.globalX, platformMouseBuilder.globalPosition().x()); |
1107 EXPECT_EQ(webMouseEvent.globalY, platformMouseBuilder.globalPosition().y()); | 1110 EXPECT_EQ(webMouseEvent.globalY, platformMouseBuilder.globalPosition().y()); |
1108 } | 1111 } |
1109 } | 1112 } |
1110 | 1113 |
1111 TEST(WebInputEventConversionTest, WebMouseWheelEventBuilder) { | |
1112 const std::string baseURL("http://www.test7.com/"); | |
1113 const std::string fileName("fixed_layout.html"); | |
1114 | |
1115 URLTestHelpers::registerMockedURLFromBaseURL( | |
1116 WebString::fromUTF8(baseURL.c_str()), | |
1117 WebString::fromUTF8("fixed_layout.html")); | |
1118 FrameTestHelpers::WebViewHelper webViewHelper; | |
1119 WebViewImpl* webViewImpl = | |
1120 webViewHelper.initializeAndLoad(baseURL + fileName, true); | |
1121 int pageWidth = 640; | |
1122 int pageHeight = 480; | |
1123 webViewImpl->resize(WebSize(pageWidth, pageHeight)); | |
1124 webViewImpl->updateAllLifecyclePhases(); | |
1125 | |
1126 Document* document = | |
1127 toLocalFrame(webViewImpl->page()->mainFrame())->document(); | |
1128 { | |
1129 WheelEvent* event = WheelEvent::create( | |
1130 FloatPoint(1, 3), FloatPoint(5, 10), WheelEvent::kDomDeltaPage, | |
1131 document->domWindow(), IntPoint(2, 6), IntPoint(10, 30), | |
1132 PlatformEvent::CtrlKey, 0, TimeTicks(), -1 /* null plugin id */, | |
1133 true /* hasPreciseScrollingDeltas */, Event::RailsModeHorizontal, | |
1134 true /*cancelable*/ | |
1135 #if OS(MACOSX) | |
1136 , | |
1137 WheelEventPhaseBegan, WheelEventPhaseChanged | |
1138 #endif | |
1139 ); | |
1140 WebMouseWheelEventBuilder webMouseWheel( | |
1141 toLocalFrame(webViewImpl->page()->mainFrame())->view(), | |
1142 document->layoutViewItem(), *event); | |
1143 EXPECT_EQ(1, webMouseWheel.wheelTicksX); | |
1144 EXPECT_EQ(3, webMouseWheel.wheelTicksY); | |
1145 EXPECT_EQ(5, webMouseWheel.deltaX); | |
1146 EXPECT_EQ(10, webMouseWheel.deltaY); | |
1147 EXPECT_EQ(2, webMouseWheel.globalX); | |
1148 EXPECT_EQ(6, webMouseWheel.globalY); | |
1149 EXPECT_EQ(10, webMouseWheel.windowX); | |
1150 EXPECT_EQ(30, webMouseWheel.windowY); | |
1151 EXPECT_TRUE(webMouseWheel.scrollByPage); | |
1152 EXPECT_EQ(WebInputEvent::ControlKey, webMouseWheel.modifiers); | |
1153 EXPECT_EQ(WebInputEvent::RailsModeHorizontal, webMouseWheel.railsMode); | |
1154 EXPECT_TRUE(webMouseWheel.hasPreciseScrollingDeltas); | |
1155 EXPECT_EQ(WebInputEvent::Blocking, webMouseWheel.dispatchType); | |
1156 #if OS(MACOSX) | |
1157 EXPECT_EQ(WebMouseWheelEvent::PhaseBegan, webMouseWheel.phase); | |
1158 EXPECT_EQ(WebMouseWheelEvent::PhaseChanged, webMouseWheel.momentumPhase); | |
1159 #endif | |
1160 } | |
1161 | |
1162 { | |
1163 WheelEvent* event = WheelEvent::create( | |
1164 FloatPoint(1, 3), FloatPoint(5, 10), WheelEvent::kDomDeltaPage, | |
1165 document->domWindow(), IntPoint(2, 6), IntPoint(10, 30), | |
1166 PlatformEvent::CtrlKey, 0, TimeTicks(), -1 /* null plugin id */, | |
1167 true /* hasPreciseScrollingDeltas */, Event::RailsModeHorizontal, false | |
1168 #if OS(MACOSX) | |
1169 , | |
1170 WheelEventPhaseNone, WheelEventPhaseNone | |
1171 #endif | |
1172 ); | |
1173 WebMouseWheelEventBuilder webMouseWheel( | |
1174 toLocalFrame(webViewImpl->page()->mainFrame())->view(), | |
1175 document->layoutViewItem(), *event); | |
1176 EXPECT_EQ(WebInputEvent::EventNonBlocking, webMouseWheel.dispatchType); | |
1177 } | |
1178 } | |
1179 | |
1180 TEST(WebInputEventConversionTest, PlatformWheelEventBuilder) { | |
1181 const std::string baseURL("http://www.test8.com/"); | |
1182 const std::string fileName("fixed_layout.html"); | |
1183 | |
1184 URLTestHelpers::registerMockedURLFromBaseURL( | |
1185 WebString::fromUTF8(baseURL.c_str()), | |
1186 WebString::fromUTF8("fixed_layout.html")); | |
1187 FrameTestHelpers::WebViewHelper webViewHelper; | |
1188 WebViewImpl* webViewImpl = | |
1189 webViewHelper.initializeAndLoad(baseURL + fileName, true); | |
1190 int pageWidth = 640; | |
1191 int pageHeight = 480; | |
1192 webViewImpl->resize(WebSize(pageWidth, pageHeight)); | |
1193 webViewImpl->updateAllLifecyclePhases(); | |
1194 | |
1195 FrameView* view = toLocalFrame(webViewImpl->page()->mainFrame())->view(); | |
1196 | |
1197 { | |
1198 WebMouseWheelEvent webMouseWheelEvent(WebInputEvent::MouseWheel, | |
1199 WebInputEvent::ControlKey, | |
1200 WebInputEvent::TimeStampForTesting); | |
1201 webMouseWheelEvent.x = 0; | |
1202 webMouseWheelEvent.y = 5; | |
1203 webMouseWheelEvent.deltaX = 10; | |
1204 webMouseWheelEvent.deltaY = 15; | |
1205 webMouseWheelEvent.hasPreciseScrollingDeltas = true; | |
1206 webMouseWheelEvent.railsMode = WebInputEvent::RailsModeHorizontal; | |
1207 webMouseWheelEvent.phase = WebMouseWheelEvent::PhaseBegan; | |
1208 webMouseWheelEvent.momentumPhase = WebMouseWheelEvent::PhaseChanged; | |
1209 | |
1210 PlatformWheelEventBuilder platformWheelBuilder(view, webMouseWheelEvent); | |
1211 EXPECT_EQ(0, platformWheelBuilder.position().x()); | |
1212 EXPECT_EQ(5, platformWheelBuilder.position().y()); | |
1213 EXPECT_EQ(10, platformWheelBuilder.deltaX()); | |
1214 EXPECT_EQ(15, platformWheelBuilder.deltaY()); | |
1215 EXPECT_EQ(PlatformEvent::CtrlKey, platformWheelBuilder.getModifiers()); | |
1216 EXPECT_TRUE(platformWheelBuilder.hasPreciseScrollingDeltas()); | |
1217 EXPECT_EQ(platformWheelBuilder.getRailsMode(), | |
1218 PlatformEvent::RailsModeHorizontal); | |
1219 #if OS(MACOSX) | |
1220 EXPECT_EQ(PlatformWheelEventPhaseBegan, platformWheelBuilder.phase()); | |
1221 EXPECT_EQ(PlatformWheelEventPhaseChanged, | |
1222 platformWheelBuilder.momentumPhase()); | |
1223 #endif | |
1224 } | |
1225 | |
1226 { | |
1227 WebMouseWheelEvent webMouseWheelEvent(WebInputEvent::MouseWheel, | |
1228 WebInputEvent::ShiftKey, | |
1229 WebInputEvent::TimeStampForTesting); | |
1230 webMouseWheelEvent.x = 5; | |
1231 webMouseWheelEvent.y = 0; | |
1232 webMouseWheelEvent.deltaX = 15; | |
1233 webMouseWheelEvent.deltaY = 10; | |
1234 webMouseWheelEvent.hasPreciseScrollingDeltas = false; | |
1235 webMouseWheelEvent.railsMode = WebInputEvent::RailsModeFree; | |
1236 webMouseWheelEvent.phase = WebMouseWheelEvent::PhaseNone; | |
1237 webMouseWheelEvent.momentumPhase = WebMouseWheelEvent::PhaseNone; | |
1238 | |
1239 PlatformWheelEventBuilder platformWheelBuilder(view, webMouseWheelEvent); | |
1240 EXPECT_EQ(5, platformWheelBuilder.position().x()); | |
1241 EXPECT_EQ(0, platformWheelBuilder.position().y()); | |
1242 EXPECT_EQ(15, platformWheelBuilder.deltaX()); | |
1243 EXPECT_EQ(10, platformWheelBuilder.deltaY()); | |
1244 EXPECT_EQ(PlatformEvent::ShiftKey, platformWheelBuilder.getModifiers()); | |
1245 EXPECT_FALSE(platformWheelBuilder.hasPreciseScrollingDeltas()); | |
1246 EXPECT_EQ(platformWheelBuilder.getRailsMode(), | |
1247 PlatformEvent::RailsModeFree); | |
1248 #if OS(MACOSX) | |
1249 EXPECT_EQ(PlatformWheelEventPhaseNone, platformWheelBuilder.phase()); | |
1250 EXPECT_EQ(PlatformWheelEventPhaseNone, | |
1251 platformWheelBuilder.momentumPhase()); | |
1252 #endif | |
1253 } | |
1254 | |
1255 { | |
1256 WebMouseWheelEvent webMouseWheelEvent(WebInputEvent::MouseWheel, | |
1257 WebInputEvent::AltKey, | |
1258 WebInputEvent::TimeStampForTesting); | |
1259 webMouseWheelEvent.x = 5; | |
1260 webMouseWheelEvent.y = 0; | |
1261 webMouseWheelEvent.deltaX = 15; | |
1262 webMouseWheelEvent.deltaY = 10; | |
1263 webMouseWheelEvent.hasPreciseScrollingDeltas = true; | |
1264 webMouseWheelEvent.railsMode = WebInputEvent::RailsModeVertical; | |
1265 webMouseWheelEvent.phase = WebMouseWheelEvent::PhaseNone; | |
1266 webMouseWheelEvent.momentumPhase = WebMouseWheelEvent::PhaseNone; | |
1267 | |
1268 PlatformWheelEventBuilder platformWheelBuilder(view, webMouseWheelEvent); | |
1269 EXPECT_EQ(5, platformWheelBuilder.position().x()); | |
1270 EXPECT_EQ(0, platformWheelBuilder.position().y()); | |
1271 EXPECT_EQ(15, platformWheelBuilder.deltaX()); | |
1272 EXPECT_EQ(10, platformWheelBuilder.deltaY()); | |
1273 EXPECT_EQ(PlatformEvent::AltKey, platformWheelBuilder.getModifiers()); | |
1274 EXPECT_TRUE(platformWheelBuilder.hasPreciseScrollingDeltas()); | |
1275 EXPECT_EQ(platformWheelBuilder.getRailsMode(), | |
1276 PlatformEvent::RailsModeVertical); | |
1277 #if OS(MACOSX) | |
1278 EXPECT_EQ(PlatformWheelEventPhaseNone, platformWheelBuilder.phase()); | |
1279 EXPECT_EQ(PlatformWheelEventPhaseNone, | |
1280 platformWheelBuilder.momentumPhase()); | |
1281 #endif | |
1282 } | |
1283 } | |
1284 | |
1285 } // namespace blink | 1114 } // namespace blink |
OLD | NEW |