git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@1026334 13f79535-47bb-0310-9956-ffa450edef68master
| @@ -85,18 +85,12 @@ | |||
| <assertSigned/> | |||
| </target> | |||
| <target name="maxmemory" depends="jar"> | |||
| <sign maxmemory="128m"/> | |||
| <assertSigned/> | |||
| </target> | |||
| <target name="urlKeystoreFile" depends="jar"> | |||
| <sign keystore="file://../testkeystore" | |||
| maxmemory="128m"/> | |||
| <assertSigned/> | |||
| </target> | |||
| <target name="urlKeystoreHTTP" depends="jar"> | |||
| <sign | |||
| keystore="http://ant.apache.org/webtest/testkeystore" | |||
| @@ -104,191 +98,9 @@ | |||
| <assertSigned/> | |||
| </target> | |||
| <target name="preserveLastModified" depends="jar"> | |||
| <touch file="${test.jar}" datetime="06/28/2000 2:02 pm"/> | |||
| <sign | |||
| preservelastmodified="true"/> | |||
| <assertSigned /> | |||
| <fail message="preserveLastModified did not preserve the last modified time"> | |||
| <condition> | |||
| <not> | |||
| <isfileselected file="${test.jar}" > | |||
| <date datetime="06/28/2000 2:02 pm" when="equal"/> | |||
| </isfileselected> | |||
| </not> | |||
| </condition> | |||
| </fail> | |||
| </target> | |||
| <target name="testFileset" depends="jar"> | |||
| <sign-base> | |||
| <fileset file="${test.jar}" /> | |||
| </sign-base> | |||
| <assertSigned/> | |||
| </target> | |||
| <target name="testFilesetAndJar" depends="jar"> | |||
| <sign-base jar="${test.jar}" lazy="true"> | |||
| <fileset file="${test.jar}" /> | |||
| </sign-base> | |||
| <assertSigned/> | |||
| </target> | |||
| <target name="testFilesetAndSignedJar" depends="jar"> | |||
| <sign-base signedjar="${sign.dir}/newfile.jar"> | |||
| <fileset file="${test.jar}" /> | |||
| </sign-base> | |||
| </target> | |||
| <target name="testPath" depends="jar"> | |||
| <sign-base> | |||
| <path> | |||
| <fileset file="${test.jar}" /> | |||
| </path> | |||
| </sign-base> | |||
| <assertSigned/> | |||
| </target> | |||
| <target name="testPathAndJar" depends="jar"> | |||
| <sign-base jar="${test.jar}" lazy="true"> | |||
| <path> | |||
| <fileset file="${test.jar}" /> | |||
| </path> | |||
| </sign-base> | |||
| <assertSigned/> | |||
| </target> | |||
| <target name="testPathAndSignedJar" depends="jar"> | |||
| <sign-base signedjar="${sign.dir}/newfile.jar"> | |||
| <path> | |||
| <fileset file="${test.jar}" /> | |||
| </path> | |||
| </sign-base> | |||
| </target> | |||
| <target name="testSignedJar" depends="jar"> | |||
| <sign signedjar="${subdirtest.jar}"/> | |||
| <assertSigned jar="${subdirtest.jar}"/> | |||
| </target> | |||
| <target name="testDestDirAndSignedJar" depends="jar"> | |||
| <sign destDir="${subdir}" signedjar="${sign.dir}/newfile.jar"/> | |||
| </target> | |||
| <target name="testDestDir" depends="jar"> | |||
| <sign destDir="${subdir}" /> | |||
| <assertSigned jar="${subdirtest.jar}"/> | |||
| </target> | |||
| <target name="testDestDirFileset" depends="jar"> | |||
| <sign-base destDir="${subdir}"> | |||
| <fileset file="${test.jar}" /> | |||
| </sign-base> | |||
| <assertSigned jar="${subdirtest.jar}"/> | |||
| </target> | |||
| <target name="testDestDirPath" depends="jar"> | |||
| <sign-base destDir="${subdir}"> | |||
| <path> | |||
| <fileset file="${test.jar}" /> | |||
| </path> | |||
| </sign-base> | |||
| <assertSigned jar="${subdirtest.jar}"/> | |||
| </target> | |||
| <target name="testMapperNoDest" depends="jar"> | |||
| <sign-base > | |||
| <flattenmapper /> | |||
| <fileset file="${test.jar}" /> | |||
| </sign-base> | |||
| </target> | |||
| <target name="testMapperFileset" depends="jar"> | |||
| <sign-base destDir="${subdir}"> | |||
| <fileset file="${test.jar}" /> | |||
| <flattenmapper /> | |||
| </sign-base> | |||
| <assertSigned jar="${subdirtest.jar}"/> | |||
| </target> | |||
| <target name="testMapperPath" depends="jar"> | |||
| <sign-base destDir="${subdir}"> | |||
| <path> | |||
| <pathelement location="${test.jar}" /> | |||
| </path> | |||
| <flattenmapper /> | |||
| </sign-base> | |||
| <assertSigned jar="${subdirtest.jar}"/> | |||
| </target> | |||
| <target name="testTwoMappers" depends="jar"> | |||
| <sign-base destDir="${subdir}"> | |||
| <fileset file="${test.jar}" /> | |||
| <flattenmapper /> | |||
| <flattenmapper /> | |||
| </sign-base> | |||
| </target> | |||
| <target name="testNoAlias" depends="jar"> | |||
| <signjar keystore="testkeystore" | |||
| jar="${test.jar}" | |||
| storepass="apacheant"/> | |||
| </target> | |||
| <target name="testNoFiles" > | |||
| <sign-base /> | |||
| </target> | |||
| <target name="testNoStorePass" depends="jar"> | |||
| <signjar keystore="testkeystore" | |||
| alias="testonly" | |||
| jar="${test.jar}"/> | |||
| </target> | |||
| <target name="testTsaLocalhost" depends="jar"> | |||
| <sign tsaurl="http://localhost:0/" /> | |||
| </target> | |||
| <target name="testSysProperty" depends="jar"> | |||
| <sign> | |||
| <sysproperty key="ant.home" value="${ant.home}" /> | |||
| </sign> | |||
| <assertSigned/> | |||
| </target> | |||
| <target name="testVerifyJar" depends="basic"> | |||
| <verify-base jar="${test.jar}"/> | |||
| </target> | |||
| <target name="testVerifyJarCertificates" depends="basic"> | |||
| <verify-base jar="${test.jar}" certificates="true" verbose="true"/> | |||
| </target> | |||
| <target name="testVerifyJarUnsigned" depends="jar"> | |||
| <verify-base jar="${test.jar}"/> | |||
| </target> | |||
| <target name="testVerifyJarNotInKeystore" depends="basic"> | |||
| <verifyjar jar="${test.jar}" certificates="true" verbose="true"/> | |||
| </target> | |||
| <target name="testVerifyFileset" depends="basic"> | |||
| <verify-base > | |||
| <fileset file="${test.jar}" /> | |||
| </verify-base> | |||
| </target> | |||
| <target name="testVerifyPath" depends="basic"> | |||
| <verify-base > | |||
| <path> | |||
| <pathelement location="${test.jar}" /> | |||
| </path> | |||
| </verify-base> | |||
| </target> | |||
| <target name="testVerifyNoArgs"> | |||
| <verify-base /> | |||
| </target> | |||
| </project> | |||
| @@ -0,0 +1,279 @@ | |||
| <?xml version="1.0"?> | |||
| <!-- | |||
| Licensed to the Apache Software Foundation (ASF) under one or more | |||
| contributor license agreements. See the NOTICE file distributed with | |||
| this work for additional information regarding copyright ownership. | |||
| The ASF licenses this file to You 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. | |||
| --> | |||
| <project default="antunit" xmlns:au="antlib:org.apache.ant.antunit"> | |||
| <import file="../antunit-base.xml" /> | |||
| <property name="classes.dir" value="../../../../build/classes"/> | |||
| <property name="sign.dir" location="${output}" /> | |||
| <property name="subdir" location="${sign.dir}/subdir" /> | |||
| <property name="test.jar" location="${sign.dir}/signtest.jar" /> | |||
| <property name="subdirtest.jar" location="${subdir}/signtest.jar" /> | |||
| <property name="testkeystore" location="../../../etc/testcases/testkeystore"/> | |||
| <macrodef name="assertSigned"> | |||
| <attribute name="jar" default="${test.jar}" /> | |||
| <sequential> | |||
| <au:assertTrue message="not signed: @{jar}"> | |||
| <issigned file="@{jar}"/> | |||
| </au:assertTrue> | |||
| </sequential> | |||
| </macrodef> | |||
| <presetdef name="sign-base"> | |||
| <signjar alias="testonly" keystore="${testkeystore}" | |||
| storepass="apacheant"/> | |||
| </presetdef> | |||
| <presetdef name="verify-base"> | |||
| <verifyjar keystore="${testkeystore}" | |||
| storepass="apacheant"/> | |||
| </presetdef> | |||
| <presetdef name="sign"> | |||
| <sign-base jar="${test.jar}" /> | |||
| </presetdef> | |||
| <target name="setUp"> | |||
| <mkdir dir="${sign.dir}" /> | |||
| <mkdir dir="${subdir}" /> | |||
| </target> | |||
| <target name="jar" depends="setUp"> | |||
| <jar jarfile="${test.jar}" basedir="${classes.dir}" includes="**/Task.class"/> | |||
| </target> | |||
| <target name="basic" depends="jar"> | |||
| <sign /> | |||
| </target> | |||
| <target name="testBasic" depends="basic"> | |||
| <assertSigned/> | |||
| </target> | |||
| <target name="testMaxmemory" depends="jar"> | |||
| <sign maxmemory="128m"/> | |||
| <assertSigned/> | |||
| </target> | |||
| <target name="testPreserveLastModified" depends="jar"> | |||
| <touch file="${test.jar}" datetime="06/28/2000 2:02 pm"/> | |||
| <sign | |||
| preservelastmodified="true"/> | |||
| <assertSigned /> | |||
| <fail message="preserveLastModified did not preserve the last modified time"> | |||
| <condition> | |||
| <not> | |||
| <isfileselected file="${test.jar}" > | |||
| <date datetime="06/28/2000 2:02 pm" when="equal"/> | |||
| </isfileselected> | |||
| </not> | |||
| </condition> | |||
| </fail> | |||
| </target> | |||
| <target name="testFileset" depends="jar"> | |||
| <sign-base> | |||
| <fileset file="${test.jar}" /> | |||
| </sign-base> | |||
| <assertSigned/> | |||
| </target> | |||
| <target name="testFilesetAndJar" depends="jar"> | |||
| <sign-base jar="${test.jar}" lazy="true"> | |||
| <fileset file="${test.jar}" /> | |||
| </sign-base> | |||
| <assertSigned/> | |||
| </target> | |||
| <target name="testFilesetAndSignedJar" depends="jar"> | |||
| <au:expectfailure expectedMessage="You cannot specify the signed JAR when using paths or filesets"> | |||
| <sign-base signedjar="${sign.dir}/newfile.jar"> | |||
| <fileset file="${test.jar}" /> | |||
| </sign-base> | |||
| </au:expectfailure> | |||
| </target> | |||
| <target name="testPath" depends="jar"> | |||
| <sign-base> | |||
| <path> | |||
| <fileset file="${test.jar}" /> | |||
| </path> | |||
| </sign-base> | |||
| <assertSigned/> | |||
| </target> | |||
| <target name="testPathAndJar" depends="jar"> | |||
| <sign-base jar="${test.jar}" lazy="true"> | |||
| <path> | |||
| <fileset file="${test.jar}" /> | |||
| </path> | |||
| </sign-base> | |||
| <assertSigned/> | |||
| </target> | |||
| <target name="testPathAndSignedJar" depends="jar"> | |||
| <au:expectfailure expectedMessage="You cannot specify the signed JAR when using paths or filesets"> | |||
| <sign-base signedjar="${sign.dir}/newfile.jar"> | |||
| <path> | |||
| <fileset file="${test.jar}" /> | |||
| </path> | |||
| </sign-base> | |||
| </au:expectfailure> | |||
| </target> | |||
| <target name="testSignedJar" depends="jar"> | |||
| <sign signedjar="${subdirtest.jar}"/> | |||
| <assertSigned jar="${subdirtest.jar}"/> | |||
| </target> | |||
| <target name="testDestDirAndSignedJar" depends="jar"> | |||
| <au:expectfailure expectedMessage="'destdir' and 'signedjar' cannot both be set"> | |||
| <sign destDir="${subdir}" signedjar="${sign.dir}/newfile.jar"/> | |||
| </au:expectfailure> | |||
| </target> | |||
| <target name="testDestDir" depends="jar"> | |||
| <sign destDir="${subdir}" /> | |||
| <assertSigned jar="${subdirtest.jar}"/> | |||
| </target> | |||
| <target name="testDestDirFileset" depends="jar"> | |||
| <sign-base destDir="${subdir}"> | |||
| <fileset file="${test.jar}" /> | |||
| </sign-base> | |||
| <assertSigned jar="${subdirtest.jar}"/> | |||
| </target> | |||
| <target name="testDestDirPath" depends="jar"> | |||
| <sign-base destDir="${subdir}"> | |||
| <path> | |||
| <fileset file="${test.jar}" /> | |||
| </path> | |||
| </sign-base> | |||
| <assertSigned jar="${subdirtest.jar}"/> | |||
| </target> | |||
| <target name="testMapperNoDest" depends="jar"> | |||
| <au:expectfailure expectedMessage="The destDir attribute is required if a mapper is set"> | |||
| <sign-base > | |||
| <flattenmapper /> | |||
| <fileset file="${test.jar}" /> | |||
| </sign-base> | |||
| </au:expectfailure> | |||
| </target> | |||
| <target name="testMapperFileset" depends="jar"> | |||
| <sign-base destDir="${subdir}"> | |||
| <fileset file="${test.jar}" /> | |||
| <flattenmapper /> | |||
| </sign-base> | |||
| <assertSigned jar="${subdirtest.jar}"/> | |||
| </target> | |||
| <target name="testMapperPath" depends="jar"> | |||
| <sign-base destDir="${subdir}"> | |||
| <path> | |||
| <pathelement location="${test.jar}" /> | |||
| </path> | |||
| <flattenmapper /> | |||
| </sign-base> | |||
| <assertSigned jar="${subdirtest.jar}"/> | |||
| </target> | |||
| <target name="testTwoMappers" depends="jar"> | |||
| <au:expectfailure expectedMessage="Too many mappers"> | |||
| <sign-base destDir="${subdir}"> | |||
| <fileset file="${test.jar}" /> | |||
| <flattenmapper /> | |||
| <flattenmapper /> | |||
| </sign-base> | |||
| </au:expectfailure> | |||
| </target> | |||
| <target name="testNoAlias" depends="jar"> | |||
| <au:expectfailure expectedMessage="alias attribute must be set"> | |||
| <signjar keystore="${testkeystore}" | |||
| jar="${test.jar}" | |||
| storepass="apacheant"/> | |||
| </au:expectfailure> | |||
| </target> | |||
| <target name="testNoFiles" > | |||
| <au:expectfailure expectedMessage="jar must be set through jar attribute"> | |||
| <sign-base /> | |||
| </au:expectfailure> | |||
| </target> | |||
| <target name="testNoStorePass" depends="jar"> | |||
| <au:expectfailure expectedMessage="storepass attribute must be set"> | |||
| <signjar keystore="${testkeystore}" | |||
| alias="testonly" | |||
| jar="${test.jar}"/> | |||
| </au:expectfailure> | |||
| </target> | |||
| <target name="testSysProperty" depends="jar"> | |||
| <sign> | |||
| <sysproperty key="ant.home" value="${ant.home}" /> | |||
| </sign> | |||
| <assertSigned/> | |||
| </target> | |||
| <target name="testVerifyJar" depends="basic"> | |||
| <verify-base jar="${test.jar}"/> | |||
| </target> | |||
| <target name="testVerifyJarCertificates" depends="basic"> | |||
| <verify-base jar="${test.jar}" certificates="true" verbose="true"/> | |||
| </target> | |||
| <target name="testVerifyJarUnsigned" depends="jar"> | |||
| <au:expectfailure expectedMessage="Failed to verify ${test.jar}"> | |||
| <verify-base jar="${test.jar}"/> | |||
| </au:expectfailure> | |||
| </target> | |||
| <target name="NOtestVerifyJarNotInKeystore" depends="basic"> | |||
| <au:expectfailure> | |||
| <verifyjar jar="${test.jar}" certificates="true" verbose="true"/> | |||
| </au:expectfailure> | |||
| </target> | |||
| <target name="testVerifyFileset" depends="basic"> | |||
| <verify-base > | |||
| <fileset file="${test.jar}" /> | |||
| </verify-base> | |||
| </target> | |||
| <target name="testVerifyPath" depends="basic"> | |||
| <verify-base > | |||
| <path> | |||
| <pathelement location="${test.jar}" /> | |||
| </path> | |||
| </verify-base> | |||
| </target> | |||
| <target name="testVerifyNoArgs"> | |||
| <au:expectfailure expectedMessage="jar must be set through jar attribute"> | |||
| <verify-base /> | |||
| </au:expectfailure> | |||
| </target> | |||
| </project> | |||
| @@ -51,10 +51,6 @@ public class SignJarTest extends BuildFileTest { | |||
| private boolean isOffline() { | |||
| return Boolean.getBoolean("offline"); | |||
| } | |||
| public void testBasicSigning() { | |||
| executeTarget("basic"); | |||
| } | |||
| public void testSigFile() { | |||
| executeTarget("sigfile"); | |||
| SignJarChild sj = new SignJarChild(); | |||
| @@ -91,10 +87,6 @@ public class SignJarTest extends BuildFileTest { | |||
| } | |||
| } | |||
| public void testMaxMemory() { | |||
| executeTarget("maxmemory"); | |||
| } | |||
| public void testURLKeystoreFile() { | |||
| executeTarget("urlKeystoreFile"); | |||
| } | |||
| @@ -105,104 +97,6 @@ public class SignJarTest extends BuildFileTest { | |||
| } | |||
| } | |||
| public void testPreserveLastModified() { | |||
| executeTarget("preserveLastModified"); | |||
| } | |||
| public void testFileset() { | |||
| executeTarget("testFileset"); | |||
| } | |||
| public void testFilesetAndJar() { | |||
| executeTarget("testFilesetAndJar"); | |||
| } | |||
| public void testFilesetAndSignedJar() { | |||
| expectBuildExceptionContaining("testFilesetAndSignedJar", | |||
| "incompatible attributes", | |||
| SignJar.ERROR_SIGNEDJAR_AND_PATHS); | |||
| } | |||
| public void testPath() { | |||
| executeTarget("testPath"); | |||
| } | |||
| public void testPathAndJar() { | |||
| executeTarget("testPathAndJar"); | |||
| } | |||
| public void testPathAndSignedJar() { | |||
| expectBuildExceptionContaining("testPathAndSignedJar", | |||
| "incompatible attributes", | |||
| SignJar.ERROR_SIGNEDJAR_AND_PATHS); | |||
| } | |||
| public void testSignedJar() { | |||
| executeTarget("testSignedJar"); | |||
| } | |||
| public void testDestDir() { | |||
| executeTarget("testDestDir"); | |||
| } | |||
| public void testDestDirAndSignedJar() { | |||
| expectBuildExceptionContaining("testFilesetAndSignedJar", | |||
| "incompatible attributes", | |||
| SignJar.ERROR_SIGNEDJAR_AND_PATHS); | |||
| } | |||
| public void testDestDirAndSignedJar2() { | |||
| expectBuildExceptionContaining("testPathAndSignedJar", | |||
| "incompatible attributes", | |||
| SignJar.ERROR_SIGNEDJAR_AND_PATHS); | |||
| } | |||
| public void testDestDirFileset() { | |||
| executeTarget("testDestDirFileset"); | |||
| } | |||
| public void testMapperFileset() { | |||
| executeTarget("testMapperFileset"); | |||
| } | |||
| public void testDestDirPath() { | |||
| executeTarget("testDestDirPath"); | |||
| } | |||
| public void testMapperPath() { | |||
| executeTarget("testMapperPath"); | |||
| } | |||
| public void testMapperNoDest() { | |||
| expectBuildExceptionContaining("testMapperNoDest", | |||
| "two mappers", | |||
| SignJar.ERROR_MAPPER_WITHOUT_DEST); | |||
| } | |||
| public void testTwoMappers() { | |||
| expectBuildExceptionContaining("testTwoMappers", | |||
| "two mappers", | |||
| SignJar.ERROR_TOO_MANY_MAPPERS); | |||
| } | |||
| public void testNoAlias() { | |||
| expectBuildExceptionContaining("testNoAlias", | |||
| "no alias", | |||
| SignJar.ERROR_NO_ALIAS); | |||
| } | |||
| public void testNoFiles() { | |||
| expectBuildExceptionContaining("testNoFiles", | |||
| "no files", | |||
| SignJar.ERROR_NO_SOURCE); | |||
| } | |||
| public void testNoStorePass() { | |||
| expectBuildExceptionContaining("testNoStorePass", | |||
| "no password", | |||
| SignJar.ERROR_NO_STOREPASS); | |||
| } | |||
| public void testTsaLocalhost() { | |||
| //only test on java1.5+ | |||
| if(JavaEnvUtils.getJavaVersionNumber()>=15) { | |||
| @@ -212,38 +106,4 @@ public class SignJarTest extends BuildFileTest { | |||
| } | |||
| } | |||
| public void testSysProperty() { | |||
| executeTarget("testSysProperty"); | |||
| } | |||
| public void testVerifyJar() { | |||
| executeTarget("testVerifyJar"); | |||
| } | |||
| public void testVerifyNoArgs() { | |||
| expectBuildExceptionContaining("testVerifyNoArgs", | |||
| "no args", | |||
| AbstractJarSignerTask.ERROR_NO_SOURCE); | |||
| } | |||
| public void testVerifyJarUnsigned() { | |||
| expectBuildExceptionContaining("testVerifyJarUnsigned", | |||
| "unsigned JAR file", | |||
| VerifyJar.ERROR_NO_VERIFY); | |||
| } | |||
| public void NotestVerifyJarNotInKeystore() { | |||
| expectBuildExceptionContaining("testVerifyJarNotInKeystore", | |||
| "signature not in keystore", | |||
| VerifyJar.ERROR_NO_VERIFY); | |||
| } | |||
| public void testVerifyFileset() { | |||
| executeTarget("testVerifyFileset"); | |||
| } | |||
| public void testVerifyPath() { | |||
| executeTarget("testVerifyPath"); | |||
| } | |||
| } | |||