| This is a test list for the integrated undo/redo framework |
| |
| Actions |
| Verify that "Undo Typing" appears in action bar edit menu and editor popup menu once text has been typed. |
| Verify that "Redo Typing" appears in action bar edit menu immediately after an undo has been performed. |
| Move between different editors and verify that the undo/redo state matches the current editor and that the undo performs the expected operation. |
| Verify that "Undo <name of refactoring op>" appears in action bar edit menu and editor popup menu immediately after performing a refactoring from that editor. |
| Verify that "Undo <name of refactoring op>" appears in action bar edit menu of Package Explorer and Navigator after performing a refactoring from anywhere. |
| |
| Preferences |
| Set different text undo limits (including 0) in the text editor preferences (General>Editors>TextEditors>Undo history size) and verify they work as expected. |
| Integrated Scenarios |
| <setup> |
| For the following text-refactoring integrated scenarios, do the following first: |
| a. Create a Java project "Undo Scenarios". |
| b. Create a package "xxx". |
| c. Copy the java files provided in org.eclipse.ui.tests/ManualComponentTests/Undo test files to "xxx". |
| <simple refactoring undo> |
| a. Open A.Java and B.java |
| b. In A, click in the method name for "bar" and choose Refactor>Rename |
| c. Rename "bar" to "bar2" |
| d. Verify that "Undo Rename method bar to bar2" appears in Edit>Undo in pulldown menu of editor, editor popup, Package Explorer, and Navigator. |
| e. Select "Undo Rename method bar to bar2" from any of these locations |
| f. Operation is undone without prompting or warning |
| g. Verify that "Redo Rename method bar to bar2" appears in Edit>Undo pulldown menu for the editor, Navigator, and Package Explorer. |
| h. Select "Redo Rename method bar to bar2" from any of these locations |
| i. Operation is redone without prompting or warning |
| j. Undo again to revert files to original state and close editors. |
| <prompt on non-local undo, proceed> |
| a. Open A.Java and B.java |
| b. In A, click in the method name for "foo" and choose Refactor>Rename |
| c. Rename "foo" to "foo2" |
| d. Verify that "Undo Rename method foo to foo2" appears in Edit>Undo in pulldown menu of editor, editor popup, Package Explorer, and Navigator. |
| e. Select "Undo Rename method foo to foo2" from A's edit menu. |
| f. Operation prompts as to whether you want to proceed since the refactoring affects other files. |
| g. Select "yes" and operation is undone. |
| h. Select "Redo Rename method foo to foo2" from package explorer. |
| i. Operation prompts as to whether you want to proceed since the refactoring affects other files. |
| j. Undo again to revert files to original state and close editors. |
| <prompt on non-local undo, cancel> |
| a. Open A.Java and B.java |
| b. In A, click in the method name for "foo" and choose Refactor>Rename |
| c. Rename "foo" to "foo2" |
| d. Verify that "Undo Rename method foo to foo2" appears in Edit>Undo in pulldown menu of editor, editor popup, Package Explorer, and Navigator. |
| e. Select "Undo Rename method foo to foo2" from A's edit menu. |
| f. Operation prompts as to whether you want to proceed since the refactoring affects other files. |
| g. Select "cancel" and operation is cancelled. |
| h. Verify that "Undo Rename method foo to foo2" is still in the Edit>Undo menu. |
| i. Select "Undo Rename method foo to foo2" again, choosing "yes" when prompted. |
| j. Close editors |
| <prompt on non-local undo, discard undo> |
| a. Open A.Java and B.java |
| b. In A, click in the method name for "foo" and choose Refactor>Rename |
| c. Rename "foo" to "foo2" |
| d. Verify that "Undo Rename method foo to foo2" appears in Edit>Undo in pulldown menu of editor, editor popup, Package Explorer, and Navigator. |
| e. Select "Undo Rename method foo to foo2" from A's edit menu. |
| f. Operation prompts as to whether you want to proceed since the refactoring affects other files. |
| g. Select "Discard Undo" and operation is cancelled. |
| h. Choose "Undo Typing" from A to revert the text part of the refactoring |
| i. Go to B and choose "Undo Typing" to revert the text part of the refactoring change. |
| j. Close editors |
| <prompt on non-local undo, do not proceed, with undo/redo in between (bug 97939) |
| a. Open A.Java and B.java |
| b. In A, click in the method name for "foo" and choose Refactor>Rename |
| c. Rename "foo" to "foo2" |
| d. Verify that "Undo Rename method foo to foo2" appears in Edit>Undo in pulldown menu of editor, editor popup, Package Explorer, and Navigator. |
| e. Select "Undo Rename method foo to foo2" from A's edit menu. |
| f. Operation prompts as to whether you want to proceed since the refactoring affects other files. |
| g. Select "yes" and operation is undone. |
| h. Select "Redo Rename method foo to foo2" from package explorer. |
| i. Operation prompts as to whether you want to proceed since the refactoring affects other files. |
| j. Select "yes" and operation is redone. |
| k. Select "Undo Rename method foo to foo2" from A's edit menu. |
| l. Operation prompts as to whether you want to proceed since the refactoring affects other files. |
| m. Select "Discard Undo" and operation is cancelled. |
| n. Choose "Undo Typing" from A to revert the text part of the refactoring |
| o. Go to B and choose "Undo Typing" to revert the text part of the refactoring change. |
| p. Close editors |
| <detection of changed file> |
| a. Open A.Java and B.java |
| b. In A, click in the method name for "foo" and choose Refactor>Rename |
| c. Rename "foo" to "foo2" |
| d. In B, type some text anywhere. |
| e. Go back to A and Select "Undo Rename method foo to foo2" from A's edit menu. |
| f. Operation informs you that it cannot be completed since B has changed. |
| g. Select OK |
| h. Choose "Undo Typing" from A to revert the text part of the refactoring |
| i. Go to B and choose "Undo Typing" to revert the typed changes followed by the text part of the refactoring change. |
| <detection of changed file with undo/redo in between (bug 97939)> |
| a. Open A.Java and B.java |
| b. In A, click in the method name for "foo" and choose Refactor>Rename |
| c. Rename "foo" to "foo2" |
| d. Verify that "Undo Rename method foo to foo2" appears in Edit>Undo in pulldown menu of editor, editor popup, Package Explorer, and Navigator. |
| e. Select "Undo Rename method foo to foo2" from A's edit menu. |
| f. Operation prompts as to whether you want to proceed since the refactoring affects other files. |
| g. Select "yes" and operation is undone. |
| h. Select "Redo Rename method foo to foo2" from package explorer. |
| i. Operation prompts as to whether you want to proceed since the refactoring affects other files. |
| j. Select "yes" and operation is redone. |
| k. In B, type some text anywhere. |
| l. Go back to A and Select "Undo Rename method foo to foo2" from A's edit menu. |
| m. Operation informs you that it cannot be completed since B has changed. |
| n. Select OK |
| o. Choose "Undo Typing" from A to revert the text part of the refactoring |
| p. Go to B and choose "Undo Typing" to revert the typed changes followed by the text part of the refactoring change. |
| |
| Manual Testing of Examples |
| |
| An unreleased example app is used to manually test certain user operations and to watch the undo |
| history using an OperationsLogView. To do the testing below, you must have access to the Ottawa |
| CVS repository (host: ottcvs1.ott.oti.com, repository path: /home/cvs/desktop). |
| Check out the project org.eclipse.ui.operations.examples from HEAD and then run a workbench. There |
| must be at least some *.xml file in the workspace (create a plug-in project if your workspace is empty). |
| The scenarios are designed to be run sequentially, as the example operations cycle through three |
| statuses - INFO, WARNING, ERROR. |
| |
| 1 - <correct handling of long label names> |
| a. Select a *.xml file in the navigator or package explorer. |
| b. Popup the menu and choose Operations>Example Operation. |
| c. A message box appears confirming the execution of the operation. |
| d. Check the undo menu for the package explorer and verify that the long name |
| has ellipsis (...) in the middle of it |
| |
| 2 - <correct handling of undo and progress monitor> |
| e. Undo the operation from the package explorer |
| f. Verify that an hour glass appears |
| g. After a short wait, a progress monitor should appear |
| h. A message box appears confirming the undo. |
| |
| 3 - <verify anything missed above and add redo> |
| i. repeat steps (a) through (h) above to double check hour glass, etc. |
| j. Check that the redo menu for the package explorer shows the operation |
| k. Redo the operation |
| l. A message box appears confirming the redo |
| |
| 4 - <proper handling of operation exceptions> |
| m. repeat steps (a) through (g) above. |
| n. After the progress dialog disappears, you should get a message informing |
| you of an error/Abnormal Workbench Condition |
| o. Verify that undo/redo are disabled after this error. |
| |
| 5 - <correct handling of INFO, WARNING status from AdvancedValidatingOperationApprover> |
| a. Select a *.xml file in the navigator or package explorer. |
| b. Popup the menu and choose Operations>Advanced Example Operation. |
| c. A message box appears confirming the execution of the operation. |
| d. Check the undo menu for the package explorer and verify that the long name |
| has ellipsis (...) in the middle of it |
| e. Undo the operation from the package explorer |
| f. Select "Undo A very long str... |
| g. You should immediately see a dialog titled "Undo Information" and be asked whether to proceed. |
| h. Choose yes. |
| i. You should see a progress dialog and then a message box when the operation is complete |
| j. At this point you should see the Redo Action available |
| k. Repeat steps (a) through (j). The only difference should be that the |
| dialog in (e) is titled "Undo Warning" with a slightly different message. |
| If you are fast enough, cancel the progress dialog to verify it stops the operation |
| (no prompt at the end). |
| 6 - <correct handling of ERROR status from AdvancedValidatingOperationApprover> |
| a. Select a *.xml file in the navigator or package explorer. |
| b. Popup the menu and choose Operations>Advanced Example Operation. |
| c. A message box appears confirming the execution of the operation. |
| d. Select "Undo A very long str... |
| e. You should first see a progress dialog while the operation computes validity |
| f. You should then see a dialog titled "Undo Problem" informing you the operation cannot undo |
| g. Undo and Redo should no longer be available in the menu. |
| |
| 7 - <correct handling of cancel/flush inside LinearUndoViolationUserApprover> |
| a. Select a *.xml file in the navigator or package explorer. |
| b. Popup the menu and choose Operations>Invalid Example Operation. |
| c. A message box appears confirming the execution of the operation. |
| d. Select "Undo A very long str... |
| e. A message box appears informing you of more recent changes to the package explorer and |
| asks if you wish to undo those local changes first. |
| f. Answer no. |
| g. Verify that the undo menu item remains the same. |
| |
| 8 - <correct handling of rollback failure inside LinearUndoViolationUserApprover> |
| a. Select a *.xml file in the navigator or package explorer. |
| b. Popup the menu and choose Operations>Invalid Example Operation. |
| c. A message box appears confirming the execution of the operation. |
| d. Select "Undo A very long str... |
| e. A message box appears informing you of more recent changes to the package explorer and |
| asks if you wish to undo those local changes first. |
| f. Answer yes. |
| g. Verify that undo is still available (due to failure in the rollback) |
| h. Undo the item again, this time it should be successful and redo should be available. |
| |
| |
| |
| |