diff options
Diffstat (limited to 'framework/src/ant/apache-ant-1.9.6/src/tests/junit/org/apache/tools/ant/taskdefs/StyleTest.java')
-rw-r--r-- | framework/src/ant/apache-ant-1.9.6/src/tests/junit/org/apache/tools/ant/taskdefs/StyleTest.java | 225 |
1 files changed, 225 insertions, 0 deletions
diff --git a/framework/src/ant/apache-ant-1.9.6/src/tests/junit/org/apache/tools/ant/taskdefs/StyleTest.java b/framework/src/ant/apache-ant-1.9.6/src/tests/junit/org/apache/tools/ant/taskdefs/StyleTest.java new file mode 100644 index 00000000..24c4e9de --- /dev/null +++ b/framework/src/ant/apache-ant-1.9.6/src/tests/junit/org/apache/tools/ant/taskdefs/StyleTest.java @@ -0,0 +1,225 @@ +/* + * 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. + * + */ +package org.apache.tools.ant.taskdefs; + + +import java.io.File; +import java.io.IOException; + +import org.apache.tools.ant.BuildException; +import org.apache.tools.ant.BuildFileRule; +import org.apache.tools.ant.FileUtilities; +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + + +/** + * TestCases for {@link XSLTProcess} task. + * TODO merge with {@link org.apache.tools.ant.taskdefs.optional.XsltTest}? + * @version 2003-08-05 + */ +public class StyleTest { + + @Rule + public final BuildFileRule buildRule = new BuildFileRule(); + + @Before + public void setUp() throws Exception { + buildRule.configureProject("src/etc/testcases/taskdefs/style/build.xml"); + } + + @Test + public void testStyleIsSet() throws Exception { + + try { + buildRule.executeTarget("testStyleIsSet"); + fail("Must throws a BuildException: no stylesheet specified"); + } catch (BuildException ex) { + assertEquals("specify the stylesheet either as a filename in style attribute or as a nested resource", + ex.getMessage()); + } + } + + @Test + public void testTransferParameterSet() throws Exception { + expectFileContains("testTransferParameterSet", // target + buildRule.getOutputDir().getAbsoluteFile() + "/out.xml", // file + "set='myvalue'"); // exptected string + } + + @Test + public void testTransferParameterEmpty() throws Exception { + expectFileContains("testTransferParameterEmpty", + buildRule.getOutputDir().getAbsoluteFile() + "/out.xml", + "empty=''"); + } + + @Test + public void testTransferParameterUnset() throws Exception { + expectFileContains("testTransferParameterUnset", + buildRule.getOutputDir().getAbsoluteFile() + "/out.xml", + "undefined='${value}'"); + } + + @Test + public void testTransferParameterUnsetWithIf() throws Exception { + expectFileContains("testTransferParameterUnsetWithIf", + buildRule.getOutputDir().getAbsoluteFile() + "/out.xml", + "undefined='undefined default value'"); + } + + @Test + public void testNewerStylesheet() throws Exception { + expectFileContains("testNewerStylesheet", + buildRule.getOutputDir().getAbsoluteFile() + "/out.xml", + "new-value"); + } + + @Test + public void testDefaultMapper() throws Exception { + testDefaultMapper("testDefaultMapper"); + } + + @Test + public void testExplicitFileset() throws Exception { + testDefaultMapper("testExplicitFileset"); + } + + public void testDefaultMapper(String target) throws Exception { + assertTrue(!( + new File(buildRule.getOutputDir().getAbsoluteFile(), "data.html").exists())); + expectFileContains(target, + buildRule.getOutputDir().getAbsoluteFile() + "/data.html", + "set='myvalue'"); + } + + @Test + public void testCustomMapper() throws Exception { + assertTrue(!new File(buildRule.getOutputDir().getAbsoluteFile(), "out.xml").exists()); + expectFileContains("testCustomMapper", + buildRule.getOutputDir().getAbsoluteFile() + "/out.xml", + "set='myvalue'"); + } + + @Test + public void testTypedMapper() throws Exception { + assertTrue(!new File(buildRule.getOutputDir().getAbsoluteFile(), "out.xml").exists()); + expectFileContains("testTypedMapper", + buildRule.getOutputDir().getAbsoluteFile() + "/out.xml", + "set='myvalue'"); + } + + @Test + public void testDirectoryHierarchyWithDirMatching() throws Exception { + buildRule.executeTarget("testDirectoryHierarchyWithDirMatching"); + assertTrue(new File(buildRule.getOutputDir().getAbsoluteFile(), "dest/level1/data.html") + .exists()); + } + + @Test + public void testDirsWithSpaces() throws Exception { + buildRule.executeTarget("testDirsWithSpaces"); + assertTrue(new File(buildRule.getOutputDir().getAbsoluteFile(), "d est/data.html") + .exists()); + } + + @Test + public void testWithStyleAttrAndResource() { + try { + buildRule.executeTarget("testWithStyleAttrAndResource"); + fail("Must throws a BuildException"); + } catch (BuildException ex) { + assertEquals("specify the stylesheet either as a filename in style attribute or as a " + + "nested resource but not as both", ex.getMessage()); + } + } + + @Test + public void testWithFileResource() throws Exception { + expectFileContains("testWithFileResource", buildRule.getOutputDir().getAbsoluteFile() + "/out.xml", "set='value'"); + } + + @Test + public void testWithUrlResource() throws Exception { + expectFileContains("testWithUrlResource", buildRule.getOutputDir().getAbsoluteFile() + "/out.xml", "set='value'"); + } + + @Test + public void testFilenameAsParam() throws Exception { + buildRule.executeTarget("testFilenameAsParam"); + assertFileContains(buildRule.getOutputDir().getAbsoluteFile() + "/one.txt", "filename='one.xml'"); + assertFileContains(buildRule.getOutputDir().getAbsoluteFile() + "/two.txt", "filename='two.xml'"); + assertFileContains(buildRule.getOutputDir().getAbsoluteFile() + "/three.txt", "filename='three.xml'"); + assertFileContains(buildRule.getOutputDir().getAbsoluteFile() + "/dir/four.txt", "filename='four.xml'"); + assertFileContains(buildRule.getOutputDir().getAbsoluteFile() + "/dir/four.txt", "filedir ='-not-set-'"); + } + + @Test + public void testFilenameAsParamNoSetting() throws Exception { + buildRule.executeTarget("testFilenameAsParamNoSetting"); + assertFileContains(buildRule.getOutputDir().getAbsoluteFile() + "/one.txt", "filename='-not-set-'"); + assertFileContains(buildRule.getOutputDir().getAbsoluteFile() + "/two.txt", "filename='-not-set-'"); + assertFileContains(buildRule.getOutputDir().getAbsoluteFile() + "/three.txt", "filename='-not-set-'"); + assertFileContains(buildRule.getOutputDir().getAbsoluteFile() + "/dir/four.txt", "filename='-not-set-'"); + } + + @Test + public void testFilenameAndFiledirAsParam() throws Exception { + buildRule.executeTarget("testFilenameAndFiledirAsParam"); + assertFileContains(buildRule.getOutputDir().getAbsoluteFile() + "/one.txt", "filename='one.xml'"); + assertFileContains(buildRule.getOutputDir().getAbsoluteFile() + "/one.txt", "filedir ='.'"); + assertFileContains(buildRule.getOutputDir().getAbsoluteFile() + "/dir/four.txt", "filename='four.xml'"); + assertFileContains(buildRule.getOutputDir().getAbsoluteFile() + "/dir/four.txt", "filedir ='dir'"); + } + + + // ************* copied from ConcatTest ************* + + // ------------------------------------------------------ + // Helper methods - should be in BuildFileTest + // ----------------------------------------------------- + + private String getFileString(String filename) + throws IOException + { + return FileUtilities.getFileContents(new File(filename)); + } + + private void expectFileContains( + String target, String filename, String contains) + throws IOException + { + buildRule.executeTarget(target); + assertFileContains(filename, contains); + } + + private void assertFileContains(String filename, String contains) throws IOException { + String content = getFileString(filename); + assertTrue( + "expecting file " + filename + + " to contain " + contains + + " but got " + content, + content.indexOf(contains) > -1); + } + +} |