You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@wookie.apache.org by sc...@apache.org on 2013/03/05 16:44:14 UTC
svn commit: r1452858 -
/wookie/trunk/src-tests/org/apache/wookie/tests/conformance/DigitalSignatures.java
Author: scottbw
Date: Tue Mar 5 15:44:14 2013
New Revision: 1452858
URL: http://svn.apache.org/r1452858
Log:
Added conformance testing for W3C Digital Signatures for Widgets spec
Added:
wookie/trunk/src-tests/org/apache/wookie/tests/conformance/DigitalSignatures.java
Added: wookie/trunk/src-tests/org/apache/wookie/tests/conformance/DigitalSignatures.java
URL: http://svn.apache.org/viewvc/wookie/trunk/src-tests/org/apache/wookie/tests/conformance/DigitalSignatures.java?rev=1452858&view=auto
==============================================================================
--- wookie/trunk/src-tests/org/apache/wookie/tests/conformance/DigitalSignatures.java (added)
+++ wookie/trunk/src-tests/org/apache/wookie/tests/conformance/DigitalSignatures.java Tue Mar 5 15:44:14 2013
@@ -0,0 +1,280 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.wookie.tests.conformance;
+
+import java.io.File;
+import java.io.IOException;
+import java.security.KeyStore;
+import java.security.KeyStoreException;
+import java.security.NoSuchAlgorithmException;
+import java.security.cert.CertificateException;
+
+import org.apache.wookie.tests.helpers.WidgetUploader;
+import org.apache.wookie.util.digitalsignature.DigitalSignatureProcessor;
+import org.apache.wookie.w3c.W3CWidgetFactory;
+import org.apache.wookie.w3c.exceptions.BadAuthorSignatureException;
+import org.apache.wookie.w3c.exceptions.BadDistributorSignatureException;
+import org.apache.wookie.w3c.exceptions.BadManifestException;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+/**
+ * Conformance tests for W3C Widget XML Signatures
+ */
+public class DigitalSignatures{
+
+ private static DigitalSignatureProcessor proc;
+ private static W3CWidgetFactory fac;
+
+ @BeforeClass
+ public static void setup() throws KeyStoreException, IOException, NoSuchAlgorithmException, CertificateException{
+ KeyStore keyStore = KeyStore.getInstance("JKS");
+ keyStore.load(null, null);
+ File schema = new File("src/org/apache/wookie/util/digitalsignature/xmldsig-core-schema.xsd");
+ proc = new DigitalSignatureProcessor(keyStore, schema.getPath(), true, false);
+ fac = new W3CWidgetFactory();
+ fac.setDigitalSignatureParser(proc);
+ fac.setOutputDirectory(createTempDirectory().getAbsolutePath());
+ }
+
+
+
+ @Test(expected=BadDistributorSignatureException.class)
+ public void badSignature() throws Throwable{
+ try {
+ File file = WidgetUploader.downloadWidget("http://dev.w3.org/2006/waf/widgets-digsig/test-suite/test-cases/ta-validation/bad_signature/bad_signature.wgt");
+ fac.parse(file);
+ } catch (BadManifestException e) {
+ throw e.getCause();
+ }
+ }
+
+ @Test(expected=BadDistributorSignatureException.class)
+ public void badHash() throws Throwable{
+ try {
+ File file = WidgetUploader.downloadWidget("http://dev.w3.org/2006/waf/widgets-digsig/test-suite/test-cases/ta-validation/bad_hash/bad_hash.wgt");
+ fac.parse(file);
+ } catch (BadManifestException e) {
+ throw e.getCause();
+ }
+ }
+
+ @Test(expected=BadDistributorSignatureException.class)
+ public void changedFile() throws Throwable{
+ try {
+ File file = WidgetUploader.downloadWidget("http://dev.w3.org/2006/waf/widgets-digsig/test-suite/test-cases/ta-validation/changed_file/changed_file.wgt");
+ fac.parse(file);
+ } catch (BadManifestException e) {
+ throw e.getCause();
+ }
+ }
+
+ @Test(expected=BadDistributorSignatureException.class)
+ public void test11a() throws Throwable{
+ try {
+ File file = WidgetUploader.downloadWidget("http://dev.w3.org/2006/waf/widgets-digsig/test-suite/test-cases/ta-11/11a/11a.wgt");
+ fac.parse(file);
+ } catch (BadManifestException e) {
+ throw e.getCause();
+ }
+ }
+
+ @Test(expected=BadDistributorSignatureException.class)
+ public void test11b() throws Throwable{
+ try {
+ File file = WidgetUploader.downloadWidget("http://dev.w3.org/2006/waf/widgets-digsig/test-suite/test-cases/ta-11/11b/11b.wgt");
+ fac.parse(file);
+ } catch (BadManifestException e) {
+ throw e.getCause();
+ }
+ }
+
+ @Test(expected=BadAuthorSignatureException.class)
+ public void test12a() throws Throwable{
+ try {
+ File file = WidgetUploader.downloadWidget("http://dev.w3.org/2006/waf/widgets-digsig/test-suite/test-cases/ta-12/12a/12a.wgt");
+ fac.parse(file);
+ } catch (BadManifestException e) {
+ throw e.getCause();
+ }
+ }
+
+ @Test(expected=BadAuthorSignatureException.class)
+ public void test12b() throws Throwable{
+ try {
+ File file = WidgetUploader.downloadWidget("http://dev.w3.org/2006/waf/widgets-digsig/test-suite/test-cases/ta-12/12b/12b.wgt");
+ fac.parse(file);
+ } catch (BadManifestException e) {
+ throw e.getCause();
+ }
+ }
+
+ @Test(expected=BadDistributorSignatureException.class)
+ public void test13a() throws Throwable{
+ try {
+ File file = WidgetUploader.downloadWidget("http://dev.w3.org/2006/waf/widgets-digsig/test-suite/test-cases/ta-13/13a/13a.wgt");
+ fac.parse(file);
+ } catch (BadManifestException e) {
+ throw e.getCause();
+ }
+ }
+
+ @Test(expected=BadDistributorSignatureException.class)
+ public void test13b() throws Throwable{
+ try {
+ File file = WidgetUploader.downloadWidget("http://dev.w3.org/2006/waf/widgets-digsig/test-suite/test-cases/ta-13/13b/13b.wgt");
+ fac.parse(file);
+ } catch (BadManifestException e) {
+ throw e.getCause();
+ }
+ }
+
+ @Test(expected=BadDistributorSignatureException.class)
+ public void test16c() throws Throwable{
+ try {
+ File file = WidgetUploader.downloadWidget("http://dev.w3.org/2006/waf/widgets-digsig/test-suite/test-cases/ta-16/16c/16c.wgt");
+ fac.parse(file);
+ } catch (BadManifestException e) {
+ throw e.getCause();
+ }
+ }
+
+ @Test(expected=BadDistributorSignatureException.class)
+ public void test16e() throws Throwable{
+ try {
+ File file = WidgetUploader.downloadWidget("http://dev.w3.org/2006/waf/widgets-digsig/test-suite/test-cases/ta-16/16e/16e.wgt");
+ fac.parse(file);
+ } catch (BadManifestException e) {
+ throw e.getCause();
+ }
+ }
+ @Test(expected=BadDistributorSignatureException.class)
+ public void test16f() throws Throwable{
+ try {
+ File file = WidgetUploader.downloadWidget("http://dev.w3.org/2006/waf/widgets-digsig/test-suite/test-cases/ta-16/16f/16f.wgt");
+ fac.parse(file);
+ } catch (BadManifestException e) {
+ throw e.getCause();
+ }
+ }
+ @Test(expected=BadDistributorSignatureException.class)
+ public void test16g() throws Throwable{
+ try {
+ File file = WidgetUploader.downloadWidget("http://dev.w3.org/2006/waf/widgets-digsig/test-suite/test-cases/ta-16/16g/16g.wgt");
+ fac.parse(file);
+ } catch (BadManifestException e) {
+ throw e.getCause();
+ }
+ }
+ @Test
+ public void test24a() throws Throwable{
+ try {
+ File file = WidgetUploader.downloadWidget("http://dev.w3.org/2006/waf/widgets-digsig/test-suite/test-cases/ta-24/24a/24a.wgt");
+ fac.parse(file);
+ } catch (BadManifestException e) {
+ throw e.getCause();
+ }
+ }
+ @Test(expected=BadDistributorSignatureException.class)
+ public void test29a() throws Throwable{
+ try {
+ File file = WidgetUploader.downloadWidget("http://dev.w3.org/2006/waf/widgets-digsig/test-suite/test-cases/ta-29/29a/29a.wgt");
+ fac.parse(file);
+ } catch (BadManifestException e) {
+ throw e.getCause();
+ }
+ }
+ @Test
+ public void test33a() throws Throwable{
+ try {
+ File file = WidgetUploader.downloadWidget("http://dev.w3.org/2006/waf/widgets-digsig/test-suite/test-cases/ta-33/33a/33a.wgt");
+ fac.parse(file);
+ } catch (BadManifestException e) {
+ throw e.getCause();
+ }
+ }
+
+ @Test(expected=BadDistributorSignatureException.class)
+ public void test34a() throws Throwable{
+ try {
+ File file = WidgetUploader.downloadWidget("http://dev.w3.org/2006/waf/widgets-digsig/test-suite/test-cases/ta-34/34a/34a.wgt");
+ fac.parse(file);
+ } catch (BadManifestException e) {
+ throw e.getCause();
+ }
+ }
+ @Test
+ public void test35a() throws Throwable{
+ try {
+ File file = WidgetUploader.downloadWidget("http://dev.w3.org/2006/waf/widgets-digsig/test-suite/test-cases/ta-35/35a/35a.wgt");
+ fac.parse(file);
+ } catch (BadManifestException e) {
+ e.printStackTrace();
+ throw e.getCause();
+ }
+ }
+ @Test(expected=BadDistributorSignatureException.class)
+ public void test37a() throws Throwable{
+ try {
+ File file = WidgetUploader.downloadWidget("http://dev.w3.org/2006/waf/widgets-digsig/test-suite/test-cases/ta-37/37a/37a.wgt");
+ fac.parse(file);
+ } catch (BadManifestException e) {
+ throw e.getCause();
+ }
+ }
+ @Test(expected=BadDistributorSignatureException.class)
+ public void test37b() throws Throwable{
+ try {
+ File file = WidgetUploader.downloadWidget("http://dev.w3.org/2006/waf/widgets-digsig/test-suite/test-cases/ta-37/37b/37b.wgt");
+ fac.parse(file);
+ } catch (BadManifestException e) {
+ throw e.getCause();
+ }
+ }
+ @Test
+ public void test40a() throws Throwable{
+ try {
+ File file = WidgetUploader.downloadWidget("http://dev.w3.org/2006/waf/widgets-digsig/test-suite/test-cases/ta-40/40a/40a.wgt");
+ fac.parse(file);
+ } catch (BadManifestException e) {
+ throw e.getCause();
+ }
+ }
+
+ /*
+ * Utility method for creating a temp directory
+ * @return a new temp directory
+ * @throws IOException
+ */
+ private static File createTempDirectory() throws IOException {
+ final File temp;
+
+ temp = File.createTempFile("temp", Long.toString(System.nanoTime()));
+
+ if (!(temp.delete())) {
+ throw new IOException("Could not delete temp file: "
+ + temp.getAbsolutePath());
+ }
+
+ if (!(temp.mkdir())) {
+ throw new IOException("Could not create temp directory: "
+ + temp.getAbsolutePath());
+ }
+
+ return (temp);
+ }
+
+}
+
+