From db52e4d66d60184d53a27ba4d6772461daacc03d Mon Sep 17 00:00:00 2001 From: tknall Date: Fri, 22 Mar 2013 08:57:51 +0000 Subject: Maintenance update (bugfixes, new features, cleanup...) Refer to /dok/RELEASE_NOTES-3.3.txt for further information. git-svn-id: https://joinup.ec.europa.eu/svn/pdf-as/pdf-as/trunk@931 7b5415b0-85f9-ee4d-85bd-d5d0c3b42d1c --- .../wag/egov/egiz/sig/SignatureTypesStateTest.java | 101 ++++++++++++++++ .../SignatureLayoutHandlerFactoryTests.java | 131 +++++++++++++++++++++ 2 files changed, 232 insertions(+) create mode 100644 pdf-as-lib/src/test/java/at/knowcenter/wag/egov/egiz/sig/SignatureTypesStateTest.java create mode 100644 pdf-as-lib/src/test/java/at/knowcenter/wag/egov/egiz/sig/signaturelayout/SignatureLayoutHandlerFactoryTests.java (limited to 'pdf-as-lib/src/test/java/at/knowcenter/wag/egov/egiz/sig') diff --git a/pdf-as-lib/src/test/java/at/knowcenter/wag/egov/egiz/sig/SignatureTypesStateTest.java b/pdf-as-lib/src/test/java/at/knowcenter/wag/egov/egiz/sig/SignatureTypesStateTest.java new file mode 100644 index 0000000..02931eb --- /dev/null +++ b/pdf-as-lib/src/test/java/at/knowcenter/wag/egov/egiz/sig/SignatureTypesStateTest.java @@ -0,0 +1,101 @@ +/** + * Copyright 2006 by Know-Center, Graz, Austria + * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a + * joint initiative of the Federal Chancellery Austria and Graz University of + * Technology. + * + * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by + * the European Commission - subsequent versions of the EUPL (the "Licence"); + * You may not use this work except in compliance with the Licence. + * You may obtain a copy of the Licence at: + * http://www.osor.eu/eupl/ + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the Licence is distributed on an "AS IS" basis, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the Licence for the specific language governing permissions and + * limitations under the Licence. + * + * This product combines work with different licenses. See the "NOTICE" text + * file for details on the various modules and licenses. + * The "NOTICE" text file is part of the distribution. Any derivative works + * that you distribute must include a readable copy of the "NOTICE" text file. + */ +package at.knowcenter.wag.egov.egiz.sig; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import org.junit.Test; + +import at.knowcenter.wag.egov.egiz.sig.SignatureTypes.State; + +/** + * Tests regarding new signature profile states "verify_only" and "sign_only". + * + * @author Datentechnik Innovation GmbH + */ +public class SignatureTypesStateTest { + + @Test + public void testFromString() { + assertEquals(State.ON, State.fromString("on")); + assertEquals(State.ON, State.fromString("ON")); + assertEquals(State.ON, State.fromString("On")); + assertEquals(State.ON, State.fromString("enabled")); + assertEquals(State.ON, State.fromString("yes")); + assertEquals(State.ON, State.fromString("true")); + + assertEquals(State.SIGN_ONLY, State.fromString("sign_only")); + assertEquals(State.SIGN_ONLY, State.fromString("signonly")); + assertEquals(State.SIGN_ONLY, State.fromString("sign-only")); + assertEquals(State.SIGN_ONLY, State.fromString("SignOnly")); + assertEquals(State.SIGN_ONLY, State.fromString("SIGN_ONLY")); + assertEquals(State.SIGN_ONLY, State.fromString("sign only")); + assertEquals(State.SIGN_ONLY, State.fromString("sign")); + + assertEquals(State.VERIFY_ONLY, State.fromString("verify_only")); + assertEquals(State.VERIFY_ONLY, State.fromString("verifyonly")); + assertEquals(State.VERIFY_ONLY, State.fromString("verify-only")); + assertEquals(State.VERIFY_ONLY, State.fromString("Verifyonly")); + assertEquals(State.VERIFY_ONLY, State.fromString("VERIFY_ONLY")); + assertEquals(State.VERIFY_ONLY, State.fromString("verify only")); + assertEquals(State.VERIFY_ONLY, State.fromString("verify")); + } + + @Test + public void testDefaultState() { + assertEquals(State.OFF, State.fromString("")); + assertEquals(State.OFF, State.fromString(null)); + assertEquals(State.OFF, State.fromString("off")); + assertEquals(State.OFF, State.fromString("OFF")); + assertEquals(State.OFF, State.fromString("foo")); + } + + @Test + public void testIn() { + assertTrue(State.ON.in(State.values())); + assertTrue(State.ON.in(State.ON)); + assertFalse(State.ON.in()); + assertFalse(State.ON.in((State) null)); + assertFalse(State.ON.in(State.OFF, State.VERIFY_ONLY, State.SIGN_ONLY)); + } + + @Test + public void testCanSign() { + assertTrue(State.ON.canSign()); + assertFalse(State.OFF.canSign()); + assertTrue(State.SIGN_ONLY.canSign()); + assertFalse(State.VERIFY_ONLY.canSign()); + } + + @Test + public void testCanVerify() { + assertTrue(State.ON.canVerify()); + assertFalse(State.OFF.canVerify()); + assertFalse(State.SIGN_ONLY.canVerify()); + assertTrue(State.VERIFY_ONLY.canVerify()); + } + +} diff --git a/pdf-as-lib/src/test/java/at/knowcenter/wag/egov/egiz/sig/signaturelayout/SignatureLayoutHandlerFactoryTests.java b/pdf-as-lib/src/test/java/at/knowcenter/wag/egov/egiz/sig/signaturelayout/SignatureLayoutHandlerFactoryTests.java new file mode 100644 index 0000000..45572bd --- /dev/null +++ b/pdf-as-lib/src/test/java/at/knowcenter/wag/egov/egiz/sig/signaturelayout/SignatureLayoutHandlerFactoryTests.java @@ -0,0 +1,131 @@ +package at.knowcenter.wag.egov.egiz.sig.signaturelayout; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + +import java.io.File; + +import org.junit.BeforeClass; +import org.junit.Test; + +import at.gv.egiz.pdfas.PdfAsFactory; +import at.gv.egiz.pdfas.api.exceptions.PdfAsException; +import at.knowcenter.wag.egov.egiz.exceptions.ConnectorException; +import at.knowcenter.wag.egov.egiz.exceptions.SettingsException; +import at.knowcenter.wag.egov.egiz.sig.signaturelayout.atrust.ATrustSignatureLayoutHandler; +import at.knowcenter.wag.egov.egiz.sig.signaturelayout.mocca.MOCCASignatureLayout10Handler; +import at.knowcenter.wag.egov.egiz.sig.signaturelayout.mocca.MoccaXades14SignatureLayoutHandler; +import at.knowcenter.wag.egov.egiz.sig.signaturelayout.mocca.OldMOCCASignatureLayoutHandler; + +/** + * Tests for {@link SignatureLayoutHandlerFactory} providing signature layout handlers for various types of citizen card + * software. + * + * @author Datentechnik Innovation GmbH + */ +public class SignatureLayoutHandlerFactoryTests { + + /** + * Instantiates the PDF-AS api which will be used for tests. + * + * @throws PdfAsException + * In case the PDF-AS api could not be instantiated (e.g. due to configuration issues). + */ + @BeforeClass + public static void init() throws PdfAsException { + + // determine config dir + File configFile = new File(SignatureLayoutHandlerFactoryTests.class.getResource( + "/at/knowcenter/wag/egov/egiz/signaturelayout/cfg/config.properties").getFile()); + assertTrue(configFile.exists() && configFile.canRead()); + + // determine work dir + File workPath = configFile.getParentFile().getParentFile(); + + // Note: calculating signature positions without applying signatures is not covered by the api interface. + // Therefore we instantiate the api only in order to get the configuration be loaded. + PdfAsFactory.createPdfAs(workPath); + } + + @Test + public void testSupportForMoccaWithXAdES14() throws ConnectorException, SettingsException { + String bkuIdentifier = "citizen-card-environment/1.2 MOCCA/1.3.9-SNAPSHOT-r1159-X14 SignatureLayout/1.0"; + SignatureLayoutHandler signatureLayoutHandler = SignatureLayoutHandlerFactory.getSignatureLayoutHandlerInstance(bkuIdentifier); + assertTrue(signatureLayoutHandler instanceof MoccaXades14SignatureLayoutHandler); + + bkuIdentifier = "citizen-card-environment/1.2 MOCCA/1.3.9-r1234-X14 SignatureLayout/1.0"; + signatureLayoutHandler = SignatureLayoutHandlerFactory.getSignatureLayoutHandlerInstance(bkuIdentifier); + assertTrue(signatureLayoutHandler instanceof MoccaXades14SignatureLayoutHandler); + + bkuIdentifier = "citizen-card-environment/1.2 MOCCA/1.3.9-SNAPSHOT-r1159-X14 SignatureLayout/1.1"; + signatureLayoutHandler = SignatureLayoutHandlerFactory.getSignatureLayoutHandlerInstance(bkuIdentifier); + assertTrue(signatureLayoutHandler instanceof MoccaXades14SignatureLayoutHandler); + + bkuIdentifier = "citizen-card-environment/1.2 MOCCA/1.3.9-r1234-X14 SignatureLayout/1.1"; + signatureLayoutHandler = SignatureLayoutHandlerFactory.getSignatureLayoutHandlerInstance(bkuIdentifier); + assertTrue(signatureLayoutHandler instanceof MoccaXades14SignatureLayoutHandler); + } + + @Test + public void testSupportForMoccaWithSignatureLayout10() throws ConnectorException, SettingsException { + String bkuIdentifier = "citizen-card-environment/1.2 MOCCA/1.3.8-r1111 SignatureLayout/1.0"; + SignatureLayoutHandler signatureLayoutHandler = SignatureLayoutHandlerFactory.getSignatureLayoutHandlerInstance(bkuIdentifier); + assertTrue(signatureLayoutHandler instanceof MOCCASignatureLayout10Handler); + + bkuIdentifier = "citizen-card-environment/1.2 MOCCA/1.3.8-r1111 SignatureLayout/1.1"; + try { + SignatureLayoutHandlerFactory.getSignatureLayoutHandlerInstance(bkuIdentifier); + fail("ConnectorException expected; SignatureLayout 1.1 not supported."); + } catch (ConnectorException e) { + assertEquals(373, e.getErrorCode()); + } + } + + @Test + public void testSupportForMoccaWithLegacySignatureLayout() throws ConnectorException, SettingsException { + String bkuIdentifier = "citizen-card-environment/1.2 MOCCA/1.0.0-r123"; + SignatureLayoutHandler signatureLayoutHandler = SignatureLayoutHandlerFactory.getSignatureLayoutHandlerInstance(bkuIdentifier); + assertTrue(signatureLayoutHandler instanceof OldMOCCASignatureLayoutHandler); + } + + @Test + public void testSupportForATrustLocal133() throws ConnectorException, SettingsException { + String bkuIdentifier = "citizen-card-environment/1.2 asignSecurityLayer/1.3.3"; + SignatureLayoutHandler signatureLayoutHandler = SignatureLayoutHandlerFactory.getSignatureLayoutHandlerInstance(bkuIdentifier); + assertTrue(signatureLayoutHandler instanceof ATrustSignatureLayoutHandler); + } + + @Test + public void testNonSupportForATrustLocal140() throws ConnectorException, SettingsException { + String bkuIdentifier = "citizen-card-environment/1.2 asignSecurityLayer/1.4.0"; + try { + SignatureLayoutHandlerFactory.getSignatureLayoutHandlerInstance(bkuIdentifier); + fail("ConnectorException expected; A.Trust BKU 1.4.0 not supported."); + } catch (ConnectorException e) { + assertEquals(373, e.getErrorCode()); + } + } + + @Test + public void testSupportForATrustLocal141() throws ConnectorException, SettingsException { + String bkuIdentifier = "citizen-card-environment/1.2 asignSecurityLayer/1.4.1"; + SignatureLayoutHandler signatureLayoutHandler = SignatureLayoutHandlerFactory.getSignatureLayoutHandlerInstance(bkuIdentifier); + assertTrue(signatureLayoutHandler instanceof ATrustSignatureLayoutHandler); + } + + @Test + public void testSupportForATrustLocal142() throws ConnectorException, SettingsException { + String bkuIdentifier = "citizen-card-environment/1.2 asignSecurityLayer/1.4.2"; + SignatureLayoutHandler signatureLayoutHandler = SignatureLayoutHandlerFactory.getSignatureLayoutHandlerInstance(bkuIdentifier); + assertTrue(signatureLayoutHandler instanceof ATrustSignatureLayoutHandler); + } + + @Test + public void testSupportForATrustMobile110() throws ConnectorException, SettingsException { + String bkuIdentifier = "citizen-card-environment/1.2 asignMobileBku/1.1.0"; + SignatureLayoutHandler signatureLayoutHandler = SignatureLayoutHandlerFactory.getSignatureLayoutHandlerInstance(bkuIdentifier); + assertTrue(signatureLayoutHandler instanceof ATrustSignatureLayoutHandler); + } + +} -- cgit v1.2.3