|
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-2003 Sun * Microsystems, Inc. All Rights Reserved. */ package complete.cvs_profile; import complete.GenericStub.GenericNode; import java.io.*; import java.lang.reflect.Field; import junit.framework.Test; import junit.framework.TestSuite; import junit.textui.TestRunner; import org.netbeans.jellytools.actions.DeleteAction; import org.netbeans.jellytools.modules.vcscore.VCSCommandsInOutputOperator; import org.netbeans.jellytools.modules.vcscore.VCSCommandsOutputOperator; import org.netbeans.jellytools.modules.vcsgeneric.actions.CVSAddAction; import org.netbeans.jellytools.modules.vcsgeneric.actions.CVSCommitAction; import org.netbeans.jellytools.modules.vcsgeneric.actions.CVSRemoveAction; import org.netbeans.jellytools.nodes.FilesystemNode; import org.netbeans.jellytools.nodes.Node; import org.netbeans.jemmy.operators.JCheckBoxOperator; import org.netbeans.junit.AssertionFailedErrorException; import org.netbeans.junit.NbTestSuite; import org.netbeans.modules.vcscore.commands.VcsCommandExecutor; import org.netbeans.modules.vcscore.runtime.RuntimeCommand; import org.netbeans.modules.vcscore.runtime.VcsRuntimeCommand; import org.netbeans.test.oo.gui.jelly.vcsgeneric.CVSRemoveFileAdvDialog; import org.netbeans.test.oo.gui.jelly.vcsgeneric.CVSRemoveFolderAdvDialog; import org.netbeans.jellytools.modules.vcsgeneric.cvs_profile.*; import util.History; public class JellyAddFeatures extends CVSStub { public JellyAddFeatures(String testName) { super(testName); } public static Test suite() { TestSuite suite = new NbTestSuite(); suite.addTest(new JellyAddFeatures("configure")); suite.addTest(new JellyAddFeatures("testAddCommit")); // suite.addTest(new JellyAddFeatures("testForceCommit")); // fails due to bug #27997 suite.addTest(new JellyAddFeatures("testRemoveCommit")); suite.addTest(new JellyAddFeatures("testRunProgram")); suite.addTest(new JellyAddFeatures("testToStandardOutput")); // suite.addTest(new JellyAddFeatures("testQuiet")); // fails due to bug #28517 suite.addTest(new JellyAddFeatures("testRemovePreview")); suite.addTest(new JellyAddFeatures("testRemoveDebug")); suite.addTest(new JellyAddFeatures("testNoHistory")); suite.addTest(new JellyAddFeatures("testReadOnly")); suite.addTest(new JellyAddFeatures("testCompressionLevel")); suite.addTest(new JellyAddFeatures("testUnmount")); return suite; } public static void main(java.lang.String[] args) { TestRunner.run(suite()); } static String tInitDir = "initdir"; GenericNode InitDir, SubInitDir, Text1, Text2, Text3, Text4, Text5, Text6; static boolean text1InDefaultGroup = false; protected void prepareServer (String dir) { new File(dir + "/" + tInitDir).mkdirs(); } public void createStructure () { InitDir = new GenericNode (root, tInitDir); SubInitDir = new GenericNode (InitDir, "subdir"); Text1 = new GenericNode (InitDir, "text1"); Text2 = new GenericNode (InitDir, "text2"); Text3 = new GenericNode (SubInitDir, "text3"); Text4 = new GenericNode (InitDir, "text4"); Text5 = new GenericNode (InitDir, "text5"); Text6 = new GenericNode (InitDir, "text6"); } public void configure () { super.configure(); } public void testAddCommit () { Text1.save (""); Text2.save (""); SubInitDir.mkdirs (); Text3.save (""); Text6.save (""); root.cvsNode ().cVSRefreshRecursively(); root.waitHistory ("Refresh Recursively"); Text1.cvsNode (); Text2.cvsNode (); Text6.cvsNode (); new CVSAddAction ().perform (new Node[] { Text1.cvsNode (), Text2.cvsNode (), Text6.cvsNode (), }); CVSAddFileAdvDialog add = new CVSAddFileAdvDialog(); add.setFileDescription("Initial state"); add.checkProceedWithCommitIfAddSucceeds(true); add.oK(); add.waitClosed(); CVSCommitFileAdvDialog com = new CVSCommitFileAdvDialog(); com.txtEnterReason().setCaretPosition(0); com.txtEnterReason().typeText("Initial commit of text1 and text2"); com.oK(); com.waitClosed(); waitCommand("Add", new GenericNode[] { Text1, Text2, Text6 }); waitCommand("Commit", new GenericNode[] { Text1, Text2, Text6 }); Text1.waitStatus ("Up-to-date; 1.1"); Text2.waitStatus ("Up-to-date; 1.1"); Text6.waitStatus ("Up-to-date; 1.1"); SubInitDir.cvsNode ().cVSAdd(); CVSAddFolderAdvDialog addfo = new CVSAddFolderAdvDialog(); addfo.addAllLocalFilesInFolderContents(); addfo.setFileDescription("Initial state"); addfo.checkAddTheFolderContentsRecursively(true); addfo.checkProceedWithCommitIfAddSucceeds(true); addfo.oK(); addfo.waitClosed(); CVSCommitFolderAdvDialog comfo = new CVSCommitFolderAdvDialog(); comfo.txtEnterReason().setCaretPosition(0); comfo.txtEnterReason().typeText("Initial commit"); comfo.oK(); comfo.waitClosed(); SubInitDir.waitHistory ("Add"); SubInitDir.waitHistory ("Commit"); SubInitDir.waitStatus (null); Text3.waitStatus("Up-to-date; 1.1"); } public void testForceCommit () { Text1.waitStatus("Up-to-date; 1.1"); Text2.waitStatus("Up-to-date; 1.1"); Text3.waitStatus("Up-to-date; 1.1"); new CVSCommitAction ().perform (new Node[] { Text1.cvsNode (), Text2.cvsNode (), Text3.cvsNode (), }); CVSCommitFileAdvDialog com; com = new CVSCommitFileAdvDialog(); new JCheckBoxOperator (com, "Prompt for Input on Each Successive File").setSelected(true); com.checkForceToCommit(true); com.txtEnterReason().setCaretPosition(0); com.txtEnterReason().typeText("Force commit of text1"); com.oK(); com.waitClosed(); com = new CVSCommitFileAdvDialog(); new JCheckBoxOperator (com, "Prompt for Input on Each Successive File").setSelected(false); com.checkForceToCommit(true); com.txtEnterReason().setCaretPosition(0); com.txtEnterReason().typeText("Force commit of text2 and test3"); com.oK(); com.waitClosed(); waitCommand("Remove", new GenericNode [] { Text1, Text2, Text3 }); Text1.waitStatus("Up-to-date; 1.2"); Text2.waitStatus("Up-to-date; 1.2"); Text3.waitStatus("Up-to-date; 1.2"); } public void testRemoveCommit () { new CVSRemoveAction ().perform (new Node[] { Text1.cvsNode (), Text2.cvsNode (), }); CVSRemoveDialog rd = new CVSRemoveDialog (); rd.no(); rd.waitClosed(); Text1.waitStatus("Up-to-date", false); Text2.waitStatus("Up-to-date", false); new CVSRemoveAction ().perform (new Node[] { Text1.cvsNode (), Text2.cvsNode (), }); rd = new CVSRemoveDialog (); rd.yes(); rd.waitClosed(); CVSRemoveFileAdvDialog rem = new CVSRemoveFileAdvDialog (); rem.checkProceedWithCommitIfRemoveSucceeds(true); rem.oK(); rem.waitClosed(); CVSCommitFileAdvDialog com = new CVSCommitFileAdvDialog(); com.txtEnterReason().setCaretPosition(0); com.txtEnterReason().typeText("Initial commit"); com.oK(); com.waitClosed(); waitCommand ("Remove", new GenericNode [] { Text1, Text2 } ); waitCommand ("Commit", new GenericNode [] { Text1, Text2 } ); InitDir.cvsNode ().waitChildNotPresent(Text1.name ()); InitDir.cvsNode ().waitChildNotPresent(Text2.name ()); SubInitDir.cvsNode ().cVSRemove(); rd = new CVSRemoveDialog (); rd.no(); rd.waitClosed(); SubInitDir.waitStatus(null); Text3.waitStatus("Up-to-date", false); SubInitDir.cvsNode ().cVSRemove(); rd = new CVSRemoveDialog (); rd.yes(); rd.waitClosed(); CVSRemoveFolderAdvDialog rem2 = new CVSRemoveFolderAdvDialog (); rem2.checkProcessDirectoriesRecursively(true); rem2.checkProceedWithCommitIfRemoveSucceeds(true); rem2.oK(); rem2.waitClosed(); CVSCommitFolderAdvDialog com2 = new CVSCommitFolderAdvDialog(); com2.txtEnterReason().setCaretPosition(0); com2.txtEnterReason().typeText("Initial commit"); com2.oK(); com2.waitClosed(); SubInitDir.waitHistory("Remove"); SubInitDir.waitHistory("Commit"); SubInitDir.cvsNode ().waitChildNotPresent(Text3.name ()); } public void testRunProgram () { Text4.save (""); Text5.save (""); Field f; try { f = VcsRuntimeCommand.class.getDeclaredField("executor"); f.setAccessible(true); } catch (NoSuchFieldException e) { throw new AssertionFailedErrorException("NoSuchFieldException while setting test case up", e); } catch (SecurityException e) { throw new AssertionFailedErrorException("SecurityException while setting test case up", e); } root.cvsNode ().cVSRefreshRecursively(); root.waitHistory("Refresh Recursively"); Text4.cvsNode (); Text4.cvsNode ().cVSAdd (); CVSAddFileAdvDialog add = new CVSAddFileAdvDialog(); add.setFileDescription("Initial state"); add.checkProceedWithCommitIfAddSucceeds(true); add.oK(); add.waitClosed(); CVSCommitFileAdvDialog com = new CVSCommitFileAdvDialog(); com.txtEnterReason().setCaretPosition(0); com.txtEnterReason().typeText("Initial commit of text4"); com.checkRunTheModuleProgramIfAny(false); com.oK(); com.waitClosed(); Text4.waitHistory ("Add"); Text4.waitHistory ("Commit"); Text4.waitStatus("Up-to-date; 1.1"); VcsRuntimeCommand rc = (VcsRuntimeCommand) history.getWaitCommand("Commit Command", Text4.history ()); VcsCommandExecutor ce; try { ce = (VcsCommandExecutor) f.get(rc); } catch (IllegalAccessException e) { throw new AssertionFailedErrorException("IllegalAccessException while getting executor field value", e); } assertTrue ("Execution String does not contain No-Run argument", ce.getExec ().indexOf ("-n") >= 0); Text5.cvsNode ().cVSAdd (); add = new CVSAddFileAdvDialog(); add.setFileDescription("Initial state"); add.checkProceedWithCommitIfAddSucceeds(true); add.oK(); add.waitClosed(); com = new CVSCommitFileAdvDialog(); com.txtEnterReason().setCaretPosition(0); com.txtEnterReason().typeText("Initial commit of text5"); com.checkForceToCommit(true); com.checkRunTheModuleProgramIfAny(true); com.oK(); com.waitClosed(); Text5.waitHistory ("Add"); Text5.waitHistory ("Commit"); Text5.waitStatus("Up-to-date; 1.1"); rc = (VcsRuntimeCommand) history.getWaitCommand("Commit Command", Text5.history ()); try { ce = (VcsCommandExecutor) f.get(rc); } catch (IllegalAccessException e) { throw new AssertionFailedErrorException("IllegalAccessException while getting executor field value", e); } assertTrue ("Execution String contains No-Run argument", ce.getExec ().indexOf ("-n") < 0); } public void testToStandardOutput () { closeAllVCSOutputs(); Text4.waitStatus("Up-to-date; 1.1"); Text4.cvsNode ().cVSUpdate (); CVSUpdateFileAdvDialog up = new CVSUpdateFileAdvDialog (); up.checkSendUpdatesToStandardOutput(true); up.oK(); up.waitClosed (); Text4.waitHistory("Update"); VCSCommandsInOutputOperator coo = new VCSCommandsInOutputOperator ("Update - " + Text4.name ()); String str = coo.txtErrorOutput().getText (); getLog ().println ("Standard Error:"); getLog ().println (str); assertTrue ("Standard error does not contain this text: Checking out text4", str.indexOf ("Checking out text4") >= 0); assertTrue ("Standard error does not contain this text: RCS:", str.indexOf ("RCS:") >= 0); assertTrue ("Standard error does not contain this text: VERS: 1.1", str.indexOf ("VERS: 1.1") >= 0); closeAllVCSOutputs(); } public void testQuiet () { String str; Text4.waitStatus("Up-to-date; 1.1"); Text4.cvsNode ().cVSStatus (); CVSStatusFileAdvDialog stat = new CVSStatusFileAdvDialog (); stat.setQuietness(CVSStatusFileAdvDialog.ITEM_BESOMEWHATQUIET); stat.oK(); stat.waitClosed(); RuntimeCommand rc = history.getWaitCommand("Status", Text4.history ()); assertTrue("Status file command failed", History.resultCommand (rc)); closeAllVCSOutputs(); viewOutput(rc); VCSCommandsOutputOperator coo = new VCSCommandsOutputOperator ("Status"); assertTrue ("Execution string does not contain -q", coo.txtExecutionString().getText ().indexOf ("-q") >= 0); closeAllVCSOutputs(); Text4.waitStatus("Up-to-date; 1.1"); Text4.cvsNode ().cVSStatus (); stat = new CVSStatusFileAdvDialog (); stat.setQuietness(CVSStatusFileAdvDialog.ITEM_BEREALLYQUIET); stat.oK(); stat.waitClosed(); rc = history.getWaitCommand("Status", Text4.history ()); assertTrue("Status file command failed", History.resultCommand (rc)); closeAllVCSOutputs(); viewOutput(rc); coo = new VCSCommandsOutputOperator ("Status"); assertTrue ("Execution string does not contain -Q", coo.txtExecutionString().getText ().indexOf ("-Q") >= 0); closeAllVCSOutputs(); Text5.waitStatus("Up-to-date; 1.1"); new DeleteAction ().perform (Text5.cvsNode ()); assertConfirmObjectDeletionYes (null); Text5.waitStatus("Needs Update", false); // sometimes fails due to bug #28399 Text5.cvsNode ().cVSUpdate (); CVSUpdateFileAdvDialog up = new CVSUpdateFileAdvDialog (); up.setQuietness(CVSUpdateFileAdvDialog.ITEM_BEREALLYQUIET); up.oK(); up.waitClosed(); Text5.waitHistory ("Update"); closeAllVCSOutputs(); viewOutput("UPDATE_CMD", Text5); coo = new VCSCommandsOutputOperator ("UPDATE_CMD"); System.out.println(coo.tabbedPane().getTitleAt(0)); System.out.println(coo.tabbedPane().isEnabledAt(0)); assertTrue ("Standard Output contains text", !coo.tabbedPane().isEnabledAt(0)); closeAllVCSOutputs(); } public void testRemovePreview () { Text5.waitStatus("Up-to-date; 1.1"); Text5.cvsNode ().cVSRemove (); CVSRemoveDialog rem = new CVSRemoveDialog (); rem.yes (); rem.waitClosed(); CVSRemoveFileAdvDialog rr = new CVSRemoveFileAdvDialog (); rr.checkDoNotMakeChangesPreview(true); rr.oK (); rr.waitClosed (); Text5.waitHistory ("Remove"); Text5.waitStatus("Up-to-date; 1.1"); } public void testRemoveDebug () { Text5.waitStatus("Up-to-date; 1.1"); Text5.cvsNode ().cVSRemove (); CVSRemoveDialog rem = new CVSRemoveDialog (); rem.yes (); rem.waitClosed(); CVSRemoveFileAdvDialog rr = new CVSRemoveFileAdvDialog (); rr.checkDoNotMakeChangesPreview(true); rr.checkShowTraceOfCommandExecution(true); rr.oK (); rr.waitClosed (); RuntimeCommand rc = history.getWaitCommand("Remove", Text5.history ()); assertTrue("Remove file command failed", History.resultCommand(rc)); Text5.waitStatus("Up-to-date; 1.1"); closeAllVCSOutputs (); viewOutput(rc); VCSCommandsInOutputOperator coo = new VCSCommandsInOutputOperator ("Remove"); // !!! commented because there is no output with execution string //assertTrue ("Execution string does not contain -t", coo.txtExecutionString().getText ().indexOf ("-t") >= 0); /*String str = coo.txtStandardOutput().getText (); assertTrue ("Standard Output does not contain text: -> main loop with CVSROOT=", str.indexOf ("-> main loop with CVSROOT=") >= 0); assertTrue ("Standard Output does not contain text: cvs remove: file `text5' still in working directory", str.indexOf ("cvs remove: file `text5' still in working directory") >= 0); assertTrue ("Standard Output does not contain text: cvs remove: cvs remove: 1 file exists; remove it first", str.indexOf ("cvs remove: 1 file exists; remove it first") >= 0); assertTrue ("Standard Output does not contain text: -> Lock_Cleanup()", str.indexOf (" -> Lock_Cleanup()") >= 0);*/ closeAllVCSOutputs(); } public void testNoHistory () { Text5.save ("T5-1"); root.cvsNode ().cVSRefreshRecursively(); root.waitHistory ("Refresh Recursively"); Text5.waitStatus("Locally Modified; 1.1"); Text5.cvsNode ().cVSCommit (); CVSCommitFileAdvDialog com = new CVSCommitFileAdvDialog(); com.txtEnterReason().setCaretPosition(0); com.txtEnterReason().typeText("Next commit of text5"); com.checkDisableHistoryLogging(true); com.oK(); com.waitClosed(); Text5.waitHistory("Commit"); Text5.waitStatus("Up-to-date; 1.2"); BufferedReader br = null; try { br = new BufferedReader (new FileReader (root.file () + "/../server/CVSROOT/history")); for (;;) { String str = br.readLine (); if (str == null) break; assertTrue ("History contains information about commiting version 1.2 of text5 file", str.indexOf ("1.2") < 0 || str.indexOf (Text5.name ()) < 0); } } catch (FileNotFoundException e) { throw new AssertionFailedErrorException("FileNotFoundException while setting test case up", e); } catch (IOException e) { throw new AssertionFailedErrorException("IOException while setting test case up", e); } finally { if (br != null) try { br.close (); } catch (IOException e) {} } } public void testReadOnly () { new DeleteAction ().perform (Text4.cvsNode ()); assertConfirmObjectDeletionYes (null); Text4.waitStatus("Needs Update; 1.1"); Text4.cvsNode ().cVSUpdate (); CVSUpdateFolderAdvDialog up = new CVSUpdateFolderAdvDialog (); up.checkCheckOutFilesAsReadOnly(true); up.oK (); up.waitClosed (); Text4.waitHistory ("Update"); Text4.waitStatus("Up-to-date; 1.1"); assertTrue ("File is not read-only", !new File (Text4.file ()).canWrite ()); } public void testCompressionLevel () { closeAllVCSWindows(); Field f; try { f = VcsRuntimeCommand.class.getDeclaredField("executor"); f.setAccessible(true); } catch (NoSuchFieldException e) { throw new AssertionFailedErrorException("NoSuchFieldException while setting test case up", e); } catch (SecurityException e) { throw new AssertionFailedErrorException("SecurityException while setting test case up", e); } for (int a = 1; a <= 9; a ++) { Text6.waitStatus("Up-to-date; 1." + a); Text6.save ("T6-" + a); Text6.cvsNode ().cVSRefresh (); Text6.waitHistory ("Refresh"); Text6.cvsNode ().cVSCommit (); CVSCommitFileAdvDialog com = new CVSCommitFileAdvDialog (); com.setCompressionLevel("" + a); com.oK (); com.waitClosed(); Text6.waitHistory ("Commit"); Text6.waitStatus("Up-to-date; 1." + (a + 1)); VcsRuntimeCommand rc = (VcsRuntimeCommand) history.getWaitCommand("Commit Command", Text6.history ()); VcsCommandExecutor ce; try { ce = (VcsCommandExecutor) f.get(rc); } catch (IllegalAccessException e) { throw new AssertionFailedErrorException("IllegalAccessException while getting executor field value: Level: " + a, e); } assertTrue ("Execution String does not contain comp level argument: Level: " + a + " Exec: " + ce.getExec (), ce.getExec ().indexOf ("-z " + a) >= 0); } } public void testUnmount() { new FilesystemNode(repository.tree(), root.node ()).unmount(); new Node (repository.tree(), "").waitChildNotPresent(root.node ()); } } |
... 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.