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-2007 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 gui.window;
043:
044: import org.netbeans.jellytools.Bundle;
045: import org.netbeans.jellytools.NbDialogOperator;
046: import org.netbeans.jellytools.PaletteOperator;
047: import org.netbeans.jellytools.TopComponentOperator;
048: import org.netbeans.jellytools.actions.ActionNoBlock;
049: import org.netbeans.jellytools.nodes.Node;
050: import org.netbeans.jellytools.properties.PropertySheetOperator;
051:
052: import org.netbeans.jemmy.TimeoutExpiredException;
053: import org.netbeans.jemmy.operators.ComponentOperator;
054: import org.netbeans.jemmy.operators.JComboBoxOperator;
055: import org.netbeans.jemmy.operators.JPopupMenuOperator;
056: import org.netbeans.jemmy.operators.JTreeOperator;
057:
058: /**
059: *
060: * @author mkhramov@netbeans.org, mmirilovic@netbeans.org
061: */
062: public class PageFragmentBoxDialog extends
063: org.netbeans.performance.test.utilities.PerformanceTestCase {
064: private PaletteComponentOperator palette;
065: private WebFormDesignerOperator surface;
066: private TopComponentOperator navigator;
067:
068: private static String dlgName, menuCmd;
069:
070: /** Creates a new instance of PageFragmentBoxDialog
071: *
072: * @param testName
073: *
074: */
075: public PageFragmentBoxDialog(String testName) {
076: super (testName);
077: expectedTime = WINDOW_OPEN;
078: WAIT_AFTER_OPEN = 5000;
079: }
080:
081: /** Creates a new instance of PageFragmentBoxDialog
082: *
083: * @param testName
084: * @param performanceDataName
085: *
086: */
087: public PageFragmentBoxDialog(String testName,
088: String performanceDataName) {
089: super (testName, performanceDataName);
090: expectedTime = WINDOW_OPEN;
091: WAIT_AFTER_OPEN = 5000;
092: }
093:
094: public void prepare() {
095: log("::prepare");
096: //surface.clickOnSurface(10,10);
097: }
098:
099: public ComponentOperator open() {
100: log("::menu cmd = " + menuCmd);
101:
102: Node openNode = selectFragmentNodeInNavigatorTree();
103: JPopupMenuOperator popup = openNode.callPopup();
104: if (popup == null) {
105: throw new Error(
106: "Cannot get context menu for pagefragment node ");
107: }
108: try {
109: popup.pushMenu(menuCmd);
110: } catch (org.netbeans.jemmy.TimeoutExpiredException tee) {
111: throw new Error("Cannot push menu item " + menuCmd
112: + " on pagefragment node ");
113: }
114:
115: return new NbDialogOperator(dlgName);
116: }
117:
118: private Node selectFragmentNodeInNavigatorTree() {
119: navigator = new TopComponentOperator("Navigator"); // NOI18N
120:
121: JTreeOperator tree = new JTreeOperator(navigator);
122:
123: return new Node(tree,
124: "Page1|page1|html1|body1|form1|div|directive.include");
125: }
126:
127: protected void initialize() {
128: log("::initialize");
129:
130: dlgName = Bundle.getString(
131: "org.netbeans.modules.visualweb.xhtml.Bundle",
132: "fragmentCustTitle"); //Select Page Fragment
133: menuCmd = Bundle.getString(
134: "org.netbeans.modules.visualweb.xhtml.Bundle",
135: "fragmentCustTitleEllipse"); // Select Page Fragment...
136: new ActionNoBlock("Window|Navigating|Navigator", null)
137: .perform(); //NOI18N
138: PaletteOperator.invoke();
139:
140: addPFBComponent();
141: prepareCloseBoxDialog();
142: }
143:
144: private void prepareCloseBoxDialog() {
145: NbDialogOperator boxDialog = new NbDialogOperator(dlgName);
146: waitNoEvent(1000);
147: boxDialog.close();
148: }
149:
150: private void addPFBComponent() throws Error {
151: surface = gui.VWPUtilities.openedWebDesignerForJspFile(
152: "VisualWebProject", "Page1");
153:
154: palette = new PaletteComponentOperator();
155: palette.getCategoryListOperator("Layout").selectItem(
156: "Page Fragment Box"); // NOI18N
157:
158: surface.clickOnSurface(50, 50);
159: waitNoEvent(5000);
160: }
161:
162: protected void shutdown() {
163: log("::shutdown");
164: surface.closeDiscard();
165: try {
166: //new TopComponentOperator(Bundle.getString("org.netbeans.modules.visualweb.ravehelp.dynamichelp.Bundle", "MSG_DynamicHelpTab_name")).close();
167: new PropertySheetOperator("Page1").close();
168: } catch (TimeoutExpiredException timeoutExpiredException) {
169: //do nothing...can be not opened properties and help tabs
170: }
171: }
172:
173: public void close() {
174: super .close();
175: }
176:
177: public static void main(String[] args) {
178: junit.textui.TestRunner
179: .run(new PageFragmentBoxDialog("measureTime",
180: "Add Page Fragment Box Dialog open time"));
181: }
182: }
|