@Test public void testEqual() { EncryptParameters eq1 = new EncryptParameters(PdfEncryption.STANDARD_ENC_40); eq1.addPermission(PdfAccessPermission.COPY_AND_EXTRACT); EncryptParameters eq2 = new EncryptParameters(PdfEncryption.STANDARD_ENC_40); eq2.addPermission(PdfAccessPermission.COPY_AND_EXTRACT); EncryptParameters eq3 = new EncryptParameters(PdfEncryption.STANDARD_ENC_40); eq3.addPermission(PdfAccessPermission.COPY_AND_EXTRACT); EncryptParameters diff = new EncryptParameters(PdfEncryption.STANDARD_ENC_40); diff.addPermission(PdfAccessPermission.ASSEMBLE); diff.setVersion(PdfVersion.VERSION_1_2); TestUtils.testEqualsAndHashCodes(eq1, eq2, eq3, diff); }
@Test(expected = UnsupportedOperationException.class) public void testUnmodifiableList() { EncryptParameters victim = new EncryptParameters(PdfEncryption.STANDARD_ENC_40); victim.addPermission(PdfAccessPermission.ANNOTATION); victim.getPermissions().clear(); }
@Test public void testAdd() { EncryptParameters victim = new EncryptParameters(PdfEncryption.STANDARD_ENC_40); victim.addPermission(PdfAccessPermission.ANNOTATION); assertEquals(1, victim.getPermissions().size()); }
@Test public void testClear() { EncryptParameters victim = new EncryptParameters(PdfEncryption.STANDARD_ENC_40); victim.addPermission(PdfAccessPermission.ANNOTATION); assertEquals(1, victim.getPermissions().size()); victim.clearPermissions(); assertEquals(0, victim.getPermissions().size()); }
/** * Transforms {@link EncryptTaskCliArguments} to {@link EncryptParameters} * * @param taskCliArguments * @return populated task parameters */ @Override public EncryptParameters toTaskParameters(EncryptTaskCliArguments taskCliArguments) { EncryptParameters parameters = new EncryptParameters(taskCliArguments.getEncryptionType().getEnumValue()); populateAbstractParameters(parameters, taskCliArguments); populateSourceParameters(parameters, taskCliArguments); populateOutputTaskParameters(parameters, taskCliArguments); populateOutputPrefix(parameters, taskCliArguments); String ownerPassword = taskCliArguments.getAdministratorPassword(); if(ownerPassword.isEmpty()){ ownerPassword = UUID.randomUUID().toString(); } parameters.setOwnerPassword(ownerPassword); parameters.setUserPassword(taskCliArguments.getUserPassword()); if (taskCliArguments.isAllow()) { for (PdfAccessPermissionAdapter eachAllowedPermissionAdapter : taskCliArguments.getAllow()) { parameters.addPermission(eachAllowedPermissionAdapter.getEnumValue()); } } return parameters; } }
@Test public void arc128WithOwner() throws IOException { setUpParameters(PdfEncryption.STANDARD_ENC_128); parameters.setOwnerPassword("test"); parameters.addPermission(PdfAccessPermission.COPY_AND_EXTRACT); parameters.addPermission(PdfAccessPermission.FILL_FORMS); testContext.directoryOutputTo(parameters); execute(parameters); testContext.assertTaskCompleted(); testContext.assertCreator().assertVersion(PdfVersion.VERSION_1_6).forEachPdfOutput(d -> { assertTrue(d.isEncrypted()); assertTrue(d.getCurrentAccessPermission().canExtractContent()); assertTrue(d.getCurrentAccessPermission().canFillInForm()); }); }
@Test public void aes256WithOwner() throws IOException { setUpParameters(PdfEncryption.AES_ENC_256); parameters.setVersion(PdfVersion.VERSION_1_7); parameters.setOwnerPassword("Chuck"); parameters.setUserPassword("Norris"); parameters.addPermission(PdfAccessPermission.COPY_AND_EXTRACT); parameters.addPermission(PdfAccessPermission.FILL_FORMS); testContext.directoryOutputTo(parameters); execute(parameters); testContext.assertTaskCompleted("Norris"); testContext.assertCreator().assertVersion(PdfVersion.VERSION_1_7).forEachPdfOutput(d -> { assertTrue(d.isEncrypted()); assertTrue(d.getCurrentAccessPermission().canExtractContent()); assertTrue(d.getCurrentAccessPermission().canFillInForm()); }); }
@Test public void enablingPrintDegraded() throws IOException { setUpParameters(PdfEncryption.STANDARD_ENC_128); parameters.setOwnerPassword("test"); parameters.addPermission(PdfAccessPermission.DEGRADATED_PRINT); testContext.directoryOutputTo(parameters); execute(parameters); testContext.assertTaskCompleted(); testContext.forEachPdfOutput(d -> { assertTrue(d.isEncrypted()); assertFalse(d.getCurrentAccessPermission().canPrint()); assertTrue(d.getCurrentAccessPermission().canPrintDegraded()); }); }
@Test public void enablingPrint() throws IOException { setUpParameters(PdfEncryption.STANDARD_ENC_128); parameters.setOwnerPassword("test"); parameters.addPermission(PdfAccessPermission.PRINT); testContext.directoryOutputTo(parameters); execute(parameters); testContext.assertTaskCompleted(); testContext.forEachPdfOutput(d -> { assertTrue(d.isEncrypted()); assertTrue(d.getCurrentAccessPermission().canPrint()); assertFalse(d.getCurrentAccessPermission().canPrintDegraded()); }); }