git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@277669 13f79535-47bb-0310-9956-ffa450edef68master
| @@ -21,7 +21,6 @@ | |||
| <property name="tmpdir" value="tmpdir"/> | |||
| <property name="trunkdir" value="${tmpdir}/trunk"/> | |||
| <property name="file" value="ebcdic.h"/> | |||
| <target name="setup"> | |||
| <mkdir dir="${tmpdir}"/> | |||
| @@ -21,7 +21,6 @@ | |||
| <property name="tmpdir" value="tmpdir"/> | |||
| <property name="trunkdir" value="${tmpdir}/trunk"/> | |||
| <property name="file" value="ebcdic.h"/> | |||
| <target name="dir-prep"> | |||
| <mkdir dir="${tmpdir}"/> | |||
| @@ -44,8 +43,7 @@ | |||
| destfile="${tmpdir}/diff.xml" start="152904" end="153682"/> | |||
| </target> | |||
| <target name="report"> | |||
| <!--target name="report" depends="diff-using-url"--> | |||
| <target name="report" depends="diff-using-url"> | |||
| <style in="${tmpdir}/diff.xml" | |||
| out="${tmpdir}/diff.html" | |||
| style="src/etc/revisiondiff.xsl"> | |||
| @@ -0,0 +1,146 @@ | |||
| /* | |||
| * Copyright 2005 The Apache Software Foundation | |||
| * | |||
| * 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.tools.ant.taskdefs.svn; | |||
| import java.io.IOException; | |||
| import java.io.FileReader; | |||
| import org.apache.tools.ant.BuildFileTest; | |||
| import org.apache.tools.ant.util.FileUtils; | |||
| import junit.framework.Assert; | |||
| /** | |||
| */ | |||
| public class SvnChangeLogTaskTest extends BuildFileTest { | |||
| public SvnChangeLogTaskTest(String name) { | |||
| super(name); | |||
| } | |||
| public void setUp() { | |||
| configureProject("src/etc/testcases/changelog.xml"); | |||
| } | |||
| public void tearDown() { | |||
| executeTarget("cleanup"); | |||
| } | |||
| public void testLog() throws IOException { | |||
| String log = executeTargetAndReadLogFully("log"); | |||
| assertRev153687(log); | |||
| assertRev152685(log); | |||
| } | |||
| public void testStart() throws IOException { | |||
| String log = executeTargetAndReadLogFully("start"); | |||
| assertRev153687(log); | |||
| assertNoRev152685(log); | |||
| } | |||
| public void testStartDate() throws IOException { | |||
| String log = executeTargetAndReadLogFully("startDate"); | |||
| assertRev153687(log); | |||
| assertNoRev152685(log); | |||
| } | |||
| public void testEnd() throws IOException { | |||
| String log = executeTargetAndReadLogFully("end"); | |||
| assertNoRev153687(log); | |||
| assertRev152685(log); | |||
| } | |||
| public void testEndDate() throws IOException { | |||
| String log = executeTargetAndReadLogFully("endDate"); | |||
| assertNoRev153687(log); | |||
| assertRev152685(log); | |||
| } | |||
| private String executeTargetAndReadLogFully(String target) | |||
| throws IOException { | |||
| executeTarget(target); | |||
| FileReader r = new FileReader(getProject() | |||
| .resolveFile("tmpdir/log.xml")); | |||
| try { | |||
| return FileUtils.readFully(r); | |||
| } finally { | |||
| r.close(); | |||
| } | |||
| } | |||
| private static final void assertRev153687(String log) { | |||
| int rev = log.indexOf("<revision>153687</revision>"); | |||
| Assert.assertTrue(rev > -1); | |||
| int entryBeforeRev = log.lastIndexOf("<entry>", rev); | |||
| int entryAfterRev = log.indexOf("</entry>", rev); | |||
| Assert.assertTrue(entryBeforeRev > -1); | |||
| Assert.assertTrue(entryAfterRev > -1); | |||
| Assert | |||
| .assertTrue(log.lastIndexOf("<author><![CDATA[dbrosius]]></author>", | |||
| rev) > entryBeforeRev); | |||
| Assert | |||
| .assertTrue(log.indexOf("<name><![CDATA[/jakarta/bcel/trunk/src" | |||
| + "/java/org/apache/bcel/util/BCELifier." | |||
| + "java]]></name>", rev) < entryAfterRev); | |||
| Assert | |||
| .assertTrue(log.indexOf("<action>modified</action>", rev) | |||
| < entryAfterRev); | |||
| Assert | |||
| .assertTrue(log.indexOf("<message><![CDATA[Update BCELifier to " | |||
| + "handle the new method access flags " | |||
| + "(ACC_BRIDGE, ACC_VARARGS)]]></message>", | |||
| rev) | |||
| < entryAfterRev); | |||
| } | |||
| private static final void assertRev152685(String log) { | |||
| int rev = log.indexOf("<revision>152685</revision>"); | |||
| Assert.assertTrue(rev > -1); | |||
| int entryBeforeRev = log.lastIndexOf("<entry>", rev); | |||
| int entryAfterRev = log.indexOf("</entry>", rev); | |||
| Assert.assertTrue(entryBeforeRev > -1); | |||
| Assert.assertTrue(entryAfterRev > -1); | |||
| Assert | |||
| .assertTrue(log.lastIndexOf("<![CDATA[(no author)]]>", rev) | |||
| > entryBeforeRev); | |||
| Assert | |||
| .assertTrue(log.indexOf("<name><![CDATA[/jakarta/bcel/branches]]>" | |||
| + "</name>", rev) < entryAfterRev); | |||
| Assert | |||
| .assertTrue(log.indexOf("<action>added</action>", rev) | |||
| < entryAfterRev); | |||
| Assert | |||
| .assertTrue(log.indexOf("<message><![CDATA[New repository " | |||
| + "initialized by cvs2svn.]]></message>", | |||
| rev) | |||
| < entryAfterRev); | |||
| } | |||
| private static final void assertNoRev153687(String log) { | |||
| int rev = log.indexOf("<revision>153687</revision>"); | |||
| Assert.assertEquals(-1, rev); | |||
| } | |||
| private static final void assertNoRev152685(String log) { | |||
| int rev = log.indexOf("<revision>152685</revision>"); | |||
| Assert.assertEquals(-1, rev); | |||
| } | |||
| } | |||
| @@ -0,0 +1,136 @@ | |||
| /* | |||
| * Copyright 2005 The Apache Software Foundation | |||
| * | |||
| * 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.tools.ant.taskdefs.svn; | |||
| import java.io.IOException; | |||
| import java.io.FileReader; | |||
| import org.apache.tools.ant.BuildFileTest; | |||
| import org.apache.tools.ant.util.FileUtils; | |||
| import junit.framework.Assert; | |||
| /** | |||
| */ | |||
| public class SvnRevisionDiffTest extends BuildFileTest { | |||
| public SvnRevisionDiffTest(String name) { | |||
| super(name); | |||
| } | |||
| public void setUp() { | |||
| configureProject("src/etc/testcases/revisiondiff.xml"); | |||
| } | |||
| public void tearDown() { | |||
| executeTarget("cleanup"); | |||
| } | |||
| public void testDiff() throws IOException { | |||
| String log = executeTargetAndReadLogFully("diff"); | |||
| assertAttributesNoURL(log); | |||
| assertAdded(log); | |||
| assertModified(log); | |||
| assertDeleted(log); | |||
| } | |||
| public void testDiffUrl() throws IOException { | |||
| String log = executeTargetAndReadLogFully("diff-using-url"); | |||
| assertAttributesWithURL(log); | |||
| assertAdded(log); | |||
| assertModified(log); | |||
| assertDeleted(log); | |||
| } | |||
| private String executeTargetAndReadLogFully(String target) | |||
| throws IOException { | |||
| executeTarget(target); | |||
| FileReader r = new FileReader(getProject() | |||
| .resolveFile("tmpdir/diff.xml")); | |||
| try { | |||
| return FileUtils.readFully(r); | |||
| } finally { | |||
| r.close(); | |||
| } | |||
| } | |||
| private static final void assertAttributes(String log) { | |||
| int start = log.indexOf("<revisiondiff"); | |||
| Assert.assertTrue(start > -1); | |||
| int end = log.indexOf(">", start); | |||
| Assert.assertTrue(end > -1); | |||
| Assert.assertTrue(log.indexOf("start=\"152904\"", start) > -1); | |||
| Assert.assertTrue(log.indexOf("start=\"152904\"") < end); | |||
| Assert.assertTrue(log.indexOf("end=\"153682\"", start) > -1); | |||
| Assert.assertTrue(log.indexOf("end=\"153682\"") < end); | |||
| } | |||
| private static final void assertAttributesNoURL(String log) { | |||
| assertAttributes(log); | |||
| Assert.assertEquals(-1, log.indexOf("svnurl=")); | |||
| } | |||
| private static final void assertAttributesWithURL(String log) { | |||
| assertAttributes(log); | |||
| int start = log.indexOf("<revisiondiff"); | |||
| int end = log.indexOf(">", start); | |||
| Assert.assertTrue(log.indexOf("svnurl=\"http://svn.apache.org/repos/" | |||
| + "asf/jakarta/bcel/trunk\"", start) | |||
| > -1); | |||
| Assert.assertTrue(log.indexOf("svnurl=\"http://svn.apache.org/repos/" | |||
| + "asf/jakarta/bcel/trunk\"", start) | |||
| < end); | |||
| } | |||
| private static final void assertAdded(String log) { | |||
| int name = log.indexOf("<![CDATA[src/java/org/apache/bcel/classfile/" | |||
| + "ElementValuePair.java]]>"); | |||
| Assert.assertTrue(name > -1); | |||
| int pathAfterName = log.indexOf("</path>", name); | |||
| Assert.assertTrue(pathAfterName > -1); | |||
| Assert.assertTrue(log.indexOf("<action>added</action>", name) > -1); | |||
| Assert.assertTrue(log.indexOf("<action>added</action>", name) | |||
| < pathAfterName); | |||
| } | |||
| private static final void assertModified(String log) { | |||
| int name = log.indexOf("<name><![CDATA[xdocs/stylesheets/project." | |||
| + "xml]]></name>"); | |||
| Assert.assertTrue(name > -1); | |||
| int pathAfterName = log.indexOf("</path>", name); | |||
| Assert.assertTrue(pathAfterName > -1); | |||
| Assert.assertTrue(log.indexOf("<action>modified</action>", name) > -1); | |||
| Assert.assertTrue(log.indexOf("<action>modified</action>", name) | |||
| < pathAfterName); | |||
| } | |||
| private static final void assertDeleted(String log) { | |||
| int name = log.indexOf("<name><![CDATA[lib/CCK.jar]]></name>"); | |||
| Assert.assertTrue(name > -1); | |||
| int pathAfterName = log.indexOf("</path>", name); | |||
| Assert.assertTrue(pathAfterName > -1); | |||
| Assert.assertTrue(log.indexOf("<action>deleted</action>", name) > -1); | |||
| Assert.assertTrue(log.indexOf("<action>deleted</action>", name) | |||
| < pathAfterName); | |||
| } | |||
| } | |||