From dc23c567c4d51041b9d2f68b04de8e10c2ff51f3 Mon Sep 17 00:00:00 2001 From: Ross Wollman Date: Thu, 23 Apr 2020 13:02:37 -0700 Subject: [PATCH] tests(downloads): add a test for Blob downloads (#1936) (#1939) --- test/assets/download-blob.html | 29 +++++++++++++++++++++++++++++ test/download.spec.js | 19 ++++++++++++++++--- 2 files changed, 45 insertions(+), 3 deletions(-) create mode 100644 test/assets/download-blob.html diff --git a/test/assets/download-blob.html b/test/assets/download-blob.html new file mode 100644 index 0000000000000..02a08893b50bf --- /dev/null +++ b/test/assets/download-blob.html @@ -0,0 +1,29 @@ + + + + Blob Download Example + + + + Download + + diff --git a/test/download.spec.js b/test/download.spec.js index 995b3c59610fd..f160ec6a949b0 100644 --- a/test/download.spec.js +++ b/test/download.spec.js @@ -70,16 +70,29 @@ describe('Download', function() { expect(fs.readFileSync(path).toString()).toBe('Hello world'); await page.close(); }); - it(`should report download path within page.on('download', …) handler`, async({browser, server}) => { + it(`should report download path within page.on('download', …) handler for Files`, async({browser, server}) => { const page = await browser.newPage({ acceptDownloads: true }); - const onDownloadPathPath = new Promise((res) => { + const onDownloadPath = new Promise((res) => { page.on('download', dl => { dl.path().then(res); }); }); await page.setContent(`download`); await page.click('a'); - const path = await onDownloadPathPath; + const path = await onDownloadPath; + expect(fs.readFileSync(path).toString()).toBe('Hello world'); + await page.close(); + }) + it.fail(FFOX || WEBKIT)(`should report download path within page.on('download', …) handler for Blobs`, async({browser, server}) => { + const page = await browser.newPage({ acceptDownloads: true }); + const onDownloadPath = new Promise((res) => { + page.on('download', dl => { + dl.path().then(res); + }); + }); + await page.goto(server.PREFIX + '/download-blob.html'); + await page.click('a'); + const path = await onDownloadPath; expect(fs.readFileSync(path).toString()).toBe('Hello world'); await page.close(); })