|
What this is
Other links
The source code
/*
* Sun Public License Notice
*
* The contents of this file are subject to the Sun Public License
* Version 1.0 (the "License"). You may not use this file except in
* compliance with the License. A copy of the License is available at
* http://www.sun.com/
*
* The Original Code is NetBeans. The Initial Developer of the Original
* Code is Sun Microsystems, Inc. Portions Copyright 1997-2002 Sun
* Microsystems, Inc. All Rights Reserved.
*/
package complete.common;
import java.io.*;
import junit.framework.*;
import org.netbeans.junit.*;
import org.netbeans.jemmy.TestOut;
import org.netbeans.jemmy.operators.JButtonOperator;
import org.netbeans.jemmy.util.PNGEncoder;
import org.openide.util.Utilities;
import org.netbeans.jellytools.*;
import org.netbeans.jellytools.nodes.Node;
import org.netbeans.jellytools.actions.*;
import org.netbeans.jellytools.modules.vcscore.*;
import org.netbeans.jellytools.modules.vcsgeneric.wizard.*;
import org.netbeans.jellytools.properties.*;
import org.netbeans.test.oo.gui.jelly.SearchResults;
import org.netbeans.test.oo.gui.jelly.vcscore.SearchVCSFilesystem;
/** XTest / JUnit test class performing availability check of all basic features
* of Generic VCS module.
* @author Jiri Kovalsky
* @version 1.0
*/
public class Availability extends JellyTestCase {
public static String VERSIONING_MENU = "Versioning";
public static String MOUNT_MENU = VERSIONING_MENU + "|Mount Version Control|Generic VCS";
public static String FIND_SERVICE = "Find...";
public static String UNMOUNT_MENU = "File|Unmount Filesystem";
/** Constructor required by JUnit.
* @param testName Method name to be used as testcase.
*/
public Availability(String testName) {
super(testName);
}
/** Method used for explicit test suite definition. This suite contains following test cases:
* testUnmount, testPopupMenu, testRuntimeTab and testFindService.
* @return Availability test suite.
*/
public static junit.framework.Test suite() {
TestSuite suite = new NbTestSuite();
suite.addTest(new Availability("testVersioningMenu"));
suite.addTest(new Availability("testUnmount"));
suite.addTest(new Availability("testPopupMenu"));
suite.addTest(new Availability("testFindService"));
suite.addTest(new Availability("testRuntimeTab"));
suite.addTest(new Availability("testToolbar"));
return suite;
}
/** Use for internal test execution inside IDE.
* @param args Command line arguments.
*/
public static void main(java.lang.String[] args) {
junit.textui.TestRunner.run(suite());
}
/** Method called before each testcase. Sets default timeouts, redirects system
* output and maps main components.
*/
protected void setUp() {
org.netbeans.jemmy.JemmyProperties.setCurrentOutput(org.netbeans.jemmy.TestOut.getNullOutput());
}
/** Method will create a file and capture the screen.
*/
private void captureScreen(Exception exc) throws Exception {
File dumpFile, excFile;
try {
dumpFile = new File(getWorkDirPath() + "/dump.png");
excFile = new File(getWorkDirPath() + "/exception.txt");
dumpFile.getParentFile().mkdirs();
dumpFile.createNewFile();
PrintWriter writer = new PrintWriter(new FileWriter(excFile));
exc.printStackTrace(writer);
writer.flush();
writer.close();
} catch(IOException e) { throw new Exception("Error: Can't create dump file."); }
PNGEncoder.captureScreen(dumpFile.getAbsolutePath());
}
/** Checks that "Versioning" main menu contains item for mounting Generic VCS filesystem.
* @throws Exception any unexpected exception thrown during test.
*/
public void testVersioningMenu() throws Exception {
try {
System.out.print(".. Testing versioning menu ..");
new ActionNoBlock(MOUNT_MENU, null).perform();
VCSWizardProfile wizard = new VCSWizardProfile();
wizard.cancel();
System.out.println(". done !");
} catch (Exception e) {
captureScreen(e);
long oldTimeout = org.netbeans.jemmy.JemmyProperties.getCurrentTimeout("DialogWaiter.WaitDialogTimeout");
org.netbeans.jemmy.JemmyProperties.setCurrentTimeout("DialogWaiter.WaitDialogTimeout", 2000);
try { new VCSWizardProfile().cancel(); } catch (org.netbeans.jemmy.TimeoutExpiredException te) {}
org.netbeans.jemmy.JemmyProperties.setCurrentTimeout("DialogWaiter.WaitDialogTimeout", oldTimeout);
throw e;
}
}
/** Unmounts the filesystem mounted in testVersioningMenu test case.
* throws Exception Any unexpected exception thrown during test.
*/
public void testUnmount() throws Exception {
try {
System.out.print(".. Testing unmount action ..");
new File(getWorkDirPath()).mkdirs();
new ActionNoBlock(MOUNT_MENU, null).perform();
VCSWizardProfile wizard = new VCSWizardProfile();
wizard.setProfile(Utilities.isUnix() ? VCSWizardProfile.EMPTY_UNIX : VCSWizardProfile.EMPTY_WIN);
wizard.setWorkingDirectory(getWorkDirPath());
wizard.finish();
Thread.sleep(2000);
String filesystem = "Empty " + getWorkDirPath();
Node filesystemNode = new Node(new ExplorerOperator().repositoryTab().getRootNode(), filesystem);
new UnmountFSAction().perform(filesystemNode);
Thread.currentThread().sleep(5000);
assertTrue("Error: Unable to unmount filesystem.", !filesystemNode.isPresent());
System.out.println(". done !");
} catch (Exception e) {
captureScreen(e);
long oldTimeout = org.netbeans.jemmy.JemmyProperties.getCurrentTimeout("DialogWaiter.WaitDialogTimeout");
org.netbeans.jemmy.JemmyProperties.setCurrentTimeout("DialogWaiter.WaitDialogTimeout", 2000);
try { new VCSWizardProfile().cancel(); } catch (org.netbeans.jemmy.TimeoutExpiredException te) {}
try { new UnmountFSAction().perform(new Node(new ExplorerOperator().repositoryTab().getRootNode(), "Empty " + getWorkDirPath())); }
catch (Exception te) {}
org.netbeans.jemmy.JemmyProperties.setCurrentTimeout("DialogWaiter.WaitDialogTimeout", oldTimeout);
throw e;
}
}
/** Checks that popup menu contains all of item appropriate for mounted Generic VCS filesystem.
* @throws Exception any unexpected exception thrown during test.
*/
public void testPopupMenu() throws Exception {
try {
System.out.print(".. Testing popup menu ..");
new File(getWorkDirPath()).mkdirs();
new ActionNoBlock(MOUNT_MENU, null).perform();
VCSWizardProfile wizard = new VCSWizardProfile();
wizard.setProfile(Utilities.isUnix() ? VCSWizardProfile.EMPTY_UNIX : VCSWizardProfile.EMPTY_WIN);
wizard.setWorkingDirectory(getWorkDirPath());
wizard.finish();
Thread.sleep(2000);
String filesystem = "Empty " + getWorkDirPath();
Node filesystemNode = new Node(new ExplorerOperator().repositoryTab().getRootNode(), filesystem);
new Action(null, "Empty|Refresh Recursively").perform(filesystemNode);
new NbDialogOperator("Retrieving...").closeByButton();
String[] commands = new String[] {"Refresh", "Check In", "Check Out", "Lock", "Unlock", "Add", "Remove"};
for (int i=0; i |
| ... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.