001: /*
002: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
003: *
004: * Copyright 1997-2007 Sun Microsystems, Inc. All rights reserved.
005: *
006: * The contents of this file are subject to the terms of either the GNU
007: * General Public License Version 2 only ("GPL") or the Common
008: * Development and Distribution License("CDDL") (collectively, the
009: * "License"). You may not use this file except in compliance with the
010: * License. You can obtain a copy of the License at
011: * http://www.netbeans.org/cddl-gplv2.html
012: * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
013: * specific language governing permissions and limitations under the
014: * License. When distributing the software, include this License Header
015: * Notice in each file and include the License file at
016: * nbbuild/licenses/CDDL-GPL-2-CP. Sun designates this
017: * particular file as subject to the "Classpath" exception as provided
018: * by Sun in the GPL Version 2 section of the License file that
019: * accompanied this code. If applicable, add the following below the
020: * License Header, with the fields enclosed by brackets [] replaced by
021: * your own identifying information:
022: * "Portions Copyrighted [year] [name of copyright owner]"
023: *
024: * Contributor(s):
025: *
026: * The Original Software is NetBeans. The Initial Developer of the Original
027: * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
028: * Microsystems, Inc. All Rights Reserved.
029: *
030: * If you wish your version of this file to be governed by only the CDDL
031: * or only the GPL Version 2, indicate your decision by adding
032: * "[Contributor] elects to include this software in this distribution
033: * under the [CDDL or GPL Version 2] license." If you do not indicate a
034: * single choice of license, a recipient has the option to distribute
035: * your version of this file under either the CDDL, the GPL Version 2 or
036: * to extend the choice of license to its licensees as provided above.
037: * However, if you add GPL Version 2 code and therefore, elected the GPL
038: * Version 2 license, then the option applies only if the new code is
039: * made subject to such option by the copyright holder.
040: */
041:
042: package org.netbeans.nbbuild;
043:
044: import java.io.BufferedReader;
045: import java.io.File;
046: import java.io.FileInputStream;
047: import java.io.FileOutputStream;
048: import java.io.FileReader;
049: import java.io.PrintStream;
050: import java.util.Properties;
051: import junit.framework.*;
052: import org.netbeans.junit.*;
053:
054: /**
055: *
056: * @author pzajac
057: */
058: public class ShorterPathsTest extends NbTestCase {
059:
060: public ShorterPathsTest(java.lang.String testName) {
061: super (testName);
062: }
063:
064: public static void main(java.lang.String[] args) {
065: junit.textui.TestRunner.run(suite());
066: }
067:
068: public void testShorterPaths() throws Exception {
069: // create test
070: File wd = getWorkDir();
071: File modules = new File(wd, "modules");
072: modules.mkdirs();
073: File module = new File(modules, "module.jar");
074: module.createNewFile();
075: File extlib = new File(wd, "extlib.jar");
076: File extraLibsDir = new File(wd, "extralibs");
077: File testProperties = new File(wd, "outtest.properties");
078: extraLibsDir.mkdirs();
079:
080: PrintStream ps = new PrintStream(extlib);
081: ps.println("content");
082: ps.close();
083:
084: PublicPackagesInProjectizedXMLTest
085: .execute("ShorterPathsTest.xml",
086: new String[] {
087: "-verbose",
088: "-Dtest.ext.lib=" + extlib.getPath(),
089: "-Dtest.modules.dir="
090: + modules.getPath(),
091: "-Dextra.test.libs.dir="
092: + extraLibsDir.getPath(),
093: "-Dtest.properties="
094: + testProperties.getPath(),
095: "all" });
096: File extralibCopy = new File(extraLibsDir, "extlib.jar");
097:
098: assertTrue("No extra library has been copied", extralibCopy
099: .exists());
100: BufferedReader reader = new BufferedReader(new FileReader(
101: extralibCopy));
102: assertEquals("Different content in copy of extra library:",
103: "content", reader.readLine());
104:
105: Properties props = new Properties();
106: FileInputStream propsIs = new FileInputStream(testProperties);
107: props.load(propsIs);
108: propsIs.close();
109: assertEquals("extra.test.libs.dir",
110: "${extra.test.libs}/extlib.jar", props
111: .getProperty("extra.test.libs.dir"));
112: assertEquals("test.unit.run.cp",
113: "${nb.root.test.dir}/module.jar", props
114: .getProperty("test.unit.run.cp"));
115: assertEquals("test-unit-sys-prop.prop1", "value1", props
116: .getProperty("test-unit-sys-prop.prop1"));
117: assertEquals("test-unit-sys-prop.prop2",
118: "${nb.root.test.dir}/module.jar", props
119: .getProperty("test-unit-sys-prop.prop2"));
120: assertNull(props.getProperty("test-unit-sys-prop.xtest.data"));
121: assertEquals("props.size()", 4, props.size());
122:
123: // test dist
124: }
125:
126: public static Test suite() {
127: TestSuite suite = new NbTestSuite(ShorterPathsTest.class);
128: return suite;
129: }
130:
131: // Add test methods here, they have to start with 'test' name.
132: // for example:
133: // public void testHello() {}
134:
135: }
|