source: other-projects/trunk/gs3-release-maker/apache-ant-1.6.5/src/testcases/org/apache/tools/ant/taskdefs/ImportTest.java@ 14627

Last change on this file since 14627 was 14627, checked in by oranfry, 17 years ago

initial import of the gs3-release-maker

File size: 5.7 KB
Line 
1/*
2 * Copyright 2003-2005 The Apache Software Foundation
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 *
16 */
17
18package org.apache.tools.ant.taskdefs;
19
20import java.io.File;
21import java.io.IOException;
22
23import org.apache.tools.ant.BuildException;
24import org.apache.tools.ant.BuildFileTest;
25import org.apache.tools.ant.Location;
26import org.apache.tools.ant.Project;
27
28/**
29 */
30public class ImportTest extends BuildFileTest {
31
32 public ImportTest(String name) {
33 super(name);
34 }
35
36 public void setUp() {
37 }
38
39 public void tearDown() {
40 }
41
42 public void testSimpleImport() {
43 configureProject("src/etc/testcases/taskdefs/import/import.xml");
44 assertLogContaining("Before importIn imported topAfter import");
45 }
46
47 public void testUnnamedNesting() {
48 configureProject("src/etc/testcases/taskdefs/import/unnamedImport.xml",
49 Project.MSG_WARN);
50 String log = getLog();
51 assertTrue("Warnings logged when not expected: " + log,
52 log.length() == 0);
53 }
54
55 public void testSerial() {
56 configureProject("src/etc/testcases/taskdefs/import/subdir/serial.xml");
57 assertLogContaining("Unnamed2.xmlUnnamed1.xml");
58 String fullLog = getFullLog();
59 String substring = "Skipped already imported file";
60 assertTrue("expecting full log to contain \"" + substring
61 + "\" full log was \"" + fullLog + "\"",
62 fullLog.indexOf(substring) >= 0);
63 }
64
65 // allow this as imported in targets are only tested when a target is run
66 public void testImportInTargetNoEffect() {
67 configureProject("src/etc/testcases/taskdefs/import/subdir/importintarget.xml");
68 expectPropertyUnset("no-import", "foo");
69 assertTrue(null == getProject().getReference("baz"));
70 }
71
72 // deactivate this test as imports within targets are not allowed
73 public void notTestImportInTargetWithEffect() {
74 configureProject("src/etc/testcases/taskdefs/import/subdir/importintarget.xml");
75 expectPropertySet("do-import", "foo", "bar");
76 assertNotNull(getProject().getReference("baz"));
77 }
78
79 public void testImportInTargetNotAllowed() {
80 configureProject(
81 "src/etc/testcases/taskdefs/import/subdir/importintarget.xml");
82 expectBuildExceptionContaining(
83 "do-import", "not a top level task",
84 "import only allowed as a top-level task");
85 }
86
87 public void testImportInSequential() {
88 configureProject(
89 "src/etc/testcases/taskdefs/import/subdir/importinsequential.xml");
90 expectPropertySet("within-imported", "foo", "bar");
91 assertNotNull(getProject().getReference("baz"));
92 }
93
94 public void testImportSameTargets() {
95 try {
96 configureProject(
97 "src/etc/testcases/taskdefs/import/same_target.xml");
98 } catch (BuildException ex) {
99 String message = ex.getMessage();
100 if (message.indexOf("Duplicate target") == -1) {
101 assertTrue("Did not see 'Duplicate target' in '" + message +"'", false);
102 }
103 return;
104 }
105 assertTrue(
106 "Did not see build exception",
107 false);
108 }
109
110 public void testImportError() {
111 try {
112 configureProject(
113 "src/etc/testcases/taskdefs/import/import_bad_import.xml");
114 } catch (BuildException ex) {
115 Location lo = ex.getLocation();
116 assertTrue(
117 "expected location of build exception to be set",
118 (lo != null));
119 assertTrue(
120 "expected location to contain calling file",
121 lo.getFileName().indexOf("import_bad_import.xml") != -1);
122 assertTrue(
123 "expected message of ex to contain called file",
124 ex.getMessage().indexOf("bad.xml") != -1);
125 return;
126 }
127 assertTrue(
128 "Did not see build exception",
129 false);
130 }
131
132 public void testSymlinkedImports() throws Exception {
133 String ln = "/usr/bin/ln";
134 if (!new File(ln).exists()) {
135 ln = "/bin/ln";
136 }
137 if (!new File(ln).exists()) {
138 // Running on Windows or something, so skip it.
139 return;
140 }
141 String symlink = "src/etc/testcases/taskdefs/import/symlinks/d3b";
142 if (Runtime.getRuntime().exec(new String[] {ln, "-s", "d3a", symlink}).waitFor() != 0) {
143 throw new IOException("'" + ln + " -s d3a " + symlink + "' failed");
144 }
145 try {
146 configureProject(
147 "src/etc/testcases/taskdefs/import/symlinks/d1/p1.xml");
148 assertPropertyEquals(
149 "ant.file.p2",
150 new File("src/etc/testcases/taskdefs/import/symlinks/d2/p2.xml")
151 .getAbsolutePath());
152 assertPropertyEquals(
153 "ant.file.p3",
154 new File("src/etc/testcases/taskdefs/import/symlinks/d3b/p3.xml")
155 .getAbsolutePath());
156 } finally {
157 new File(symlink).delete();
158 }
159 }
160
161}
Note: See TracBrowser for help on using the repository browser.