TS 61 SVN

NetBeans Subversion Support Test Specification for

Author: Peter Pis
Version: 6.8.
Lastupdate: 29.10.2009
Introduction: Subversion open source tool is one of the supported version control systems in the IDE. This document describes how SVN profile for NetBeans SVN Support module should be tested in order to know whether all of its functionality work correctly. All Test Suites should be performed with all access method types: "file:///", "svn://", "svn+ssh://", "http://" and "https://"

Contents

Important

Since 6.8. the scanning of project takes place after a SVN task is finished. It is important to watch for the occurence of "Scanning in progress" in the bottom status bar. Please, follow these rules during testing:

  • Use repository with large amount of data. Also use actions that affect more files, so the scanning takes longer time and is easily noticeable
  • Always make sure, that the scanning is performed *after* a SVN task is finished

Test suite: Install svn client via IDE updater

Purpose: To test if svn clien is correctly installed via IDE
Setup: no svn client should be install on tested workstation or should not be defined in system PATH variable. Start IDE with clear userdir

  1. Test Checkout command if svn client is not installed on workstation
    1. Invoke Checkout command from Main Menu - Team - Subversion - Checkout
    2. Press Cancel
    • EXPECTED RESULT: Dialog "SVN Command Failed" should be open. When Cancel is pushed, no svn client should be installed
  2. Get Bundled Subversion 1.5 binaries for Windows from UC
    1. Invoke Checkout command from Main Menu - Team - Subversion - Checkout
    2. Option "Get Bundled Subversion 1.5 binaries for Windows from UC" should be checked as default
    3. Press OK
    4. Leave unchecked License Agreement
    5. Press Cancel
    • EXPECTED RESULT: Until License Agreement is approved, OK button should be disabled. When Cancel is pressed, installing of svn client should be aborted. No exception is thrown
  3. Get Bundled Subversion 1.5 binaries for Windows from UC
    1. Invoke Checkout command from Main Menu - Team - Subversion - Checkout
    2. Option "Get Bundled Subversion 1.5 binaries for Windows from UC" should be checked as default
    3. Press OK
    4. Approve License Agreement
    5. Press OK
    6. Confirm IDE restarting
    7. Check basic commands connected with work in subversion repository.
    • EXPECTED RESULT: In case that License Agreement is approved, OK button should be enabled. When OK is pressed, IDE should start to download SVN binaries from UC. Then IDE ask user if IDE could be restarted. After restart, IDE should fully support all svn commands. Check your userdir where in "userdir/modules/lib/" location there should be new 9 libraries which begins with libsvn*
  4. Force install into shared directories
    1. Start IDE with clear userdir
    2. Invoke Checkout command from Main Menu - Team - Subversion - Checkout
    3. Check option: "Force install into shared directories"
    4. Press OK
    5. Accept License Agreetment
    6. Confirm IDE restarting
    7. Check basic commands connected with work in subversion repository.
    • EXPECTED RESULT: In case that License Agreement is approved, OK button should be enabled. When OK is pressed, IDE should start to download SVN binaries from UC. Then IDE ask user if IDE could be restarted. After restart, IDE should fully support all svn commands. Check your nb installation directory "ide/extra/modules/lib/" there should be new 9 libraries which begins with libsvn* On Vista there could be conflict with user permission. If install dir doesn't have sufficient rights, svn client is automatically installed into userdir


Test suite: Setting up URL

Purpose: This suite tests whether it is possible to access valid Subversion repository using different types of connections.
Comments: In "svn", "http" and "https" connection types there is also "Save Username and Password" checkbox. If you check it, the username and password will be stored in a file (of course NOT in plain text).
Setup: Subversion command-line client version 1.3 or higher has to be installed on tested platform.

  1. svn://
    1. Invoke Team | Subversion | Checkout... action from main menu. "Checkout" wizard shows up.
    2. Switch to Repository URL field and set it to e.g. "svn://localhost/svn"
    3. After setting up "svn://" connection type there should be visible {"User"}, "Password" and "Proxy Configuration..." components.
    4. Setup username and password and verify functionality of "Proxy Configuration" dialog.
    • EXPECTED RESULT: Push Next button. Next dialog of "Checkout" wizard should show up. Verify that {"Browse..."} buttons are shown for "Repository Folder(s)", "Local Folder" and "Search" button for "Repository Revision" in this step of "Checkout" dialog. Push "Finish" button. Verify result of Checkout action.
  2. svn+ssh://
    • Setup: In case of windows platform "plink" application should have been installed.
    1. Invoke Team | Subversion | Checkout... action from main menu. "Checkout" wizard shows up.
    2. Switch to Repository URL field and set it to e.g. "svn+ssh://localhost/svn"
    3. After setting up "svn+ssh://" connection type there should be visible {"Use External Tunnel"} text field.
    4. Setup valid external tunnel command.
    • EXPECTED RESULT: Push Next button. Next dialog of "Checkout" wizard should show up. Verify that {"Browse"} buttons are shown for "Repository Folder(s)", "Local Folder", "Repository Revision" and "Search" button in this step of "Checkout" dialog. Push "Finish" button. Verify result of Checkout action.
  3. file:///
    1. Invoke Team | Subversion | Checkout... action from main menu. "Checkout" wizard shows up.
    2. Switch to Repository URL field and set it to e.g. "file:///svnrepo"
    • EXPECTED RESULT: Push Next button. Next dialog of "Checkout" wizard should show up. Verify that {"Browse"} buttons are shown for "Repository Folder(s)", "Local Folder", "Repository Revision" and "Search" button in this step of "Checkout" dialog. Push "Finish" button. Verify result of Checkout action.
  4. http://
    1. Invoke Team | Subversion | Checkout... action from main menu. "Checkout" wizard shows up.
    2. Switch to Repository URL field and set it to e.g. "http://localhost/svnrepo"
    3. After setting up "http://" connection type there should be visible {"User"}, "Password" and "Proxy Configuration..." components.
    4. Setup valid password.
    • EXPECTED RESULT: Push Next button. Next dialog of "Checkout" wizard should show up. Verify that {"Browse"} buttons are shown for "Repository Folder(s)", "Local Folder", "Repository Revision" and "Search" button in this step of "Checkout" dialog. Push "Finish" button. Verify result of Checkout action.
  5. https://
    1. Invoke Team | Subversion | Checkout... action from main menu. "Checkout" wizard shows up.
    2. Switch to Repository URL field and set it to e.g. "https://localhost/svnrepo"
    3. After setting up "https://" connection type there should be visible {"User"}, "Password" and "Proxy Configuration..." components.
    4. Setup valid password.
    • EXPECTED RESULT: Push Next button. You will be asked for accept the certificate. Next dialog of "Checkout" wizard should show up. Verify that {"Browse"} buttons are shown for "Repository Folder(s)", "Local Folder", "Repository Revision" and "Search" button in this step of "Checkout" dialog. Push "Finish" button. Verify result of Checkout action.
  6. Relocate
    • Comments: NOTE: You can relocate your project only to the same repository (same UUID) using different login or access method.
    1. Select project root and invoke Team | Subversion | Relocate main menu action.
    2. New window with two noneditable text fields labeled "Working Copy" and {"Current URL"}" and one editable text field labeled "New URL" appears.
    3. Edit the last mentioned text field, setup a new URL and push "Relocate" button.
    • {{result|EXPECTED RESULT: Switch to the "Output Tab". There should be message "==[[IDE]== 15.3.2007 10:01:21 Relocating... finished" indicating that the command was successfully. Since now you are going to connect to the same repository as another user or via another access method.}}


Test suite: Importing new project

Purpose: The goal of this suite is to create new project and upload it to Subversion repository.
Setup: No setup is necessary.

  1. Project import
    1. Invoke File | New Project... from main menu.
    2. "New Project" wizard shows up. Choose e.g {"General | Java Application"} and push "Next" button.
    3. Setup name of the project, project location as desired and push "Finish" button.
    4. Switch to "Projects" view and select the root of the project.
    5. Invoke Team | Subversion | Import into Repository... from main menu.
    6. "Import" wizard shows up.
    7. Setup "Repository URL" as desired and all necessary fields for chosen access method and push {"Next"} button. All displayed components depend on access method type - see "Setting up URL".
    8. Push Browse... button. Verify that browsing through the repository is allowed. Verify also functionality of New Folder (it creates only virtual folders. Nothing is changed in the repository.)
    9. Enter some comment into "Import Message" field and push {"Next"} button. All displayed components depend on access method type - see "Setting up URL".
    10. 3rd step of Import wizard shows up. Verify whether you can change values in "Commit Action" column. (Add As Text, Add As Binary and Exclude From Commit).
    • EXPECTED RESULT: In "Output" tab verify whether {"Import"} and "Check out" command finished successfully. Now context commands on this project root in "Projects" view shouldn't contain "Import into Repository" action. All sources should be imported and subversion actions should be available.


Test suite: Standard development of project

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

  1. "Subversion" tab
    1. Invoke Window | Versioning | Subversion from main menu.
    • EXPECTED RESULT: Verify that in "Subversion" tab is opened.
  2. Update action
    1. Switch to "Files" view.
    2. Invoke Window | Output | Versioning Output from main menu. "Versioning Output" should be opened.
    3. Invoke Subversion | Update popup menu action on project root.
    • {{{1}}}
  3. File modifying
    1. Select e.g. "Main.java" file, modify it.
    2. Insert brand-new line somewhere into the file.
    3. Delete some other line but not directly next to the new line.
    4. Modify another line but not directly next to the lines mentioned above and Save the file.
    • EXPECTED RESULT: The file "Main.java" must change its foreground color to blue.
  4. File differences
    1. Switch off View | Show Diff Sidebar option from main menu.
    2. Switch on View | Show Diff Sidebar option from main menu. Diff column should be shown in the left of side of editor.
    3. Select this file.
    4. Invoke Subversion | Diff action from main menu.
    • EXPECTED 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. Verify UP and DOWN arrows that should navigate among differences.
  5. Files/Folders differences
    1. Create new package "xx.yy" in this project.
    2. Create new "Java Class" {"NewClass"} in package "xx.yy".
    3. Invoke Subversion | Show Changes from main menu.
    4. Files should be listed in "Subversion" tab - {"Main.java"} as [[[LocallyModified | [Locally Modified]], "NewClass" and also the new packages "xx" and "yy" should be displayed as [[LocallyNew].
    5. Select the root of the project and invoke Subversion | Diff popup menu action.
    • EXPECTED RESULT: New tab labeled "Project_Name [Diff]" is displayed. Both files ({"Main.java"} and "NewClass.java") should be contained in a table. Verify functionality of "UP" and "DOWN" arrows. (Arrows navigate among all differences in processed files). Then verify functionality of "Diff all" icon in "Subversion" tab - it should give the same result as step 5 of this case. Also verify that "Update" and "Commit" icons behave the same both in "Diff" tab and "Subversion" tab.
  6. Subversion tab action
    1. Select the root of the project and invoke Subversion | Show Changes popup menu action.
    2. There should be "All", {"Local"} and "Remote" toggle buttons and icons with tooltips "Refresh Status", "Diff All", "Update All" and "Commit All".
    • EXPECTED RESULT: Verify the functionality of "Subversion" tab actions. Setting {"All"} - displays locally modified files only, "Local" - displays remotely modified files only and "Remote" - displays both locally and remotely modified files. "Refresh Status" - refreshes the status of the selected files and folders. Files displayed in the Versioning window can be refreshed to reflect any changes that may have been made externally. "Diff All" - opens the Diff Viewer providing you with a side-by-side comparison of your local copies and the versions maintained in the repository. "Update All" - updates all selected files from the repository. "Commit All" - enables you to commit local changes to the repository.
  7. Open file from "Subversion" tab
    1. Close "NewClass.java" from editor.
    2. Switch to "Subversion" tab and invoke Open popup menu action on {"NewClass.java"} record.
    • EXPECTED RESULT: Verify that file is opened into editor.
  8. Commit files/folders
    1. Switch to "Subversion" tab.
    2. Push "Commit all" icon.
    3. "Commit dialog" shows up. It should contain two files: {"Main.java"}, "NewClass.java", and two folders "xx" and "yy". Enter some commit message and push "Commit" button.
    • EXPECTED RESULT: Verify that blue badges disappeared. Files and folders/packages should disappear from "Subversion" tab immediately too.
  9. Creation of patch
    1. Modify "Main.java" file and save it.
    2. Modify "NewClass.java" file and save it.
    3. Select project root and invoke Subversion | Export Diff Patch... from main menu. Select desired output file for patch and confirm the dialog.
    • EXPECTED RESULT: Patch should be created in your chosen file. If this action is invoked on context that has no modified files, information dialog should be displayed only.
  10. Applying patch
    1. Switch to "Files" view and select project root.
    2. Invoke Subversion | Revert Modifications... from main menu or Subversion | Revert Modifications from popup menu. (Select "Revert Local Changes" option and push Revert button.)
    3. Make sure that all modified files are "uptodated" now.
    4. Select project root and invoke Tools | Apply Diff Patch... popup menu action.
    5. Answer "Yes" in question dialog to confirm watching differences.
    • EXPECTED RESULT: Verify that new tabs were opened into the editor for all patched files. Verify results generated by "Command-line Diff" and {"Built-in Diff"} engines. Verify results displayed by "Graphical Diff Viewer", "Textual Diff" and "Modern Diff" Viewer visualizers.
  11. Create conflict
    1. Modify "Main.java" file and save it.
    2. Invoke Subversion | Check out... from main menu and setup the same parameters as for previous Suites but with different "Workfile location".
    3. Open the same project, modify "Main.java" class at the same line as in previous test suite, and commit it.
    4. Return to previous project, select the project root and invoke Subversion | Update with Dependencies popup menu action.
    • EXPECTED RESULT: "Conflicts warning" dialog should be displayed. Path to {"Main.java"} file should be indicated with red badges. This file should change its color to red too. Verify functionality of All, Local and Remote buttons in "Subversion" tab.
  12. Resolve conflict
    1. Invoke Subversion | Resolve conflicts popup menu action on "Main.java" node.
    2. Merging tool must get opened in editor area highlighting the line with conflict. Left pane should read "Working File", right pane {"Remote File"} 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.
    • EXPECTED RESULT: The data node should change back to "Main.java" and should have appropriate badge (blue badges for path). In addition, the merge tool must be closed.
  13. Conflict Resolved
    1. Do all steps - "Create conflict" test case.
    2. Invoke Subversion | Show Changes on project root.
    3. From within editor resolve manually all conflict by editing the "Main.java" file and save the file.
    4. Invoke Subversion | Conflict Resolved popup menu action on "Main.java" node from {"Subversion"} tab.
    • EXPECTED RESULT: The data node should change back to "Main.java" and should have appropriate badge (blue badges for path).
  14. Delete file
    1. Switch to "Projects" view and expand {"xx.yy"} package node.
    2. Invoke Delete popup menu action on "NewClass.java" file node.
    3. Confirm your decision by clicking OK in follow-up question dialog.
    4. File should disappear from all explorer views. It should appear in "Subversion" tab with "Locally Deleted" status.
    5. Select "NewClass.java" in {"Subversion"} tab and invoke Revert Delete action
    6. Push Revert in follow-up question dialog.
    7. File should appear in all of explorer views.
    8. Invoke Delete popup menu action on "NewClass.java" file node again.
    9. Confirm your decision by clicking Yes in follow-up question dialog.
    10. Select "NewClass.java" in {"Subversion"} tab and invoke Commit...
    11. "Commit" dialog shows up. Fill commit message and push {"Commit"}.
    • EXPECTED RESULT: File "NewClass.java" should disappear from all explorer views, and from {"Subversion"} tab.
  15. Delete locally new file
    1. Switch to "Projects" view, invoke Subversion | Show Changes and expand {"xx.yy"} package node.
    2. Create new java class "NewClass1.java" in the package {"xx.yy"}.
    3. Invoke Delete popup menu action from within "Subversion" tab on {"NewClass1.java"} file node.
    4. Confirm your decision by clicking OK in follow-up question dialog.
    • EXPECTED RESULT: File "NewClass1.java" should disappear from all explorer views, and from {"Subversion"} tab.
  16. Delete Folder(s)
    1. Select package node that contains files.
    2. Invoke Delete popup menu action on package node.
    3. Confirm your decision by clicking Yes in follow-up question dialog.
    4. Select all deleted nodes in "Subversion" tab and invoke Revert Delete
    5. Confirm your decision by clicking Yes in follow-up question dialog.
    6. Package and its files should appear in all of explorer views.
    7. Repeat 2nd step.
    8. Confirm your decision by clicking Yes in follow-up question dialog.
    9. From "Subversion" push Commit button.
    • EXPECTED RESULT: Content of the package should disappear from all views. The package itself won't disappear until you delete it again from "Files" view.
  17. Project Deletion
    1. Create new project.
    2. Add this project into the source control. Select its root and invoke Subversion | Show Changes from main menu.
    3. Switch to "Projects" view, select project node and invoke Delete Project popup menu action. (Confirm dialog and delete also sources)
    • EXPECTED RESULT: All files should appear in "Subversion" view. These files should be in {"Locally Deleted"} status. Select all files in "Locally Deleted" state and invoke Revert Delete popup action from "Subversion" view. After successful action it should be allowed to open this project again.
  18. Exclude file from commit
    1. Create "JFrame" in {"xx.yy"} package.
    2. Invoke Subversion | Commit... on this JFrame in "Projects" view.
    3. Switch to "Subversion" tab, there should be listed {"NewJFrame.java"} and "NewJFrame.form" files. Select both the files and invoke Commit....
    4. "Commit" dialog should be displayed with these JFrame files. Change the {"Commit Action"} to "Exclude from Commit" for both files.
    5. "Commit" button should be disabled.
    6. Invoke Subversion | Show Changes action on the project root.
    7. From within "Subversion" tab select both files of newly created JFrame and invoke Exclude from commit popup menu action.
    • EXPECTED RESULT: Both files have to be excluded from commit with no change of their statuses. Include in Commit action should be accessible in popup menu actions in "Subversion" tab and performing Include in Commit must return file to {"committing"} status.
  19. Ignore file
    1. Create new "Java class" ("NewClass2") into {"xx.yy"} package.
    2. Select this java file and invoke Subversion | Ignore .
    • {{result|EXPECTED RESULT: "NewClass2.java" should change its color to gray with [[Ignored] annotations in all explorer views and it should disappear from {"Subversion"} tab. Its parent package should appear there instead marked as "Locally Modified". If you invoke diff on it, there should be property named "svn:ignore" with value "NewClass2.java".}}
  20. Ignore folders
    1. Create new "New Package" ("tt2") into {"javaapplication"} package.
    2. Select this "tt2" package and invoke Subversion | Ignore .
    • EXPECTED RESULT: "tt2" should disappear from {"Subversion"} view. "Javaaplication" should be listed the instead. Invoke Diff action on it. There should "svn:ignore" in the "Property" column of the table. In the "Locally Modified" part of the diff view there should be value "tt2". Alternativelly you can externally verify that ".svn" administrative directory of parent folder of "tt2" package contains file "dir-props" listing "tt2" package.
  21. Unignore file
    1. Select "NewClass2.java" in {"Projects"} view and invoke Subversion | Unignore popup menu action.
    2. "Subversion" tab should contain {"NewClass2.java (Locally New)"} files. Path to this should be indicated with blue badges.
    3. Select project root and invoke Subversion | Commit... action from main menu.
    4. "Commit" dialog shows up, enter some commit message and push {"Commit"} button.
    • EXPECTED RESULT: File should disappear from "Subversion" tab. Font color of {"NewClass2.java"} file is black now. Externally verify that ".svn" administrative directory of parent folder of "NewClass2.java" package doesn't contain this file listed in "dir-props".
  22. Reverting modifications
    1. Open "NewClass2.java" to editor.
    2. Insert brand-new line somewhere into the file.
    3. Delete some other line but not directly next to the new line.
    4. Modify another line but not directly next to the lines mentioned above and Save the file. File name color should change to blue, verify the path indicating blue badges.
    5. Select "NewClass2.java" and invoke Subversion | Revert Modifications
    6. "Revert Modifications" dialog should show up. There are three choices: {"Revert Local Changes"}, "Revert Modifications from Single Commit" and "Revert Modifications from Previous Commits". "Revision" should be enabled for second choice. "Starting Revision" and "Ending Revision" revision should be enabled for third choice only. This dialog provide also the functionality of rollbacking changes. For each of these fields "Search..." button should be available. You can also check "Remove newly added Files and Folders" checkbox for all three choices. That would result in deleting any newly added files.
    7. Push the "Revert" button.
    • EXPECTED RESULT: All changes should be reverted. Indicating badges should disappear. "NewClass2.java" file should not be listed in {"Subversion"} tab.
  23. Actions in Projects view
    1. Add new package "aa" and new {"Interface.java"}
    2. Add new package "aa.bb" and new {"NewClass.java"}
    3. Invoke Subversion | Commit... on "aa" package.
    4. Commit dialog shows up. There should be "Interface.java" and {"aa"} listed in commit dialog. Push "Commit" button.
    5. Make sure that only "aa" and its file were added. Have a look in tab for SVN URL in {"Output"} window.
    • EXPECTED RESULT: Subversion actions invoked on packages in "Projects" view shouldn't be performed recursively. Make sure that Update, Diff, Switch to Branch, Merge Changes From Branch, Export Diff Patch and Revert Modifications work correctly. In case of branching actions verify whether new files and folders are added/removed properly.
  24. Refactoring
    1. Select "Main.java" node and invoke Refactor | Rename... popup menu action on it.
    2. Enter new name for it and push "Next" button. Special window shows up, push Refactor.
    3. File with new name should be listed in "Subversion" view as {"[LocallyCopied]"} and old one "[Locally Deleted]".
    4. Commit both files and verify whether new file inherited history by refactoring.
    5. Switch to "Files" view, select package {"xx"} and invoke Refactor | Rename... popup menu action on it.
    6. Enter new name "yz" for it and push {"Next"} button. Special window shows up, push "Refactor".
    7. Make sure that all refactored nodes with new name are marked as " Locally Copied" (for directories only {"[LocallyNew]"</nowiki>.
    • EXPECTED RESULT: Push Commit make sure that file nodes disappear. And all files/directories were committed as well.


Test suite: Working with Copies/Branches

Purpose: This suite tests work-flow with copies/branches.
Setup: No setup is necessary except steps from previous test suite.

  1. Copy/Branch creation
    1. Select project root and invoke Subversion | Copy to... popup menu action.
    2. Dialog for branching shows up. Setup "Copy to Repository Folder" (create new location for copy purpose). Push Browse button. Verify functionality of this component. Try to create new folder with use of New Folder button or through the popup menu on some node in <tt>{"Repository Browser"} component. Select folder "branches" or create one if it does not exist.
    3. Enter "Copy Description" field.
    4. Verify that "Switch to Copy" check box is displayed in dialog and check it.
    5. If this action was invoked on context with some modified files make sure that warning message is being displayed about locally modified files in context.
    • EXPECTED RESULT: Verify in "Output" tab whether project was copied properly. Nodes in explorer view should be annotated. If {"Switch to Copy"} was not checked, then sources shouldn't be switched to newly created copy.
  2. Committing to branch
    1. Select the "Main.java" file, modify and save it.
    2. Invoke Subversion | Commit... popup menu action.
    3. Commit dialog shows up and there should be listed "Main.java" file and information about the commit - {"Committing to "Project" branch"}. Push "Commit" button.
    • EXPECTED RESULT: Verify in "Output" tab whether the action finished successfully.
  3. Multiple branches
    1. Create new e.g. "NewInterface" in this project.
    2. Select project root and invoke Subversion | Commit... project from popup menu.
    3. Commit dialog shows up and there should be listed "NewInterface.java" file and information about the commit - {"Committing to "Project" branch"}. Push the Commit button.
    4. Verify successful commit of newly added file.
    5. Now select project root and invoke Subversion | Switch to Copy... popup menu action.
    6. Appropriate dialog shows up. Browse desired "Repository Folder" and desired "Revision" where "NewInterface" doesn't exist.
    7. "NewInterface" file should disappear from all views.
    8. Select again project root and invoke Subversion | Switch to Copy... popup menu action.
    9. Verify that "Repository File (Folder)" (depends on context it was invoked for) combo box, {"Browse"} button, "Repository Revision" text field and "Search" button were shown.
    10. Choose "Repository File/Folder", desired revision number and push Switch button.
    11. Verify whether "NewInterface" file appears in all views again.
    12. Select "Main.java" file and invoke Subversion | Switch to Copy... popup menu action.
    13. In the dialog setup "Repository File/Folder" for trunk and push the Switch button.
    14. Verify that file contains changes made in the trunk.
    15. Modify and save both "Main.java" and {"NewInterface"} file.
    16. Select the project root and invoke Subversion | Commit... from the main menu.
    17. Dialog shows up, with these two files. There should be warning about attempt to commit to multiple branches - commit dialog now contains also "Branch" column - if there is nothing in the column, the file is to be commited to the trunk, otherwise to some branch (its name will be there).
    • EXPECTED RESULT: Verify that "Main.java" was committed to trunk and {"NewInterface"} was committed to "Copy" location. (Switch to both locations and verify changes.)
  4. Merge from branches
    1. Select the project root, invoke Subversion | Switch to Copy... action.
    2. In the dialog setup "Repository File/Folder" for trunk and push Switch button.
    3. All project sources should contain only "Trunk" changes.
    4. Create "NewInterface" and add new method to {"NewInterface"}, save and commit it.
    5. Add new variable to "Main.java", save and commit it.
    6. Switch project to "new_copy".
    7. Open "Main.java" into the editor, modify the type of the variable created in step 5 at the same line. Save the file.
    8. Open "NewInterface" into the editor, modify the return value of the method created in step 4 at the same line. Save the file.
    9. Select project root invoke Subversion | Merge ... popup menu action.
    10. Dialog shows up. There are three choices for merging. Each of choice has descriptive picture. Verify all their components and functionality for each case. Push Merge button.
    11. Dialog shows up with the information that there were conflicts.
    • EXPECTED RESULT: Files in conflicts are displayed with red color in "Subversion" tab. Resolve all the conflicts.


Test suite: Subversion properties

Purpose: This suite tests editing of Subversion properties for files and packages.
Setup: Subversion versioned project needs to be opened.

  1. Opening Svn Properties Editor
    • Comments: The "Refresh" button is designed to be used only if something modifies the property files externally, so if you modify SVN properties from NetBeans only, you don't need it.
    1. Select any SVN versioned file in "Projects" view and invoke Subversion | Svn Properties from its popup menu.
    • EXPECTED RESULT: New window labeled "Svn Properties Editor" should open in the middle of your screen. Verify that {"Property Name"} combo box, "Property Value" text area, "Load", "Add", "Remove", "Refresh", "Cancel" and "Help" buttons, "Recursively" checkbox and a table with columns "Name" and "Value" are present.
  2. Adding file SVN properties
    • Setup: Steps from previous test case are required.
    1. Type something into the "Property Name" combobox. Note that you can use the combobox to choose from some typical Subversion properties. But you can also use your own name for them.
    2. Type something into the "Property Value" text area. Verify that you can use the {"Load"} button to load text from any file into the text area.
    3. Push the "Add" button. Note that the {"Recursively"} checkbox is disabled, because you invoked the Svn Properties Editor on just one file and not on some pacage/folder.
    • EXPECTED RESULT: New SVN property should be present in the table. Verify that its name and value are those you entered in previous steps.
  3. Adding package SVN properties
    • Setup: Add at least one additional file into same package as main.java and commit it.
    1. Select the package that contains files "main.java" and those added in a setup of this test case and invoke Subversion | Svn Properties from its popup menu.
    2. Type something into the "Property Name" combobox and {"Property Value"} text area.
    3. Make sure that the "Recursively" checkbox is checked and push the {"Add"} button.
    • EXPECTED RESULT: New SVN property should be present in the table for the package. Verify that the same property is set for all its children nodes (files and packages). Note that property would be set only for the package itself, if you didn't check the "Recursively" checkbox.
  4. Removing SVN property
    • Setup: Follow previous test case.
    1. Select the package that contains files "main.java" and invoke Subversion | Svn Properties from its popup menu.
    2. In the table select the property added in previous test case and push the "Remove" button.
    • EXPECTED RESULT: The selected property should disappear from the table. Note that if the "Recursively" checkbox was checked, this property would be removed from all package children nodes.


Test suite: Archeology

Purpose: This suite tests "archeology" searching with various criteria.
Setup: No setup is necessary except steps from previous test suite.

  1. Search button
    1. Invoke Subversion | Checkout... wizard from main menu.
    2. Setup valid "Repository URL" and proceed to 2nd step of {"Checkout"} wizard.
    3. Push Search... button.
    4. "Search Revisions" dialog shows up.
    5. "List Log Entries from" field and {"List"} button should be there. Push the "List" button.
    6. There should be listed records containing "Repository Revision Number", {"User Name"}, "date and time" and "Commit Message" for each record in it.
    7. Select some record and push OK button.
    • EXPECTED RESULT: Verify that "Search Revisions" dialog was closed and {"Repository Revision Number"} was setup into "Revision:" field of "Checkout" wizard. This component is also accessible from "Switch Copy to", "Merge ...", "Revert Modifications" dialog. Verify them too.
  2. Annotations
    1. Select "Main.java" node and invoke Subversion | Show Annotations popup menu action.
    2. "Annotations" column and "Stripes" should be displayed around the editor area of this file.
    3. Select desired line (with revision e.g. "12").
    4. All lines with revision ("12") should be colored blue in "annotations" column. "Stripes" should show navigations to this revision too.
    5. Move mouse pointer over "Revision" column and invoke popup menu.
    • EXPECTED RESULT: There should be Diff 12 to 11, Revert Modifications... and Hide Annotations actions listed in popup menu.
  3. Annotations actions
    1. Choose Diff... action.
    2. "Diff" tab should be opened into the editor for specified revisions.
    3. Choose Revert Modifications... action.
    4. This action should show "Revert Modifications" dialog. (See {"Standard Workflow"} test suite - "Revert modifications")
    5. Choose Hide Annotations action.
    6. This action should hide annotation column and stripes too.
    • EXPECTED RESULT: Verify functionality on various revisions and navigations with the use of "Stripes".
  4. Search history
    1. Switch to "Projects" view and select project root.
    2. Invoke Subversion | Search History... popup menu action.
    • EXPECTED RESULT: "Search History" tab for this project should be displayed in editor area. Verify also functionality of {"Browse"} buttons next to "From" and "To" fields.
  5. Summary functionality
    1. Make sure that "Summary" toggle button is pushed.
    2. Push Search button.
    • EXPECTED RESULT: Verify that all files of the project are listed in "Summary" output area. All items there should contain {"revision number"}, "username", "date", "file location", "file name", "commit message" and "Diff" and "Revert" link there.
  6. Summary actions
    1. Invoke popup menu on desired record in "Summary" section.
    2. There should be Diff to Previous Revision and Rollback Changes.
    • EXPECTED RESULT: Verify the functionality of each action. Behavior of these actions was described in Annotation actions section. Rollback Changes action can be invoked on multi selection that will rollback all differences among selected revisions.
  7. Diff functionality
    1. Select project root and invoke Subversion | Show History... popup menu action.
    2. Push Search button and then click "Diff" toggle button.
    • EXPECTED RESULT: Verify that table with list of files is displayed. Also area for "Diff" should be there.
  8. Summary file actions
    1. Invoke popup menu on line of single file in desired record in "Summary" section.
    2. There should be Diff to Previous Revision, Rollback Changes, Rollback to <appropriate revision of record> and View.
    • EXPECTED RESULT: Verify the functionality of each action. Behavior of these actions was described in Annotation actions section. Rollback Changes action can be invoked on multi selection that will rollback all differences among selected revisions. "View" action opens chosen file revision in editor area (read only).
  9. Diff functionality
    1. Select project root and invoke Subversion | Show History... popup menu action.
    2. Push Search button and then click "Diff" toggle button.
    • EXPECTED RESULT: Verify that table with list of files is displayed. Also area for "Diff" should be there.
  10. Diff actions
    1. Invoke popup menu on desired revision of the file in "Diff" section.
    2. There should be Rollback Changes action listed in popup menu.
    • EXPECTED RESULT: Verify the functionality of each action. Behavior of these actions was described in Annotation actions section. Rollback Changes action can be invoked on multi selection that will rollback all differences among selected revisions.
  11. Diff file actions
    1. Invoke popup menu on line of single file in desired record in "Diff" section.
    • EXPECTED RESULT: There should be Rollback Changes and Rollback to <appropriate revision of record> actions listed in popup menu.
  12. Diff Arrows
    1. There should be two: UP and DOWN arrows displayed next to "Summary" and {"Diff"} buttons - make sure that they are enabled for "Diff" section only.
    • EXPECTED RESULT: Verify the functionality of each arrow. Make sure that each time arrow button is pushed current difference is moved forwards (backwards) accordingly.
  13. Exploring revisions
    1. Select some file in this table that has more revisions and expand node.
    2. Select some revision.
    • EXPECTED RESULT: In "Diff" output area there should be displayed differences between selected and previous revision. On multi selection of two revisions of the same file there should be displayed differences between them. Differences should not be displayed for different files.
  14. Random search
    1. Invoke Subversion | Search History... on file, projects.
    • EXPECTED RESULT: Verify the functionality of "Search History" action on files, packages and project nodes. Verify that searched results meet searching criteria.


Test suite: Subversion Options

Purpose: This suite tests some configurable options of Subversion.
Setup: No setup is necessary.

  1. Invoking Subversion Options
    1. Invoke Tools | Options from main menu.
    2. Push "Miscellaneous" button.
    3. Select "Versioning" tab and then select {"Subversion"} from the "Versioning Systems" list.
    • EXPECTED RESULT: There should be three configurable options: "Specify the SVN Home Folder:" with {"Browse..."} button, "Connection Settings" with "Manage Connection Settings..." button and "Subversion Status Labels" with "Add Variable.." and "Define {Folder}..." buttons.
  2. Setting up SVN executable path
    • Comments: This test case is needed only if the SVN executable is not in the PATH variable and NetBeans is unable to locate it.
    • Setup: Follow steps from "Invoking Subversion Options" test case.
    1. Push the "Browse" button.
    2. "Browse for the SVN Executable" dialog appears. Use it to locate SVN executable and press {"OK"} button.
    • EXPECTED RESULT: After confirmation (using "OK") button and IDE restart, NetBeans should be able to use svn executable present in selected folder.
  3. Manage Connection Settings
    • Setup: Follow steps from "Invoking Subversion Options" test case.
    1. Push the "Manage Connection Settings" button.
    2. Dialog similar to "Checkout" dialog appears.
    3. You can remove any previously used Repository URL using the "Remove from History" button, change login information for the repository (User and Password), or text field. You have to confirm your changes by pressing the {"OK"} button
    • EXPECTED RESULT: Verify functionality of all mentioned functions in this dialog.
  4. Manage Labels
    • Setup: Follow steps from "Invoking Subversion Options" test case.
    1. Push the "Add Variable..." button.
    2. New window labeled "Select Variables" appears. You can choose any from offered variables and press {"OK"} button.
    3. Every time you add a variable, it is added at the end of the "Status Label Format" text field. You can also edit it by yourself. Explanation of all variables is displayed in the {"Select Variables"} window.
    4. Push the "Define {folder}..." button.
    5. "Manage Labels" dialog appears. Verify that it contains {"Add"}, "Add with Wizard", "Edit", "Remove", "Move Up", "Move Down", "Reset to Defaults", "OK", "Cancel" and "help" buttons and a table with two columns labeled "Repository Url RegExp Pattern" and "{folder} variable".
    6. The table and buttons "Move Up", {"Move Down"}, "Edit" and "Remove" are all bound to the {folder} variable (functionality of these buttons is for moving and adding/removing lines in the table).
    7. Rows of the table are tested from first to last for matching regular expression in the "Repository Url Pattern". The first matching pattern is used and its {"Folder Name"} column used for substitution for the {folder} variable. For example \2 means, that 2nd part of the regular expression will be used.
    8. Push the "Reset to Defaults" button and then {"OK"} button.
    • EXPECTED RESULT: Verify that status labels are as defined in previous steps. (It is necessary to have View
Not logged in. Log in, Register

By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2012, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo