summaryrefslogtreecommitdiffstats
path: root/remote/test/puppeteer/test/src/touchscreen.spec.ts
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 01:14:29 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 01:14:29 +0000
commitfbaf0bb26397aa498eb9156f06d5a6fe34dd7dd8 (patch)
tree4c1ccaf5486d4f2009f9a338a98a83e886e29c97 /remote/test/puppeteer/test/src/touchscreen.spec.ts
parentReleasing progress-linux version 124.0.1-1~progress7.99u1. (diff)
downloadfirefox-fbaf0bb26397aa498eb9156f06d5a6fe34dd7dd8.tar.xz
firefox-fbaf0bb26397aa498eb9156f06d5a6fe34dd7dd8.zip
Merging upstream version 125.0.1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'remote/test/puppeteer/test/src/touchscreen.spec.ts')
-rw-r--r--remote/test/puppeteer/test/src/touchscreen.spec.ts252
1 files changed, 211 insertions, 41 deletions
diff --git a/remote/test/puppeteer/test/src/touchscreen.spec.ts b/remote/test/puppeteer/test/src/touchscreen.spec.ts
index 28a18ec449..94d8e6fecb 100644
--- a/remote/test/puppeteer/test/src/touchscreen.spec.ts
+++ b/remote/test/puppeteer/test/src/touchscreen.spec.ts
@@ -15,65 +15,235 @@ describe('Touchscreen', () => {
describe('Touchscreen.prototype.tap', () => {
it('should work', async () => {
- const {page, server, isHeadless} = await getTestState();
+ const {page, server} = await getTestState();
await page.goto(server.PREFIX + '/input/touchscreen.html');
await page.tap('button');
expect(
- (
- await page.evaluate(() => {
- return allEvents;
- })
- ).filter(({type}) => {
- return type !== 'pointermove' || isHeadless;
+ await page.evaluate(() => {
+ return allEvents;
})
).toMatchObject([
- {height: 1, type: 'pointerdown', width: 1, x: 5, y: 5},
- {touches: [[5, 5, 0.5, 0.5]], type: 'touchstart'},
- {height: 1, type: 'pointerup', width: 1, x: 5, y: 5},
- {touches: [[5, 5, 0.5, 0.5]], type: 'touchend'},
- {height: 1, type: 'click', width: 1, x: 5, y: 5},
+ {
+ type: 'pointerdown',
+ x: 5,
+ y: 5,
+ width: 1,
+ height: 1,
+ altitudeAngle: Math.PI / 2,
+ azimuthAngle: 0,
+ pressure: 0.5,
+ pointerType: 'touch',
+ twist: 0,
+ tiltX: 0,
+ tiltY: 0,
+ },
+ {
+ type: 'touchstart',
+ changedTouches: [
+ {clientX: 5, clientY: 5, radiusX: 0.5, radiusY: 0.5, force: 0.5},
+ ],
+ activeTouches: [
+ {clientX: 5, clientY: 5, radiusX: 0.5, radiusY: 0.5, force: 0.5},
+ ],
+ },
+ {
+ type: 'pointerup',
+ x: 5,
+ y: 5,
+ width: 1,
+ height: 1,
+ altitudeAngle: Math.PI / 2,
+ azimuthAngle: 0,
+ pressure: 0,
+ pointerType: 'touch',
+ twist: 0,
+ tiltX: 0,
+ tiltY: 0,
+ },
+ {
+ type: 'touchend',
+ changedTouches: [
+ {clientX: 5, clientY: 5, radiusX: 0.5, radiusY: 0.5, force: 0.5},
+ ],
+ activeTouches: [],
+ },
+ {
+ type: 'click',
+ x: 5,
+ y: 5,
+ width: 1,
+ height: 1,
+ altitudeAngle: Math.PI / 2,
+ azimuthAngle: 0,
+ pressure: 0,
+ pointerType: 'touch',
+ twist: 0,
+ tiltX: 0,
+ tiltY: 0,
+ },
]);
});
});
describe('Touchscreen.prototype.touchMove', () => {
it('should work', async () => {
- const {page, server, isHeadless} = await getTestState();
+ const {page, server} = await getTestState();
await page.goto(server.PREFIX + '/input/touchscreen.html');
+ // Note that touchmoves are sometimes not triggered if consecutive
+ // touchmoves are less than 15 pixels.
+ //
+ // See https://github.com/puppeteer/puppeteer/issues/10836
await page.touchscreen.touchStart(0, 0);
- await page.touchscreen.touchMove(10, 10);
- await page.touchscreen.touchMove(15.5, 15);
- await page.touchscreen.touchMove(20, 20.4);
- await page.touchscreen.touchMove(40, 30);
+ await page.touchscreen.touchMove(15, 15);
+ await page.touchscreen.touchMove(30.5, 30);
+ await page.touchscreen.touchMove(50, 45.4);
+ await page.touchscreen.touchMove(80, 50);
await page.touchscreen.touchEnd();
+
expect(
- (
- await page.evaluate(() => {
- return allEvents;
- })
- ).filter(({type}) => {
- return type !== 'pointermove' || isHeadless;
- })
- ).toMatchObject(
- [
- {type: 'pointerdown', x: 0, y: 0, width: 1, height: 1},
- {type: 'touchstart', touches: [[0, 0, 0.5, 0.5]]},
- {type: 'pointermove', x: 10, y: 10, width: 1, height: 1},
- {type: 'touchmove', touches: [[10, 10, 0.5, 0.5]]},
- {type: 'pointermove', x: 16, y: 15, width: 1, height: 1},
- {type: 'touchmove', touches: [[16, 15, 0.5, 0.5]]},
- {type: 'pointermove', x: 20, y: 20, width: 1, height: 1},
- {type: 'touchmove', touches: [[20, 20, 0.5, 0.5]]},
- {type: 'pointermove', x: 40, y: 30, width: 1, height: 1},
- {type: 'touchmove', touches: [[40, 30, 0.5, 0.5]]},
- {type: 'pointerup', x: 40, y: 30, width: 1, height: 1},
- {type: 'touchend', touches: [[40, 30, 0.5, 0.5]]},
- ].filter(({type}) => {
- return type !== 'pointermove' || isHeadless;
+ await page.evaluate(() => {
+ return allEvents;
})
- );
+ ).toMatchObject([
+ {
+ type: 'pointerdown',
+ x: 0,
+ y: 0,
+ width: 1,
+ height: 1,
+ altitudeAngle: 1.5707963267948966,
+ azimuthAngle: 0,
+ pressure: 0.5,
+ pointerType: 'touch',
+ twist: 0,
+ tiltX: 0,
+ tiltY: 0,
+ },
+ {
+ type: 'touchstart',
+ changedTouches: [
+ {clientX: 0, clientY: 0, radiusX: 0.5, radiusY: 0.5, force: 0.5},
+ ],
+ activeTouches: [
+ {clientX: 0, clientY: 0, radiusX: 0.5, radiusY: 0.5, force: 0.5},
+ ],
+ },
+ {
+ type: 'pointermove',
+ x: 15,
+ y: 15,
+ width: 1,
+ height: 1,
+ altitudeAngle: 1.5707963267948966,
+ azimuthAngle: 0,
+ pressure: 0.5,
+ pointerType: 'touch',
+ twist: 0,
+ tiltX: 0,
+ tiltY: 0,
+ },
+ {
+ type: 'touchmove',
+ changedTouches: [
+ {clientX: 15, clientY: 15, radiusX: 0.5, radiusY: 0.5, force: 0.5},
+ ],
+ activeTouches: [
+ {clientX: 15, clientY: 15, radiusX: 0.5, radiusY: 0.5, force: 0.5},
+ ],
+ },
+ {
+ type: 'pointermove',
+ x: 31,
+ y: 30,
+ width: 1,
+ height: 1,
+ altitudeAngle: 1.5707963267948966,
+ azimuthAngle: 0,
+ pressure: 0.5,
+ pointerType: 'touch',
+ twist: 0,
+ tiltX: 0,
+ tiltY: 0,
+ },
+ {
+ type: 'touchmove',
+ changedTouches: [
+ {clientX: 31, clientY: 30, radiusX: 0.5, radiusY: 0.5, force: 0.5},
+ ],
+ activeTouches: [
+ {clientX: 31, clientY: 30, radiusX: 0.5, radiusY: 0.5, force: 0.5},
+ ],
+ },
+ {
+ type: 'pointermove',
+ x: 50,
+ y: 45,
+ width: 1,
+ height: 1,
+ altitudeAngle: 1.5707963267948966,
+ azimuthAngle: 0,
+ pressure: 0.5,
+ pointerType: 'touch',
+ twist: 0,
+ tiltX: 0,
+ tiltY: 0,
+ },
+ {
+ type: 'touchmove',
+ changedTouches: [
+ {clientX: 50, clientY: 45, radiusX: 0.5, radiusY: 0.5, force: 0.5},
+ ],
+ activeTouches: [
+ {clientX: 50, clientY: 45, radiusX: 0.5, radiusY: 0.5, force: 0.5},
+ ],
+ },
+ {
+ type: 'pointermove',
+ x: 80,
+ y: 50,
+ width: 1,
+ height: 1,
+ altitudeAngle: 1.5707963267948966,
+ azimuthAngle: 0,
+ pressure: 0.5,
+ pointerType: 'touch',
+ twist: 0,
+ tiltX: 0,
+ tiltY: 0,
+ },
+ {
+ type: 'touchmove',
+ changedTouches: [
+ {clientX: 80, clientY: 50, radiusX: 0.5, radiusY: 0.5, force: 0.5},
+ ],
+ activeTouches: [
+ {clientX: 80, clientY: 50, radiusX: 0.5, radiusY: 0.5, force: 0.5},
+ ],
+ },
+ {
+ type: 'pointerup',
+ x: 80,
+ y: 50,
+ width: 1,
+ height: 1,
+ altitudeAngle: 1.5707963267948966,
+ azimuthAngle: 0,
+ pressure: 0,
+ pointerType: 'touch',
+ twist: 0,
+ tiltX: 0,
+ tiltY: 0,
+ },
+ {
+ type: 'touchend',
+ changedTouches: [
+ {clientX: 80, clientY: 50, radiusX: 0.5, radiusY: 0.5, force: 0.5},
+ ],
+ activeTouches: [],
+ },
+ ]);
});
});
});