diff --git a/src/index.js b/src/index.js index e7bdf72..a6357ad 100644 --- a/src/index.js +++ b/src/index.js @@ -15,13 +15,13 @@ export default function(file, acceptedFiles) { ? acceptedFiles : acceptedFiles.split(',') const fileName = file.name || '' - const mimeType = file.type || '' + const mimeType = (file.type || '').toLowerCase() const baseMimeType = mimeType.replace(/\/.*$/, '') return acceptedFilesArray.some(type => { - const validType = type.trim() + const validType = type.trim().toLowerCase() if (validType.charAt(0) === '.') { - return fileName.toLowerCase().endsWith(validType.toLowerCase()) + return fileName.toLowerCase().endsWith(validType) } else if (validType.endsWith('/*')) { // This is something like a image/* mime type return baseMimeType === validType.replace(/\/.*$/, '') diff --git a/test/index.js b/test/index.js index 502ba6e..53afede 100644 --- a/test/index.js +++ b/test/index.js @@ -286,4 +286,25 @@ describe('accept', () => { ) ).toBe(false) }) + + it('should check MIME types in a case insensitive way', () => { + expect( + accept( + { + name: 'testfile.xlsm', + type: 'application/vnd.ms-excel.sheet.macroenabled.12' + }, + ['application/vnd.ms-excel.sheet.macroEnabled.12'] + ) + ).toBe(true) + expect( + accept( + { + name: 'testfile.xlsm', + type: 'application/vnd.ms-excel.sheet.macroEnabled.12' + }, + ['application/vnd.ms-excel.sheet.macroenabled.12'] + ) + ).toBe(true) + }) })