Ensure that the PDF header contains an actual number (PR 11463 follow-up)

While it would be nice to change the `PDFFormatVersion` property, as returned through `PDFDocumentProxy.getMetadata`, to a number (rather than a string) that would unfortunately be a breaking API change.
However, it does seem like a good idea to at least *validate* the PDF header version on the worker-thread, rather than potentially returning an arbitrary string.
This commit is contained in:
Jonas Jenwald 2020-02-05 13:59:47 +01:00
parent a5fec297c0
commit 88c35d872f
4 changed files with 101 additions and 1 deletions

View file

@ -1121,6 +1121,28 @@ describe("api", function() {
})
.catch(done.fail);
});
it("gets metadata, with missing PDF header (bug 1606566)", function(done) {
const loadingTask = getDocument(buildGetDocumentParams("bug1606566.pdf"));
loadingTask.promise
.then(function(pdfDocument) {
return pdfDocument.getMetadata();
})
.then(function({ info, metadata, contentDispositionFilename }) {
// The following are PDF.js specific, non-standard, properties.
expect(info["PDFFormatVersion"]).toEqual(null);
expect(info["IsLinearized"]).toEqual(false);
expect(info["IsAcroFormPresent"]).toEqual(false);
expect(info["IsXFAPresent"]).toEqual(false);
expect(info["IsCollectionPresent"]).toEqual(false);
expect(metadata).toEqual(null);
expect(contentDispositionFilename).toEqual(null);
loadingTask.destroy().then(done);
})
.catch(done.fail);
});
it("gets data", function(done) {
var promise = doc.getData();