You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by bi...@apache.org on 2014/08/17 09:48:06 UTC
[19/50] git commit: [flex-sdk] [refs/heads/new_android_skins] -
FLEX-34119 FLEX-34440 Adding the setItemAt() operation to
HierarchicalCollectionViewCursor_FLEX_34119_Test,
which uncovers FLEX-34440. Separate unit test for FLEX-34440 will follow.
FLEX-34119 FLEX-34440 Adding the setItemAt() operation to HierarchicalCollectionViewCursor_FLEX_34119_Test, which uncovers FLEX-34440. Separate unit test for FLEX-34440 will follow.
Project: http://git-wip-us.apache.org/repos/asf/flex-sdk/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-sdk/commit/90c91362
Tree: http://git-wip-us.apache.org/repos/asf/flex-sdk/tree/90c91362
Diff: http://git-wip-us.apache.org/repos/asf/flex-sdk/diff/90c91362
Branch: refs/heads/new_android_skins
Commit: 90c9136299d993a0d8a8d97a861f663ea5593e16
Parents: 0e15df3
Author: Mihai Chira <mi...@apache.org>
Authored: Mon Jul 28 11:48:21 2014 +0100
Committer: Mihai Chira <mi...@apache.org>
Committed: Mon Jul 28 11:48:21 2014 +0100
----------------------------------------------------------------------
...hicalCollectionViewCursor_FLEX_34119_Test.as | 66 ++++++++++++--------
1 file changed, 39 insertions(+), 27 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/90c91362/frameworks/tests/unitTests/mx/collections/HierarchicalCollectionViewCursor_FLEX_34119_Test.as
----------------------------------------------------------------------
diff --git a/frameworks/tests/unitTests/mx/collections/HierarchicalCollectionViewCursor_FLEX_34119_Test.as b/frameworks/tests/unitTests/mx/collections/HierarchicalCollectionViewCursor_FLEX_34119_Test.as
index 8bc72d7..c32e406 100644
--- a/frameworks/tests/unitTests/mx/collections/HierarchicalCollectionViewCursor_FLEX_34119_Test.as
+++ b/frameworks/tests/unitTests/mx/collections/HierarchicalCollectionViewCursor_FLEX_34119_Test.as
@@ -8,7 +8,7 @@ package
import mx.collections.HierarchicalCollectionViewCursor;
import mx.collections.IViewCursor;
import mx.core.FlexGlobals;
-
+
import spark.components.WindowedApplication;
import flexunit.framework.AssertionFailedError;
@@ -49,7 +49,7 @@ package
private static var OPERATION_LOCATION:int = 0;
private static var OPERATION_INDEX:int = 0;
for(SELECTED_INDEX = 0; SELECTED_INDEX < NO_ITEMS_IN_HIERARCHY; SELECTED_INDEX++)
- for(OPERATION_LOCATION = SELECTED_INDEX -1; OPERATION_LOCATION >= 0; OPERATION_LOCATION--)
+ for(OPERATION_LOCATION = SELECTED_INDEX; OPERATION_LOCATION >= 0; OPERATION_LOCATION--)
for(OPERATION_INDEX = 0; OPERATION_INDEX < OPERATIONS.length; OPERATION_INDEX++)
positionAndOperation.push([SELECTED_INDEX, OPERATION_LOCATION, OPERATIONS[OPERATION_INDEX]]);
}
@@ -124,7 +124,7 @@ package
[Test(dataProvider="positionAndOperation")]
public function testReproduce_FLEX_34119_Comprehensive(selectedItemIndex:int, operationIndex:int, operation:int):void
{
- assertThat(operationIndex < selectedItemIndex);
+ assertThat(operationIndex <= selectedItemIndex);
try {
//WHEN
@@ -143,17 +143,21 @@ package
selectedNode.isSelected = true;
+ var selectedNodeOrDirectAncestorWasRemoved:Boolean;
//3. Perform operation
if (operation == OP_ADD)
- testAddition(_operationCursor);
+ selectedNodeOrDirectAncestorWasRemoved = testAddition(_operationCursor);
else if (operation == OP_REMOVE)
- testRemoval(_operationCursor);
+ selectedNodeOrDirectAncestorWasRemoved = testRemoval(_operationCursor, selectedNode);
+ else if(operation == OP_SET)
+ selectedNodeOrDirectAncestorWasRemoved = testReplacement(_operationCursor, selectedNode);
//THEN 1
assertTrue(_noErrorsThrown);
-
-
+ if(selectedNodeOrDirectAncestorWasRemoved)
+ return; //it means that _sut.current is now (correctly) null
+
//4. Create mirror HierarchicalCollectionView from the changed root, as the source of truth
_mirrorCursor = _utils.navigateToItem(_currentHierarchy.createCursor() as HierarchicalCollectionViewCursor, selectedNode);
@@ -181,25 +185,16 @@ package
_operationCursor = _currentHierarchy.createCursor() as HierarchicalCollectionViewCursor;
_operationCursor.seek(new CursorBookmark(where));
var itemToPerformOperationOn:DataNode = _operationCursor.current as DataNode;
-
- switch(operation)
- {
- case OP_ADD:
- return _utils.nodesHaveCommonAncestor(itemToPerformOperationOn, selectedNode, _currentHierarchy);
- case OP_REMOVE:
- return !_utils.isAncestor(itemToPerformOperationOn, selectedNode, _currentHierarchy);
- case OP_SET:
- return false;
- default:
- return false;
- }
+ return _utils.nodesHaveCommonAncestor(itemToPerformOperationOn, selectedNode, _currentHierarchy);
}
- private function testRemoval(where:HierarchicalCollectionViewCursor):void
+ private function testRemoval(where:HierarchicalCollectionViewCursor, selectedNode:DataNode):Boolean
{
var itemToDelete:DataNode = where.current as DataNode;
assertNotNull(itemToDelete);
-
+
+ var currentWillBeNulled:Boolean = itemToDelete == selectedNode || _utils.isAncestor(itemToDelete, selectedNode, _currentHierarchy);
+
//mark the next item, so we know which item disappeared
where.moveNext();
var nextItem:DataNode = where.current as DataNode;
@@ -209,16 +204,15 @@ package
//remove the item
var parentOfItemToRemove:DataNode = _currentHierarchy.getParentItem(itemToDelete) as DataNode;
var collectionToChange:ArrayCollection = parentOfItemToRemove ? parentOfItemToRemove.children : _utils.getRoot(_currentHierarchy) as ArrayCollection;
- //trace("REM: sel=" + selectedNode + "; before=" + itemToDelete);
+ //trace("REM: sel=" + selectedNode + "; before=" + nextItem);
_operationPerformedInLastStep = true;
collectionToChange.removeItem(itemToDelete);
+
+ return currentWillBeNulled;
}
- /**
- * @return true when the where parameter designates an item on the root collection (last ancestor of modified node)
- */
- private function testAddition(where:HierarchicalCollectionViewCursor):void
+ private function testAddition(where:HierarchicalCollectionViewCursor):Boolean
{
var itemBeforeWhichWereAdding:DataNode = where.current as DataNode;
assertNotNull(itemBeforeWhichWereAdding);
@@ -229,7 +223,25 @@ package
_operationPerformedInLastStep = true;
collectionToChange.addItemAt(_utils.createSimpleNode(itemBeforeWhichWereAdding.label + " [INSERTED NODE]"), positionOfItemBeforeWhichWereAdding);
- //trace("ADD: sel=" + selectedNode + "; before=" + itemBeforeWhichWereAdding);
+ //trace("ADD: sel=" + selectedNode + ");
+ return false;
+ }
+
+ private function testReplacement(where:HierarchicalCollectionViewCursor, selectedNode:DataNode):Boolean
+ {
+ var itemToBeReplaced:DataNode = where.current as DataNode;
+ assertNotNull(itemToBeReplaced);
+
+ var currentWillBeNulled:Boolean = itemToBeReplaced == selectedNode || _utils.isAncestor(itemToBeReplaced, selectedNode, _currentHierarchy);
+
+ var parentOfReplacementLocation:DataNode = _currentHierarchy.getParentItem(itemToBeReplaced) as DataNode;
+ var collectionToChange:ArrayCollection = parentOfReplacementLocation ? parentOfReplacementLocation.children : _utils.getRoot(_currentHierarchy) as ArrayCollection;
+ var replacedItemIndex:int = collectionToChange.getItemIndex(itemToBeReplaced);
+
+ _operationPerformedInLastStep = true;
+ collectionToChange.setItemAt(_utils.createSimpleNode(itemToBeReplaced.label + " [REPLACED NODE]"), replacedItemIndex);
+ //trace("REPLACE: sel=" + selectedNode + ");
+ return currentWillBeNulled;
}