FeaturesPluginsDocs & SupportCommunityPartners

CVS Profile Test Specification

Author: Peter Pis
Version: 1.1.0
Last update: 05.02.2005
Introduction: Concurrent Versions System open source tool is one of the supported version control systems in the IDE. This document describes how CVS profile for Generic VCS module should be tested in order to know whether all of its functionality work correctly.
Comment:

Table of Contents

Test suite 1: Register CVS working directory

Purpose: This suite tests whether it is possible to setup valid CVS repository using the IDE and register corresponding working directory in Versioning Manager.
Setup: Be sure to have CVS 1.11 or higher installed on your computer. Make sure that PATH environment variable is set properly so that cvs command can be executed from command-line. Also create an account for you on some suitable password CVS server. Create two new directories, one for repository and one as working directory.

#Test caseDescription
1CVS repository setup
1. Invoke Versioning | CVS | Init Local Repository... from main menu.
2. Setup Repository Path to the directory you prepared e.g. "D:\Tests\CVS\Repo1".
3. Eventually correct CVS Executable field and push OK button.
RESULT: "Command Global CVS Init... finished" text must be printed in the bottom status line.
2CVS profile available
1. Invoke Versioning | Versioning Manager from main menu.
2. Push New... button and select "CVS" as Version Control System Profile.
3. The Profile page of the wizard must get rebuilt once the CVS profile was selected.
RESULT: Verify that CVS Server Type, CVS Server Name, Port, User Name, Repository Path, CVS Executable, Remove Shell, and Password textfields appeared in the dialog. Also Perform Checkout checkbox and four radio buttons must show up: Use Built-In CVS Client, Use Command-Line CVS Client, Login to Pserver at and Set Offline Mode.
3CVS registered
1. Setup Working Directory to the directory you prepared e.g. "D:\Tests\CVS\Work1".
2. Setup Repository Path to the directory you prepared e.g. "D:\Tests\CVS\Repo1".
3. Check Perform Checkout option and push Next > button.
4. Check Module(s): option and set it to "." (dot).
5. Click Finish button.
RESULT: "D:\Tests\CVS\Work1" record must be added into table of registered VCS directories of Versioning Manager. Its type should be CVS. In addition to that "Versioning" view must be opened next to "Files" view. Besides, VCS Ouput must indicate successful checkout of CVSROOT folder proved by "Command Check Out finished." message printed into bottom status line.
Teardown: Do not remove registered CVS working directory from Versioning Manager. It will be used in next suites.



Test suite 2: Initialize repository

Purpose: The goal is to create simple project in the registered CVS working directory and upload it to CVS repository.
Setup: No setup is necessary except steps from previous test suite.

#Test caseDescription
1Start new project
1. Switch to "Projects tab and invoke File | New Project... from main menu.
2. Select "Standard" as Category, "Java Application" as Projects" and push Next > button.
3. Set Project Name: to "MyApp", Project Location: to "D:\Tests\CVS\Work1" and push Finish.
RESULT: Appropriate structure must be created in "Projects" tab together with "Main.java [Local]" data node selected.
2Add project to CVS
1. Switch to "Files" tab and invoke CVS | Add on "MyApp" project node.
2. Select Add All Local Files in Folder Contents, setup "Test file" as File Description, check both checkboxes and push OK.
3. Once "CVS Commit - MyApp" dialog shows up, type "Initial revision." into Enter Reason: text area and push OK.
4. For two more same dialogs just press Previous and OK buttons to reuse the reason message.
5. Expand whole tree structure in "Files" view and make sure that every file node has "[Up-to-date; 1.1]" status.
RESULT: There should be 4 extra tabs added to "VCS Output" containing details about executed Add and Commit commands. Also "Command Commit finished." message must be displayed in the bottom status line.
3Create more files
1. Invoke New | Java Package popup menu action on "myapp" package node.
2. Setup Package Name to "myapp.one.two" and push Finish button.
3. Expand new "one [Local]" node and invoke New | JPanel Form... on "two [Local]" node.
4. Setup Class Name to "MyPanel" and push Finish button.
RESULT: "Projects" view must become active displaying new "MyPanel.java [Local]" data node.
4Advanced addition
1. Switch to "Files" view and multiselect both new packages "one [Local]" and "two [Local]".
2. Invoke CVS | Add on the selection and just push OK when "CVS Add - one ..." dialog shows up.
3. Make sure that both packages are no longer [Local] and expand "two" package node.
4. Press CTRL key and invoke CVS | Add... popup action on "MyPanel.java [Local]" data node.
5. Check Proceed With Commit If Add Succeeds and Prompt for Input on Each Successive File checkboxes and push OK.
6. Check Proceed With Commit If Add Succeeds, select "Binary (-kb)" as Keyword Substitution and push OK again.
7. Finally press two more OK buttons in "CVS Commit - MyPanel.*" dialogs.
RESULT: There should be "MyPanel.java [Up-to-date; 1.1]" data node visible under "two" package.
5Forced commit to branch
1. Invoke CVS | Branching And Tagging | Add Tag on "Main.java [Up-to-date; 1.1]" data node.
2. Setup Tag Name as "MyBranch", check Branch Tag option and push OK button.
3. Confirm "Information" dialog about successful branch creation.
4. Press CTRL key and invoke CVS | Commit... popup action on "Main.java [Up-to-date; 1.1]" data node.
5. Check Force to Commit option, using Select... button select "MyBranch" as Commit to Branch or Revision: and push OK.
RESULT: The processed node should change to "Main.java [Up-to-date; 1.1.2.1] (MyBranch)".
Teardown:



Test suite 3: Regular development

Purpose: This suite tests the most often used commands of typical CVS user.
Setup: No setup is necessary except steps from previous test suite.

#Test caseDescription
1Modify file
1. Switch to "Files" view and double click "Main.java [Up-to-date; 1.1.2.1] (MyBranch)" node.
2. Insert brand-new line somewhere into the file.
3. Delete some other line but not directly next to the new one.
4. Modify another line but not directly next to the ones mentioned above and Save the file.
RESULT: The modified data node should change its annotation to "Main.java [Locally Modified; 1.1.2.1] (MyBranch)".
2View differences
1. Right click in the editor of "Main.java [Locally Modified; 1.1.2.1] (MyBranch)" file.
2. Select CVS | Diff Graphical action from popup menu.
RESULT: All three differences must be highlighted in a special window with both versions of the file. New line is green, removed line is red and modified one is blue. Left pane should read "Revision 1.1.2.1" and right pane "Working File".
3Commit file
1. Right click "Main.java [Locally Modified; 1.1.2.1] (MyBranch)" data node.
2. Select CVS | Commit popup action.
3. Make sure that commit template was successfully loaded containing "Tag: MyBranch" and "Main.java" strings.
4. Setup "Three lines have changed." as Change Description and push OK button.
RESULT: The file must change its annotation to "Main.java [Up-to-date; 1.1.2.2] (MyBranch)".
4Inspect file
1. Invoke CVS | Status command on the "Main.java [Up-to-date; 1.1.2.2] (MyBranch)" node and make sure that all the provided information is correct.
2. Push Get Tags button and verify that "MyBranch" was displayed as existing tag.
3. Invoke CVS | History | Log command on the same node and make sure that all provided information is correct.
4. Invoke CVS | History | History on the same node and make sure that text similar to "O 2004-06-11 12:20 +0000 jk110465 =.= D:\Tests\CVS\Work3/*" is printed in "VCS Output" window.
5. Invoke CVS | History | Annotate on the same node.
RESULT: Annotate window should be opened into editor. Verify that it is possible to highlight lines per revision and author.
5Create conflict
1. Press CTRL key while invoking CVS | Update... command on "Main.java [Up-to-date; 1.1.2.2] (MyBranch)" node.
2. Check Reset Sticky Tags/Dates option and push OK button.
3. Change some word at the line modified in the first test case and Save the file.
4. Invoke Show Versions command on "Main.java [Locally Modified; 1.1]" data node.
5. Expand "1.1 Initial revision." node.
6. Invoke Update popup menu action on "1.1.2 (MyBranch)" branch node in "Versioning" view.
RESULT: The data node should change to "Main.java [Merge Conflicts; 1.1.2.2] (MyBranch)" and should have warning badge (yellow triangle with exclamation mark). In addition to that, new backup node ".#Main.java.1.1 [Ignored]" should appear.
6Resolve conflict
1. Invoke Resolve Conflicts command from popup menu of "Main.java [Merge Conflicts; 1.1.2.2] (MyBranch)".
2. Merging tool must get opened in editor area highlighting the line with conflict. Left pane should read "Working File", right pane "Revision 1.1.2.2" and bottom should read "Merge Result".
3. Select left modification (the working one) and push Accept button above its pane.
4. Make sure that colors changed to blue or green and "Unresolved:" in top of the component says 0 conflicts. Push OK button and confirm your decision.
RESULT: The data node should change back to "Main.java [Locally Modified; 1.1.2.2] (MyBranch)" and should have appropriate badge (plus sign in red circle). In addition, the merge tool must be closed.
7Commit fix
1. Invoke CVS | Commit command from popup menu of "Main.java [Locally Modified; 1.1.2.2] (MyBranch)" data node.
2. Type "My own version of the fix." into Enter Reason: textarea and push OK.
3. Expand "1.1.2 (MyBranch)" branch node.
RESULT: The data node should change to "Main.java [Up-to-date; 1.1.2.3] (MyBranch)" and there should be new "1.1.2.3 My own version of the fix." revision created underneath.
8Create patch
1. Switch to "Files" view and invoke CVS | Patch action on "Main.java [Up-to-date; 1.1.2.3] (MyBranch)" node.
2. Check Revision or Tag option and use its Select... button to select "HEAD" revision.
3. Check Revision or Tag 2 option and use its Select... button to select "MyBranch" 1.1.0.2 revision.
4. Push OK button. Patch will be printed into "VCS Output" window.
5. Right click that area and choose Save To File... from popup menu.
6. Select some file to Save To File: textfield (e.g. "C:\patch.txt") and push OK.
RESULT: Verify that the patch file was indeed created and contains the diff from "VCS Output" window.
9Apply patch
1. Switch to "Versioning" view and invoke Update action on "1.1 Initial revision." revision node of Main.java.
2. Right click "Main.java [Up-to-date; 1.1] (1.1)" file node and choose Tools | Apply Diff Patch... from popup menu.
3. Use browser to select the patch file and push Patch button.
4. You should be informed about successful patch application. Click Yes to view the changes.
RESULT: Patch was applied if the node changed to "Main.java [Locally Modified; 1.1] (1.1)" and graphical diff component opened into editor highlighting the same lines as in the second test case. Check that both pulldown menus in top of the component work.
10Remove file
1. Switch to "Projects" view and expand "myapp.one.two" package node.
2. Invoke CVS | Remove action on "MyPanel.java [Up-to-date; 1.1]" data node.
3. Confirm your decision by clicking Yes in follow-up question dialog.
4. Check Proceed With Commit If Remove Succeeds option and push OK.
5. Verify that loaded commit template lists both "MyPanel.java" and "MyPanel.form" files and annotation of their nodes changed to "[Locally Removed; -1.1]".
6. Type "We don't need this panel anymore." into Enter Reason: textarea and push OK button.
RESULT: Make sure that "MyPanel*" nodes disappeared from all views.
11Release directory
1. Invoke CVS | Release popup menu action on "myapp.one.two" package node.
2. Confirm your decision by clicking Yes button in follow-up question dialog.
3. Repeat steps 1 and 2 on "myapp.one" package node.
RESULT: Make sure that both "one" and "two" package nodes disappeared from all views.
12Import sources
1. Right click "Source Packages" and choose New | Java Package... from popup menu.
2. Setup "one.two" as Package Name: and push Finish button.
3. Use New | JPanel Form... action on "one.two" package to create new "MyPanel" data node.
4. Use New | Java Class... action on "one.two" package to create new "MyClass" data node.
5. Select "one.two" package node and invoke Versioning | CVS | Import... from main menu.
6. Setup "Initial import of sources." as Logging Message:.
7. Setup "my_prototype" as Vendor Tag:.
8. Setup "initial_import" as Release Tag: and push OK button.
RESULT: Information dialog must show up confirming successful import. There should be "No conflicts created by this import" text displayed in "VCS Output" window and both new data nodes must get "[Up-to-date; 1.1.1.1]" annotation.
13Export sources
1. Switch to "Versioning" view and invoke CVS | Export on "src" node.
2. Use Browse... button to select some empty directory.
3. Setup "my_prototype" as Revision or Tag: and push OK.
RESULT: "Command Export finished." message must be printed into IDE status bar. Make sure externally that "src.one.two" packages were exported including "MyPanel" and "MyClass" source files. "myapp" package must not be exported though.
Teardown:



Test suite 4: Other functionality

Purpose: This suite tests commands used rather rarely.
Setup: No setup is necessary except steps from previous test suite.

#Test caseDescription
1Lock file
1. Switch to "Projects" view and invoke CVS | Locking | Lock on "MyPanel.java [Up-to-date; 1.1.1.1]" node.
2. Close information dialog with text "2 files locked successfully.".
3. Invoke CVS | History | Log on "myapp.one.two" package node.
4. Select "MyPanel.form" filenode and make sure that "Revision" column contains "1.1.1.1 locked by: " text.
5. Now invoke CVS | Locking | Unlock on "myapp.one.two" package node.
6. Close information dialog with text "The file "two" unlocked successfully." and repeat step 3.
RESULT: All files must have only "1.1" and "1.1.1.1" values in "Revision" column of revision list table.
2Watch file
1. Invoke CVS | Watches | Set Watch on "MyPanel.java [Up-to-date; 1.1.1.1]" node.
2. Check all three chekboxes, uncheck Prompt for Input on Each Successive File and push OK.
3. Invoke CVS | Watches | Watchers on "myapp.one.two node. Make sure that both files are printed into "VCS Output" as being watched for all 3 actions.
4. Invoke CVS | Watches | Set Watch on "myapp" package node and push OK.
RESULT: Now repeating step 3 shouldn't print any record into "VCS Output" window.
3Edit file
1. Invoke CVS | Editing | Edit on "MyClass.java [Up-to-date; 1.1.1.1]" node.
2. Check Do not show the notification next time. option and push OK in "The file "MyClass.java" is prepared to edit." information dialog.
3. Open the file, modify it and Save it.
4. Now invoke CVS | Editing | Undo Edit on "MyClass.java [Locally Modified; 1.1.1.1]" node.
5. Push Yes in "Are you sure you want to revert the changes in these files: "MyClass.java"?" dialog and make sure that your modifications are gone.
6. Now try to modify the file again. You will be asked to confirm making the file writable. Push Yes.
RESULT: Now you should be able to modify the file again.
4Textual diff
1. Modify "MyClass.java [Up-to-date; 1.1.1.1]" file somehow and save it.
2. Invoke CVS | Diff Textual on "MyClass.java [Locally Modified; 1.1.1.1]" node.
RESULT: All of your modifications must be printed into "VCS Output" window.
5View branches
1. Right click "Main.java [Locally Modified; 1.1] (1.1)" node and choose CVS | Branching And Tagging | View Branches.
2. Special window must show up displaying three revisions (black boxes) in one branch (red box) and one revision in trunk.
3. Left click 1.1.2.1 revision and right click 1.1.2.2 revision. Push Diff.
RESULT: Graphical history of all revisions and branches must be visible allowing to view a diff.
6Remove tag
1. Invoke CVS | Branching And Tagging | Remove Tag on "Main.java [Locally Modified; 1.1] (1.1)" node.
2. Setup "my_prototype as Tag Name and push OK.
3. Invoke CVS | History | Log on "Main.java [Locally Modified; 1.1] (1.1)" node.
RESULT: There must be only one "initial_import"record in "Symbolic Names" table representing revision 1.1.1.1.
7VCS group usage
1. Invoke Include in VCS Group | Default Group on both "MyPanel.java [Up-to-date; 1.1.1.1]" and "MyClass [Locally Modified; 1.1.1.1]" nodes.
2. Expand "Default Group" group node and check that both nodes are there.
3. Invoke Verify on the group node. Check Remove Files From Group option and push Correct Group.
4. Verify that "MyPanel.java [Up-to-date; 1.1.1.1]" node has disappeared.
5. Invoke Properties on the group node and set Description property to "Checking in from default VCS group.".
6. Invoke CVS | Commit on the group node. Make sure that group's description was offered as commit log message. Push OK.
RESULT: It must be possible to do VCS operations via VCS groups. Annotation of "MyClass.java" node must change to "[Up-to-date; 1.2]".
Teardown:




Generated: 2005 02 07 10:43
Companion
Projects:
MySQL Database Server   Open JDK: an Open SourceJDK   GlassFish Community: an Open Source Application Server    Mobile & Embedded Community    Open Solaris   java.net - The Source for Java Technology Collaboration   Virtual Box - full virtualizer  Open ESB - The Open Enterprise Service Bus Powered by