pdfkit/tests/integration/security.spec.js
2019-01-07 20:51:06 -03:00

80 lines
2.1 KiB
JavaScript

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');
}
);
});
});