test(drag): enable drag tests everywhere but chromium (#5553)
This commit is contained in:
parent
ec9a53495a
commit
e3cd52d0df
|
|
@ -17,8 +17,8 @@ import { ElementHandle } from '..';
|
||||||
import { it, expect, describe } from './fixtures';
|
import { it, expect, describe } from './fixtures';
|
||||||
import { attachFrame } from './utils';
|
import { attachFrame } from './utils';
|
||||||
|
|
||||||
describe('Drag and drop', test => {
|
describe('Drag and drop', (test, {browserName}) => {
|
||||||
test.fixme();
|
test.fixme(browserName === 'chromium');
|
||||||
}, () => {
|
}, () => {
|
||||||
it('should work', async ({server, page, context}) => {
|
it('should work', async ({server, page, context}) => {
|
||||||
await page.goto(server.PREFIX + '/drag-n-drop.html');
|
await page.goto(server.PREFIX + '/drag-n-drop.html');
|
||||||
|
|
@ -69,80 +69,54 @@ describe('Drag and drop', test => {
|
||||||
]);
|
]);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should drag into an iframe', async ({server, page, isFirefox}) => {
|
describe('iframe', (test, {}) => {
|
||||||
await page.goto(server.PREFIX + '/drag-n-drop.html');
|
test.fixme('implement dragging with iframes');
|
||||||
const frame = await attachFrame(page, 'oopif',server.CROSS_PROCESS_PREFIX + '/drag-n-drop.html');
|
}, () => {
|
||||||
const pageEvents = await trackEvents(await page.$('body'));
|
it('should drag into an iframe', async ({server, page, isFirefox}) => {
|
||||||
const frameEvents = await trackEvents(await frame.$('body'));
|
await page.goto(server.PREFIX + '/drag-n-drop.html');
|
||||||
await page.hover('#source');
|
const frame = await attachFrame(page, 'oopif',server.PREFIX + '/drag-n-drop.html');
|
||||||
await page.mouse.down();
|
const pageEvents = await trackEvents(await page.$('body'));
|
||||||
await frame.hover('#target');
|
const frameEvents = await trackEvents(await frame.$('body'));
|
||||||
await page.mouse.up();
|
await page.pause();
|
||||||
expect(await frame.$eval('#target', target => target.contains(document.querySelector('#source')))).toBe(true); // could not find source in target
|
await page.hover('#source');
|
||||||
expect(await pageEvents.jsonValue()).toEqual([
|
await page.mouse.down();
|
||||||
'mousemove',
|
await frame.hover('#target');
|
||||||
'mousedown',
|
await page.mouse.up();
|
||||||
isFirefox ? 'dragstart' : 'mousemove',
|
expect(await frame.$eval('#target', target => target.contains(document.querySelector('#source')))).toBe(true); // could not find source in target
|
||||||
isFirefox ? 'mousemove' : 'dragstart',
|
expect(await pageEvents.jsonValue()).toEqual([
|
||||||
]);
|
'mousemove',
|
||||||
expect(await frameEvents.jsonValue()).toEqual([
|
'mousedown',
|
||||||
'dragenter',
|
isFirefox ? 'dragstart' : 'mousemove',
|
||||||
'dragover',
|
isFirefox ? 'mousemove' : 'dragstart',
|
||||||
'drop',
|
]);
|
||||||
]);
|
expect(await frameEvents.jsonValue()).toEqual([
|
||||||
});
|
'dragenter',
|
||||||
|
'dragover',
|
||||||
|
'drop',
|
||||||
|
]);
|
||||||
|
});
|
||||||
|
|
||||||
it('should drag out of an iframe', async ({server, page}) => {
|
it('should drag out of an iframe', async ({server, page}) => {
|
||||||
await page.goto(server.PREFIX + '/drag-n-drop.html');
|
await page.goto(server.PREFIX + '/drag-n-drop.html');
|
||||||
const frame = await attachFrame(page, 'oopif',server.CROSS_PROCESS_PREFIX + '/drag-n-drop.html');
|
const frame = await attachFrame(page, 'oopif',server.PREFIX + '/drag-n-drop.html');
|
||||||
const pageEvents = await trackEvents(await page.$('body'));
|
const pageEvents = await trackEvents(await page.$('body'));
|
||||||
const frameEvents = await trackEvents(await frame.$('body'));
|
const frameEvents = await trackEvents(await frame.$('body'));
|
||||||
await frame.hover('#source');
|
await frame.hover('#source');
|
||||||
await page.mouse.down();
|
await page.mouse.down();
|
||||||
await page.hover('#target');
|
await page.hover('#target');
|
||||||
await page.mouse.up();
|
await page.mouse.up();
|
||||||
expect(await page.$eval('#target', target => target.contains(document.querySelector('#source')))).toBe(true); // could not find source in target
|
expect(await page.$eval('#target', target => target.contains(document.querySelector('#source')))).toBe(true); // could not find source in target
|
||||||
expect(await frameEvents.jsonValue()).toEqual([
|
expect(await frameEvents.jsonValue()).toEqual([
|
||||||
'mousemove',
|
'mousemove',
|
||||||
'mousedown',
|
'mousedown',
|
||||||
'dragstart',
|
'dragstart',
|
||||||
]);
|
]);
|
||||||
expect(await pageEvents.jsonValue()).toEqual([
|
expect(await pageEvents.jsonValue()).toEqual([
|
||||||
'dragenter',
|
'dragenter',
|
||||||
'dragover',
|
'dragover',
|
||||||
'drop',
|
'drop',
|
||||||
]);
|
]);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should drag through a navigation', async ({server, page, isFirefox}) => {
|
|
||||||
await page.goto(server.PREFIX + '/drag-n-drop.html');
|
|
||||||
const beforeNavigationEvents = await trackEvents(await page.$('body'));
|
|
||||||
await page.hover('#source');
|
|
||||||
await page.mouse.down();
|
|
||||||
// start the drag
|
|
||||||
await page.mouse.move(50, 50);
|
|
||||||
|
|
||||||
expect(await beforeNavigationEvents.jsonValue()).toEqual([
|
|
||||||
'mousemove',
|
|
||||||
'mousedown',
|
|
||||||
isFirefox ? 'dragstart' : 'mousemove',
|
|
||||||
isFirefox ? 'mousemove' : 'dragstart',
|
|
||||||
'dragenter',
|
|
||||||
'dragover',
|
|
||||||
]);
|
|
||||||
|
|
||||||
await page.reload();
|
|
||||||
const afterNavigationEvents = await trackEvents(await page.$('body'));
|
|
||||||
|
|
||||||
await page.hover('#target');
|
|
||||||
await page.mouse.up();
|
|
||||||
|
|
||||||
expect(await page.$eval('#target', target => target.contains(document.querySelector('#source')))).toBe(true); // could not find source in target
|
|
||||||
expect(await afterNavigationEvents.jsonValue()).toEqual([
|
|
||||||
'dragenter',
|
|
||||||
'dragover',
|
|
||||||
'drop',
|
|
||||||
]);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should respect the drop effect', (test, {browserName}) => {
|
it('should respect the drop effect', (test, {browserName}) => {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue