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 popup_menus;
043:
044: import java.awt.event.KeyEvent;
045: import java.io.File;
046: import java.io.FileOutputStream;
047: import java.io.IOException;
048: import java.io.OutputStream;
049: import java.io.PrintStream;
050: import java.util.Hashtable;
051: import javax.swing.text.AbstractDocument;
052: import javax.swing.text.JTextComponent;
053: import org.netbeans.jellytools.Bundle;
054: import org.netbeans.jellytools.EditorOperator;
055: import lib.EditorTestCase;
056: import org.netbeans.api.editor.fold.Fold;
057: import org.netbeans.api.editor.fold.FoldHierarchy;
058: import org.netbeans.editor.SettingsDefaults;
059: import org.netbeans.editor.SettingsNames;
060: import org.netbeans.editor.SettingsUtil;
061: import org.netbeans.jemmy.TimeoutExpiredException;
062: import org.netbeans.jemmy.operators.JEditorPaneOperator;
063: import org.netbeans.jemmy.operators.JTextComponentOperator;
064:
065: /**
066: * Test behavior of main menus - Edit, View
067: * @author Martin Roskanin
068: */
069: public class MainMenuTest extends MenuTest {
070:
071: String xmlFile = "testMainMenu.xml";
072:
073: /** Creates a new instance of Main */
074: public MainMenuTest(String testMethodName) {
075: super (testMethodName);
076: }
077:
078: public void testMainMenu() {
079: openDefaultProject();
080: openDefaultSampleFile();
081: try {
082:
083: EditorOperator editor = getDefaultSampleEditorOperator();
084: JTextComponentOperator text = new JTextComponentOperator(
085: editor);
086: final JTextComponent target = (JTextComponent) text
087: .getSource();
088:
089: boolean lineNumberVisibleSetting = SettingsUtil.getBoolean(
090: org.netbeans.editor.Utilities.getKitClass(target),
091: SettingsNames.LINE_NUMBER_VISIBLE,
092: SettingsDefaults.defaultLineNumberVisible);
093:
094: //enable line number
095: JEditorPaneOperator txtOper = editor.txtEditorPane();
096: txtOper.pushKey(KeyEvent.VK_V, KeyEvent.ALT_DOWN_MASK);
097: txtOper.pushKey(KeyEvent.VK_S);
098:
099: ValueResolver resolver = new ValueResolver() {
100: public Object getValue() {
101: return SettingsUtil.getValue(
102: org.netbeans.editor.Utilities
103: .getKitClass(target),
104: SettingsNames.LINE_NUMBER_VISIBLE,
105: Boolean.FALSE);
106: }
107: };
108:
109: waitMaxMilisForValue(2000, resolver, Boolean.TRUE);
110:
111: lineNumberVisibleSetting = SettingsUtil.getBoolean(
112: org.netbeans.editor.Utilities.getKitClass(target),
113: SettingsNames.LINE_NUMBER_VISIBLE,
114: SettingsDefaults.defaultLineNumberVisible);
115:
116: if (lineNumberVisibleSetting == false) {
117: log("Java editor set line number fails:"
118: + org.netbeans.editor.Utilities
119: .getKitClass(target));
120: }
121:
122: //assert lineNumberVisibleSetting == true;
123: assertTrue("Java editor - line numbers not visible",
124: lineNumberVisibleSetting);
125:
126: openSourceFile(getDefaultSamplePackage(), xmlFile);
127:
128: EditorOperator editorXML = new EditorOperator(xmlFile);
129: JTextComponentOperator textXML = new JTextComponentOperator(
130: editorXML);
131: final JTextComponent targetXML = (JTextComponent) textXML
132: .getSource();
133:
134: //enable line number
135: JEditorPaneOperator txtOperXML = editorXML.txtEditorPane();
136: txtOperXML.pushKey(KeyEvent.VK_V, KeyEvent.ALT_DOWN_MASK);
137: txtOperXML.pushKey(KeyEvent.VK_S);
138:
139: ValueResolver resolverXML = new ValueResolver() {
140: public Object getValue() {
141: return SettingsUtil.getValue(
142: org.netbeans.editor.Utilities
143: .getKitClass(targetXML),
144: SettingsNames.LINE_NUMBER_VISIBLE,
145: Boolean.FALSE);
146: }
147: };
148:
149: waitMaxMilisForValue(2000, resolverXML, Boolean.TRUE);
150:
151: lineNumberVisibleSetting = SettingsUtil.getBoolean(
152: org.netbeans.editor.Utilities
153: .getKitClass(targetXML),
154: SettingsNames.LINE_NUMBER_VISIBLE,
155: SettingsDefaults.defaultLineNumberVisible);
156:
157: if (lineNumberVisibleSetting == false) {
158: log("XML editor set line number fails:"
159: + org.netbeans.editor.Utilities
160: .getKitClass(targetXML));
161: }
162:
163: // assert lineNumberVisibleSetting == true;
164: assertTrue("XML editor - line numbers not visible",
165: lineNumberVisibleSetting);
166: } finally {
167: // now close XML file
168: try {
169: //find editor
170: EditorOperator editor = new EditorOperator(xmlFile);
171: editor.closeDiscard();
172: } catch (TimeoutExpiredException ex) {
173: log(ex.getMessage());
174: log("Can't close the file:" + xmlFile);
175: }
176:
177: //and java file
178: closeFileWithDiscard();
179:
180: }
181: }
182:
183: }
|