123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- /**
- * @licstart The following is the entire license notice for the
- * Javascript code in this page
- *
- * Copyright 2020 Mozilla Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * @licend The above is the entire license notice for the
- * Javascript code in this page
- */
- "use strict";
- var _test_utils = require("./test_utils.js");
- var _primitives = require("../../core/primitives.js");
- var _document = require("../../core/document.js");
- var _stream = require("../../core/stream.js");
- describe("document", function () {
- describe("Page", function () {
- it("should create correct objId/fontId using the idFactory", function () {
- const idFactory1 = (0, _test_utils.createIdFactory)(0);
- const idFactory2 = (0, _test_utils.createIdFactory)(1);
- expect(idFactory1.createObjId()).toEqual("p0_1");
- expect(idFactory1.createObjId()).toEqual("p0_2");
- expect(idFactory1.createFontId()).toEqual("f1");
- expect(idFactory1.createFontId()).toEqual("f2");
- expect(idFactory1.getDocId()).toEqual("g_d0");
- expect(idFactory2.createObjId()).toEqual("p1_1");
- expect(idFactory2.createObjId()).toEqual("p1_2");
- expect(idFactory2.createFontId()).toEqual("f1");
- expect(idFactory2.createFontId()).toEqual("f2");
- expect(idFactory2.getDocId()).toEqual("g_d0");
- expect(idFactory1.createObjId()).toEqual("p0_3");
- expect(idFactory1.createObjId()).toEqual("p0_4");
- expect(idFactory1.createFontId()).toEqual("f3");
- expect(idFactory1.createFontId()).toEqual("f4");
- expect(idFactory1.getDocId()).toEqual("g_d0");
- });
- });
- describe("PDFDocument", function () {
- const pdfManager = {
- get docId() {
- return "d0";
- }
- };
- const stream = new _stream.StringStream("Dummy_PDF_data");
- function getDocument(acroForm) {
- const pdfDocument = new _document.PDFDocument(pdfManager, stream);
- pdfDocument.catalog = {
- acroForm
- };
- return pdfDocument;
- }
- it("should get form info when no form data is present", function () {
- const pdfDocument = getDocument(null);
- expect(pdfDocument.formInfo).toEqual({
- hasAcroForm: false,
- hasXfa: false
- });
- });
- it("should get form info when XFA is present", function () {
- const acroForm = new _primitives.Dict();
- acroForm.set("XFA", []);
- let pdfDocument = getDocument(acroForm);
- expect(pdfDocument.formInfo).toEqual({
- hasAcroForm: false,
- hasXfa: false
- });
- acroForm.set("XFA", ["foo", "bar"]);
- pdfDocument = getDocument(acroForm);
- expect(pdfDocument.formInfo).toEqual({
- hasAcroForm: false,
- hasXfa: true
- });
- acroForm.set("XFA", new _stream.StringStream(""));
- pdfDocument = getDocument(acroForm);
- expect(pdfDocument.formInfo).toEqual({
- hasAcroForm: false,
- hasXfa: false
- });
- acroForm.set("XFA", new _stream.StringStream("non-empty"));
- pdfDocument = getDocument(acroForm);
- expect(pdfDocument.formInfo).toEqual({
- hasAcroForm: false,
- hasXfa: true
- });
- });
- it("should get form info when AcroForm is present", function () {
- const acroForm = new _primitives.Dict();
- acroForm.set("Fields", []);
- let pdfDocument = getDocument(acroForm);
- expect(pdfDocument.formInfo).toEqual({
- hasAcroForm: false,
- hasXfa: false
- });
- acroForm.set("Fields", ["foo", "bar"]);
- pdfDocument = getDocument(acroForm);
- expect(pdfDocument.formInfo).toEqual({
- hasAcroForm: true,
- hasXfa: false
- });
- acroForm.set("Fields", ["foo", "bar"]);
- acroForm.set("SigFlags", 2);
- pdfDocument = getDocument(acroForm);
- expect(pdfDocument.formInfo).toEqual({
- hasAcroForm: true,
- hasXfa: false
- });
- const annotationDict = new _primitives.Dict();
- annotationDict.set("FT", _primitives.Name.get("Sig"));
- annotationDict.set("Rect", [0, 0, 0, 0]);
- const annotationRef = _primitives.Ref.get(11, 0);
- const kidsDict = new _primitives.Dict();
- kidsDict.set("Kids", [annotationRef]);
- const kidsRef = _primitives.Ref.get(10, 0);
- pdfDocument.xref = new _test_utils.XRefMock([{
- ref: annotationRef,
- data: annotationDict
- }, {
- ref: kidsRef,
- data: kidsDict
- }]);
- acroForm.set("Fields", [kidsRef]);
- acroForm.set("SigFlags", 3);
- pdfDocument = getDocument(acroForm);
- expect(pdfDocument.formInfo).toEqual({
- hasAcroForm: false,
- hasXfa: false
- });
- });
- });
- });
|