blob: 8adca4f2175e1092f0d36cbb0c828aef5036a2f7 [file] [log] [blame]
(async function(testRunner) {
testRunner.log('Tests that mouse manipulation through input domain works concurrently from multiple sessions.');
var page = await testRunner.createPage();
var session1 = await page.createSession();
var session2 = await page.createSession();
await session2.evaluate(`
var logs = [];
function log(text) {
logs.push(text);
}
function logEvent(event) {
log('-----Event-----');
log('type: ' + event.type);
log('button: ' + event.button);
log('buttons: ' + event.buttons);
if (event.shiftKey)
log('shiftKey');
log('x: ' + event.x);
log('y: ' + event.y);
event.preventDefault();
}
window.addEventListener('mousedown', logEvent);
window.addEventListener('mouseup', logEvent);
window.addEventListener('mousemove', logEvent);
`);
function dumpError(message) {
if (message.error)
testRunner.log('Error: ' + message.error.message);
}
testRunner.log('Mouse down in session1');
dumpError(await session1.protocol.Input.dispatchMouseEvent({
type: 'mousePressed',
button: 'middle',
clickCount: 1,
x: 100,
y: 200
}));
testRunner.log('Mouse move in session2');
dumpError(await session2.protocol.Input.dispatchMouseEvent({
type: 'mouseMoved',
button: 'middle',
x: 50,
y: 150
}));
testRunner.log('Mouse up in session2');
dumpError(await session2.protocol.Input.dispatchMouseEvent({
type: 'mouseReleased',
button: 'middle',
clickCount: 1,
x: 50,
y: 150
}));
testRunner.log('Mouse move in session1');
dumpError(await session1.protocol.Input.dispatchMouseEvent({
type: 'mouseMoved',
x: 150,
y: 50
}));
testRunner.log(await session1.evaluate(`window.logs.join('\\n')`));
testRunner.completeTest();
})