1
0
Fork 0
mirror of https://github.com/mozilla/pdf.js.git synced 2025-04-21 07:38:07 +02:00

Content disposition filename

File name is extracted from headers.
This commit is contained in:
Juan Salvador Perez Garcia 2018-01-13 09:01:50 +01:00 committed by Jonas Jenwald
parent 96c573ad38
commit eb1f6f4c24
8 changed files with 139 additions and 21 deletions

View file

@ -14,8 +14,8 @@
*/
import {
createResponseStatusError, validateRangeRequestCapabilities,
validateResponseStatus
createResponseStatusError, extractFilenameFromHeader,
validateRangeRequestCapabilities, validateResponseStatus
} from '../../src/display/network_utils';
import {
MissingPDFException, UnexpectedResponseException
@ -175,4 +175,62 @@ describe('network_utils', function() {
expect(validateResponseStatus(undefined)).toEqual(false);
});
});
describe('extractFilenameFromHeader', function () {
it('returns null when content disposition header is blank', function() {
expect(extractFilenameFromHeader(function() {
return null;
})).toBeNull();
expect(extractFilenameFromHeader(function() {
return undefined;
})).toBeNull();
expect(extractFilenameFromHeader(function() {
return '';
})).toBeNull();
});
it('gets the filename from the response header', function () {
expect(extractFilenameFromHeader(function() {
return 'Content-Disposition: inline';
})).toBeNull();
expect(extractFilenameFromHeader(function() {
return 'Content-Disposition: attachment';
})).toBeNull();
expect(extractFilenameFromHeader(function() {
return 'Content-Disposition: attachment; filename="filename.pdf"';
})).toBe('filename.pdf');
});
it('returns null when content disposition is form-data', function () {
expect(extractFilenameFromHeader(function() {
return 'Content-Disposition: form-data';
})).toBeNull();
expect(extractFilenameFromHeader(function() {
return 'Content-Disposition: form-data; name="filename"';
})).toBeNull();
expect(extractFilenameFromHeader(function () {
return 'Content-Disposition: form-data; ' +
'name="filename"; filename="file.pdf"';
})).toBe('file.pdf');
});
it('Only extracts file names with pdf extension', function () {
expect(extractFilenameFromHeader(function() {
return 'Content-Disposition: attachment; filename="filename.png"';
})).toBeNull();
});
it('Extension validation is case insensitive', function () {
expect(extractFilenameFromHeader(function() {
return 'Content-Disposition: form-data; ' +
'name="fieldName"; filename="file.PdF"';
})).toBe('file.PdF');
});
});
});