blob: 6599ed027c251d31c4f82e1a8b544aa26d6baca2 [file] [log] [blame]
/*
* 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.
*/
/*
* TestProjectsUtils.java
*
* Created on July 22, 2004, 11:48 AM
*/
package projects;
import org.netbeans.jellytools.EditorOperator;
import org.netbeans.jellytools.MainWindowOperator;
import org.netbeans.jellytools.NbDialogOperator;
import org.netbeans.jellytools.ProjectsTabOperator;
import org.netbeans.jellytools.actions.ActionNoBlock;
import org.netbeans.jellytools.actions.BuildJavaProjectAction;
import org.netbeans.jellytools.nodes.ProjectRootNode;
import org.netbeans.jemmy.operators.JButtonOperator;
import org.netbeans.jemmy.operators.JFileChooserOperator;
import org.netbeans.jemmy.operators.JTabbedPaneOperator;
import org.netbeans.jemmy.operators.JTextFieldOperator;
import org.netbeans.jemmy.operators.JTreeOperator;
/**
*
*/
public class TestProjectUtils {
/**
* Verifies that project exists in Projects tab
* @param projName Name of the project
*/
public static void verifyProjectExists(String projName) {
ProjectsTabOperator pto = new ProjectsTabOperator();
JTreeOperator tree = pto.tree();
ProjectRootNode prn = pto.getProjectRootNode(projName);
prn.select();
prn.expand();
}
/**
* Verifies that main class was opened in editor
* @param mainClass Name of the main class (as shown in editor tab)
*/
public static void verifyMainClassInEditor(String mainClass) {
EditorOperator eo = new EditorOperator(mainClass);
}
/**
* Verifies that project can be built by action 'Build Project' on project root node
* @param projName Name of the project
*/
public static void verifyProjectBuilds(String projName) {
ProjectsTabOperator pto = new ProjectsTabOperator();
ProjectRootNode prn = pto.getProjectRootNode(projName);
BuildJavaProjectAction buildProjectAction = new BuildJavaProjectAction();
buildProjectAction.perform(prn);
MainWindowOperator mainWindow = MainWindowOperator.getDefault();
mainWindow.waitStatusText("Finished building");
// Output should be checked for BUILD SUCCESSFUL but it is not opened by default, code upon is used insted
//OutputTabOperator outputOper = new OutputTabOperator(projName);
//outputOper.waitText("BUILD SUCCESSFUL");
}
public static void verifyProjectRuns() {
}
public static void addLibrary(String name, String[] cpEntries, String[] srcEntries, String[] jdocEntries) {
new ActionNoBlock("Tools|Library Manager", null).performMenu();
NbDialogOperator libManOper = new NbDialogOperator("Library Manager");
JButtonOperator newLibButtonOper = new JButtonOperator(libManOper, "New Library");
newLibButtonOper.push();
NbDialogOperator newLibOper = new NbDialogOperator("New Library");
JTextFieldOperator jtfo = new JTextFieldOperator(newLibOper, 0);
jtfo.clearText();
jtfo.setText(name);
newLibOper.ok();
// here I should select the created library in the tree?
JTabbedPaneOperator jtpo = new JTabbedPaneOperator(libManOper);
jtpo.selectPage("Classpath"); // should be already selected, but just for sure
if (cpEntries != null || cpEntries.length > 0) {
JButtonOperator addJarButtonOper = new JButtonOperator(jtpo, "Add JAR/Folder");
for (int i = 0; i < cpEntries.length; i++) {
addJarButtonOper.push();
JFileChooserOperator jfco = new JFileChooserOperator();
jfco.setSelectedFile(new java.io.File(cpEntries[i]));
JButtonOperator confirmButton = new JButtonOperator(jfco, "Add JAR/Folder");
confirmButton.push();
}
} else {
// missing cp entries must be handled, e.g. by throwing Exception
}
if (srcEntries != null || srcEntries.length > 0) {
jtpo.selectPage("Sources");
JButtonOperator addJarButtonOper = new JButtonOperator(jtpo, "Add JAR/Folder");
for (int i = 0; i < srcEntries.length; i++) {
addJarButtonOper.push();
JFileChooserOperator jfco = new JFileChooserOperator();
jfco.setSelectedFile(new java.io.File(srcEntries[i]));
JButtonOperator confirmButton = new JButtonOperator(jfco, "Add JAR/Folder");
confirmButton.push();
}
}
if (jdocEntries != null || jdocEntries.length > 0) {
jtpo.selectPage("Javadoc");
JButtonOperator addZipButtonOper = new JButtonOperator(jtpo, "Add ZIP/Folder");
for (int i = 0; i < jdocEntries.length; i++) {
addZipButtonOper.push();
JFileChooserOperator jfco = new JFileChooserOperator();
jfco.setSelectedFile(new java.io.File(jdocEntries[i]));
JButtonOperator confirmButton = new JButtonOperator(jfco, "Add ZIP/Folder");
confirmButton.push();
}
}
libManOper.ok();
}
public static void addPlatform(String platName, String folderPath) {
if (folderPath == null) {
return ;
}
new ActionNoBlock("Tools|Java Platforms", null).performMenu();
NbDialogOperator platManOper = new NbDialogOperator("Java Platform Manager");
JButtonOperator addPlatformButtonOper = new JButtonOperator(platManOper, "Add Platform");
addPlatformButtonOper.push();
JFileChooserOperator jfco = new JFileChooserOperator();
jfco.setSelectedFile(new java.io.File(folderPath));
NbDialogOperator nbdo = new NbDialogOperator("Add Java Platform");
// wait for button being enabled
JButtonOperator nextButton = new JButtonOperator(nbdo, "Next");
try { nextButton.waitComponentEnabled(); }
catch (InterruptedException ie) {}
nextButton.push();
// wait for platform to be scanned
JButtonOperator finishButton = new JButtonOperator(nbdo, "Finish");
try { finishButton.waitComponentEnabled(); }
catch (InterruptedException ie) {}
// set name of the platform
JTextFieldOperator jtfo = new JTextFieldOperator(nbdo, 0);
jtfo.clearText();
jtfo.setText(platName);
finishButton.push();
platManOper.close();
}
}