You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by mi...@apache.org on 2014/08/11 13:41:55 UTC

[13/19] git commit: [flex-sdk] [refs/heads/develop] - FLEX-34424 Improved the unit test by making it parameterized and adding a few more cases.

FLEX-34424 Improved the unit test by making it parameterized and adding a few more cases.


Project: http://git-wip-us.apache.org/repos/asf/flex-sdk/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-sdk/commit/cc5f71cd
Tree: http://git-wip-us.apache.org/repos/asf/flex-sdk/tree/cc5f71cd
Diff: http://git-wip-us.apache.org/repos/asf/flex-sdk/diff/cc5f71cd

Branch: refs/heads/develop
Commit: cc5f71cd2161d0264ef1a178961eafe8d3ffc1ed
Parents: 4970df8
Author: Mihai Chira <mi...@apache.org>
Authored: Mon Jul 28 17:23:22 2014 +0100
Committer: Mihai Chira <mi...@apache.org>
Committed: Mon Jul 28 17:23:22 2014 +0100

----------------------------------------------------------------------
 ...hicalCollectionViewCursor_FLEX_34424_Test.as | 38 +++++++++++++-------
 1 file changed, 25 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/cc5f71cd/frameworks/tests/unitTests/mx/collections/HierarchicalCollectionViewCursor_FLEX_34424_Test.as
----------------------------------------------------------------------
diff --git a/frameworks/tests/unitTests/mx/collections/HierarchicalCollectionViewCursor_FLEX_34424_Test.as b/frameworks/tests/unitTests/mx/collections/HierarchicalCollectionViewCursor_FLEX_34424_Test.as
index 2927c16..8c2469c 100644
--- a/frameworks/tests/unitTests/mx/collections/HierarchicalCollectionViewCursor_FLEX_34424_Test.as
+++ b/frameworks/tests/unitTests/mx/collections/HierarchicalCollectionViewCursor_FLEX_34424_Test.as
@@ -7,6 +7,11 @@ import mx.collections.CursorBookmark;
 import mx.collections.HierarchicalCollectionView;
 import mx.collections.HierarchicalCollectionViewCursor;
 import mx.core.FlexGlobals;
+import mx.events.CollectionEvent;
+import mx.events.CollectionEventKind;
+import mx.events.PropertyChangeEvent;
+
+import org.flexunit.asserts.assertEquals;
 
 import org.flexunit.asserts.assertNotNull;
 import org.flexunit.asserts.assertTrue;
@@ -14,6 +19,7 @@ import org.flexunit.runners.Parameterized;
 
 import spark.components.WindowedApplication;
 
+[RunWith("org.flexunit.runners.Parameterized")]
 public class HierarchicalCollectionViewCursor_FLEX_34424_Test
 	{
         private static var _utils:HierarchicalCollectionViewTestUtils = new HierarchicalCollectionViewTestUtils();
@@ -21,6 +27,9 @@ public class HierarchicalCollectionViewCursor_FLEX_34424_Test
         private static var _currentHierarchy:HierarchicalCollectionView;
         private static var _sut:HierarchicalCollectionViewCursor;
         private static var _operationCursor:HierarchicalCollectionViewCursor;
+        public static var selectionAndRemovalLocations:Array = [[10, 8, 1], [11, 7, 1], [11, 6, 2], [19, 17, 1]];
+
+        private static var foo:Parameterized;
 
 		[BeforeClass]
 		public static function setUpBeforeClass():void
@@ -49,12 +58,9 @@ public class HierarchicalCollectionViewCursor_FLEX_34424_Test
 			_operationCursor = null;
 		}
 
-       	[Test]
-        public function testReproduce_FLEX_34424():void
+        [Test(dataProvider="selectionAndRemovalLocations")]
+        public function testReproduce_FLEX_34424(selectedItemIndex:int, removalIndex:int, noItemsToRemove:int):void
         {
-			//GIVEN
-			var selectedItemIndex:int = 10, operationIndex:int = 8;
-			
 			//WHEN
 			//1. Select a specific node
 			_sut.seek(new CursorBookmark(selectedItemIndex));
@@ -63,17 +69,17 @@ public class HierarchicalCollectionViewCursor_FLEX_34424_Test
             assertNotNull(selectedNode);
 		    selectedNode.isSelected = true;
 
-            //2. Perform setItemAt operation
+            //2. Perform removal
 			_operationCursor = _currentHierarchy.createCursor() as HierarchicalCollectionViewCursor;
-			_operationCursor.seek(new CursorBookmark(operationIndex));
-		    performRemoval(_operationCursor);
+			_operationCursor.seek(new CursorBookmark(removalIndex));
+		    performRemoval(_operationCursor, noItemsToRemove);
 
             //THEN
             assertTrue(_noErrorsThrown);
-            assertNotNull(_sut.current);
+            assertEquals(selectedNode, _sut.current);
         }
 		
-        private static function performRemoval(where:HierarchicalCollectionViewCursor):void
+        private static function performRemoval(where:HierarchicalCollectionViewCursor, noItemsToRemove:int):void
         {
             var itemToBeRemoved:DataNode = where.current as DataNode;
             assertNotNull(itemToBeRemoved);
@@ -82,7 +88,13 @@ public class HierarchicalCollectionViewCursor_FLEX_34424_Test
             var collectionToChange:ArrayCollection = parentOfReplacementLocation ? parentOfReplacementLocation.children : _utils.getRoot(_currentHierarchy) as ArrayCollection;
             var removedItemIndex:int = collectionToChange.getItemIndex(itemToBeRemoved);
 
-            collectionToChange.removeItemAt(removedItemIndex);
+            if(noItemsToRemove == 1)
+                collectionToChange.removeItemAt(removedItemIndex);
+            else {//note that this assumes the collection is not filtered or sorted; for this test the assumption holds.
+                var removedItems:Array = collectionToChange.source.splice(removedItemIndex, noItemsToRemove);
+                //fake a CollectionEventKind.REMOVE event with more than one item removed
+                collectionToChange.dispatchEvent(new CollectionEvent(CollectionEvent.COLLECTION_CHANGE, false, false, CollectionEventKind.REMOVE, removedItemIndex, -1, removedItems));
+            }
         }
 
 
@@ -109,9 +121,9 @@ public class HierarchicalCollectionViewCursor_FLEX_34424_Test
          Region(2)->City(1)->Company(2)
          Region(2)->City(1)->Company(2)->Department(1)
          Region(2)->City(1)->Company(2)->Department(2)
-         Region(2)->City(1)->Company(2)->Department(2)->Employee(1)TBR
+         Region(2)->City(1)->Company(2)->Department(2)->Employee(1)
          Region(2)->City(1)->Company(2)->Department(2)->Employee(2)
-         Region(2)->City(1)->Company(2)->Department(2)->Employee(3)SEL
+         Region(2)->City(1)->Company(2)->Department(2)->Employee(3)
          Region(2)->City(1)->Company(2)->Department(3)
          Region(2)->City(1)->Company(2)->Department(3)->Employee(1)
          Region(2)->City(1)->Company(2)->Department(3)->Employee(2)