KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > test > java > gui > customizers > ConstructorCustomizer


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.test.java.gui.customizers;
21
22 import java.io.File JavaDoc;
23 import java.io.IOException JavaDoc;
24 import java.io.PrintStream JavaDoc;
25 import java.io.PrintWriter JavaDoc;
26 import junit.textui.TestRunner;
27 import org.netbeans.jellytools.EditorOperator;
28 import org.netbeans.jellytools.JellyTestCase;
29 import org.netbeans.jellytools.ProjectsTabOperator;
30 import org.netbeans.jellytools.actions.OpenAction;
31 import org.netbeans.jellytools.modules.java.ClassCustomizerOperator;
32 import org.netbeans.jellytools.nodes.Node;
33 import org.netbeans.jellytools.properties.Property;
34 import org.netbeans.jellytools.properties.PropertySheetOperator;
35 import org.netbeans.jemmy.JemmyProperties;
36 import org.netbeans.jemmy.TestOut;
37 import org.netbeans.jemmy.operators.JEditorPaneOperator;
38 import org.netbeans.junit.NbTestSuite;
39 import org.netbeans.test.java.gui.GuiUtilities;
40
41
42 /**
43  * Tests editing of a constructor in a pop-up window.
44  * @author Roman Strobl
45  */

46 public class ConstructorCustomizer extends JellyTestCase {
47        
48     // name of sample project
49
private static final String JavaDoc TEST_PROJECT_NAME = "default";
50     
51     // path to sample files
52
private static final String JavaDoc TEST_PACKAGE_PATH =
53             "org.netbeans.test.java.gui.customizers";
54     
55     // name of sample package
56
private static final String JavaDoc TEST_PACKAGE_NAME = TEST_PACKAGE_PATH+".test";
57     
58     // name of sample class
59
private static final String JavaDoc TEST_CLASS_NAME = "ConstructorCustomizer";
60
61     /**
62      * error log
63      */

64     protected static PrintStream JavaDoc err;
65     
66     /**
67      * standard log
68      */

69     protected static PrintStream JavaDoc log;
70    
71     // workdir, default /tmp, changed to NBJUnit workdir during test
72
private String JavaDoc workDir = "/tmp";
73     
74     // actual directory with project
75
private static String JavaDoc projectDir;
76     
77     
78     /**
79      * Needs to be defined because of JUnit
80      * @param name test name
81      */

82     public ConstructorCustomizer(String JavaDoc name) {
83         super(name);
84     }
85
86     /**
87      * Adds tests into the test suite.
88      * @return suite
89      */

90     public static NbTestSuite suite() {
91         NbTestSuite suite = new NbTestSuite();
92         suite.addTest(new ConstructorCustomizer("testCustomizeConstructor"));
93         return suite;
94     }
95     
96     /**
97      * Main method for standalone execution.
98      * @param args the command line arguments
99      */

100     public static void main(java.lang.String JavaDoc[] args) {
101         TestRunner.run(suite());
102     }
103     
104     /**
105      * Sets up logging facilities.
106      */

107     public void setUp() {
108         System.out.println("######## "+getName()+" #######");
109         err = getLog();
110         log = getRef();
111         JemmyProperties.getProperties().setOutput(new TestOut(null,
112                 new PrintWriter JavaDoc(err, true), new PrintWriter JavaDoc(err, false), null));
113         try {
114             File JavaDoc wd = getWorkDir();
115             workDir = wd.toString();
116         } catch (IOException JavaDoc e) { }
117     }
118     
119     /**
120      * Prepares testing project, package and class.
121      */

122     public void testCreateProjectAndPackageAndClass() {
123         projectDir = GuiUtilities.createProjectAndPackageAndClass(
124                 TEST_PROJECT_NAME, TEST_PACKAGE_NAME, TEST_CLASS_NAME, workDir);
125     }
126     
127     /**
128      * Tests constructor customization.
129      */

130     public void testCustomizeConstructor() {
131         Node pn = new ProjectsTabOperator().getProjectRootNode(
132                 TEST_PROJECT_NAME);
133         pn.select();
134
135         Node n = new Node(pn, org.netbeans.jellytools.Bundle.getString(
136                 "org.netbeans.modules.java.j2seproject.Bundle",
137                 "NAME_src.dir")+"|"+TEST_PACKAGE_NAME+"|"
138                 +TEST_CLASS_NAME);
139         
140         n.select();
141         new OpenAction().perform();
142         
143         // open customize constructor window
144
GuiUtilities.waitForChildNode(TEST_PROJECT_NAME,
145                 org.netbeans.jellytools.Bundle.getString(
146                 "org.netbeans.modules.java.j2seproject.Bundle",
147                 "NAME_src.dir")+"|"
148                 +TEST_PACKAGE_NAME+"|"+TEST_CLASS_NAME+"|"+TEST_CLASS_NAME+"|"
149                 +org.netbeans.jellytools.Bundle.getString(
150                 "org.netbeans.modules.java.ui.nodes.elements.Bundle",
151                 "Constructors"), TEST_CLASS_NAME+"()");
152
153         Node n2 = new Node(pn, org.netbeans.jellytools.Bundle.getString(
154                 "org.netbeans.modules.java.j2seproject.Bundle",
155                 "NAME_src.dir")+"|"+TEST_PACKAGE_NAME+"|"
156                 +TEST_CLASS_NAME+"|"+TEST_CLASS_NAME+"|"
157                 +org.netbeans.jellytools.Bundle.getString(
158                 "org.netbeans.modules.java.ui.nodes.elements.Bundle",
159                 "Constructors")+"|"+TEST_CLASS_NAME+"()");
160
161         n2.select();
162         n2.performPopupActionNoBlock(org.netbeans.jellytools.Bundle.getString(
163                 "org.netbeans.core.Bundle", "CTL_PropertiesWindow"));
164                         
165         ClassCustomizerOperator cco = new ClassCustomizerOperator(
166                 TEST_CLASS_NAME+"() - "
167                 +org.netbeans.jellytools.Bundle.getString(
168                 "org.netbeans.core.Bundle", "CTL_PropertiesWindow"));
169         
170         PropertySheetOperator pso = new PropertySheetOperator(TEST_CLASS_NAME
171                 +"() - "+org.netbeans.jellytools.Bundle.getString(
172                 "org.netbeans.core.Bundle", "CTL_PropertiesWindow"));
173                 
174         // try to set some values to see if customization works
175
new Property(pso, "Modifiers").setValue("private");
176         new Property(pso, "Exceptions").setValue("Exception");
177         
178         cco.btClose().clickMouse();
179
180         // compare reference files
181
ref(new EditorOperator(TEST_CLASS_NAME).getText());
182         compareReferenceFiles();
183         
184         EditorOperator.closeDiscardAll();
185     }
186     
187 }
188
Popular Tags