From 63f208bafb001a26c2845942e8d5e95257af2671 Mon Sep 17 00:00:00 2001 From: Pavel Feldman Date: Thu, 9 Jan 2020 16:43:11 -0800 Subject: [PATCH] test(screenshots): add a bunch of screenshot tests (#448) --- test/assets/screenshots/canvas.html | 10 +++ test/assets/screenshots/controls.html | 7 ++ test/assets/screenshots/translateZ.html | 4 ++ test/assets/screenshots/webgl.html | 63 ++++++++++++++++++ test/golden-chromium/screenshot-canvas.png | Bin 0 -> 2265 bytes .../golden-chromium/screenshot-translateZ.png | Bin 0 -> 2146 bytes test/golden-chromium/screenshot-webgl.png | Bin 0 -> 4016 bytes test/golden-firefox/screenshot-canvas.png | Bin 0 -> 2265 bytes test/golden-firefox/screenshot-translateZ.png | Bin 0 -> 2146 bytes test/golden-firefox/screenshot-webgl.png | Bin 0 -> 4016 bytes test/golden-webkit/screenshot-canvas.png | Bin 0 -> 2265 bytes test/golden-webkit/screenshot-translateZ.png | Bin 0 -> 2146 bytes test/golden-webkit/screenshot-webgl.png | Bin 0 -> 4016 bytes test/screenshot.spec.js | 18 +++++ 14 files changed, 102 insertions(+) create mode 100644 test/assets/screenshots/canvas.html create mode 100644 test/assets/screenshots/controls.html create mode 100644 test/assets/screenshots/translateZ.html create mode 100644 test/assets/screenshots/webgl.html create mode 100644 test/golden-chromium/screenshot-canvas.png create mode 100644 test/golden-chromium/screenshot-translateZ.png create mode 100644 test/golden-chromium/screenshot-webgl.png create mode 100644 test/golden-firefox/screenshot-canvas.png create mode 100644 test/golden-firefox/screenshot-translateZ.png create mode 100644 test/golden-firefox/screenshot-webgl.png create mode 100644 test/golden-webkit/screenshot-canvas.png create mode 100644 test/golden-webkit/screenshot-translateZ.png create mode 100644 test/golden-webkit/screenshot-webgl.png diff --git a/test/assets/screenshots/canvas.html b/test/assets/screenshots/canvas.html new file mode 100644 index 0000000000..011148c5ff --- /dev/null +++ b/test/assets/screenshots/canvas.html @@ -0,0 +1,10 @@ + + + + diff --git a/test/assets/screenshots/controls.html b/test/assets/screenshots/controls.html new file mode 100644 index 0000000000..64ab27980d --- /dev/null +++ b/test/assets/screenshots/controls.html @@ -0,0 +1,7 @@ +

+

+

+

+

+

+

diff --git a/test/assets/screenshots/translateZ.html b/test/assets/screenshots/translateZ.html new file mode 100644 index 0000000000..2b4aae8c09 --- /dev/null +++ b/test/assets/screenshots/translateZ.html @@ -0,0 +1,4 @@ +
+
+
+
\ No newline at end of file diff --git a/test/assets/screenshots/webgl.html b/test/assets/screenshots/webgl.html new file mode 100644 index 0000000000..a5e3d4981a --- /dev/null +++ b/test/assets/screenshots/webgl.html @@ -0,0 +1,63 @@ + + + diff --git a/test/golden-chromium/screenshot-canvas.png b/test/golden-chromium/screenshot-canvas.png new file mode 100644 index 0000000000000000000000000000000000000000..dfafbda63886a7f5346d95615ceb18127ae6974c GIT binary patch literal 2265 zcmeAS@N?(olHy`uVBq!ia0y~yVEh8Y9Be?5)7S2I0V&4fAa^H*b?0PWGB9vV_H=O! zshIQj*1@&6937P`dmFu5~xWzMD!5!=+M9EU#WJr`-P+r0BvYJTxKONNI0x5r;G zG8}l!BFn%uP*`s@dynC&l! zlfV7;D@lIKzQ>REJz#(EzUBzfpi-DYLyew(l{xNd-TwZ^7GdWrPE^i&T(x)IJjMgk zzd9DY|7~|nBKh3Tij&FfuD^bt&e*Vi+fTNsx3|4rx&J#`|CgYD_6&QR*&7%fA-Lg* zd*S)IE T1813mZ50MjS3j3^P62S&sVBf!oVRg z)bW>i007ROsh3xd&ta5N1J>onl+7+6tZaX{)lu+hNa M>FVdQ&MBb@0Ke99JOBUy literal 0 HcmV?d00001 diff --git a/test/golden-chromium/screenshot-webgl.png b/test/golden-chromium/screenshot-webgl.png new file mode 100644 index 0000000000000000000000000000000000000000..76109512b5e2c48c3486dc154e078879925dd12e GIT binary patch literal 4016 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 IWYatU1^x<1#{d8T literal 0 HcmV?d00001 diff --git a/test/golden-firefox/screenshot-canvas.png b/test/golden-firefox/screenshot-canvas.png new file mode 100644 index 0000000000000000000000000000000000000000..dfafbda63886a7f5346d95615ceb18127ae6974c GIT binary patch literal 2265 zcmeAS@N?(olHy`uVBq!ia0y~yVEh8Y9Be?5)7S2I0V&4fAa^H*b?0PWGB9vV_H=O! zshIQj*1@&6937P`dmFu5~xWzMD!5!=+M9EU#WJr`-P+r0BvYJTxKONNI0x5r;G zG8}l!BFn%uP*`s@dynC&l! zlfV7;D@lIKzQ>REJz#(EzUBzfpi-DYLyew(l{xNd-TwZ^7GdWrPE^i&T(x)IJjMgk zzd9DY|7~|nBKh3Tij&FfuD^bt&e*Vi+fTNsx3|4rx&J#`|CgYD_6&QR*&7%fA-Lg* zd*S)IE T1813mZ50MjS3j3^P62S&sVBf!oVRg z)bW>i007ROsh3xd&ta5N1J>onl+7+6tZaX{)lu+hNa M>FVdQ&MBb@0Ke99JOBUy literal 0 HcmV?d00001 diff --git a/test/golden-firefox/screenshot-webgl.png b/test/golden-firefox/screenshot-webgl.png new file mode 100644 index 0000000000000000000000000000000000000000..76109512b5e2c48c3486dc154e078879925dd12e GIT binary patch literal 4016 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 IWYatU1^x<1#{d8T literal 0 HcmV?d00001 diff --git a/test/golden-webkit/screenshot-canvas.png b/test/golden-webkit/screenshot-canvas.png new file mode 100644 index 0000000000000000000000000000000000000000..dfafbda63886a7f5346d95615ceb18127ae6974c GIT binary patch literal 2265 zcmeAS@N?(olHy`uVBq!ia0y~yVEh8Y9Be?5)7S2I0V&4fAa^H*b?0PWGB9vV_H=O! zshIQj*1@&6937P`dmFu5~xWzMD!5!=+M9EU#WJr`-P+r0BvYJTxKONNI0x5r;G zG8}l!BFn%uP*`s@dynC&l! zlfV7;D@lIKzQ>REJz#(EzUBzfpi-DYLyew(l{xNd-TwZ^7GdWrPE^i&T(x)IJjMgk zzd9DY|7~|nBKh3Tij&FfuD^bt&e*Vi+fTNsx3|4rx&J#`|CgYD_6&QR*&7%fA-Lg* zd*S)IE T1813mZ50MjS3j3^P62S&sVBf!oVRg z)bW>i007ROsh3xd&ta5N1J>onl+7+6tZaX{)lu+hNa M>FVdQ&MBb@0Ke99JOBUy literal 0 HcmV?d00001 diff --git a/test/golden-webkit/screenshot-webgl.png b/test/golden-webkit/screenshot-webgl.png new file mode 100644 index 0000000000000000000000000000000000000000..76109512b5e2c48c3486dc154e078879925dd12e GIT binary patch literal 4016 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 IWYatU1^x<1#{d8T literal 0 HcmV?d00001 diff --git a/test/screenshot.spec.js b/test/screenshot.spec.js index bf496a6f2e..4f358d107f 100644 --- a/test/screenshot.spec.js +++ b/test/screenshot.spec.js @@ -306,6 +306,24 @@ module.exports.describe = function({testRunner, expect, product, FFOX, CHROME, W const screenshot = await elementHandle.screenshot(); expect(screenshot).toBeGolden('screenshot-element-fractional-offset.png'); }); + it('should work for canvas', async({page, server}) => { + await page.setViewport({width: 500, height: 500}); + await page.goto(server.PREFIX + '/screenshots/canvas.html'); + const screenshot = await page.screenshot(); + expect(screenshot).toBeGolden('screenshot-canvas.png'); + }); + it('should work for translateZ', async({page, server}) => { + await page.setViewport({width: 500, height: 500}); + await page.goto(server.PREFIX + '/screenshots/translateZ.html'); + const screenshot = await page.screenshot(); + expect(screenshot).toBeGolden('screenshot-translateZ.png'); + }); + it.skip(FFOX || WEBKIT)('should work for webgl', async({page, server}) => { + await page.setViewport({width: 640, height: 480}); + await page.goto(server.PREFIX + '/screenshots/webgl.html'); + const screenshot = await page.screenshot(); + expect(screenshot).toBeGolden('screenshot-webgl.png'); + }); }); };