| /* |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| */ |
| |
| /* |
| * File PropertiesEditorOperator.java |
| * |
| * Created on 24.9.02 18:18 |
| * |
| * Description : |
| * |
| * This is operator used in autometed tests. Operator has been |
| * writed in Jelly2 |
| * |
| */ |
| package lib; |
| |
| import java.io.File; |
| import java.io.IOException; |
| import java.util.*; |
| import javax.swing.*; |
| import org.netbeans.jellytools.*; |
| import org.netbeans.jellytools.actions.*; |
| import org.netbeans.jellytools.nodes.*; |
| import org.netbeans.jellytools.nodes.Node; |
| import org.netbeans.jellytools.properties.*; |
| import org.netbeans.jemmy.*; |
| import org.netbeans.jemmy.operators.*; |
| import org.netbeans.junit.ide.ProjectSupport; |
| import org.openide.util.Exceptions; |
| |
| /** Class implementing all necessary methods for handling Property sheet in Editor window. |
| * This class is used for automated tests of properties module. |
| * @author Petr Felenda ( e-mail petr.felenda@sun.com ) |
| * @version 1 |
| */ |
| public class PropertiesEditorTestCase extends JellyTestCase { |
| |
| protected static final String DEFAULT_PROJECT_NAME = "properties_test"; |
| public String projectName; |
| private String treeSubPackagePathToFile; |
| protected String TREE_SEPARATOR = "|"; |
| protected String menuSeparator = "#"; |
| public String defaultPackageDir = "src"; |
| public String rootPackageName = "Source Packages"; |
| protected String defaultPackage = "<default package>"; |
| protected final String WIZARD_CATEGORY = "Other"; |
| protected final String WIZARD_CATEGORY_FILE = "Other"; |
| protected final String WIZARD_FILE_TYPE = "Properties File"; |
| protected final String WIZARD_DEFAULT_PROPERTIES_FILE_NAME = "newproperties"; //variables for New Property dialog |
| public JTextFieldOperator KEY; |
| public JTextFieldOperator VALUE; |
| public JTextFieldOperator COMMENTS; |
| /* |
| * declaration of members variables |
| */ |
| private final String TITLE_ADD_LOCALE_DIALOG = "";//Bundle.getStringTrimmed("org.netbeans.modules.properties.Bundle", "CTL_NewLocaleTitle"); // String : New Locale |
| private final String TITLE_NEW_PROPERTY_DIALOG = org.netbeans.jellytools.Bundle.getString("org.netbeans.modules.properties.Bundle", "CTL_NewPropertyTitle"); |
| private final String TITLE_HELP_DIALOG = "Help"; |
| private final String TITLE_ERROR_DIALOG = "";//Bundle.getStringTrimmed("org.openide.Bundle", "NTF_ErrorTitle"); // String : Error |
| private final String TITLE_SAVE_QUESTION_DIALOG = "";//Bundle.getStringTrimmed("org.openide.text.Bundle", "LBL_SaveFile_Title"); // String : Question |
| private final String TITLE_QUESTION_DIALOG = "Question"; // String : Question |
| private final String TITLE_CUSTOMIZE_LOCALES_DIALOG = "";//Bundle.getStringTrimmed("org.netbeans.core.Bundle", "CTL_Customizer_dialog_title"); // String : Customizer Dialog |
| private final String TITLE_CUSTOMIZE_PROPERTIES_DIALOG = "";//Bundle.getStringTrimmed("org.netbeans.core.Bundle", "CTL_Customizer_dialog_title"); // The same string as last one |
| private final String TITLE_DIALOG_CONFIRM_OBJECT_DELETION = "";//Bundle.getStringTrimmed("org.openide.explorer.Bundle", "MSG_ConfirmDeleteObjectTitle"); // String : Confirm Object deletion |
| private final String TITLE_DELETE_MORE_LOCALES_CONFIRMATION_DIALOG = "";//Bundle.getStringTrimmed("org.openide.explorer.Bundle", "MSG_ConfirmDeleteObjectsTitle"); // String : Confirm Multiple Object Deletion |
| private final String TITLE_PROPERTIES_WINDOW_TABLE = "";//Bundle.getStringTrimmed("org.netbeans.core.Bundle", "CTL_FMT_GlobalProperties"); // String : Properties of |
| private final String TITLE_PROPERTIES_WINDOW_TAB = "";//Bundle.getStringTrimmed("org.openide.nodes.Bundle", "Properties"); // String : Properties |
| private final String BUTTON_NAME_NEW_PROPERTY = "";//Bundle.getStringTrimmed("org.netbeans.modules.properties.Bundle", "LBL_AddPropertyButton"); // String : New Property |
| private final String BUTTON_NAME_REMOVE_PROPERTY = "";//Bundle.getStringTrimmed("org.netbeans.modules.properties.Bundle", "LBL_RemovePropertyButton"); // String : Remove Property |
| private final String BUTTON_NAME_REMOVE_LOCALE = "";//Bundle.getStringTrimmed("org.netbeans.modules.properties.Bundle", "CTL_RemoveLocale"); // String : Remove Locale |
| private final String BUTTON_NAME_ADD_LOCALE = "";//Bundle.getStringTrimmed("org.netbeans.modules.properties.Bundle", "CTL_AddLocale"); // String : Add Locale |
| private final String BUTTON_NAME_ADD_KEY = "";//Bundle.getStringTrimmed("org.netbeans.modules.properties.Bundle", "CTL_AddKey"); // String : Add Key |
| private final String BUTTON_NAME_REMOVE_KEY = "";//Bundle.getStringTrimmed("org.netbeans.modules.properties.Bundle", "CTL_RemoveKey"); // String : Remove Key |
| private final String BUTTON_NAME_YES = "";//Bundle.getStringTrimmed("org.netbeans.core.Bundle", "YES_OPTION_CAPTION"); // String : Yes |
| private final String BUTTON_NAME_NO = "";//Bundle.getStringTrimmed("org.netbeans.core.Bundle", "NO_OPTION_CAPTION"); // String : No |
| private final String BUTTON_NAME_DISCARD = "Discard"; |
| private final String POPUP_MENU_ADD_LOCALE = "";//Bundle.getStringTrimmed("org.openide.actions.Bundle", "NewArg")+Bundle.getStringTrimmed("org.netbeans.modules.properties.Bundle", "LAB_NewLocaleAction"); // String : Add Locale... |
| private final String POPUP_MENU_CUSTOMIZE = "";//Bundle.getStringTrimmed("org.openide.actions.Bundle", "Customize"); // String : Customize |
| private final String POPUP_MENU_ADD_PROPERTY = "";//Bundle.getStringTrimmed("org.openide.actions.Bundle", "NewArg")+Bundle.getStringTrimmed("org.netbeans.modules.properties.Bundle", "LAB_NewPropertyAction"); // String : Add Property |
| private final String POPUP_MENU_DELETE_LOCALE = "";//Bundle.getStringTrimmed("org.openide.actions.Bundle", "Delete");; // String : Delete |
| private final String POPUP_MENU_EDIT = "";//Bundle.getStringTrimmed("org.openide.actions.Bundle", "Edit"); // String : Edit |
| private final String LABEL_KEY = "";//Bundle.getStringTrimmed("org.netbeans.modules.properties.Bundle", "LBL_KeyLabel"); // String : Key |
| private final String LABLE_VALUE = "";//Bundle.getStringTrimmed("org.netbeans.modules.properties.Bundle", "LBL_ValueLabel"); // String : Value |
| private final String RESOURCE_BUNDLE_COMMENT = " Sample ResourceBundle properties file\n\n"; |
| private final String EXCEPTION_TEXT = "Text typing"; |
| private final String WIZARD_TREE_STRING = "";//Bundle.getStringTrimmed("org.netbeans.modules.text.Bundle", "Templates/Other")+"|"+Bundle.getStringTrimmed("org.netbeans.modules.properties.Bundle", "Templates/Other/properties.properties"); // String : "Other|Properties File"; |
| public EditorOperator eo; |
| public static String BUTTON_NEW_PROPERTY = org.netbeans.jellytools.Bundle.getString("org.netbeans.modules.properties.Bundle", "CTL_NewPropertyTitle"); |
| ; |
| |
| /** This constructor only creates operator's object and then does nothing. */ |
| public PropertiesEditorTestCase(String testMethodName) { |
| super(testMethodName); |
| } |
| |
| /** This method open project. |
| * 1) It is checked if the project is open |
| * before the project is opened. |
| * 2) open project |
| * 3) check if project is open |
| * @param projectName is name of the project stored in .../editor/test/qa-functional/data/ directory. |
| */ |
| protected void openProject(String projectName) { |
| this.projectName = projectName; |
| File projectPath = new File(this.getDataDir() + "/projects/", projectName); |
| log("data dir = " + this.getDataDir().toString()); |
| log("project path = " + projectPath.toString()); |
| |
| /* 1. check if project is open */ |
| ProjectsTabOperator pto = ProjectsTabOperator.invoke(); |
| log("treecount before = " + pto.tree().getChildCount(pto.tree().getRoot())); |
| int childCount = pto.tree().getChildCount(pto.tree().getRoot()); |
| for (int i = 0; i < childCount; i++) { |
| String str = pto.tree().getChild(pto.tree().getRoot(), i).toString(); |
| log("Found existed project in ProjectView: " + str); |
| if (str.equals(projectName)) { |
| log("Project " + projectName + " is open, but shoud not be!"); |
| return; |
| } |
| } |
| try { |
| /* 2. open project */ |
| openDataProjects("projects/" + projectName); |
| } catch (IOException ex) { |
| fail("Project is not open, probably does not exist"); |
| } |
| log("treecount after = " + pto.tree().getChildCount(pto.tree().getRoot())); |
| |
| /* 3. check the project name */ |
| ProjectsTabOperator.invoke(); |
| childCount = pto.tree().getChildCount(pto.tree().getRoot()); |
| for (int i = 0; i < childCount; i++) { |
| String str = pto.tree().getChild(pto.tree().getRoot(), i).toString(); |
| if (str.equals(projectName)) { |
| log("Project " + projectName + " is open. (Ok)"); |
| return; |
| } |
| } |
| log("Project is not open, but should be!"); |
| fail("Project is not open"); |
| } |
| |
| protected void openDefaultProject() { |
| openProject(DEFAULT_PROJECT_NAME); |
| } |
| |
| protected Node getDefaultPackageNode() { |
| ProjectsTabOperator pto = ProjectsTabOperator.invoke(); |
| ProjectRootNode prn = pto.getProjectRootNode(projectName); |
| prn.select(); |
| Node node = new Node(prn, defaultPackage); |
| return node; |
| } |
| |
| protected PropertiesNode getNode(String projectName, String pathToBundle) { |
| ProjectsTabOperator pto = ProjectsTabOperator.invoke(); |
| ProjectRootNode prn = pto.getProjectRootNode(projectName); |
| PropertiesNode node = new PropertiesNode(prn, pathToBundle); |
| return node; |
| } |
| |
| protected PropertiesNode getNodeFilesTab(String projectName, String pathToBundle) { |
| FilesTabOperator fto = FilesTabOperator.invoke(); |
| Node projectNode = fto.getProjectNode(projectName); |
| PropertiesNode node = new PropertiesNode(projectNode, pathToBundle); |
| return node; |
| } |
| |
| /** This method opens file in editor. There is used popup menu in explorer.<br> |
| * Usage :<br> |
| * FilesystemNode filesystemNode = new FilesystemNode(<br> |
| * System.getProperty("netbeans.user") + <br> |
| * File.separator + <br> |
| * "sampledir");<br> |
| * <br> |
| * openExistedPropertiesFile(filesystemNode.getPath()+"|"+"myFile");<br> |
| * @param filePath of existed file in explorer ( without extension ) |
| */ |
| // public void openExistedPropertiesFile(String filePath) { |
| public void openExistedPropertiesFile(String treeSubPackagePathToFile, String fileName) { |
| this.treeSubPackagePathToFile = "Source Packages" + this.TREE_SEPARATOR + treeSubPackagePathToFile; |
| ProjectsTabOperator pto = new ProjectsTabOperator(); |
| pto.invoke(); |
| ProjectRootNode prn = pto.getProjectRootNode(projectName); |
| prn.select(); |
| Node node = new Node(prn, treeSubPackagePathToFile + TREE_SEPARATOR + fileName); |
| node.performPopupAction("Open"); |
| } |
| |
| /** This method opens file in editor. There is used popup menu in explorer for this action. |
| * @param filesystemNode of mounted directory ( without extension ) |
| * @param filePath of file in explorer tree |
| */ |
| public void openExistedPropetiesFileInClassicEditor(Node filesystemNode, String filePath) { |
| new EditAction().performPopup(new Node(filesystemNode, filePath)); |
| } |
| |
| /** It creates new property file. There is used popup menu from explorer. |
| * @param filesystemNode node of tree, where file will be created |
| * @param filePath of file without extension |
| */ |
| public void createNewPropertiesFile(Node node) { |
| NewFileWizardOperator newWizard = NewFileWizardOperator.invoke(node, this.WIZARD_CATEGORY, this.WIZARD_FILE_TYPE); |
| newWizard.finish(); |
| } |
| |
| public void createNewPropertiesFile(Node node, String packageName, String fileName) { |
| NewFileWizardOperator newWizard = NewFileWizardOperator.invoke(node, this.WIZARD_CATEGORY, this.WIZARD_FILE_TYPE); |
| NewJavaFileNameLocationStepOperator nfnlso = new NewJavaFileNameLocationStepOperator(); |
| nfnlso.setObjectName(fileName); |
| JTextFieldOperator jtfo = new JTextFieldOperator(nfnlso, 2); |
| jtfo.setText(packageName); |
| |
| newWizard.finish(); |
| } |
| |
| /** It clicks to the 'New property' button in properties editor ( table view ) */ |
| public void propertiesEditorClickNewPropertyButton(String fileName) { |
| JButtonOperator jButtonOperator = new JButtonOperator(new TopComponentOperator(fileName), this.BUTTON_NAME_NEW_PROPERTY); |
| jButtonOperator.pushNoBlock(); |
| new EventTool().waitNoEvent(250); |
| |
| } |
| |
| /** This pushs 'Remove property' button in properties editor form. */ |
| public void propertiesEditorClickRemovePropertyButton(String fileName) { |
| JButtonOperator jButtonOperator = new JButtonOperator(new TopComponentOperator(fileName), this.BUTTON_NAME_REMOVE_PROPERTY); |
| jButtonOperator.pushNoBlock(); |
| } |
| |
| /** This opens popup menu over tab in properties file and chooses close item from it. */ |
| public void propertiesEditorCloseFromTabPane() throws Exception { |
| throw new Exception("Do not use this method. Not defined in Operator yet"); |
| } |
| |
| /** This deletes properties file from disk. There is used popup menu in Explorer. |
| * @param filesystemNode of tree, where file is stored ( without file name ) |
| * @param filePath of file to delete |
| */ |
| public void deletePropertiesFileFromExplorer(Node filesystemNode, String filePath) { |
| PropertiesNode propNode = new PropertiesNode(filesystemNode, filePath); |
| propNode.delete(); |
| new NbDialogOperator(this.TITLE_DIALOG_CONFIRM_OBJECT_DELETION).yes(); |
| |
| } |
| |
| /** This closes properties file. There is used popup menu in Explorer. |
| * @param filesystemNode of tree, where file is stored ( without file name ) |
| * @param filePath of file to delete |
| */ |
| public boolean closePropertiesFile(String fileName) { |
| |
| try { |
| EditorOperator eo = new EditorOperator(fileName); |
| eo.close(false); |
| return true; |
| } catch (TimeoutExpiredException ex) { |
| return false; |
| } |
| } |
| //This closes properties file without back controll |
| public void closePropertiesFileWithoutCheck(String fileName) { |
| EditorOperator eo = new EditorOperator(fileName); |
| eo.close(false); |
| } |
| |
| /** This close all files in editor. This method should be called in teardown method |
| */ |
| public void closeFiles() { |
| eo.closeDiscardAll(); |
| } |
| |
| /** This fill three textafields in 'New property' dialog. |
| * @param key which will be filled to appeared dialog 'New property' |
| * @param value of key, which will be filled to appeared dialog 'New property' |
| * @param comment of key, which will be filles to appeared dialog 'New property' |
| * @throws Exception is throws if appeared |
| */ |
| public void newPropertyDialogFill(String fileName, String key, String value, String comment) throws Exception { |
| new EventTool().waitNoEvent(250); |
| boolean finished = false; |
| do { |
| NbDialogOperator nbDialogOperator = new NbDialogOperator(this.TITLE_NEW_PROPERTY_DIALOG); |
| ContainerOperator containerOperator = new ContainerOperator(nbDialogOperator); |
| int limit = 0; |
| try { |
| |
| JTextFieldOperator jTextFieldOperator = null; |
| if (key != null) { |
| jTextFieldOperator = new JTextFieldOperator(containerOperator, 0); |
| jTextFieldOperator.typeText(key); |
| } |
| if (value != null) { |
| jTextFieldOperator = new JTextFieldOperator(containerOperator, 1); |
| jTextFieldOperator.typeText(value); |
| } |
| if (comment != null) { |
| jTextFieldOperator = new JTextFieldOperator(containerOperator, 2); |
| jTextFieldOperator.typeText(comment); |
| } |
| |
| finished = true; |
| |
| } catch (TimeoutExpiredException ex) { |
| //if ( ex.getMessage().equals(this.EXCEPTION_TEXT) == false ) |
| // throw new Exception(ex.getMessage()); |
| // if problems occurs then use this code to wake up dialog anyway |
| // close the dialog and open it anyway |
| newPropertyDialogClickCancelButton(); |
| propertiesEditorClickNewPropertyButton(fileName); |
| } |
| |
| JButtonOperator bo = new JButtonOperator(containerOperator); |
| bo.requestFocus(); |
| |
| if (limit++ >= 3) { |
| finished = true; |
| } |
| |
| } while (finished == false); |
| } |
| |
| /** This closes 'New property' dialog. There is used close button for this action in |
| * this dialog. ( dialog must be open ) |
| */ |
| public void newPropertyDialogClickCloseButton() { |
| NbDialogOperator nbDialogOperator = new NbDialogOperator(this.TITLE_NEW_PROPERTY_DIALOG); |
| //nbDialogOperator.btOK().requestFocus(); |
| //nbDialogOperator.btOK().pushNoBlock(); |
| nbDialogOperator.ok(); |
| System.out.println(">> Ok button pushed"); |
| } |
| |
| /** This closes dialog as in previous method, but there is used no block action for closing dialog. */ |
| public void newPropertyDialogClickOkButtonNoBlock() { |
| NbDialogOperator nbDialogOperator = new NbDialogOperator(this.TITLE_NEW_PROPERTY_DIALOG); |
| //nbDialogOperator.btOK().pushNoBlock(); |
| nbDialogOperator.ok(); |
| } |
| |
| /** There will be found adequte key in property sheet and then will be checked value and comment. If kye will not found then method fail. |
| * @param key which will be compared with key in properties file |
| * @param value of key which will be compared with value in properties file |
| * @param comment of key witch will be compared with comment in propertiies file |
| * @param rowOfCheckedProperty is number of compared propererty in properties file (row position >=0) |
| * @param localeCount is count of locales in properties file, new file has 1 locale (default) |
| * @param rowCount is count of rows (properties) in properties file |
| * @throws Exception if an appeared |
| */ |
| public void checkPropertiesInSheet(String fileName, String key, String value, String comment, int rowOfCheckedProperty, int localeCount, int rowCount) throws Exception { |
| |
| if (key == null) { |
| key = ""; |
| } |
| if (value == null) { |
| value = ""; |
| } |
| if (comment == null) { |
| comment = ""; |
| } |
| |
| // Checking texfields ( Comment and Key ) under table. |
| // ================================================== |
| |
| TopComponentOperator tco = new TopComponentOperator(fileName); |
| JTable jTable = JTableOperator.findJTable(tco.getContainer(ComponentSearcher.getTrueChooser("")), ComponentSearcher.getTrueChooser("")); |
| |
| if (rowOfCheckedProperty == 1) { |
| // first row is not normal bacause there is comment of file in it + comment of the property |
| comment = this.RESOURCE_BUNDLE_COMMENT.concat(comment); |
| } |
| |
| // click to key field in table |
| |
| // WA the next two rows are work around of jemmy because the action clickOnCell+waitEmpty is not |
| // WA the same as user event called from mouse, keyboard |
| new JTableOperator(jTable).clickOnCell(rowOfCheckedProperty - 1, 1); |
| new EventTool().waitNoEvent(500); |
| // END OF WA |
| |
| new JTableOperator(jTable).clickOnCell(rowOfCheckedProperty - 1, 0); |
| |
| JTextArea jTextArea = JTextAreaOperator.findJTextArea(tco.getContainer(ComponentSearcher.getTrueChooser("")), ComponentSearcher.getTrueChooser(""), 0); |
| |
| if (jTextArea == null) { |
| System.out.println("> Comment textarea is null"); |
| } else { |
| System.out.println("> Comment textarea is found."); |
| |
| if (!jTextArea.getText().equals(comment)) { |
| System.out.println("textarea == string : \"" + jTextArea.getText() + "\" == \"" + comment + "\""); |
| throw new Exception("Comment is not equal to the specified string. (comparing in textarea under the table)"); |
| } else { |
| System.out.println("> Comment is Ok in textarea under the table."); |
| } |
| } |
| |
| if (rowCount == 0) { |
| // if label == key then compare key else comapre value |
| JLabel jLabel = JLabelOperator.findJLabel(tco.getContainer(ComponentSearcher.getTrueChooser("")), ComponentSearcher.getTrueChooser(""), 1); |
| String label = jLabel.getText(); |
| System.out.println("> label = " + label); |
| if (this.LABEL_KEY.equals(label)) { |
| jTextArea = JTextAreaOperator.findJTextArea(tco.getContainer(ComponentSearcher.getTrueChooser("")), ComponentSearcher.getTrueChooser(""), 1); |
| if (jTextArea == null) { |
| System.out.println("> Key textarea is null"); |
| } else { |
| System.out.println("> Key textarea is found."); |
| if (!jTextArea.getText().equals(key)) { |
| System.out.println("textarea == string : " + jTextArea.getText() + " == " + key); |
| throw new Exception("Key is not equal to the specified string. (comparing in textarea under the table)"); |
| } else { |
| System.out.println("> Key is Ok in textarea under the table."); |
| } |
| } |
| } else if (this.LABLE_VALUE.equals(label)) { |
| jTextArea = JTextAreaOperator.findJTextArea(tco.getContainer(ComponentSearcher.getTrueChooser("")), ComponentSearcher.getTrueChooser(""), 1); |
| if (jTextArea == null) { |
| System.out.println("> Value textarea is null"); |
| } else { |
| System.out.println("> Value textarea is found."); |
| if (!jTextArea.getText().equals(value)) { |
| System.out.println("textarea == string : " + jTextArea.getText() + " == " + value); |
| throw new Exception("Value is not equal to the specified string. (comparing in textarea under the table)"); |
| } else { |
| System.out.println("> Value is Ok in textarea under the table."); |
| } |
| } |
| |
| } else { |
| throw new Exception("Label of Key or Value textarea is corrupted!"); |
| } |
| |
| |
| } else { |
| System.out.println("More rows in table (rows>0)"); |
| // comapre key and then compare value |
| System.out.println(">Click to row" + rowOfCheckedProperty); |
| // click to value field in table |
| new JTableOperator(jTable).clickOnCell(rowOfCheckedProperty - 1, 1); |
| |
| jTextArea = JTextAreaOperator.findJTextArea(tco.getContainer(ComponentSearcher.getTrueChooser("")), ComponentSearcher.getTrueChooser(""), 1); |
| if (jTextArea == null) { |
| System.out.println("> Value textarea is null"); |
| } else { |
| System.out.println("> Value textarea is found."); |
| if (!jTextArea.getText().equals(value)) { |
| System.out.println("textarea == string : " + jTextArea.getText() + " == " + value); |
| throw new Exception("Value is not equal to the specified string. (comparing in textarea under the table)"); |
| } else { |
| System.out.println("> Value is Ok in textarea under the table."); |
| } |
| } |
| // click to key fild in table |
| new JTableOperator(jTable).clickOnCell(rowOfCheckedProperty - 1, 0); |
| |
| jTextArea = JTextAreaOperator.findJTextArea(tco.getContainer(ComponentSearcher.getTrueChooser("")), ComponentSearcher.getTrueChooser(""), 1); |
| if (jTextArea == null) { |
| System.out.println("> Key textarea is null"); |
| } else { |
| System.out.println("> Key textarea is found."); |
| if (!jTextArea.getText().equals(key)) { |
| System.out.println("textarea == string : " + jTextArea.getText() + " == " + key); |
| throw new Exception("Key is not equal to the specified string. (comparing in textarea under the table)"); |
| } else { |
| System.out.println("> Key is Ok in textarea under the table."); |
| } |
| } |
| |
| } |
| |
| // Checking table |
| |
| new EventTool().waitNoEvent(250); |
| |
| // find in table if any key which matchs to the parametr |
| int index = -1; |
| |
| if (jTable != null) { |
| |
| if (jTable.getRowCount() == rowCount && rowCount == 0) { |
| System.out.println("> There is no rows in table. (OK)"); |
| return; |
| } else if (rowCount == 0) { |
| System.out.println("> Table shouldn't have any row!(There is " + jTable.getRowCount() + " rows)"); |
| } |
| |
| if (key != null) { |
| for (int ii = 0; ii < jTable.getModel().getRowCount(); ii++) { |
| // check if is the key in properties file more times |
| new EventTool().waitNoEvent(250); |
| if (index >= 0 && jTable.getModel().getValueAt(ii, 0).toString().equals(key) == true) { |
| throw new Exception("The added key is more times in properties sheet."); |
| } |
| |
| if (index == -1 && jTable.getModel().getValueAt(ii, 0).toString().toString().equals(key) == true) { |
| index = ii; |
| // check value of property if is equal to the value |
| if (jTable.getModel().getValueAt(ii, 1).toString().toString().equals(value) == false) { |
| throw new Exception("Value doesn't match. " + ii + " - (" + value + " not equals " + jTable.getCellEditor(ii, 1).getCellEditorValue().toString()); |
| } |
| // check comment |
| new JTableOperator(jTable).clickOnCell(ii, 0); |
| new EventTool().waitNoEvent(250); |
| |
| // check comment of property if is equal to the comment |
| if (new JTextAreaOperator(new ContainerOperator(tco.getContainer(ComponentSearcher.getTrueChooser(""))), 0).getText().equals(comment) == false) { |
| throw new Exception("Comment doesn't match. " + ii + " : \n>" + comment + "< not equals with : >" + new JTextAreaOperator(new ContainerOperator(tco.getContainer(ComponentSearcher.getTrueChooser(""))), 0).getText() + "<\n"); |
| } |
| |
| if (ii + 1 != rowOfCheckedProperty) { |
| throw new Exception("Property is not in the right row in property sheet."); |
| } |
| } |
| |
| } |
| } |
| |
| if (index < 0 && rowOfCheckedProperty >= 0) { |
| throw new Exception("Key not found in properties sheet"); |
| } |
| |
| if (localeCount >= 0 && localeCount != jTable.getModel().getColumnCount() - 1) { |
| int locales = jTable.getModel().getColumnCount() - 1; |
| throw new Exception("Count of locales (columns-1) doesn't match. (" + localeCount + "<>" + locales + ")"); |
| } |
| |
| if (rowCount >= 0 && rowCount != jTable.getModel().getRowCount()) { |
| throw new Exception("Count of properties (rows) doesn't match. (" + rowCount + "<>" + jTable.getModel().getRowCount() + ")"); |
| } |
| |
| } else { |
| throw new Exception("Cann't find JTable in Editor Window"); |
| } |
| } |
| |
| /** This method check pleces of keys, values and comments in properties file (in |
| * text mode) |
| * @throws Exception if an appeared |
| */ |
| public void checkPropertiesFileIntegrityInClassicEditor(String fileName) throws Exception { |
| // open properties file in classic editor and them chek spaces, comments, keys, values |
| // and their positions |
| EditorOperator eo = new EditorOperator(fileName); |
| String content = eo.getText(); |
| StringTokenizer strT = new StringTokenizer(content, "\n", true); |
| String row = ""; |
| try { |
| for (int ii = 0; ii < strT.countTokens(); ii++) { |
| // comment of file |
| if (ii == 0) { |
| row = strT.nextToken(); |
| |
| if (row.charAt(0) != '#') { |
| throw new Exception("Structure of properties file has been corrupted"); |
| } |
| // end row |
| row = strT.nextToken(); |
| |
| try { |
| // free row or end of file |
| row = strT.nextToken(); |
| } catch (NoSuchElementException ex) { |
| // no properties in file |
| return; |
| } |
| |
| } |
| |
| // comment of property |
| row = strT.nextToken(); |
| |
| // comment of property |
| if (row.charAt(0) != '#') { |
| throw new Exception("Structure of properties file has been corrupted"); |
| } |
| |
| // end row |
| row = strT.nextToken(); |
| |
| |
| // key and value of property |
| row = strT.nextToken(); |
| StringTokenizer strT2 = new StringTokenizer(row); |
| String key = strT2.nextToken("=\n"); |
| String value = strT2.nextToken("=\n"); |
| if (key == null || value == null) { |
| throw new Exception("Structure of properties file has been corrupted"); |
| } |
| } |
| } catch (NoSuchElementException ex) { |
| throw new Exception("Structure of properties file has been corrupted"); |
| } |
| |
| } |
| |
| /** It clicks on 'Help' button in 'New property' dialog. */ |
| public void newPropertyDialogClickHelpButton() { |
| NbDialogOperator nbDialogOperator = new NbDialogOperator(this.TITLE_NEW_PROPERTY_DIALOG); |
| nbDialogOperator.help(); |
| } |
| |
| /** Closes 'Help' window. */ |
| public void closeHelp() { |
| NbDialogOperator nbDialogOperator = new NbDialogOperator(this.TITLE_HELP_DIALOG); |
| nbDialogOperator.close(); |
| } |
| |
| /** Closes 'Error' dialog. This dialog appeared after property is added with existed key. (Key which |
| * exists in properties file) |
| */ |
| public void errorDialogClickOkButton() { |
| NbDialogOperator nbDialogOperator = new NbDialogOperator(this.TITLE_ERROR_DIALOG); |
| nbDialogOperator.ok(); |
| } |
| |
| /** Closes 'New property' dialog. There is used 'Cancel' button. */ |
| public void newPropertyDialogClickCancelButton() { |
| NbDialogOperator nbDialogOperator = new NbDialogOperator(this.TITLE_NEW_PROPERTY_DIALOG); |
| nbDialogOperator.cancel(); |
| } |
| |
| /** This selectes row in sheet of properties in properties editor. |
| * @param rowNumber is number of row in property sheet |
| * @throws Exception if an appeared |
| */ |
| public void selectPropertiesFileItem(String fileName, int rowNumber) throws Exception { |
| TopComponentOperator tco = new TopComponentOperator(fileName); |
| |
| JTable jTable = JTableOperator.findJTable(tco.getContainer(ComponentSearcher.getTrueChooser("")), ComponentSearcher.getTrueChooser("")); |
| new EventTool().waitNoEvent(250); |
| // find in table if any key match to the parametr |
| |
| if (jTable != null) { |
| JTableOperator jTableOperator = new JTableOperator(jTable); |
| jTableOperator.getTimeouts().setTimeout("JScrollBarOperator.WholeScrollTimeout", 240000); |
| jTableOperator.clickOnCell(rowNumber, 1); |
| return; |
| } |
| throw new Exception("Info : Cannot select item id properties table."); |
| } |
| |
| /** There will be counted rows in property sheet in properties editor. |
| * @return counts of rows in property sheet |
| * |
| * @throws Exception if an appeared |
| */ |
| public int getPropertiesFileItemsCount(String fileName) throws Exception { |
| TopComponentOperator tco = new TopComponentOperator(fileName); |
| |
| JTable jTable = JTableOperator.findJTable(tco.getContainer(ComponentSearcher.getTrueChooser("")), ComponentSearcher.getTrueChooser("")); |
| new EventTool().waitNoEvent(250); |
| // find in table if any key match to the parametr |
| |
| if (jTable != null) { |
| return jTable.getModel().getRowCount(); |
| } |
| return -1; |
| |
| } |
| |
| /** Clicks to button 'Ok' in Quiestion dialog. This dialog appeared after pushing 'Remove Property' button. */ |
| public void questionDialogClickOkButton() { |
| NbDialogOperator nbDialogOperator = new NbDialogOperator(this.TITLE_SAVE_QUESTION_DIALOG); |
| nbDialogOperator.ok(); |
| } |
| |
| public void questionDialogClickDiscardButton() { |
| QuestionDialogOperator qdo = new QuestionDialogOperator(TITLE_QUESTION_DIALOG); |
| JButtonOperator jbo = new JButtonOperator(qdo, BUTTON_NAME_DISCARD); |
| jbo.pushNoBlock(); |
| } |
| |
| /** Clicks to 'Cancel' button in 'Question' dialog. This dialog appeared after pushing 'Remove Property' button in |
| * properties editor. |
| */ |
| public void questionDialogClickCancelButton() { |
| NbDialogOperator nbDialogOperator = new NbDialogOperator(this.TITLE_SAVE_QUESTION_DIALOG); |
| nbDialogOperator.cancel(); |
| } |
| |
| /** Method createNewPropertiesFileToClassicEditor() |
| * @param filesystemNode is node of filesystem in which is file located in Explorer |
| * @param fileName is name of file |
| */ |
| public void createNewPropertiesFileAndOpenInClassicEditor(Node node, String fileName) { |
| // create new file |
| NewFileWizardOperator newWizard = NewFileWizardOperator.invoke(node, this.WIZARD_CATEGORY, this.WIZARD_FILE_TYPE); |
| new NewJavaFileNameLocationStepOperator().setName(fileName); |
| newWizard.finish(); |
| |
| new EventTool().waitNoEvent(250); |
| |
| // close Properties Editor |
| TopComponentOperator tco = new TopComponentOperator(fileName); |
| tco.close(); |
| // There is problem while writing tests becasuse we must have opened some source files. |
| //new EditorWindowOperator().close(); |
| // open classic editor from popup menu in Explorer window |
| //ExplorerOperator explorerOperator = new ExplorerOperator(); |
| //RepositoryTabOperator eplorer = new RepositoryTabOperator(); |
| ProjectsTabOperator pto = new ProjectsTabOperator(); |
| pto.invoke(); |
| ProjectRootNode prn = pto.getProjectRootNode(projectName); |
| prn.select(); |
| String packageName = node.getPath(); |
| new Node(prn, "Source Packages" + this.TREE_SEPARATOR + packageName + this.TREE_SEPARATOR + fileName).performPopupAction(this.POPUP_MENU_EDIT); |
| |
| } |
| |
| /** Open 'Add Locale..' dialog and do nothing |
| * @param filesystemNode is node of filesystem in which is file located in Explorer |
| * @param filePath is path to file in tree in Explorer |
| */ |
| public void openAddLocaleDialogFromExplorer(Node filesystemNode, String filePath) { |
| new ActionNoBlock(null, this.POPUP_MENU_ADD_LOCALE).performPopup(new Node(filesystemNode, filePath)); |
| } |
| |
| /** Fills values to 'Add Locale...' dialog. ( use null values if nothig to be filed ) |
| * @param languageCode is Language Code e.g. cs, de, en or other staff |
| * @param countryCode is Country Code e.g. CZ, DE, US or other stuff |
| * @param variant is variant of locale, this should be empty or should will have value e.g. EURO |
| * @param filesystemNode is node of tree in explorer |
| * @param fileName is name of file |
| * @throws Exception if an appeared |
| */ |
| public void addLocaleDialogFill(String languageCode, String countryCode, String variant, Node filesystemNode, String fileName) throws Exception { |
| new EventTool().waitNoEvent(250); |
| boolean finished = false; |
| do { |
| try { |
| NbDialogOperator nbDialogOperator = new NbDialogOperator(this.TITLE_ADD_LOCALE_DIALOG); |
| //ContainerOperator containerOperator = new ContainerOperator(nbDialogOperator); |
| JComboBoxOperator jComboBoxOperator; |
| jComboBoxOperator = new JComboBoxOperator(nbDialogOperator, 0); |
| if (languageCode != null) { |
| jComboBoxOperator.typeText(languageCode); |
| } else { |
| jComboBoxOperator.typeText(""); |
| } |
| jComboBoxOperator = new JComboBoxOperator(nbDialogOperator, 1); |
| if (countryCode != null) { |
| jComboBoxOperator.typeText(countryCode); |
| } else { |
| jComboBoxOperator.typeText(""); |
| } |
| jComboBoxOperator = new JComboBoxOperator(nbDialogOperator, 2); |
| if (variant != null) { |
| jComboBoxOperator.typeText(variant); |
| } else { |
| jComboBoxOperator.typeText(""); |
| } |
| finished = true; |
| System.out.println("Set languge: " + new JComboBoxOperator(nbDialogOperator, 0).getTextField().getText()); |
| System.out.println("Set country: " + new JComboBoxOperator(nbDialogOperator, 1).getTextField().getText()); |
| //nbDialogOperator.ge |
| } catch (TimeoutExpiredException ex) { |
| if (ex.getMessage().equals(this.EXCEPTION_TEXT) == false) { |
| throw new Exception(ex.getMessage()); |
| } |
| // if problems occurs then use this code to wake up dialog anyway |
| // close the dialog and open it anyway |
| addLocaleDialogClickCancelButton(); |
| openAddLocaleDialogFromExplorer(filesystemNode, fileName); |
| } |
| |
| } while (finished == false); |
| new EventTool().waitNoEvent(250); |
| |
| } |
| |
| /** Clicks to 'Help' button in 'Add Locale...' dialog. */ |
| public void addLocaleDialogClickHelpButton() { |
| NbDialogOperator nbDialogOperator = new NbDialogOperator(this.TITLE_ADD_LOCALE_DIALOG); |
| nbDialogOperator.help(); |
| } |
| |
| /** Clicks to 'Ok' button in 'Add Locale...' dialog. */ |
| public void addLocaleDialogClickOkButtonNoBlock() { |
| NbDialogOperator nbDialogOperator = new NbDialogOperator(this.TITLE_ADD_LOCALE_DIALOG); |
| //nbDialogOperator.btOK().requestFocus(); |
| //nbDialogOperator.btOK().pushNoBlock(); |
| nbDialogOperator.ok(); |
| } |
| |
| /** Clicks to 'Cancel' button in 'Add Locale...' dialog. */ |
| public void addLocaleDialogClickCancelButton() { |
| NbDialogOperator nbDialogOperator = new NbDialogOperator(this.TITLE_ADD_LOCALE_DIALOG); |
| nbDialogOperator.cancel(); |
| } |
| |
| /** Opens Customizer dialog. |
| * @param filesystemNode node of filesystem in tree in explorer |
| * @param path to the object you can customize |
| */ |
| public void openCustomizeLocalesDialogFromExplorer(Node filesystemNode, String path) { |
| new ActionNoBlock(null, this.POPUP_MENU_CUSTOMIZE).performPopup(new Node(filesystemNode, path)); |
| } |
| |
| /** Clicks to 'Add Locale...' button in customizer. */ |
| public void customizeLocalesDialogClickAddLocaleButton() { |
| NbDialogOperator nbDialogOperator = new NbDialogOperator(this.TITLE_CUSTOMIZE_LOCALES_DIALOG); |
| JButtonOperator jButtonOperator = new JButtonOperator(new ContainerOperator(nbDialogOperator), this.BUTTON_NAME_ADD_LOCALE); |
| jButtonOperator.pushNoBlock(); |
| } |
| |
| /** Clicks to 'Remove Locale' button in customizer. */ |
| public void customizeLocalesDialogClickRemoveLocaleButton() { |
| NbDialogOperator nbDialogOperator = new NbDialogOperator(this.TITLE_CUSTOMIZE_LOCALES_DIALOG); |
| JButtonOperator jButtonOperator = new JButtonOperator(new ContainerOperator(nbDialogOperator), this.BUTTON_NAME_REMOVE_LOCALE); |
| jButtonOperator.pushNoBlock(); |
| } |
| |
| /** Clicks to 'Help' button in customizer. */ |
| public void customizeLocalesDialogClickHelpButton() { |
| NbDialogOperator nbDialogOperator = new NbDialogOperator(this.TITLE_CUSTOMIZE_LOCALES_DIALOG); |
| //nbDialogOperator.btHelp().pushNoBlock(); |
| nbDialogOperator.help(); |
| } |
| |
| /** Clicks to 'Close' button in customizer. */ |
| public void customizeLocalesDialogClickCloseButton() { |
| NbDialogOperator nbDialogOperator = new NbDialogOperator(this.TITLE_CUSTOMIZE_LOCALES_DIALOG); |
| //nbDialogOperator.btClose().pushNoBlock(); |
| nbDialogOperator.close(); |
| } |
| |
| /** Selects focus adequate to locale in customizer |
| * @param row of locale you wish to select |
| */ |
| public void customizeLocalesDialogSelectLocale(int row) { |
| NbDialogOperator nbDialogOperator = new NbDialogOperator(this.TITLE_CUSTOMIZE_LOCALES_DIALOG); |
| JListOperator jListOperator = new JListOperator(new ContainerOperator(nbDialogOperator)); |
| jListOperator.selectItem(row - 1); |
| } |
| |
| /** This checks if has been selected 'Remove Locale' button. |
| * @return true if locale button has been selected |
| */ |
| public boolean customizeLocalesDialogIsEnabledRemoveLocaleButton() { |
| NbDialogOperator nbDialogOperator = new NbDialogOperator(this.TITLE_CUSTOMIZE_LOCALES_DIALOG); |
| JButtonOperator jButtonOperator = new JButtonOperator(new ContainerOperator(nbDialogOperator), this.BUTTON_NAME_REMOVE_LOCALE); |
| return jButtonOperator.isEnabled(); |
| } |
| |
| /** Opens 'Add Property' dialog from explorer. |
| * @param filesystemNode is node of tree in explorer |
| * @param path of file in tree in explorer |
| */ |
| public void openAddPropertyDialogFromExplorer(Node filesystemNode, String path) { |
| new ActionNoBlock(null, this.POPUP_MENU_ADD_PROPERTY).performPopup(new Node(filesystemNode, path)); |
| } |
| |
| public void openCustomizePropertiesDialogFromExplorer(Node fileNode, String path) { |
| new ActionNoBlock(null, this.POPUP_MENU_CUSTOMIZE).performPopup(new Node(fileNode, path)); |
| } |
| |
| public void customizePropertiesDialogClickHelpButton() { |
| NbDialogOperator nbDialogOperator = new NbDialogOperator(this.TITLE_CUSTOMIZE_PROPERTIES_DIALOG); |
| //nbDialogOperator.btHelp().pushNoBlock(); |
| nbDialogOperator.help(); |
| } |
| |
| public void customizePropertiesDialogClickCloseButton() { |
| NbDialogOperator nbDialogOperator = new NbDialogOperator(this.TITLE_CUSTOMIZE_PROPERTIES_DIALOG); |
| //nbDialogOperator.btClose().pushNoBlock(); |
| nbDialogOperator.close(); |
| } |
| |
| public void customizePropertiesDialogClickAddKeyButton() { |
| NbDialogOperator nbDialogOperator = new NbDialogOperator(this.TITLE_CUSTOMIZE_PROPERTIES_DIALOG); |
| JButtonOperator jButtonOperator = new JButtonOperator(new ContainerOperator(nbDialogOperator), this.BUTTON_NAME_ADD_KEY); |
| jButtonOperator.pushNoBlock(); |
| } |
| |
| public void customizePropertiesDialogClickRemovePropertyButton() { |
| NbDialogOperator nbDialogOperator = new NbDialogOperator(this.TITLE_CUSTOMIZE_PROPERTIES_DIALOG); |
| JButtonOperator jButtonOperator = new JButtonOperator(new ContainerOperator(nbDialogOperator), this.BUTTON_NAME_REMOVE_KEY); |
| jButtonOperator.requestFocus(); |
| jButtonOperator.pushNoBlock(); |
| } |
| |
| public boolean customizePropertiesDialogIsEnableRemovePropertyButton() { |
| NbDialogOperator nbDialogOperator = new NbDialogOperator(this.TITLE_CUSTOMIZE_PROPERTIES_DIALOG); |
| JButtonOperator jButtonOperator = new JButtonOperator(new ContainerOperator(nbDialogOperator), this.BUTTON_NAME_REMOVE_KEY); |
| return jButtonOperator.isEnabled(); |
| |
| } |
| |
| public void customizePropertiesDialogSelectProperty(int row) { |
| NbDialogOperator nbDialogOperator = new NbDialogOperator(this.TITLE_CUSTOMIZE_PROPERTIES_DIALOG); |
| JListOperator jListOperator = new JListOperator(new ContainerOperator(nbDialogOperator)); |
| jListOperator.selectItem(row - 1); |
| } |
| |
| public void deleteLocaleFromExplorer(Node fileNode, String path) { |
| new ActionNoBlock(null, this.POPUP_MENU_DELETE_LOCALE).performPopup(new Node(fileNode, path)); |
| } |
| |
| public void confirmationDeleteteLocaleDialogClickYes() { |
| NbDialogOperator nbDialogOperator = new NbDialogOperator(this.TITLE_DIALOG_CONFIRM_OBJECT_DELETION); |
| JButtonOperator jButtonOperator = new JButtonOperator(new ContainerOperator(nbDialogOperator), this.BUTTON_NAME_YES); |
| jButtonOperator.pushNoBlock(); |
| } |
| |
| public void confirmationDeleteteMoreLocalesDialogClickYes() { |
| NbDialogOperator nbDialogOperator = new NbDialogOperator(this.TITLE_DELETE_MORE_LOCALES_CONFIRMATION_DIALOG); |
| JButtonOperator jButtonOperator = new JButtonOperator(new ContainerOperator(nbDialogOperator), this.BUTTON_NAME_YES); |
| jButtonOperator.pushNoBlock(); |
| } |
| |
| public void confirmationDeleteteLocaleDialogClickNo() { |
| NbDialogOperator nbDialogOperator = new NbDialogOperator(this.TITLE_DIALOG_CONFIRM_OBJECT_DELETION); |
| JButtonOperator jButtonOperator = new JButtonOperator(new ContainerOperator(nbDialogOperator), this.BUTTON_NAME_NO); |
| jButtonOperator.pushNoBlock(); |
| } |
| |
| public int checkEditorTabCount() { |
| return -1; |
| } |
| |
| public void deleteMoreLocalesInExplorer(String[] Languages, String[] Countres, String[] Varians, Node fileNode, String path_to_group) { |
| |
| Node[] nodes = new Node[Languages.length]; |
| for (int ii = 0; ii < Languages.length; ii++) { |
| String path = path_to_group.concat("|").concat(Languages[ii]).concat("_").concat(Countres[ii]); |
| System.out.println(">> path = " + path); |
| nodes[ii] = new Node(fileNode, path); |
| } |
| new DeleteAction().performPopup(nodes); |
| |
| } |
| |
| public void explorerSelectPath(String treePath, Node filesystemNode) { |
| Node node = new Node(filesystemNode, treePath); |
| node.select(); |
| } |
| |
| public void propertiesWindowChangeProperty(String objectName, String propertyName, String newValue) { |
| PropertySheetOperator.invoke(); |
| PropertySheetOperator pso = new PropertySheetOperator(this.TITLE_PROPERTIES_WINDOW_TABLE.concat(objectName)); |
| //PropertySheetTabOperator psto = new PropertySheetTabOperator(pso, this.TITLE_PROPERTIES_WINDOW_TAB); |
| StringProperty pr = new StringProperty(pso, propertyName); |
| pr.setValue(newValue); |
| new EventTool().waitNoEvent(250); |
| /* StringCustomEditorOperator stringCustomizerEditorOperator = pr.setinvokeCustomizer(); |
| stringCustomizerEditorOperator.setStringValue(newValue); |
| new EventTool().waitNoEvent(250); |
| stringCustomizerEditorOperator.btOK().requestFocus(); |
| new EventTool().waitNoEvent(250); |
| stringCustomizerEditorOperator.btOK().pushNoBlock(); |
| new EventTool().waitNoEvent(250);*/ |
| } |
| |
| public void checkLocalesInExplorer(java.lang.String[] locales, Node filesystemNode, java.lang.String fileName) throws Exception { |
| new EventTool().waitNoEvent(300); |
| //org.openide.filesystems.FileSystem fileSytem = org.openide.filesystems.Repository.getDefault().findFileSystem(filesystemNode.getPath()); |
| ProjectsTabOperator pto = new ProjectsTabOperator(); |
| pto.invoke(); |
| ProjectRootNode prn = pto.getProjectRootNode(projectName); |
| prn.select(); |
| Node node = new Node(prn, "Source Packages" + this.TREE_SEPARATOR + fileName); |
| String[] strs = node.getChildren(); |
| if (strs.length != locales.length) { |
| throw new Exception("> There is bad count of locales in Explorer window. (" + strs.length + "<>" + locales.length + ")"); |
| } |
| for (int ii = 0; ii < locales.length; ii++) { |
| if (strs[ii].compareTo(locales[ii]) != 0) { |
| throw new Exception("> There is bad locale name in Explorer window. (" + strs[ii] + "<>" + locales[ii] + ")"); |
| } |
| } |
| |
| } |
| |
| public boolean existsFileInExplorer(String packageName, String fileName) { |
| try { |
| log("Testing name of file in Explorer : \"" + fileName + "\""); |
| ProjectsTabOperator pto = ProjectsTabOperator.invoke(); |
| //ProjectRootNode prn = pto.getProjectRootNode(projectName); |
| //prn.select(); |
| //Node node = new Node(prn,treeSubPackagePathToFile+TREE_SEPARATOR+fileName); |
| SourcePackagesNode sourcePackagesNode = new SourcePackagesNode(DEFAULT_PROJECT_NAME); |
| log("source node:" + sourcePackagesNode.getPath()); |
| Node packageNode = new Node(sourcePackagesNode, packageName); |
| log("package node:" + packageNode.getPath()); |
| Node fileNode = new Node(packageNode, fileName); |
| |
| log("Log: Found node " + fileNode.getText()); |
| return true; |
| } catch (TimeoutExpiredException ex) { |
| return false; |
| } |
| } |
| |
| public boolean existsFileInFilesTab(String fileName) { |
| try { |
| log("Testing name of file in Files Explorer : \"" + fileName + "\""); |
| FilesTabOperator fto = FilesTabOperator.invoke(); |
| Node projectNode = fto.getProjectNode(DEFAULT_PROJECT_NAME); |
| Node propertyNode = new Node(projectNode, fileName); |
| return true; |
| } catch (TimeoutExpiredException ex) { |
| return false; |
| } |
| } |
| |
| public void requestFocusEditorPane(String nameOfTab) { |
| TopComponentOperator tco = new TopComponentOperator(nameOfTab); |
| tco.requestFocus(); |
| /*EditorWindowOperator ewo = new EditorWindowOperator(); |
| EditorOperator eo = ewo.getEditor(nameOfTab); |
| eo.requestFocus();*/ |
| } |
| |
| public void tableViewClickTo(String fileName, int row, int column) { |
| TopComponentOperator tco = new TopComponentOperator(fileName); |
| JTable jTable = JTableOperator.findJTable(tco.getContainer(ComponentSearcher.getTrueChooser("")), ComponentSearcher.getTrueChooser("")); |
| new JTableOperator(jTable).clickOnCell(row, column); |
| |
| } |
| |
| /** Check if file exists in Editor. This method compare the title name of |
| * tab in editor window. |
| */ |
| public boolean existsFileInEditor(String fileName) { |
| try { |
| log("Testing name of file in tab of Editor window : \"" + fileName + "\""); |
| eo = new EditorOperator(fileName); |
| eo.close(); |
| return true; |
| } catch (TimeoutExpiredException ex) { |
| return false; |
| } |
| |
| } |
| |
| public boolean existsFileInAdvanceEditor(String fileName) { |
| try { |
| log("Testing name of file in tab of Editor window : \"" + fileName + "\""); |
| TopComponentOperator tcp = new TopComponentOperator(fileName); |
| tcp.closeWindow(); |
| return true; |
| } catch (TimeoutExpiredException ex) { |
| return false; |
| } |
| |
| } |
| //Fill key, value and comments in dialog New Property |
| public void fillNewKeyValue(String key, String value, String comments) { |
| NbDialogOperator nbdo = new NbDialogOperator(BUTTON_NEW_PROPERTY); |
| KEY = new JTextFieldOperator(nbdo, 0); |
| KEY.typeText(key); |
| |
| VALUE = new JTextFieldOperator(nbdo, 1); |
| VALUE.typeText(value); |
| |
| COMMENTS = new JTextFieldOperator(nbdo, 2); |
| COMMENTS.typeText(comments); |
| |
| new EventTool().waitNoEvent(1000); |
| nbdo.ok(); |
| } |
| |
| public boolean checkKeysAndValues(String bundle, String key, String value, String comments) { |
| StringTokenizer tokenizer = new StringTokenizer("#" + comments + "\n" + key + "=" + value, "\n"); |
| boolean result = true; |
| int pos = -1; |
| |
| eo = new EditorOperator(bundle); |
| String editortext = eo.getText(); |
| while (tokenizer.hasMoreTokens()) { |
| String token = tokenizer.nextToken(); |
| pos = editortext.indexOf(token, pos); |
| if (pos == -1) { |
| result = false; |
| break; |
| } |
| pos += token.length(); |
| } |
| |
| System.out.println(result); |
| return result; |
| } |
| } |