diff --git a/packages/goto/test/unit/evasions/index.js b/packages/goto/test/unit/evasions/index.js index 0cd63d7ca..340a3d3cd 100644 --- a/packages/goto/test/unit/evasions/index.js +++ b/packages/goto/test/unit/evasions/index.js @@ -152,7 +152,7 @@ test('media codecs are present', async t => { } }) - t.deepEqual(await videoCodecs(), { ogg: 'probably', h264: 'probably', webm: 'probably' }) + t.deepEqual(await videoCodecs(), { ogg: '', h264: 'probably', webm: 'probably' }) t.deepEqual(await audioCodecs(), { ogg: 'probably', diff --git a/packages/screenshot/src/is-white-screenshot.js b/packages/screenshot/src/is-white-screenshot.js index d219ebef1..55506274f 100644 --- a/packages/screenshot/src/is-white-screenshot.js +++ b/packages/screenshot/src/is-white-screenshot.js @@ -8,8 +8,12 @@ module.exports = async buffer => { const height = image.getHeight() const width = image.getWidth() - for (let i = 0; i < height; i++) { - for (let j = 0; j < width; j++) { + const samplePercentage = 0.25 // Sample 25% of the image + const sampleSize = Math.floor(width * height * samplePercentage) // Calculate sample size based on percentage + const stepSize = Math.max(1, Math.floor((width * height) / sampleSize)) // Calculate step size based on sample size + + for (let i = 0; i < height; i += stepSize) { + for (let j = 0; j < width; j += stepSize) { if (firstPixel !== image.getPixelColor(j, i)) return false } } diff --git a/packages/screenshot/test/fixtures/no-white-5k.jpg b/packages/screenshot/test/fixtures/no-white-5k.jpg new file mode 100644 index 000000000..0adbc584f Binary files /dev/null and b/packages/screenshot/test/fixtures/no-white-5k.jpg differ diff --git a/packages/screenshot/test/fixtures/no-white-5k.png b/packages/screenshot/test/fixtures/no-white-5k.png new file mode 100644 index 000000000..0a5700f3d Binary files /dev/null and b/packages/screenshot/test/fixtures/no-white-5k.png differ diff --git a/packages/screenshot/test/fixtures/white-5k.jpg b/packages/screenshot/test/fixtures/white-5k.jpg new file mode 100644 index 000000000..05a0af13d Binary files /dev/null and b/packages/screenshot/test/fixtures/white-5k.jpg differ diff --git a/packages/screenshot/test/fixtures/white-5k.png b/packages/screenshot/test/fixtures/white-5k.png new file mode 100644 index 000000000..130767a72 Binary files /dev/null and b/packages/screenshot/test/fixtures/white-5k.png differ diff --git a/packages/screenshot/test/is-white-screenshot.js b/packages/screenshot/test/is-white-screenshot.js new file mode 100644 index 000000000..f9aac9764 --- /dev/null +++ b/packages/screenshot/test/is-white-screenshot.js @@ -0,0 +1,16 @@ +'use strict' + +const test = require('ava') +const { readFile } = require('fs/promises') + +const isWhite = require('../src/is-white-screenshot') + +test('true', async t => { + t.true(await isWhite(await readFile('./test/fixtures/white-5k.jpg'))) + t.true(await isWhite(await readFile('./test/fixtures/white-5k.png'))) +}) + +test('false', async t => { + t.false(await isWhite(await readFile('./test/fixtures/no-white-5k.jpg'))) + t.false(await isWhite(await readFile('./test/fixtures/no-white-5k.png'))) +})