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 --- .../java/at/gv/egiz/pdfas/utils/CsvUtilsTest.java | 59 +++++ .../wag/egov/egiz/cfg/NestedPropertiesTest.java | 263 +++++++++++++++++++++ .../wag/egov/egiz/sig/SignatureTypesStateTest.java | 101 ++++++++ .../SignatureLayoutHandlerFactoryTests.java | 131 ++++++++++ 4 files changed, 554 insertions(+) create mode 100644 pdf-as-lib/src/test/java/at/gv/egiz/pdfas/utils/CsvUtilsTest.java create mode 100644 pdf-as-lib/src/test/java/at/knowcenter/wag/egov/egiz/cfg/NestedPropertiesTest.java 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') diff --git a/pdf-as-lib/src/test/java/at/gv/egiz/pdfas/utils/CsvUtilsTest.java b/pdf-as-lib/src/test/java/at/gv/egiz/pdfas/utils/CsvUtilsTest.java new file mode 100644 index 0000000..813dab3 --- /dev/null +++ b/pdf-as-lib/src/test/java/at/gv/egiz/pdfas/utils/CsvUtilsTest.java @@ -0,0 +1,59 @@ +/** + * 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.gv.egiz.pdfas.utils; + +import static org.junit.Assert.*; + +import org.junit.Test; + +/** + * Some tests for CSV utils. Note that the German version of CSV is used, with semicolons instead of commas. + * + * @author Datentechnik Innovation GmbH + */ +public class CsvUtilsTest { + + @Test + public void testEscapeCsvValue() { + assertEquals("", CsvUtils.escapeCsvValue(null)); + assertEquals("", CsvUtils.escapeCsvValue("")); + assertEquals("Hello World", CsvUtils.escapeCsvValue("Hello World")); + assertEquals("1,2", CsvUtils.escapeCsvValue("1,2")); + assertEquals("3.4", CsvUtils.escapeCsvValue("3.4")); + assertEquals("1", CsvUtils.escapeCsvValue(1)); + } + + @Test + public void testEscapeCsvValueQuotes() { + // RFC 4180 (6): Fields containing line breaks (CRLF), double quotes, and commas + // should be enclosed in double-quotes. + assertEquals("\"Hello\nWorld\"", CsvUtils.escapeCsvValue("Hello\nWorld")); + assertEquals("\"Hello;World\"", CsvUtils.escapeCsvValue("Hello;World")); + // RFC 4180 (7): If double-quotes are used to enclose fields, then a double-quote + // appearing inside a field must be escaped by preceding it with + // another double quote. + assertEquals("\"Hello \"\"World\"\"\"", CsvUtils.escapeCsvValue("Hello \"World\"")); + } + +} diff --git a/pdf-as-lib/src/test/java/at/knowcenter/wag/egov/egiz/cfg/NestedPropertiesTest.java b/pdf-as-lib/src/test/java/at/knowcenter/wag/egov/egiz/cfg/NestedPropertiesTest.java new file mode 100644 index 0000000..d2d9c50 --- /dev/null +++ b/pdf-as-lib/src/test/java/at/knowcenter/wag/egov/egiz/cfg/NestedPropertiesTest.java @@ -0,0 +1,263 @@ +/** + * 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.cfg; + +import static org.junit.Assert.fail; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.Enumeration; +import java.util.HashSet; +import java.util.Hashtable; +import java.util.Properties; +import java.util.Set; + +import org.apache.commons.io.IOUtils; +import org.apache.commons.lang.StringUtils; +import org.junit.Test; + +/** + * Tests dealing with include-capable properties. + * + * @author Datentechnik Innovation GmbH + */ +public class NestedPropertiesTest { + + @Test + public void testNoIncludes() throws IOException { + File configFile = new File(NestedPropertiesTest.class.getResource("config_noincludes.properties").getFile()); + + Properties expectedProperties = new Properties(); + InputStream in = null; + try { + expectedProperties.load(in = new FileInputStream(configFile)); + } finally { + IOUtils.closeQuietly(in); + } + + NestedProperties nestedProperties = new NestedProperties(); + nestedProperties.load(configFile); + + assertEquals(expectedProperties, nestedProperties); + } + + @Test + public void testSingleIncludes() throws IOException { + File configFile = new File(NestedPropertiesTest.class.getResource("config_single_includes.properties") + .getFile()); + + Properties expectedProperties = new Properties(); + InputStream in = null; + try { + expectedProperties.load(in = getClass().getResourceAsStream("config_noincludes.properties")); + } finally { + IOUtils.closeQuietly(in); + } + + NestedProperties nestedProperties = new NestedProperties(); + nestedProperties.load(configFile); + + assertEquals(expectedProperties, nestedProperties); + } + + @Test + public void testSingleIncludesWithDefaultConfig() throws IOException { + // add some properties to a default configuration object + Properties defaultConfiguration = new Properties(); + defaultConfiguration.put("key1", "defaultValue1"); + defaultConfiguration.put("key2", "defaultValue2"); + // set a property which will be locally overridden by config_single_includes.properties + defaultConfiguration.put("correct_document_on_verify_if_necessary", "false"); + defaultConfiguration.put("sig_obj.types.INVISIBLE", "off"); + + File configFile = new File(NestedPropertiesTest.class.getResource("config_single_includes.properties") + .getFile()); + + Properties expectedProperties = new Properties(); + InputStream in = null; + try { + expectedProperties.load(in = getClass().getResourceAsStream("config_noincludes.properties")); + expectedProperties.put("key1", "defaultValue1"); + expectedProperties.put("key2", "defaultValue2"); + } finally { + IOUtils.closeQuietly(in); + } + + // load include aware properties considering default configuration + NestedProperties nestedProperties = new NestedProperties(defaultConfiguration); + nestedProperties.load(configFile); + + assertEquals(expectedProperties, nestedProperties); + } + + @Test + public void testWildcardIncludes() throws IOException { + File configFile = new File(NestedPropertiesTest.class.getResource("config_wildcard_includes.properties") + .getFile()); + + Properties expectedProperties = new Properties(); + InputStream in = null; + try { + expectedProperties.load(in = getClass().getResourceAsStream("config_noincludes.properties")); + } finally { + IOUtils.closeQuietly(in); + } + + NestedProperties nestedProperties = new NestedProperties(); + nestedProperties.load(configFile); + + assertEquals(expectedProperties, nestedProperties); + } + + @Test + public void testNestedIncludes() throws IOException { + File configFile = new File(NestedPropertiesTest.class.getResource("config_nested_includes.properties") + .getFile()); + + Properties expectedProperties = new Properties(); + InputStream in = null; + try { + expectedProperties.load(in = getClass().getResourceAsStream("config_noincludes.properties")); + } finally { + IOUtils.closeQuietly(in); + } + + NestedProperties nestedProperties = new NestedProperties(); + nestedProperties.load(configFile); + + assertEquals(expectedProperties, nestedProperties); + } + + @Test + public void testSubdirIncludes() throws IOException { + File configFile = new File(NestedPropertiesTest.class.getResource("config_subdir_includes.properties") + .getFile()); + + Properties expectedProperties = new Properties(); + InputStream in = null; + try { + expectedProperties.load(in = getClass().getResourceAsStream("config_noincludes.properties")); + } finally { + IOUtils.closeQuietly(in); + } + + NestedProperties nestedProperties = new NestedProperties(); + nestedProperties.load(configFile); + + assertEquals(expectedProperties, nestedProperties); + } + + @Test(timeout = 2500, expected = CircularIncludeException.class) + public void testCircularIncludes() throws IOException { + File configFile = new File(NestedPropertiesTest.class.getResource("circular/profile.1.properties").getFile()); + NestedProperties nestedProperties = new NestedProperties(); + nestedProperties.load(configFile); + fail("Circular references should have been detected."); + } + + @Test + /** + * Tests include priority: Included properties should override locally set properties. + */ + public void testLocalVsIncludedProperties() throws IOException { + File configFile = new File(NestedPropertiesTest.class.getResource("local_vs_included_properties.properties") + .getFile()); + NestedProperties nestedProperties = new NestedProperties(); + nestedProperties.load(configFile); + + Properties expectedProperties = new Properties(); + expectedProperties.put("key1", "included value 1"); + expectedProperties.put("key2", "local value 2"); + expectedProperties.put("key3", "local value 3"); + expectedProperties.put("key4", "local value 4"); + + assertEquals(expectedProperties, nestedProperties); + } + + @Test + public void testIncludeOrder() throws CircularIncludeException, IOException { + File configFile = new File(NestedPropertiesTest.class.getResource("include_order.properties").getFile()); + NestedProperties nestedProperties = new NestedProperties(); + nestedProperties.load(configFile); + + Properties expectedProperties = new Properties(); + expectedProperties.put("key1", "include_xyz"); + expectedProperties.put("key2", "include_abc"); + expectedProperties.put("key3", "include_3"); + expectedProperties.put("key4", "include_2"); + expectedProperties.put("key5", "include_1"); + expectedProperties.put("key6", "include"); + + assertEquals(expectedProperties, nestedProperties); + } + + /** + * Java default {@link Properties} does not provide equals and hashcode methods therefore default properties are not + * taken into consideration when comparing two Properties (using {@link Hashtable#equals(Object)}. This method + * compares two Properties considering defaults. Note that this method considers two Properties equal if the + * respective union of keys and default keys equals. + * + * @param expected + * The expected set of Properties. + * @param actual + * Properties to be compared with. + */ + private static void assertEquals(Properties expected, Properties actual) { + if (expected == actual) { + // same object + return; + } + if (expected == null || actual == null) { + fail("expected: <" + expected + "> but was <" + actual + ">"); + } + // fetch all keys (including defaults) from actual properties + @SuppressWarnings("unchecked") + Enumeration actualPropertyNames = (Enumeration) actual.propertyNames(); + Set actualKeys = new HashSet(); + while (actualPropertyNames.hasMoreElements()) { + actualKeys.add(actualPropertyNames.nextElement()); + } + + @SuppressWarnings("unchecked") + Enumeration expectedPropertyNames = (Enumeration) expected.propertyNames(); + while (expectedPropertyNames.hasMoreElements()) { + String key = expectedPropertyNames.nextElement(); + String expectedValue = expected.getProperty(key); + if (!actualKeys.contains(key)) { + fail("missing entry for key '" + key + "'"); + } + String actualValue = actual.getProperty(key); + if (!StringUtils.equals(expectedValue, actualValue)) { + fail("key '" + key + "' value expected: <" + expectedValue + "> but was <" + actualValue + ">"); + } + actualKeys.remove(key); + } + if (!actualKeys.isEmpty()) { + fail("more entries found than expected: " + StringUtils.join(actualKeys, ", ")); + } + } + +} 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