diff --git a/packages/postcss-svgo/src/__tests__/index.js b/packages/postcss-svgo/src/__tests__/index.js index 54f6a5008..17abd0882 100644 --- a/packages/postcss-svgo/src/__tests__/index.js +++ b/packages/postcss-svgo/src/__tests__/index.js @@ -198,6 +198,15 @@ test('should warn on SVG containing unclosed tags', async () => { expect(result.messages[0].type).toBe('warning'); }); +test('should only warn with svg data uri', async () => { + const css = `@font-face { + src: url("https://example/dfds.woff2") format("woff2"), + url('data:image/svg+xml;charset=utf-8,') format("svg"); + }`; + const result = await postcss(plugin()).process(css, { from: undefined }); + expect(result.messages.length).toBe(0); +}); + test( 'should pass through links to svg files', passthroughCSS('h1{background:url(unicorn.svg)}') diff --git a/packages/postcss-svgo/src/index.js b/packages/postcss-svgo/src/index.js index 24c9bf529..c2fc16928 100644 --- a/packages/postcss-svgo/src/index.js +++ b/packages/postcss-svgo/src/index.js @@ -28,6 +28,9 @@ function minify(decl, opts, postcssResult) { svg = Buffer.from(base64String, 'base64').toString('utf8'); isBase64 = true; } else { + if (!dataURI.test(value)) { + return; + } let decodedUri; try {