cornercorner
FeaturesPluginsDocs & SupportCommunityPartners

Common Features Test Specification for Generic VCS Module

Author: Jiri Kovalsky
Version: 1.1
Last update: 01/14/2004

Table of Contents


1. Introduction:

    Since Generic VCS module was designed to be as generic as possible and therefore open for a lot of customization, it is necessary to test its core features. This is exactly what is described in the following sections and should be tested very carefully.

Legend:
This test case is part of validation suite.- this icon represents a test case that is part of validation suite and is used during Q-build testing.
This test case is automated.- this icon represents a test case that was automated and is run daily in test runtime.

2. General availability

Purpose: This suite tests whether there are all features available in the IDE. It means to verify the presence of all mounting points, Versioning menu, outputs in Runtime tab etc. Without these pieces whole module would become completely unusable.
Setup: Create new directory with similar contents like it is shown at these pictures.

Test case # Description
2.1 Versioning menu
This test case is part of validation suite.This test case is automated.
1. Invoke Versioning | Mount Version Control from main menu.
2. Make sure there is an item Generic VCS. Select it.
3. Profile page of mounting wizard must appear. Close it without any further testing.
2.2 Popup menu
This test case is part of validation suite.This test case is automated.
1. Right click "Filesystem" node in the explorer and choose Mount | Version Control | Generic VCS item from the popup menu.
2. Setup "Working Directory" to the directory you prepared e.g. D:\Tests\Empty\Work1 and push "OK" button.
3. Select "Empty" profile from the list and push "Finish" button.
4. Right click "Empty D:\Tests\Empty\Work1" node in explorer and verify that its popup menu contains these actions: Versioning Explorer and Refresh, Refresh Recursively, Check in, Check out, Lock, Unlock, Add and Remove in Empty submenu.
2.3 Runtime tab
This test case is part of validation suite.This test case is automated.
1. Execute Empty | Lock on the root of your filesystem.
2. Status line of IDE must contain "Command Lock finished." message.
3. Switch to "Runtime" tab of explorer and expand "VCS Commands | Empty D:\Tests\Empty\Work1" nodes.
4. Right click "Lock" node and choose View Output action.
5. Verify that "Standard Output" tab contains "put your LOCK command here" message and close the window.
6. Verify that all properties have correct values especially "Processed Files" is "." and "Status" is "Finished".
7. Click "Empty D:\Tests\Empty\Work1" node and set its "Number of Finished Commands To Keep" property to 1.
8. Get back to "Filesystem" tab and invoke Empty | Add popup menu action.
2.4 Search service
This test case is part of validation suite.This test case is automated.
1. Right click the filesystem and choose Find... from popup menu.
2. Switch to "Status" tab, select "Local" option and push "Search" button.
3. Verify that only [Local] files were found. Click "Modify Search" button.
4. Switch to "Status" tab again and check "Match Only Files That Do Not Meet the Selected Criteria" checkbox.
5. Push "Search" button and make sure the complement to previous query is displayed now. Close the window.
2.5 Toolbar actions
This test case is part of validation suite.This test case is automated.
1. Right click toolbars area and check "Versioning" checkbox.
2. Right click the filesystem and choose Customize.
3. Switch to "Advanced" tab and push "Edit Commands..." button.
4. Expand "Empty" folder and select "Add" node.
5. Set "Expert | General Command Action Class Name" property to "org.netbeans.modules.vcscore.actions.AddCommandAction" and close editor and customizer.
6. Select the filesystem and click the third versioning toolbar button.

3. Mounting wizard

Purpose: This suite tests functionality of mounting wizard which means to verify that it is possible to mount command-line filesystem according to given specifications except profiles management and commands/variables editors.
Setup: No preparation required.

Test case # Description
3.1 Profile selector
This test case is part of validation suite.This test case is automated.
1. Invoke Versioning | Mount Version Control | Generic VCS from main menu.
2. From the upper left list choose CVS profile. The wizard must be reconfigured without any question.
3. Select another profile from the list. You must be asked to confirm the change. Answer "Yes" and make sure the dialog was rebuilt.
4. Select another one but answer "No" this time. Nothing must change.
3.2 Buttons working
This test case is automated.
1. Click each "Browse..." and "Select..." buttons and try to choose some file or directory with it.
3.3 Additional profiles link
This test case is part of validation suite. This test case is automated.
1. Click the "http://vcsgeneric.netbeans.org/profiles/index.html" hypertext link.
3.4 Mount filesystem
This test case is automated.
1. Setup "Working Directory" to the one from previous test suite.
3. Push "Finish" button and verify that "CVS D:\Tests\Empty\Work1" filesystem appeared in explorer.
4. Right click this filesystem and choose Customize action.
5. Verify that all settings in all tabs are set as before filesystem was mounted.
3.5 Settings active
This test case is automated.
1. Right click the filesystem and choose CVS | Locking | Lock... item.
2. You must be prompted with "Lock -" dialog. Push "Cancel" button.
TBD - 3. There should be two messages in the standard output window of IDE: "Preprocessing ..." and "Command Lock was cancelled".
4. Turn off "Advanced Options" and "Print Command Output" properties of the filesystem.
5. Invoke CVS | Locking | Lock on the filesystem and repeat step 2. No messages must be printed now.

4. Variables

Purpose: This suite tests possibility to create, customize, and delete profile variables.
Setup: No preparation required.

Test case # Description
4.1 Variable editor
This test case is part of validation suite. This test case is automated.
1. Invoke Customize on the filesystem.
2. Switch to "Advanced" tab of the customizer.
3. Push "Edit Variables..." button.
4.2 Accessory variable
This test case is part of validation suite. This test case is automated.
1. Expand "Accessory" node and Delete variable "CONFIG_INPUT_DESCRIPTOR".
2. Right click "Accessory" node and choose Add Variable action.
3. Setup "Name" as its name and push "OK" button.
4. Select "NAME" variable and set its "Value" property to "Jirka".
4.3 Basic variable
This test case is part of validation suite. This test case is automated.
1. Expand "Basic" node and Delete variable "Repository Path".
2. Right click "Basic" node and choose Add Variable action.
3. Setup "MyFile" as its name and push "OK" button.
4.4 Customize basic variable
This test case is part of validation suite. This test case is automated.
1. Select "MyFile" variable, set its "Value" property to "File.txt" and turn on "Variable Is a Local File" property.
2. Push "OK" button to close the editor and switch to "Profile" tab of customizer.
3. There must be "MyFile" textfield set to "File.txt" and "Browse..." button allowing to choose a file.
4. Switch to "Advanced" tab and press "Edit Variables...".
5. Press Move Up on MyFile node.
6. "MyFile" node position must move one position higher and turn on "Variable Is a Local Folder".

5. Commands

Purpose: This suite tests possibility to create, customize, and delete profile commands. It also checks functionality of the most important command properties.
Setup: No preparation required.

Test case # Description
5.1 Command editor
This test case is part of validation suite. This test case is automated.
1. Switch to "Advanced" tab of the customizer again.
2. Push "Edit Commands..." button.
5.2 Popup separator
This test case is part of validation suite. This test case is automated.
1. Right click root node and choose Add | Separator.
5.3 Popup submenu
This test case is part of validation suite. This test case is automated.
1. Right click root node and choose Add | Folder.
2. Type "My Submenu" as "Folder Label" and push "OK" button.
5.4 Popup action
This test case is part of validation suite. This test case is automated.
1. Right click "My Submenu" node and choose Add | Command.
2. Type "Test" as "Command Label" and push "OK" button.
3. Expand "My Submenu" node.
5.5 Customize menu
This test case is part of validation suite. This test case is automated.
1. Right click "(separator)" node and choose Move Down.
2. Verify that order of separator and "My Submenu" has changed and Move Down action is not enabled anymore.
3. Cut "(separator)" node and Paste it on "My Submenu" node.
4. Right click "VERIFY_ACTION" node and choose Delete action.
5.6 Setup command
This test case is part of validation suite. This test case is automated.
1. Select "My Submenu | Test" node in the tree.
2. Set "Exec" property to cmd /x /c "echo Ahoj ${NAME}! && notepad ${MYFILE}" for Windows NT/2000 or sh -c "echo Ahoj ${NAME}!; xedit ${MYFILE}" for all the other operating systems.
3. Turn on "Display Output" property and push "OK" button.
5.7 Invoke command
This test case is part of validation suite. This test case is automated.
1. Switch to "Profile" tab of the customizer.
2. Use "Browse..." button to choose some text file like C:\autoexec.bat or similar on Unix systems.
3. Push "Close" button on the customizer.
4. Right click the filesystem and choose My Submenu | Test action.
5. Make sure that status bar displays "Command Test is running ..." and "VCS Output - Test" window contains "Stop" button.
6. Make sure that Notepad or Xedit was opened with the selected file and there is "Ahoj Jirka!" message in the "Standard Output" tab of mentioned window.
7. Close the external editor and verify that status bar contains "Command Test finished." message.
5.8 Confirmation messages
This test case is part of validation suite. This test case is automated.
1. Invoke "Command Editor" and use test case "5.6 Setup command" for next three steps.
2. Setup "Confirmation Message Before Execution" property to "Really ?" text.
3. Setup "Notification Message After Fail" property to "Bad luck ! :-(" text.
4. Close the editor using "OK" button and "Close" the customizer too.
5. Invoke My Submenu | Test command on the root.
6. Answer "Yes" to "Really ?" question dialog.
7. Push "Kill" button on the output window.
5.9 Regular expressions 1. Set "Exec" property of "Test" command to cmd /x /c "echo Ahoj ${NAME}! && echo Cau Martine!" for Windows NT/2000 and sh -c "echo Ahoj ${NAME}! && echo Cau Martine!" for other systems.
2. Setup "Data Regex" expert property to "^Ahoj (.*)!" value.
3. Setup "Confirmation Message Before Execution" property to default value.
4. Invoke My Submenu | Test command on the root.
5.10 Visibility restrictions 1. Turn off "Visible on Folders" property of the same command.
2. Right click "PVCS D:\Tests\Empty\Work1 | test [Local]" node.
5.11 Enable restrictions 1. Setup "Disabled on Statuses" expert property to "Local" value.
2. Right click the root node of your filesystem.
3. Verify that My Submenu | Test action is visible and enabled.
4. Right click "PVCS D:\Tests\Empty\Work1 | A_File [Local]" node.
5.12 Input descriptor 1. Setup "Input Descriptor" property to LABEL("Hello!") PROMPT_FOR(NAME, "What's your name?") value.
2. Invoke My Submenu | Test action on the root node of your filesystem.
3. "Hello! -" dialog must show up with "What's your name?" textfield.
4. Type there "Maruska" and push "OK" button.
5.13 Multifile recognition 1. Setup "Disabled on Statuses" property to default value.
2. Turn on "Run on Multiple Files" property.
3. Turn on "Process All Files" expert property.
4. Invoke Compile on "A_File [Local]" node.
5. Invoke My Submenu | Test command on multiselection of "A_File [Local]" and "C_File [Local]" nodes.
6. Check "Prompt for Input on Each Successive File" checkbox and push "OK" button three times.
5.14 Failure notification 1. Turn on "Do Not Warn of Failure" expert property.
2. Setup "Exec" property to cmd /x /c "ICQ #103430977" on Windows NT/2000 or sh -c "icq #103430977" on other systems.
3. Turn off "Display Output" property.
4. Invoke My Submenu | Test command on "C_File [Local]" node.
5. Push "OK" button once "Hello! -" dialog appears.
5.15 Status refreshing 1. Setup "Exec" property to cmd /x /c "echo ${FILE}, Aktualni" on Windows NT/2000 or sh -c "echo ${FILE}, Aktualni" on other systems.
2. Setup "Data Regex" expert property to ^(.*), (.*) value.
3. Setup "File Index" refresh property to 0.
4. Setup "Status Index" refresh property to 1.
5. Invoke My Submenu | Test command on "C_File [Local]" node and push "OK" button in "Hello! -" dialog.
5.16 Settings history 1. Invoke My Submenu | Test command on "C_File [Aktualni]" node.
2. Type Jirka into the textfield, push "Set As Default" and then "OK" button.
3. Invoke that action again. Make sure that "Next" button is disabled and the textfield contains Jirka.
4. Type Maruska into the textfield and push "Get Default Values" button. Jirka must replace it.
5. Type Maruska into the textfield and push "Previous" button.

6. Profiles management

Purpose: This suite tests possibility to create, customize and delete own profile.
Setup: No preparation required.

Test case # Description
6.1 Profile creation
This test case is part of validation suite.
1. Invoke Customize on your filesystem.
2. Push "Save As..." button.
3. Setup "myProfile" as "File Name".
4. Setup "My Profile" as "Profile Label" and push "Save" button.
6.2 Profile usage
This test case is part of validation suite.
1. Invoke Versioning | Mount Version Control | Generic VCS item from main menu.
2. Select "My Profile" profile from the combo box.

7. Common settings

Purpose: This suite tests functionality of general options and filesystem properties.
Setup: No preparation required.

Test case # Description
7.1 Auto refresh
This test case is part of validation suite.
1. Invoke Tools | Options from the main menu.
2. Select "Source Creation and Management | Version Control Settings" node.
3. Setup "Auto Refresh" global option to "No Refresh" value.
4. Mount "D:\Tests\Empty\Work1" directory using CVS profile.
5. Once the filesystem is mounted, expand it completely.
7.2 Home directory
This test case is part of validation suite.
1. Create "Home" command with execution string cmd /x /c "echo %HOMEDRIVE%%HOMEPATH%" for Windows or sh -c "echo $HOME" for Unix systems.
2. Turn on "Display Output" property of that command.
3. Invoke new Home command on your filesystem.
7.3 Offline mode 1. Turn on "Offline Mode" global option.
2. Setup "Auto Refresh" global option to "Recursive on Mounting" value.
3. Mount "D:\Tests\Empty\Work1" directory using PVCS profile and expand it completely.
4. All nodes must stay [Local]. Invoke PVCS | Refresh action on your filesystem.
7.4 Override filesystem settings 1. Turn off "Offline Mode" global option.
2. Make sure that the same property of filesystem mounted in previous test case is also switched off.
3. Turn off "Override filesystem settings" global option.
4. Turn on "Offline Mode" global option.
7.5 Annotation pattern
This test case is automated.
1. Show properties of mounted filesystems.
2. Setup "Annotation Pattern" property to ${fileName)$[?status][ >Status YES<][ >Status NO<] value.
3. Verify that all nodes must be in ">Status YES<" status.
4. Click the "..." button of "Annotation Pattern" filesystem property.
5. Select "If Defined: status | True | Text: >Status YES<" node.
6. Set its "Text" property to " [Up-to-date]" and push "Apply Changes" button.
7.6 Command notification
This test case is automated.
1. Create "Print" command and set its "Notification Message After Success" property to "Great !".
2. Turn off "Command Notification" property of the filesystem.
3. Invoke your Print command on the filesystem.
7.7 Ignored files
This test case is automated.
1. Show properties of mounted filesystems.
2. Setup "Ignored Files" expert property of the filesystem to "A_File.java|Dialog.*" value.
3. Check result.
4. Setup "Ignored Files" expert property of the filesystem to "" value.
7.8 Backup properties
This test case is automated.
1. Open "Web_page [Local]" file, modify it and save it.
2. Turn off "Filter Backup Files" expert property of the filesystem.
3. "Web_page.java~ [Local]" node must appear under "another [Local]" folder.
4. Delete "Web_page.java~ [Local]" node.
4. Turn off "Create Backup Files" expert property of the filesystem.
5. Repeat step 1.
7.9 Remember password 1. Setup "Exec" property of "Print" command to cmd /x /c "echo ${PASSWORD}" for Windows NT/2000 and sh -c "echo ${PASSWORD}" for other systems.
2. Turn on "Remember Password" expert property of the filesystem.
3. Invoke Print action on the filesystem node.
4. Write some password and push "OK" button.
5. Restart IDE and repeat step 3.
7.10 Shorten file statuses 1. Setup "POSSIBLE_FILE_STATUSES" accessory variable to "Current", "Missing", "Locally Modified", "Local".
2. Setup "POSSIBLE_FILE_STATUSES_LOCALIZED_SHORT" accessory variable to "Curr", "Miss", "LMod", "Loc".
3. Turn on "Shorten File Statuses" property of the filesystem.
7.11 Hide shadow files
This test case is automated.
1. Setup "Exec" property of "Print" command to cmd /x /c "echo F_File.java" for Windows NT/2000 and sh -c "echo F_File.java" for other systems.
2. Setup "Data Regex" expert property of the same command to ^(.*).
3. Setup "File Index" refresh property of the same command to 0.
4. Invoke Print command on the filesystem.
5. After a while "F_File.java [Miss]" must appear in the filesystem.
6. Turn on "Hide Shadow Files" expert property of the filesystem.
7.12 Process all files
This test case is automated.
1. Compile "Dialog [Local]" node.
2. Turn on "Process All Files" property of the filesystem.
3. Invoke CVS | Locking | Lock command on "Dialog [Local]" node.
4. Switch to "Runtime" tab of explorer and expand "VCS Commands" and "CVS D:\Tests\Empty\Work1" filesystem nodes.

Example of tested directory structure:
Initial testing structure Version controlled testing structure Revisions history dialog
Pic.1: Initial testing structure. Pic.2: Version controlled testing structure. Pic.3: Revisions history dialog.


Any comments and suggestions please send to Jiri Kovalsky.

Companion
Projects:
MySQL Database Server   GlassFish Community: an Open Source Application Server   Open Solaris  Open JDK: an Open SourceJDK   Mobile & Embedded Community     Sponsored by 
Sponsored by Sun Microsystems