diff --git a/helpers/lib/cdnify.js b/helpers/lib/cdnify.js index f23c346..59cb6ce 100644 --- a/helpers/lib/cdnify.js +++ b/helpers/lib/cdnify.js @@ -56,7 +56,10 @@ module.exports = globals => { } if (protocol === 'webdav:') { - return [cdnUrl, 'content', path].join('/'); + const supportedImageExtensions = ['jpg', 'JPG', 'jpeg', 'JPEG', 'gif', 'GIF', 'png', 'PNG']; + const isImage = supportedImageExtensions.some(ext => path.includes(ext)); + const prefix = isImage ? 'images/stencil/original/content' : 'content' + return [cdnUrl, prefix, path].join('/'); } if (cdnSettings) { diff --git a/spec/helpers/cdn.js b/spec/helpers/cdn.js index b469bc2..fcf2cfe 100644 --- a/spec/helpers/cdn.js +++ b/spec/helpers/cdn.js @@ -194,19 +194,40 @@ describe('cdn helper', function () { ], done); }); - it('should return a webDav asset if webdav protocol specified', function (done) { + it('should return an original cdn img asset if webdav protocol specified but file type indicates it is an image', function (done) { runTestCases([ { input: '{{cdn "webdav:img/image.jpg"}}', - output: 'https://cdn.bcapp/3dsf74g/content/img/image.jpg', + output: 'https://cdn.bcapp/3dsf74g/images/stencil/original/content/img/image.jpg', }, { - input: '{{cdn "webdav:/img/image.jpg"}}', - output: 'https://cdn.bcapp/3dsf74g/content/img/image.jpg', + input: '{{cdn "webdav:/img/image.jpeg"}}', + output: 'https://cdn.bcapp/3dsf74g/images/stencil/original/content/img/image.jpeg', }, { - input: '{{cdn "webdav://img/image.jpg"}}', - output: 'https://cdn.bcapp/3dsf74g/content/img/image.jpg', + input: '{{cdn "webdav://img/image.gif"}}', + output: 'https://cdn.bcapp/3dsf74g/images/stencil/original/content/img/image.gif', + }, + { + input: '{{cdn "webdav://img/image.png"}}', + output: 'https://cdn.bcapp/3dsf74g/images/stencil/original/content/img/image.png', + }, + ], done); + }); + + it('should return a webDav asset if webdav protocol specified but is not a supported image type', function (done) { + runTestCases([ + { + input: '{{cdn "webdav:img/image.pdf"}}', + output: 'https://cdn.bcapp/3dsf74g/content/img/image.pdf', + }, + { + input: '{{cdn "webdav:/img/image.pdf"}}', + output: 'https://cdn.bcapp/3dsf74g/content/img/image.pdf', + }, + { + input: '{{cdn "webdav://img/image.pdf"}}', + output: 'https://cdn.bcapp/3dsf74g/content/img/image.pdf', }, ], done); });