KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > ant > debugger > StepTest


1 /*
2  * The contents of this file are subject to the terms of the Common Development
3  * and Distribution License (the License). You may not use this file except in
4  * compliance with the License.
5  *
6  * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
7  * or http://www.netbeans.org/cddl.txt.
8  *
9  * When distributing Covered Code, include this CDDL Header Notice in each file
10  * and include the License file at http://www.netbeans.org/cddl.txt.
11  * If applicable, add the following below the CDDL Header, with the fields
12  * enclosed by brackets [] replaced by your own identifying information:
13  * "Portions Copyrighted [year] [name of copyright owner]"
14  *
15  * The Original Software is NetBeans. The Initial Developer of the Original
16  * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
17  * Microsystems, Inc. All Rights Reserved.
18  */

19
20 package org.netbeans.modules.ant.debugger;
21
22 import java.io.File JavaDoc;
23 import org.apache.tools.ant.module.api.AntProjectCookie;
24 import org.apache.tools.ant.module.api.AntTargetExecutor;
25 import org.apache.tools.ant.module.api.support.ActionUtils;
26 import org.netbeans.junit.NbTestCase;
27 import org.openide.execution.ExecutorTask;
28 import org.openide.filesystems.FileObject;
29 import org.openide.filesystems.FileUtil;
30 import org.openide.modules.InstalledFileLocator;
31 import org.openide.util.Lookup;
32 import org.openide.util.lookup.Lookups;
33 import org.openide.util.lookup.ProxyLookup;
34
35
36
37 /**
38  * Tests Ant debuggerstepping actions: step in, step out and step over.
39  *
40  * @author Jan Jancura
41  */

42 public class StepTest extends NbTestCase {
43     
44     static {
45         System.setProperty ("org.openide.util.Lookup", Lkp.class.getName ());
46     }
47
48     private String JavaDoc sourceRoot = System.getProperty ("debuggerant.dir");
49
50     public StepTest (String JavaDoc s) {
51         super (s);
52     }
53     
54     public void testStepOver () throws Exception JavaDoc {
55         File JavaDoc file = new File JavaDoc (sourceRoot + "build.xml");
56         DebuggerAntLogger.getDefault ().debugFile (file);
57         FileObject fileObject = FileUtil.toFileObject (file);
58         ActionUtils.runTarget (
59             fileObject,
60             new String JavaDoc[] {"run"},
61             null
62         );
63     }
64     
65     public static final class Lkp extends ProxyLookup {
66         public Lkp() {
67             try {
68                 setLookups(new Lookup[] {
69                     Lookups.fixed(new Object JavaDoc[] {
70                         new IFL(),
71                         Class.forName("org.netbeans.modules.masterfs.MasterURLMapper").newInstance(),
72                         new DebuggerAntLogger ()
73                     }),
74                 });
75             } catch (Exception JavaDoc e) {
76                 e.printStackTrace();
77             }
78         }
79     }
80
81     private static final class IFL extends InstalledFileLocator {
82         public IFL() {}
83         public File JavaDoc locate(String JavaDoc relativePath, String JavaDoc codeNameBase, boolean localized) {
84             if (relativePath.equals("ant/nblib/bridge.jar")) {
85                 String JavaDoc path = System.getProperty("test.bridge.jar");
86                 assertNotNull("must set test.bridge.jar", path);
87                 return new File JavaDoc(path);
88             } else if (relativePath.equals("ant")) {
89                 String JavaDoc path = System.getProperty("test.ant.home");
90                 assertNotNull("must set test.ant.home", path);
91                 return new File JavaDoc(path);
92             } else if (relativePath.startsWith("ant/")) {
93                 String JavaDoc path = System.getProperty("test.ant.home");
94                 assertNotNull("must set test.ant.home", path);
95                 return new File JavaDoc(path, relativePath.substring(4).replace('/', File.separatorChar));
96             } else {
97                 return null;
98             }
99         }
100     }
101 }
102
Popular Tags