test: add test to make sure that 'download' attr is respected (#5538)

References #5537
Fixes #5396
This commit is contained in:
Andrey Lushnikov 2021-02-22 09:02:50 -08:00 committed by GitHub
parent 65bf44d52b
commit 6e61cde06e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -62,6 +62,35 @@ describe('download event', () => {
await page.close();
});
it('should report proper download url when download is from download attribute', (test, {browserName}) => {
// @see https://github.com/microsoft/playwright/issues/5537
test.fixme(browserName === 'webkit');
}, async ({browser, server}) => {
const page = await browser.newPage({ acceptDownloads: true });
await page.goto(server.PREFIX + '/empty.html');
await page.setContent(`<a href="${server.PREFIX}/chromium-linux.zip" download="foo.zip">download</a>`);
const [ download ] = await Promise.all([
page.waitForEvent('download'),
page.click('a')
]);
expect(download.url()).toBe(`${server.PREFIX}/chromium-linux.zip`);
await page.close();
});
it('should report downloads for download attribute', async ({browser, server}) => {
const page = await browser.newPage({ acceptDownloads: true });
await page.goto(server.PREFIX + '/empty.html');
await page.setContent(`<a href="${server.PREFIX}/chromium-linux.zip" download="foo.zip">download</a>`);
const [ download ] = await Promise.all([
page.waitForEvent('download'),
page.click('a')
]);
expect(download.suggestedFilename()).toBe(`foo.zip`);
const path = await download.path();
expect(fs.existsSync(path)).toBeTruthy();
await page.close();
});
it('should save to user-specified path', async ({testInfo, browser, server}) => {
const page = await browser.newPage({ acceptDownloads: true });
await page.setContent(`<a href="${server.PREFIX}/download">download</a>`);