TS 65 CVS ST

NetBeans CVS Support Sanity Test Specification

Author: Peter Pis
Version: 1.16.34
Lastupdate: 24.11.2008
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 NetBeans CVS Support module should be tested in order to know whether all of its functionality work correctly.

Contents

Test suite: Setting up CVSRoot

Purpose: This suite tests whether it is possible to setup valid CVS repository using different types of connection to CVS server.
Setup: No special setup is needed.

  1. CVS pserver
    1. Invoke Versioning | CVS | Checkout... action from main menu.
      "Checkout"
      dialog shows up.
    2. Switch to CVS Root field and set it to e.g.
      ":pserver:anoncvs@netbeans.org:/cvs"
    3. After setting up
      ":pserver:"
      connection type there should be visible {"CVS Root"}, "Password" and "Proxy Configuration..." components.
    4. Setup password and verify functionality of
      "Proxy Configuration"
      dialog.
    • EXPECTED RESULT: Press Next button. Next dialog of
      "Checkout"
      should show up. Verify all {"Browse..."} buttons in second step of "Checkout" dialog. Push "Finish" button. Verify result of Checkout action.
  2. CVS ext
    1. Invoke Versioning | CVS | Checkout... action from main menu.
      "Checkout"
      dialog shows up.
    2. Switch to CVS Root field and set it to e.g.
      ":ext:anoncvs@netbeans.org:/cvs"
    3. After setting up
      ":ext:"
      connection type there should be visible {"CVS Root"} text field, "Use Internal SSH" and "Use External Shell" radiobuttons, "Remember Password" checkbox, "Proxy Configuration..." button, "Password", "SSH Command" text field components.
    4. Select
      "Use Internal SSH"
      radiobutton.
    5. Select
      "Use External Shell"
      radiobutton.
    6. Select
      "Use Internal SSH"
      radiobutton again.
    7. Setup valid password.
    • EXPECTED RESULT: Press Next button. Next dialog of
      "Checkout"
      should show up. Verify all {"Browse..."} buttons in second step of "Checkout" dialog. Push "Finish" button. Verify result of Checkout action.
  3. CVS local
    1. Invoke Versioning | CVS | Checkout... action from main menu.
      "Checkout"
      dialog shows up.
    2. Switch to CVS Root field and set it to e.g.
      ":local:/path_repository"
    3. After setting up
      "fork"
      connection type there should be visible {"CVS Root"} component.
    • EXPECTED RESULT: Press Next button. Next dialog of
      "Checkout"
      should show up. Verify all {"Browse"} buttons in second step of "Checkout" dialog. Push "Finish" button. Verify result of Checkout action.
  4. CVS fork
    1. Invoke Versioning | CVS | Checkout... action from main menu.
      "Checkout"
      dialog shows up.
    2. Switch to CVS Root field and set it to e.g.
      ":fork:/path_repository"
    3. After setting up
      "fork"
      connection type there should be visible {"CVS Root"} component.
    • EXPECTED RESULT: Press Next button. Next dialog of
      "Checkout"
      should show up. Verify all {"Browse..."} buttons in second step of "Checkout" dialog. Push "Finish" button. Verify result of Checkout action.
  5. Change CVS root
    1. Select project root and invoke Versioning | Change CVS Root... from main menu.
    2. New window with two noneditable text fields labeled
      "Working Copy"
      and {"Current CVS Root"} and one editable text field labeled "New CVS Root" appears.
    3. Either edit the last mentioned text field manually or Push the
      "Edit"
      button and setup a new CVS root and push {"Change"} button.
    • EXPECTED RESULT: "CVS Root Rewritten Successfully" message appears bottom left in the IDE. Since now the project has a new CVS Root (May be useful when need to login to repository as a different user or using different access method)


Test suite: Importing new project

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

  1. Project import
    1. Invoke
      "File | New Project..."
      from main menu.
    2. "New Project"
      window 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 Versioning | Import into CVS Repository... popup menu action.
    6. "Import Project Options"
      dialogs shows up.
    7. Setup
      "CVS Root"
      as desired and all necessary fields for chosen access method and push {"Next"} button.
    8. Enter some comment into
      "Import Message"
      field, check {"Check after Import"} checkbox and push "Finish" button.
    • EXPECTED RESULT: In
      "Output"
      tab verify whether {"Import"} and "Check out" command finished successfully. Now CVS context commands on this project root in "Projects" view shouldn't contain "Import into Repository" action.


Test suite: Standard development of project

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

  1. "CVS"
    tab
    1. Invoke Window | Versioning | CVS from main menu.
    • EXPECTED RESULT: Verify that in
      "CVS"
      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 CVS | Update popup menu action on project root.
    • EXPECTED RESULT: Verify that in
      "Output"
      tab there is message {"IDE: [DateTime] Updating Sources finished"}. <No Files Were Changed By The Update> should be displayed in "Versioning Output" or list of all files updated.
  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. Files differences
    1. Create new package
      "xx.yy"
      in this project.
    2. Create new
      "Java Class"
      {"NewClass"} in package "xx.yy".
    3. Select project root and invoke Versioning | Show Changes from main menu.
    4. Files should be listed in
      "CVS"
      tab - {"Main.java"} and "NewClass".
    5. Select the root of the project and invoke CVS | Diff popup menu action.
    • EXPECTED RESULT: Special window is displayed.
      "Main.java"
      and {"NewClass.java"} should be contained in a table. Verify functionality of "UP" and "DOWN" arrows. (Arrow navigates among all differences on processed files). Verify functionality of "Diff" icon in "CVS" tab - same result as for context command.
  5. CVS tab action
    1. Select the root of the project and invoke CVS | 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.
  6. Commit file
    • Setup: Externally create file named "Template" and place it in the {project_dir}/src/{project_name}/CVS with text "Load from Template test" as its content.
    1. Switch to
      "CVS"
      tab.
    2. Push
      "Commit All"
      icon.
    3. "Commit"
      dialog shows up. It should contain two files: {"Main.java"} and "NewClass.java". Click on "Load Template" button (folder icon above the text field). Text from file "Template" created before beginning of this test case should appear as the commit text.
    4. Push the
      "Commit"
      button. Note that next time you will invoke the {"Commit dialog"} again, the commit message will be prefilled with the last one used. You can choose from list of previously entered commit messages by clicking the "Recent Messages" button (sheet icon above the text field).
    • EXPECTED RESULT: Verify that blue badges disappeared. Files should disappear from
      "CVS"
      tab too.
  7. Create conflict
    1. Modify
      "Main.java"
      file and save it.
    2. Invoke Versioning | Checkout... from main menu and setup the same parameters as for previous Suites but with different
      "Local Folder"
      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 Versioning | Update Project with Dependencies popup menu action.
    • EXPECTED RESULT:
      "Warning"
      dialog about local conflicts 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 "CVS" tab.
  8. Resolve conflict
    1. Invoke CVS | 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
      "Local Working File"
      , right pane {"Remote File"} and bottom should read "Result after merge".
    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.
  9. 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 Yes in follow-up question dialog.
    4. File should disappear from all explorer views. It should appear in
      "CVS"
      tab.
    5. Select
      "NewClass.java"
      in {"CVS"} tab and invoke Revert Delete popup menu action.
    6. Confirm your decision by clicking Yes 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 {"CVS"} tab and invoke Commit... popup menu action.
    11. "Commit"
      dialog shows up. Fill commit message and push {"Commit"}.
    • EXPECTED RESULT: File
      "NewClass.java"
      should disappear from all explorer views, and from {"CVS"} tab.
  10. Exclude file from commit
    1. Create
      "JFrame"
      in {"xx.yy"} package.
    2. Invoke CVS | Commit... on this JFrame in
      "Projects"
      view.
    3. Switch to
      "CVS"
      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. Push "Commit" button.
    • 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
      "CVS"
      tab and performing Include in Commit must return file to {"committing"} status.
  11. Exclude from commit
    • Setup: Modify at least two files in the {project_name} package and save them.
    1. Select the {project_name} package in the
      "project"
      view and invoke CVS | Exclude from Commit from its context menu. The blue badges in the {"Project"} view should disappear.
    2. Open the
      "CVS"
      tab. The files modified in setup of this test case should be listed there, but their names should be strike-through as an indication they are excluded from commit.
    3. Push
      "Commit All"
      icon. {"Commit dialog"} shows up.
    • EXPECTED RESULT: The
      "Commit"
      button should be disabled as all of modified files are excluded from commit. Note that you can change action in the {"Commit Action"} column to "Commit". This should enable the "Commit" button again.
  12. Ignore file
    1. Create new
      "Java class"
      ("NewClass2") into {"xx.yy"} package.
    2. Select this java file and invoke CVS | Ignore .
    • EXPECTED RESULT:
      ".cvsignore"
      should be displayed in {"CVS"} tab. "NewClass2.java" should change its color to gray, path to ".cvsignore" file should be indicated by badges.
  13. Unignore file
    1. Select
      "NewClass2.java"
      in {"Projects"} view and invoke Versioning | Unignore popup menu action. Verify that this action is also accessible from main menu.
    2. "CVS"
      tab should contain {".cvsingnore (Locally Deleted)"} and "NewClass2.java (Locally New)" files. Path to this should be indicated with blue badges.
    3. Select project root and invoke Versioning | Commit... action from main menu.
    4. "Commit"
      dialog shows up, enter some commit message and push {"Commit"} button.
    • EXPECTED RESULT: Both files should disappear from
      "CVS"
      tab. Font color of {"NewClass2.java"} file is black now.
  14. 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 CVS | Revert Modifications
    6. Confirm your decision by clicking Yes in follow-up question dialog.
    • EXPECTED RESULT: All changes should be reverted. Indicating badges should disappear.
      "NewClass2.java"
      file should not be listed in {"CVS"} tab.
  15. Status and Labels
    1. Select View | Show Versioning Labels value from main menu.
    2. Modified files should have
      "[Modified]"
      status information in explorers.
    3. Files in conflict should have
      "[Conflict]"
      status information in explorers.
    4. Files in branch should have also information with branch name in explorer. ([[[Modified;NewBranch | [Modified; NewBranch]])
    • EXPECTED RESULT: Verify this functionality in
      "Projects"
      , {"Files"} and "Favorites" view. There are no status information for "uptodated" files and no labels for files in "Trunk".
    • EXPECTED RESULT: CVS actions invoked on packages
      "Projects"
      view shouldn't be performed recursively. Make sure that Update, Diff, Tag, Branch, 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.
  16. Refactoring
    1. Switch to
      "Files"
      view, select package {"xx"} and invoke Refactor | Rename... popup menu action on it.
    2. Enter new name
      "yz"
      for it and push {"Next"} button. Special window shows up, push "Refactor".
    3. Make sure that all refactored nodes with new name are marked as
      "[LocallyNew]"</nowiki>.
      
#* {{result|EXPECTED RESULT: Push '''Commit''' make sure that file nodes disappear. And all files were committed as well.}} #* }}teardown rename all files back. <br> ====Test suite: Working with Tags and Branches==== Purpose: This suite tests work-flow with tags and branches. <br> Setup: No setup is necessary except steps from previous test suite. <br> # {{testcase|Tag creation }} ##Select <pre>"Main.java" file node and invoke CVS | Tag... popup menu action.
    1. Dialog shows up. Enter name for tag, check first two check boxes and push
      "Tag"
      button.
    • EXPECTED RESULT: There should be lines similar to
      "T Main.java IDE: [25/07/0514:40] Tagging Main.java finished"
      in the {"Output"} tab.
  1. Branch creation
    1. Select project root and invoke CVS | Branch... popup menu action.
    2. Dialog for branching shows up. Setup
      "Branch Name"
      to e.g. {"new_branch"} and "Tag Before Branching" will be automatically set up to "new_branch_root".
    3. Check both checkboxes.
    4. Push
      "Branch"
      button.
    • EXPECTED RESULT: Verify in
      "output"
      tab whether project was branched properly.
  2. Committing to branch
    1. Select the
      "Main.java"
      file, modify and save it.
    2. Invoke CVS | Commit... popup menu action.
    3. Commit dialog shows up and there should be listed
      "Main.java"
      file and information about the branch - {"Committing to "new_branch" branch"}. Push "Commit" button.
    • EXPECTED RESULT: Verify in
      "Output"
      tab whether it action finished successfully.
  3. Merge from branches
    1. Select the project root and invoke CVS | Switch to Branch... popup action.
    2. Select the
      "Switch to Trunk"
      radiobutton 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_branch"
      .
    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 CVS | Merge Changes from Branch.... popup menu action.
    10. Push
      "Merge"
      button.
    11. Dialog shows up with the information that there are conflicts.
    • EXPECTED RESULT: Files in conflicts are displayed with red color in
      "CVS"
      tab. Resolve all the conflicts.


Test suite: Inspecting Sources

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

  1. Annotations
    1. Select
      "Main.java"
      node and invoke CVS | 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 "1.2").
    4. All lines with revision ("1.2") 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 1.2 to 1.1, Rollback to 1.2, Find Commit in "Project", Find Commit In Open Projects and Hide Annotations actions listed in popup menu.
  2. Search history
    1. Switch to
      "Projects"
      view and select project root.
    2. Invoke CVS | 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.
  3. Summary functionality
    • Comments: * - previous revision number.
    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
      "file name"
      , {"file location"}, "revision number", "date", "username", "commit message for revision" information and "Find Commit in: "Project"" and "Open Projects" links there. Files that have more revisions than one should contain "Diff to x.y*" link. More to it, there is "branch name" or "tag name", or list of them labeled with "..." if there is more than one (click on its label to expand it).
  4. Summary actions
    1. Invoke popup menu on desired record in "Summary" section.
    2. There should be Diff to ..., Rollback Changes, Rollback to ..., View, Find Commit in "Project" and Find Commit In Open Projects actions listed in popup menu.
    • EXPECTED RESULT: Verify the functionality of each action. Behavior of these actions was described in
      "Annotation actions"
      section except for View ... action which will open a new tab in editor with selected revision of that file. Rollback Changes action can be invoked on multiselection that will rollback all differences among selected revisions.
  5. Find commit in Open Projects
    1. Select some record in
      "Summary"
      output area, e.g. "build.xml" file.
    2. Click
      "Find Commit in Open Projects"
      link.
    • EXPECTED RESULT: Verify that all fields (
      "Message"
      , {"User name"}, "From" and "To") are pre-filled with appropriate values taken from the specific record of "Summary" output tab. Result of "Summary" output tab should be updated properly from the current project - only records that meet criteria should be displayed here.
  6. Diff functionality
    1. Select project root and invoke CVS | Search 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.
  7. Diff actions
    1. Invoke popup menu on desired revision of the file in "Diff" section.
    2. There should be Rollback to ..., Rollback Changes, View, Find Commit in "Project" and Find Commit In Open Projects actions 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 multiselection that will rollback all differences among selected revisions.
  8. 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.


Test suite: CVS Options

Purpose: This suite tests some configurable options of CVS
Setup: CVS versioned project with at least one branch has to be opened.

  1. Opening CVS Options
    1. Invoke Tools | Options from main menu.
    2. Push
      "Miscellaneous"
      button.
    3. Select
      "Versioning"
      tab and then {"CVS"} from the "Versioning systems" list.
    • EXPECTED RESULT: There should be three configurable options:
      "Status Label Format"
      , {"Apply "Exclude From Commit" On New Files Automatically"} and "Wrap Commit Messages To (characters)".

}}
}}

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