Commit ca49c9e8 authored by Lan Wei's avatar Lan Wei Committed by Commit Bot

ChromeDriverTest.testActionsMultiTouchPoint fails on Pixel 3

ChromeDriverTest.testActionsMultiTouchPoint fails on Pixel 3 because
there is a rounding error,

ChromeDriver log file shows that the touch action was dispatched to
coordinate (60,60):
[03-16-2020 15:03:49.094928][DEBUG]: DevTools WebSocket Command:
Input.dispatchTouchEvent (id=29) 0 {
   "timestamp": -446703130,
   "touchPoints": [ {
      "force": 1.0,
      "id": 1,
      "radiusX": 1.0,
      "radiusY": 1.0,
      "rotationAngle": 0.0,
      "x": 60,
      "y": 60
   } ],
   "type": "touchEnd"
}

But the resulting event had a slightly different coordinate:
[03-16-2020 15:03:50.145445][DEBUG]: DevTools WebSocket Response:
 Runtime.evaluate (id=32) 0 {
   "result": {
      "type": "object",
      "value": {
         "status": 0,
         "value": [ {
            "type": "touchstart",
            "x": 50,
            "y": 50
         }, {
            "type": "touchstart",
            "x": 60.00000762939453,
            "y": 60.00000762939453
         }, {
            "type": "touchend"
         }, {
            "type": "touchend"
         } ]
      }
   }
}
We should use assertAlmostEqual instead of assertEqual to just compare
the integer part. The decimal part is because the coordinates
transformation and conversion through the code pipeline.


Bug chromedriver:3397

Change-Id: I3820338e94a9bcff6b5f4d4d180af01569915bfb
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2108903Reviewed-by: default avatarJohn Chen <johnchen@chromium.org>
Commit-Queue: Lan Wei <lanwei@chromium.org>
Cr-Commit-Position: refs/heads/master@{#751495}
parent d1337c0f
......@@ -898,8 +898,8 @@ class ChromeDriverTest(ChromeDriverBaseTestWithWebServer):
self._driver.PerformActions(actions)
time.sleep(1)
rect = target.GetRect()
self.assertEquals(150, rect['x'])
self.assertEquals(200, rect['y'])
self.assertAlmostEqual(150, rect['x'], delta=1)
self.assertAlmostEqual(200, rect['y'], delta=1)
# Without releasing mouse button, should continue the drag.
actions = ({'actions': [{
......@@ -917,8 +917,8 @@ class ChromeDriverTest(ChromeDriverBaseTestWithWebServer):
self._driver.PerformActions(actions)
time.sleep(1)
rect = target.GetRect()
self.assertEquals(180, rect['x'])
self.assertEquals(240, rect['y'])
self.assertAlmostEqual(180, rect['x'], delta=1)
self.assertAlmostEqual(240, rect['y'], delta=1)
# Releasing mouse button stops the drag.
actions = ({'actions': [{
......@@ -938,8 +938,8 @@ class ChromeDriverTest(ChromeDriverBaseTestWithWebServer):
self._driver.PerformActions(actions)
time.sleep(1)
rect = target.GetRect()
self.assertEquals(180, rect['x'])
self.assertEquals(240, rect['y'])
self.assertAlmostEqual(180, rect['x'], delta=1)
self.assertAlmostEqual(240, rect['y'], delta=1)
def testActionsTouchTap(self):
self._driver.Load(self.GetHttpUrlForFile('/chromedriver/empty.html'))
......@@ -1006,10 +1006,10 @@ class ChromeDriverTest(ChromeDriverBaseTestWithWebServer):
self.assertEquals("touchstart", events[1]['type'])
self.assertEquals("touchend", events[2]['type'])
self.assertEquals("touchend", events[3]['type'])
self.assertEquals(50, events[0]['x'])
self.assertEquals(50, events[0]['y'])
self.assertEquals(60, events[1]['x'])
self.assertEquals(60, events[1]['y'])
self.assertAlmostEqual(50, events[0]['x'], delta=1)
self.assertAlmostEqual(50, events[0]['y'], delta=1)
self.assertAlmostEqual(60, events[1]['x'], delta=1)
self.assertAlmostEqual(60, events[1]['y'], delta=1)
self._driver.ReleaseActions()
......@@ -1050,8 +1050,8 @@ class ChromeDriverTest(ChromeDriverBaseTestWithWebServer):
]})
events = self._driver.ExecuteScript('return window.events')
self.assertEquals(1, len(events))
self.assertEquals(50, events[0]['x'])
self.assertEquals(50, events[0]['y'])
self.assertAlmostEqual(50, events[0]['x'], delta=1)
self.assertAlmostEqual(50, events[0]['y'], delta=1)
# Clean up action states, move mouse back to (0, 0).
self._driver.ReleaseActions()
......@@ -1070,8 +1070,8 @@ class ChromeDriverTest(ChromeDriverBaseTestWithWebServer):
]})
events = self._driver.ExecuteScript('return window.events')
self.assertEquals(2, len(events))
self.assertEquals(80, events[1]['x'])
self.assertEquals(80, events[1]['y'])
self.assertAlmostEqual(80, events[1]['x'], delta=1)
self.assertAlmostEqual(80, events[1]['y'], delta=1)
self._driver.ReleaseActions()
......@@ -1189,8 +1189,8 @@ class ChromeDriverTest(ChromeDriverBaseTestWithWebServer):
events = self._driver.ExecuteScript('return window.events')
self.assertEquals(2, len(events))
self.assertEquals('mousedown', events[0]['type'])
self.assertEquals(50, events[0]['x'])
self.assertEquals(50, events[0]['y'])
self.assertAlmostEqual(50, events[0]['x'], delta=1)
self.assertAlmostEqual(50, events[0]['y'], delta=1)
self.assertEquals('keydown', events[1]['type'])
self.assertEquals('KeyA', events[1]['code'])
......@@ -1201,8 +1201,8 @@ class ChromeDriverTest(ChromeDriverBaseTestWithWebServer):
self.assertEquals('keyup', events[2]['type'])
self.assertEquals('KeyA', events[2]['code'])
self.assertEquals('mouseup', events[3]['type'])
self.assertEquals(50, events[3]['x'])
self.assertEquals(50, events[3]['y'])
self.assertAlmostEqual(50, events[3]['x'], delta=1)
self.assertAlmostEqual(50, events[3]['y'], delta=1)
def testPageLoadStrategyIsNormalByDefault(self):
self.assertEquals('normal',
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment