var { runDocTest } = require('./helpers'); var PDFDocument = require('../../lib/document').default; var CryptoJS = require('crypto-js'); describe('pdfmake', function() { let generateRandomWordArray = null; beforeAll(function() { const doc = new PDFDocument({ userPassword: 'user' }); generateRandomWordArray = Object.getPrototypeOf(doc._security).constructor .generateRandomWordArray; Object.getPrototypeOf( doc._security ).constructor.generateRandomWordArray = function(bytes) { return CryptoJS.lib.WordArray.create(null, bytes); }; }); afterAll(function() { const doc = new PDFDocument({ userPassword: 'user' }); Object.getPrototypeOf( doc._security ).constructor.generateRandomWordArray = generateRandomWordArray; }); test('encryption with RC-40 (PDF 1.3)', function() { return runDocTest( { pdfVersion: '1.3', userPassword: 'user', ownerPassword: 'owner' }, function(doc) { doc.text('test'); } ); }); test('encryption with RC-128 (PDF 1.4)', function() { return runDocTest( { pdfVersion: '1.4', userPassword: 'user', ownerPassword: 'owner' }, function(doc) { doc.text('test'); } ); }); test('encryption with RC-128 (PDF 1.5)', function() { return runDocTest( { pdfVersion: '1.5', userPassword: 'user', ownerPassword: 'owner' }, function(doc) { doc.text('test'); } ); }); test('encryption with AES-128 (PDF 1.6)', function() { return runDocTest( { pdfVersion: '1.6', userPassword: 'user', ownerPassword: 'owner' }, function(doc) { doc.text('test'); } ); }); test('encryption with AES-128 (PDF 1.7)', function() { return runDocTest( { pdfVersion: '1.7', userPassword: 'user', ownerPassword: 'owner' }, function(doc) { doc.text('test'); } ); }); test('encryption with AES-256 (PDF 1.7 extension 3)', function() { return runDocTest( { pdfVersion: '1.7ext3', userPassword: 'user', ownerPassword: 'owner' }, function(doc) { doc.text('test'); } ); }); });