diff --git a/test/download.spec.ts b/test/download.spec.ts index c3c78dfade..f167b0244a 100644 --- a/test/download.spec.ts +++ b/test/download.spec.ts @@ -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(`download`); + 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(`download`); + 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(`download`);