@@ -216,6 +216,49 @@ def test_pen_pointer_properties(driver, pages):
216216 assert events [6 ]["twist" ] == 0
217217
218218
219+ @pytest .mark .xfail_firefox
220+ @pytest .mark .xfail_remote
221+ def test_touch_pointer_properties (driver , pages ):
222+ pages .load ("pointerActionsPage.html" )
223+ pointerArea = driver .find_element (By .CSS_SELECTOR , "#pointerArea" )
224+ center = _get_inview_center (pointerArea .rect , _get_viewport_rect (driver ))
225+ touch_input = PointerInput (interaction .POINTER_TOUCH , "touch" )
226+ touch_chain = ActionBuilder (driver , mouse = touch_input )
227+ touch_chain .pointer_action .move_to (pointerArea , x = 50 , y = 25 ) \
228+ .pointer_down (width = 23 , height = 31 , pressure = 0.78 , tilt_x = 21 , tilt_y = - 8 , twist = 355 ) \
229+ .move_to (pointerArea , x = 60 , y = 35 , width = 39 , height = 35 , pressure = 0.91 , tilt_x = - 19 , tilt_y = 62 , twist = 345 ) \
230+ .pointer_up () \
231+ .move_to (pointerArea , x = 80 , y = 50 )
232+ touch_chain .perform ()
233+ events = _get_events (driver )
234+ assert len (events ) == 7
235+ event_types = [e ["type" ] for e in events ]
236+ assert ["pointerover" , "pointerenter" , "pointerdown" , "pointermove" ,
237+ "pointerup" , "pointerout" , "pointerleave" ] == event_types
238+ assert events [2 ]["type" ] == "pointerdown"
239+ assert events [2 ]["pageX" ] == pytest .approx (center ["x" ], abs = 1.0 )
240+ assert events [2 ]["pageY" ] == pytest .approx (center ["y" ], abs = 1.0 )
241+ assert events [2 ]["target" ] == "pointerArea"
242+ assert events [2 ]["pointerType" ] == "touch"
243+ assert round (events [2 ]["width" ], 2 ) == 23
244+ assert round (events [2 ]["height" ], 2 ) == 31
245+ assert round (events [2 ]["pressure" ], 2 ) == 0.78
246+ assert events [2 ]["tiltX" ] == 21
247+ assert events [2 ]["tiltY" ] == - 8
248+ assert events [2 ]["twist" ] == 355
249+ assert events [3 ]["type" ] == "pointermove"
250+ assert events [3 ]["pageX" ] == pytest .approx (center ["x" ] + 10 , abs = 1.0 )
251+ assert events [3 ]["pageY" ] == pytest .approx (center ["y" ] + 10 , abs = 1.0 )
252+ assert events [3 ]["target" ] == "pointerArea"
253+ assert events [3 ]["pointerType" ] == "touch"
254+ assert round (events [3 ]["width" ], 2 ) == 39
255+ assert round (events [3 ]["height" ], 2 ) == 35
256+ assert round (events [3 ]["pressure" ], 2 ) == 0.91
257+ assert events [3 ]["tiltX" ] == - 19
258+ assert events [3 ]["tiltY" ] == 62
259+ assert events [3 ]["twist" ] == 345
260+
261+
219262def _performDragAndDropWithMouse (driver , pages ):
220263 """Copied from org.openqa.selenium.interactions.TestBasicMouseInterface."""
221264 pages .load ("draggableLists.html" )
0 commit comments