DevDocDeletionTests - JUCMNAV/projetseg-update GitHub Wiki
- This document presents the critical scenarios to be tested when changing deletion. Ideally, these would be implemented as automated tests.
- Unless otherwise specified the general behaviour is:
- delete the element with the test name
- make sure doesn’t crash while deleting
- save + make sure doesn’t crash
- undo + make sure doesn’t crash
- (move something so that the editor is dirty)
- save + make sure doesn’t crash
deletion_tests1.jucm: basic tests. Everything is inside a component to make sure ComponentRef bindings are broken.
Node should be removed from spline.
Node should be removed from spline.
Test3: simple path, from start point. Path should be deleted. Verify that all elements are bound to parent when undone.
Make sure their deletion removes the fork and disconnects all branches
Make sure their deletion removes the join and disconnects all branches
The branch should be removed. Verify that all elements are bound to parent when undone.
Remove all branches (both Test8 + Test7) and verify that the fork is transformed into an empty point. Verify that all elements are bound to parent when undone.
Delete the path and verify that the or fork is deleted and paths are disconnected. Verify that all elements are bound to parent when undone.
Delete the path and verify that the or join is deleted and paths are disconnected.
The branch should be removed.
Remove all branches (both Test11 + Test12) and verify that the join is transformed into an empty point.
When undeleted, verify that it is bound to the parent.
When undeleted, verify that the inner component is bound to the parent.
Ctrl-a + delete.
Verify that all conditions disappear on the outgoing connections and reappears in correct order on undo.
Verify that all conditions disappear on the fork’s outgoing connections and reappears in correct order on undo. Verify that the pre condition reappears after deletion.
Test 3: Conditions Verify that the post condition reappears after deletion. Verify that the Test9 stub is not deleted. Verify that no OUT1 label remains.
Verify that the right most timer gets deleted and that its timeout path no longer has the timeout icon on it. Verify that the conditions reappear and that the path order is preserved after undo.
Verify that the timeout path is disconnected and that the timer is not deleted.
Verify that the condition still remains after deletion.
Insert a PathNode (for example responsibility reference) onto the node connections with conditions or timeout path icons. Verify that the conditions and timeout path icons remain on the appropriate node connection.
Make sure no IN/OUT labels remain after deletion. Verify that the stub is not replaced with an empty point because it may cause illegal loops later on. Repeat Test 8 but on the connections with in/out labels. Make sure that the labels aren’t inversed from connection to connection.
Perform test 10 then delete the stub. Verify that no illegal loop is formed.
Delete all PathNodes on the loop and verify that you don’t see any stub labels. Delete the stub afterwards to make sure there isn’t a tiny path hidden behind it.
Make sure first loop is broken
Make sure second loop is not broken.
Ctrl-a + delete.
Before the test, observe the stub bindings. After, Test3 stub should have 1in/1out and its bindings should show IN1 (instead of previous IN2). If you see IN0, there is an error. After undo, observe that the node connection label have returned back to the normal. Make sure conditions are back in the stub bindings and that the ordering of InBindings/OutBindings is correctly.
Same as Test 1 but for the other stub. There are good reasons for testing it separately. Please be very attentive.
Verify that paths are disconnected and that plugin bindings return after undo
Verify that paths are disconnected and that plugin bindings return after undo
Verify that bindings remain unchanged on left stub after redo and after undo
Verify that bindings remain unchanged on right stub after redo and after undo
Ctrl-a + delete.
Make sure deletion stops at start point.
Verify deletion stops at waiting place.
Verify deletion stops at timer
Verify deletion stops at timer
Select Test5 from the outline if you can’t select directly in the map. Verify deletion ends at the second timer, which is deleted. (Timer without timeout path isn’t affected)
Ctrl-a + delete.
Verify that the topmost curve is removed.
Verify path is deleted until timer with timeout path and that everything is disconnected.
Verify disconnection
Verify disconnection and deletion
Verify disconnection
Ctrl-a + delete.
* Combine the previous tests and make try to screw with node connections that have both conditions and bindings. * Delete node connections directly. * Delete component refs * Delete the map and its internals from the outline, simultaneously. We want to see what happens when, in a compound command, we want to delete something that was removed with its parent map. * Delete all maps and undo some; make sure that after doing this repetitively, it doesn’t crash the application.
-- Main.JasonKealey - 29 Jul 2005
- deletion_tests1.jucm: basic deletion
- deletion_tests2.jucm: loop deletion
- deletion_tests3.jucm: stub binding deletion
- deletion_tests4.jucm: connects deletion