// Copyright � 2004-2005 ASERT. Released under the Canoo Webtest license.
package com.canoo.webtest.plugins.pdftest;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import com.canoo.webtest.boundary.FileBoundary;
import com.canoo.webtest.plugins.pdftest.htmlunit.PDFEncryptionPermission;
import com.canoo.webtest.plugins.pdftest.htmlunit.PDFPage;
import com.canoo.webtest.self.ContextStub;
import com.canoo.webtest.steps.Step;
/**
* Unit tests for {@link PdfVerifyEncryptionPermissionsStep}.
* @author Paul King
* @author Marc Guillemot
*/
public class PdfVerifyEncryptionPermissionsStepTest extends AbstractBaseVerifyPdfTestCase
{
protected Step createStep() {
return new PdfVerifyEncryptionPermissionsStep();
}
public void testNoPrint() throws IOException {
final PdfVerifyEncryptionPermissionsStep step = new PdfVerifyEncryptionPermissionsStep();
setFakedContext(new PdfContextStub(FileBoundary.getFile("/testDocPermissionsNoPrint.pdf", PdfTestResources.class)));
step.setDeny("printing,degradedPrinting");
step.execute();
}
protected Step getMinimallyConfiguredStep() {
final PdfVerifyEncryptionPermissionsStep step = (PdfVerifyEncryptionPermissionsStep) getStep();
step.setAllow("copy");
return step;
}
public void testAttributes() throws IOException {
assertErrorOnExecute(getStep(), "One of 'allow' or 'deny' must be set.", "");
}
public void testAnalyzerError() throws Exception {
final PdfVerifyEncryptionPermissionsStep step = new PdfVerifyEncryptionPermissionsStep()
{
protected PDFPage getPdfPage() throws Exception {
return getPDFPageStub();
}
};
setFakedContext(new PdfContextStub(PdfTestResources.ENCRYPTED_FILE));
step.setAllow("dummy");
assertErrorOnExecute(step);
}
public void testParsePermissions()
{
final PdfVerifyEncryptionPermissionsStep step = (PdfVerifyEncryptionPermissionsStep) getStep();
final List fillIn = new ArrayList();
step.parsePermissions(fillIn, "printing, degradedPrinting, modifyContents");
final PDFEncryptionPermission[] perms = {PDFEncryptionPermission.PRINTING,
PDFEncryptionPermission.DEGRADED_PRINTING,
PDFEncryptionPermission.MODIFY_CONTENTS};
assertEquals(Arrays.asList(perms), fillIn);
}
}