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

Merge pull request #9383 from Rob--W/better-content-disposition-parser

Better content disposition parser
This commit is contained in:
Jonas Jenwald 2018-01-21 15:08:14 +01:00 committed by GitHub
commit f0216484bc
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 255 additions and 13 deletions

View file

@ -173,26 +173,53 @@ describe('network_utils', function() {
return 'attachment; filename="filename.pdf"';
}
})).toEqual('filename.pdf');
expect(extractFilenameFromHeader((headerName) => {
if (headerName === 'Content-Disposition') {
return 'attachment; filename=filename.pdf';
}
})).toEqual('filename.pdf');
});
it('returns null when content disposition is form-data', function() {
it('gets the filename from the response header (RFC 6266)', function() {
expect(extractFilenameFromHeader((headerName) => {
if (headerName === 'Content-Disposition') {
return 'form-data';
return 'attachment; filename*=filename.pdf';
}
})).toBeNull();
})).toEqual('filename.pdf');
expect(extractFilenameFromHeader((headerName) => {
if (headerName === 'Content-Disposition') {
return 'form-data; name="filename.pdf"';
return 'attachment; filename*=\'\'filename.pdf';
}
})).toBeNull();
})).toEqual('filename.pdf');
expect(extractFilenameFromHeader((headerName) => {
if (headerName === 'Content-Disposition') {
return 'form-data; name="filename.pdf"; filename="file.pdf"';
return 'attachment; filename*=utf-8\'\'filename.pdf';
}
})).toEqual('file.pdf');
})).toEqual('filename.pdf');
expect(extractFilenameFromHeader((headerName) => {
if (headerName === 'Content-Disposition') {
return 'attachment; filename=no.pdf; filename*=utf-8\'\'filename.pdf';
}
})).toEqual('filename.pdf');
expect(extractFilenameFromHeader((headerName) => {
if (headerName === 'Content-Disposition') {
return 'attachment; filename*=utf-8\'\'filename.pdf; filename=no.pdf';
}
})).toEqual('filename.pdf');
});
it('gets the filename from the response header (RFC 2231)', function() {
// Tests continuations (RFC 2231 section 3, via RFC 5987 section 3.1).
expect(extractFilenameFromHeader((headerName) => {
if (headerName === 'Content-Disposition') {
return 'attachment; filename*0=filename; filename*1=.pdf';
}
})).toEqual('filename.pdf');
});
it('only extracts filename with pdf extension', function () {