Browse Source

move bulk of signjar tests to AntUnit tests

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@1026334 13f79535-47bb-0310-9956-ffa450edef68
master
Stefan Bodewig 14 years ago
parent
commit
c735a5cc48
3 changed files with 279 additions and 328 deletions
  1. +0
    -188
      src/etc/testcases/taskdefs/signjar.xml
  2. +279
    -0
      src/tests/antunit/taskdefs/signjar-test.xml
  3. +0
    -140
      src/tests/junit/org/apache/tools/ant/taskdefs/SignJarTest.java

+ 0
- 188
src/etc/testcases/taskdefs/signjar.xml View File

@@ -85,18 +85,12 @@
<assertSigned/> <assertSigned/>
</target> </target>


<target name="maxmemory" depends="jar">
<sign maxmemory="128m"/>
<assertSigned/>
</target>

<target name="urlKeystoreFile" depends="jar"> <target name="urlKeystoreFile" depends="jar">
<sign keystore="file://../testkeystore" <sign keystore="file://../testkeystore"
maxmemory="128m"/> maxmemory="128m"/>
<assertSigned/> <assertSigned/>
</target> </target>


<target name="urlKeystoreHTTP" depends="jar"> <target name="urlKeystoreHTTP" depends="jar">
<sign <sign
keystore="http://ant.apache.org/webtest/testkeystore" keystore="http://ant.apache.org/webtest/testkeystore"
@@ -104,191 +98,9 @@
<assertSigned/> <assertSigned/>
</target> </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"> <target name="testTsaLocalhost" depends="jar">
<sign tsaurl="http://localhost:0/" /> <sign tsaurl="http://localhost:0/" />
</target> </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> </project>



+ 279
- 0
src/tests/antunit/taskdefs/signjar-test.xml View File

@@ -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>


+ 0
- 140
src/tests/junit/org/apache/tools/ant/taskdefs/SignJarTest.java View File

@@ -51,10 +51,6 @@ public class SignJarTest extends BuildFileTest {
private boolean isOffline() { private boolean isOffline() {
return Boolean.getBoolean("offline"); return Boolean.getBoolean("offline");
} }
public void testBasicSigning() {
executeTarget("basic");
}

public void testSigFile() { public void testSigFile() {
executeTarget("sigfile"); executeTarget("sigfile");
SignJarChild sj = new SignJarChild(); SignJarChild sj = new SignJarChild();
@@ -91,10 +87,6 @@ public class SignJarTest extends BuildFileTest {
} }
} }


public void testMaxMemory() {
executeTarget("maxmemory");
}

public void testURLKeystoreFile() { public void testURLKeystoreFile() {
executeTarget("urlKeystoreFile"); 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() { public void testTsaLocalhost() {
//only test on java1.5+ //only test on java1.5+
if(JavaEnvUtils.getJavaVersionNumber()>=15) { 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");
}

} }

Loading…
Cancel
Save