flex-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mih...@apache.org
Subject [2/2] git commit: [flex-sdk] [refs/heads/develop] - FLEX-35037 Renaming test files to 1) show what they're testing and 2) make sure they're picked up and ran by the test scripts.
Date Mon, 22 Feb 2016 18:16:56 GMT
FLEX-35037
Renaming test files to 1) show what they're testing and 2) make sure they're picked up and ran by the test scripts.


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

Branch: refs/heads/develop
Commit: 81643dd12a659647b88921e27c2a10d43661a27b
Parents: 1d8d02c
Author: Mihai Chira <mihaic@apache.org>
Authored: Mon Feb 22 19:15:36 2016 +0100
Committer: Mihai Chira <mihaic@apache.org>
Committed: Mon Feb 22 19:15:36 2016 +0100

----------------------------------------------------------------------
 .../tests/mx/collections/AddRemoveNumbers.as    | 174 ----------
 .../tests/mx/collections/AddRemoveObjects.as    | 274 ---------------
 .../tests/mx/collections/AddRemoveStrings.as    | 200 -----------
 .../ArrayCollection_AddRemoveNumbers_Tests.as   | 174 ++++++++++
 .../ArrayCollection_AddRemoveObjects_Tests.as   | 274 +++++++++++++++
 .../ArrayCollection_AddRemoveStrings_Tests.as   | 200 +++++++++++
 ...ArrayCollection_FilerAndSortNumbers_Tests.as | 114 +++++++
 ...ArrayCollection_FilerAndSortStrings_Tests.as | 114 +++++++
 .../ArrayCollection_FilterNumbers_Tests.as      | 315 +++++++++++++++++
 .../ArrayCollection_FilterStrings_Tests.as      | 341 +++++++++++++++++++
 .../ArrayCollection_SortNumbers_Tests.as        | 212 ++++++++++++
 .../ArrayCollection_SortStrings_Tests.as        | 254 ++++++++++++++
 .../tests/mx/collections/FilerAndSortNumbers.as | 114 -------
 .../tests/mx/collections/FilerAndSortStrings.as | 114 -------
 .../tests/mx/collections/FilterNumbers.as       | 315 -----------------
 .../tests/mx/collections/FilterStrings.as       | 341 -------------------
 .../tests/mx/collections/SortNumbers.as         | 212 ------------
 .../tests/mx/collections/SortStrings.as         | 254 --------------
 18 files changed, 1998 insertions(+), 1998 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/81643dd1/frameworks/projects/framework/tests/mx/collections/AddRemoveNumbers.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/framework/tests/mx/collections/AddRemoveNumbers.as b/frameworks/projects/framework/tests/mx/collections/AddRemoveNumbers.as
deleted file mode 100644
index efd43f5..0000000
--- a/frameworks/projects/framework/tests/mx/collections/AddRemoveNumbers.as
+++ /dev/null
@@ -1,174 +0,0 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  Licensed to the Apache Software Foundation (ASF) under one or more
-//  contributor license agreements.  See the NOTICE file distributed with
-//  this work for additional information regarding copyright ownership.
-//  The ASF licenses this file to You under the Apache License, Version 2.0
-//  (the "License"); you may not use this file except in compliance with
-//  the License.  You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-//  Unless required by applicable law or agreed to in writing, software
-//  distributed under the License is distributed on an "AS IS" BASIS,
-//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-//  See the License for the specific language governing permissions and
-//  limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////////
-package mx.collections {
-    import org.flexunit.asserts.*;
-
-    public class AddRemoveNumbers
-	{	
-		protected var _sut:ArrayCollection;
-		
-		[Before]
-		public function setUp():void
-		{
-			_sut = new ArrayCollection();
-		}
-		
-		[After]
-		public function tearDown():void
-		{
-			_sut = null;
-		}
-		
-		[Test]
-		public function empty():void
-		{
-			//then
-			assertEquals(_sut.length, 0);
-		}
-		
-		[Test]
-		public function addNumbers():void
-		{
-			_sut.addItem(1);
-			assertEquals("Length is not one",  1, _sut.length);
-			assertEquals("First element not correct",  1, _sut[0]);
-			_sut.addItem(2);
-			assertEquals("Length is not two",  2, _sut.length);
-			assertEquals("Second element not correct",  2, _sut[1]);
-		}
-		
-		[Test]
-		public function addDuplicate():void
-		{
-			addNumbers();
-			_sut.addItem(1);
-			assertEquals("Length is not three",  3, _sut.length);
-			assertEquals("First element not correct",  1, _sut[0]);
-			assertEquals("Second element not correct",  2, _sut[1]);
-			assertEquals("Second element not correct",  1, _sut[2]);
-		}
-		
-		[Test]
-		public function removeDuplicate():void
-		{
-			addNumbers();
-			_sut.addItem(1);
-			_sut.removeItemAt(0);
-			assertEquals("Length is not two",  2, _sut.length);
-			assertEquals("First element not correct",  2, _sut[0]);
-			assertEquals("Second element not correct",  1, _sut[1]);
-		}
-		
-		[Test]
-		public function removeAllNumbers():void
-		{
-			addNumbers();
-			_sut.removeAll();
-			assertEquals("Length is not zero",  0, _sut.length);
-		}
-		
-		[Test]
-		public function removeFirstNumbers():void
-		{
-			addNumbers();
-			_sut.removeItemAt(0);
-			assertEquals("First element not correct",  2, _sut[0]);
-			assertEquals("Length is not one",  1, _sut.length);
-			_sut.removeItemAt(0);
-			assertEquals("Length is not zero",  0, _sut.length);
-		}
-		
-		[Test]
-		public function removeLastNumbers():void
-		{
-			addNumbers();
-			_sut.removeItemAt(1);
-			assertEquals("First element not correct",  1, _sut[0]);
-			assertEquals("Length is not one",  1, _sut.length);
-			_sut.removeItemAt(0);
-			assertEquals("Length is not zero",  0, _sut.length);
-		}
-		
-		[Test]
-		public function removeItemByIndex():void
-		{
-			addNumbers();
-			_sut.removeItemAt(_sut.getItemIndex(1));
-			assertEquals("First element not correct",  2, _sut[0]);
-			assertEquals("Length is not one",  1, _sut.length);
-			_sut.removeItemAt(_sut.getItemIndex(2));
-			assertEquals("Length is not zero",  0, _sut.length);
-		}
-		
-		[Test]
-		public function outOfRange():void
-		{
-			addNumbers();
-			try {
-				_sut.removeItemAt(-1);
-			}
-			catch (error:Error)
-			{
-				assertTrue("Error not range error", error is RangeError);
-			}
-			assertEquals("Length is not two",  2, _sut.length);
-			try {
-				_sut.removeItemAt(10);
-			}
-			catch (error:Error)
-			{
-				assertTrue("Error not range error", error is RangeError);
-			}
-			assertEquals("Length is not two",  2, _sut.length);
-		}
-		
-		[Test]
-		public function swapItemsTwoThenOne():void
-		{
-			addNumbers();
-			
-			var item1:Number = _sut.getItemAt(0) as Number;
-			var item2:Number = _sut.getItemAt(1) as Number;
-			
-			_sut.setItemAt(item2,0);
-			_sut.setItemAt(item1,1);
-			
-			assertEquals("Length is not two",  2, _sut.length);
-			assertEquals("First element not correct",  2, _sut[0]);
-			assertEquals("Second element not correct",  1, _sut[1]);
-		}
-		
-		[Test]
-		public function swapItemsOneThenTwo():void
-		{
-			addNumbers();
-
-			var item1:Number = _sut.getItemAt(0) as Number;
-			var item2:Number = _sut.getItemAt(1) as Number;
-			
-			_sut.setItemAt(item1,1);
-			_sut.setItemAt(item2,0);
-			
-			assertEquals("Length is not two",  2, _sut.length);
-			assertEquals("First element not correct",  2, _sut[0]);
-			assertEquals("Second element not correct",  1, _sut[1]);
-		}
-		
-	}
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/81643dd1/frameworks/projects/framework/tests/mx/collections/AddRemoveObjects.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/framework/tests/mx/collections/AddRemoveObjects.as b/frameworks/projects/framework/tests/mx/collections/AddRemoveObjects.as
deleted file mode 100644
index 69817d4..0000000
--- a/frameworks/projects/framework/tests/mx/collections/AddRemoveObjects.as
+++ /dev/null
@@ -1,274 +0,0 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  Licensed to the Apache Software Foundation (ASF) under one or more
-//  contributor license agreements.  See the NOTICE file distributed with
-//  this work for additional information regarding copyright ownership.
-//  The ASF licenses this file to You under the Apache License, Version 2.0
-//  (the "License"); you may not use this file except in compliance with
-//  the License.  You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-//  Unless required by applicable law or agreed to in writing, software
-//  distributed under the License is distributed on an "AS IS" BASIS,
-//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-//  See the License for the specific language governing permissions and
-//  limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////////
-package mx.collections {
-    import org.flexunit.asserts.*;
-
-    public class AddRemoveObjects
-	{	
-		private var _sut:ArrayCollection;
-		
-		protected var players:Array = [
-			{team:"TeamOne",jerseyNumber:80,lastName:"PlayerA",firstName:"Aa"},
-			{team:"TeamTwo",jerseyNumber:7, lastName:"PlayerB",firstName:"Bb"},
-			{team:"TeamOne",jerseyNumber:12, lastName:"PlayerC",firstName:"Cc"},
-			{team:"TeamOne",jerseyNumber:21,lastName:"PlayerD",firstName:"Dd"},
-			{team:"TeamThree",jerseyNumber:34, lastName:"PlayerE",firstName:"Ee"},
-			{team:"TeamOne",jerseyNumber:12, lastName:"PlayerF",firstName:"Ff"},
-			{team:"TeamTwo",jerseyNumber:7, lastName:"PlayerG",firstName:"Gg"}
-		];
-		
-		[Before]
-		public function setUp():void
-		{
-			_sut = new ArrayCollection();
-		}
-		
-		[After]
-		public function tearDown():void
-		{
-			_sut = null;
-		}
-		
-		[Test]
-		public function empty():void
-		{
-			assertEquals(_sut.length, 0);
-		}
-		
-		[Test]
-		public function addObjects():void
-		{
-			_sut = new ArrayCollection(players);
-			assertEquals("Length is not seven",  7, _sut.length);
-			assertEquals("First element not correct",  players[0], _sut[0]);
-			assertEquals("Second element not correct",  players[1], _sut[1]);
-			assertEquals("Third element not correct",  players[2], _sut[2]);
-			assertEquals("Fouth element not correct",  players[3], _sut[3]);
-			assertEquals("Fifth element not correct",  players[4], _sut[4]);
-			assertEquals("Sixth element not correct",  players[5], _sut[5]);
-			assertEquals("Seventh element not correct",  players[6], _sut[6]);
-		}
-		
-		[Test]
-		public function addDuplicate():void
-		{
-			addObjects();
-			_sut.addItem(players[0]);
-			assertEquals("Length is not eight",  8, _sut.length);
-			assertEquals("First element not correct",  players[0], _sut[0]);
-			assertEquals("Second element not correct",  players[1], _sut[1]);
-			assertEquals("Third element not correct",  players[2], _sut[2]);
-			assertEquals("Fouth element not correct",  players[3], _sut[3]);
-			assertEquals("Fifth element not correct",  players[4], _sut[4]);
-			assertEquals("Sixth element not correct",  players[5], _sut[5]);
-			assertEquals("Seventh element not correct",  players[6], _sut[6]);
-			assertEquals("Eighth element not correct",  players[0], _sut[7]);
-		}
-		
-		[Test]
-		public function removeDuplicate():void
-		{
-            //given
-			addObjects();
-            var firstPlayer:* = players[0];
-            var secondPlayer:* = players[1];
-            var thirdPlayer:* = players[2];
-            var fourthPlayer:* = players[3];
-            var fifthPlayer:* = players[4];
-            var sixthPlayer:* = players[5];
-            var seventhPlayer:* = players[6];
-
-            //when
-			_sut.addItem(players[0]);
-            _sut.removeItemAt(0);
-            //then
-			assertEquals("Length is not seven",  7, _sut.length);
-            assertEquals("First element not correct",  secondPlayer, _sut[0]);
-            assertEquals("Second element not correct",  thirdPlayer, _sut[1]);
-            assertEquals("Third element not correct",  fourthPlayer, _sut[2]);
-            assertEquals("Fourth element not correct",  fifthPlayer, _sut[3]);
-            assertEquals("Fifth element not correct",  sixthPlayer, _sut[4]);
-            assertEquals("Sixth element not correct",  seventhPlayer, _sut[5]);
-            assertEquals("Seventh element not correct",  firstPlayer, _sut[6]);
-		}
-		
-		[Test]
-		public function removeAllObjects():void
-		{
-			addObjects();
-			_sut.removeAll();
-			assertEquals("Length is not zero",  0, _sut.length);
-		}
-		
-		[Test]
-		public function removeFirstObjects():void
-		{
-            //given
-			addObjects();
-            var secondPlayer:Object = players[1];
-
-            //when
-			_sut.removeItemAt(0);
-
-            //then
-            assertEquals("First element not correct", secondPlayer, _sut[0]);
-			assertEquals("Length is not six", 6, _sut.length);
-
-            //when
-			_sut.removeItemAt(0);
-            //then
-			assertEquals("Length is not five",  5, _sut.length);
-
-            //when
-			_sut.removeItemAt(0);
-            //then
-			assertEquals("Length is not four",  4, _sut.length);
-
-            //when
-			_sut.removeItemAt(0);
-            //then
-			assertEquals("Length is not three",  3, _sut.length);
-
-            //when
-			_sut.removeItemAt(0);
-            //then
-			assertEquals("Length is not two",  2, _sut.length);
-
-            //when
-			_sut.removeItemAt(0);
-            //then
-			assertEquals("Length is not one",  1, _sut.length);
-
-            //when
-			_sut.removeItemAt(0);
-            //then
-			assertEquals("Length is not zero",  0, _sut.length);
-		}
-		
-		[Test]
-		public function removeLastNumbers():void
-		{
-			addObjects();
-			_sut.removeItemAt(6);
-			assertEquals("First element not correct",  players[0], _sut[0]);
-			assertEquals("Length is not six",  6, _sut.length);
-			_sut.removeItemAt(0);
-			assertEquals("Length is not five",  5, _sut.length);
-			_sut.removeItemAt(0);
-			assertEquals("Length is not four",  4, _sut.length);
-			_sut.removeItemAt(0);
-			assertEquals("Length is not three",  3, _sut.length);
-			_sut.removeItemAt(0);
-			assertEquals("Length is not two",  2, _sut.length);
-			_sut.removeItemAt(0);
-			assertEquals("Length is not one",  1, _sut.length);
-			_sut.removeItemAt(0);
-			assertEquals("Length is not zero",  0, _sut.length);
-		}
-		
-		[Test]
-		public function removeItemByIndex():void
-		{
-			//given
-			addObjects();
-            const secondPlayer:Object = players[1];
-            const thirdPlayer:Object = players[2];
-            const fourthPlayer:Object = players[3];
-
-            //when
-			_sut.removeItemAt(_sut.getItemIndex(players[0]));
-
-            //then
-            assertEquals("First element incorrect", secondPlayer, _sut[0]);
-			assertEquals("Length is not six", 6, _sut.length);
-
-            //when
-			_sut.removeItemAt(_sut.getItemIndex(thirdPlayer));
-
-            //then
-			assertEquals("First element not correct", secondPlayer, _sut[0]);
-			assertEquals("Second element not correct", fourthPlayer, _sut[1]);
-			assertEquals("Length is not four", 5, _sut.length);
-		}
-		
-		[Test]
-		public function outOfRange():void
-		{
-			addObjects();
-			try {
-				_sut.removeItemAt(-1);
-			}
-			catch (error:Error)
-			{
-				assertTrue("Error not range error", error is RangeError);
-			}
-			assertEquals("Length is not seven",  7, _sut.length);
-			try {
-				_sut.removeItemAt(10);
-			}
-			catch (error:Error)
-			{
-				assertTrue("Error not range error", error is RangeError);
-			}
-			assertEquals("Length is not seven",  7, _sut.length);
-		}
-		
-		[Test]
-		public function swapItemsTwoThenOne():void
-		{
-            //given
-			addObjects();
-			var item1:Object = _sut.getItemAt(0);
-			var item2:Object = _sut.getItemAt(1);
-            var firstPlayer:* = players[0];
-            var secondPlayer:* = players[1];
-
-            //when
-			_sut.setItemAt(item2,0);
-			_sut.setItemAt(item1,1);
-
-            //then
-			assertEquals("Length is not seven",  7, _sut.length);
-            assertEquals("First element not correct",  secondPlayer, _sut[0]);
-            assertEquals("Second element not correct",  firstPlayer, _sut[1]);
-		}
-		
-		[Test]
-		public function swapItemsOneThenTwo():void
-		{
-            //given
-			addObjects();
-			var item1:Object = _sut.getItemAt(0);
-			var item2:Object = _sut.getItemAt(1);
-            var secondPlayer:Object = players[1];
-            var firstPlayer:Object = players[0];
-
-            //when
-			_sut.setItemAt(item1,1);
-			_sut.setItemAt(item2,0);
-
-            //then
-			assertEquals("Length is not seven",  7, _sut.length);
-            assertEquals("First element not correct",  secondPlayer, _sut[0]);
-            assertEquals("Second element not correct",  firstPlayer, _sut[1]);
-
-		}
-		
-	}
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/81643dd1/frameworks/projects/framework/tests/mx/collections/AddRemoveStrings.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/framework/tests/mx/collections/AddRemoveStrings.as b/frameworks/projects/framework/tests/mx/collections/AddRemoveStrings.as
deleted file mode 100644
index d6bdc53..0000000
--- a/frameworks/projects/framework/tests/mx/collections/AddRemoveStrings.as
+++ /dev/null
@@ -1,200 +0,0 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  Licensed to the Apache Software Foundation (ASF) under one or more
-//  contributor license agreements.  See the NOTICE file distributed with
-//  this work for additional information regarding copyright ownership.
-//  The ASF licenses this file to You under the Apache License, Version 2.0
-//  (the "License"); you may not use this file except in compliance with
-//  the License.  You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-//  Unless required by applicable law or agreed to in writing, software
-//  distributed under the License is distributed on an "AS IS" BASIS,
-//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-//  See the License for the specific language governing permissions and
-//  limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////////
-package mx.collections {
-    import org.flexunit.asserts.*;
-
-    public class AddRemoveStrings
-	{	
-		protected var _sut:ArrayCollection;
-		
-		[Before]
-		public function setUp():void
-		{
-			_sut = new ArrayCollection();
-		}
-		
-		[After]
-		public function tearDown():void
-		{
-			_sut = null;
-		}
-		
-		[Test]
-		public function empty():void
-		{
-			assertEquals(0, _sut.length);
-		}
-		
-		[Test]
-		public function addStrings():void
-		{
-			_sut.addItem("A");
-			assertEquals("Length is not one", 1, _sut.length);
-			assertEquals("First element not correct", "A", _sut[0]);
-
-			_sut.addItem("B");
-			assertEquals("Length is not two", 2, _sut.length);
-			assertEquals("Second element not correct", "B", _sut[1]);
-
-			_sut.addItem("D");
-			assertEquals("Length is not three", 3, _sut.length);
-			assertEquals("Second element not correct", "D", _sut[2]);
-
-			_sut.addItem("C");
-			assertEquals("Length is not four", 4, _sut.length);
-			assertEquals("Second element not correct", "C", _sut[3]);
-		}
-		
-		[Test]
-		public function addDuplicate():void
-		{
-            //given
-			addStrings();
-
-            //when
-			_sut.addItem("B");
-
-            //then
-			assertEquals("Length is not five", 5, _sut.length);
-			assertEquals("First element not correct", "A", _sut[0]);
-			assertEquals("Second element not correct", "B", _sut[1]);
-			assertEquals("Second element not correct", "D", _sut[2]);
-			assertEquals("Second element not correct", "C", _sut[3]);
-			assertEquals("Second element not correct", "B", _sut[4]);
-		}
-		
-		[Test]
-		public function removeDuplicate():void
-		{
-            //given
-			addStrings();
-
-            //when
-			_sut.addItem("B");
-			_sut.removeItemAt(1);
-
-            //then
-			assertEquals("Length is not four", 4, _sut.length);
-			assertEquals("First element not correct",  "A", _sut[0]);
-			assertEquals("Second element not correct",  "D", _sut[1]);
-			assertEquals("Second element not correct",  "C", _sut[2]);
-			assertEquals("Second element not correct",  "B", _sut[3]);
-		}
-		
-		[Test]
-		public function removeAllStrings():void
-		{
-			addStrings();
-			_sut.removeAll();
-			assertEquals("Length is not zero",  0, _sut.length);
-		}
-		
-		[Test]
-		public function removeFirstStrings():void
-		{
-			addStrings();
-			_sut.removeItemAt(0);
-			assertEquals("First element not correct",  "B", _sut[0]);
-			assertEquals("Length is not three",  3, _sut.length);
-			_sut.removeItemAt(0);
-			assertEquals("Length is not two",  2, _sut.length);
-		}
-		
-		[Test]
-		public function removeLastStrings():void
-		{
-			addStrings();
-			_sut.removeItemAt(1);
-			assertEquals("First element not correct",  "A", _sut[0]);
-			assertEquals("Length is not three",  3, _sut.length);
-			_sut.removeItemAt(0);
-			assertEquals("Length is not two",  2, _sut.length);
-		}
-		
-		[Test]
-		public function removeItemByIndex():void
-		{
-			addStrings();
-			_sut.removeItemAt(_sut.getItemIndex("B"));
-			assertEquals("First element not correct",  "A", _sut[0]);
-			assertEquals("Length is not three",  3, _sut.length);
-			_sut.removeItemAt(_sut.getItemIndex("D"));
-			assertEquals("Length is not two",  2, _sut.length);
-		}
-		
-		[Test]
-		public function outOfRange():void
-		{
-			addStrings();
-			try {
-				_sut.removeItemAt(-1);
-			}
-			catch (error:Error)
-			{
-				assertTrue("Error not range error", error is RangeError);
-			}
-			assertEquals("Length is not four", 4, _sut.length);
-			try {
-				_sut.removeItemAt(10);
-			}
-			catch (error:Error)
-			{
-				assertTrue("Error not range error", error is RangeError);
-			}
-			assertEquals("Length is not two", 4, _sut.length);
-		}
-		
-		[Test]
-		public function swapItemsTwoThenOne():void
-		{
-            //given
-			addStrings();
-			var item1:String = _sut.getItemAt(0) as String;
-			var item2:String = _sut.getItemAt(1) as String;
-
-            //when
-			_sut.setItemAt(item2, 0);
-			_sut.setItemAt(item1, 1);
-
-            //then
-			assertEquals("Length is not four",  4, _sut.length);
-			assertEquals("First element not correct",  "B", _sut[0]);
-			assertEquals("Second element not correct",  "A", _sut[1]);
-		}
-		
-		[Test]
-		public function swapItemsOneThenTwo():void
-		{
-            //given
-			addStrings();
-			var item1:String = _sut.getItemAt(0) as String;
-			var item2:String = _sut.getItemAt(1) as String;
-
-			//when
-			_sut.setItemAt(item1, 1);
-			_sut.setItemAt(item2, 0);
-
-            //then
-			assertEquals("Length is not four", 4, _sut.length);
-			assertEquals("First element not correct",  "B", _sut[0]);
-			assertEquals("Second element not correct",  "A", _sut[1]);
-		}
-		
-	}
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/81643dd1/frameworks/projects/framework/tests/mx/collections/ArrayCollection_AddRemoveNumbers_Tests.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/framework/tests/mx/collections/ArrayCollection_AddRemoveNumbers_Tests.as b/frameworks/projects/framework/tests/mx/collections/ArrayCollection_AddRemoveNumbers_Tests.as
new file mode 100644
index 0000000..93d302a
--- /dev/null
+++ b/frameworks/projects/framework/tests/mx/collections/ArrayCollection_AddRemoveNumbers_Tests.as
@@ -0,0 +1,174 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package mx.collections {
+    import org.flexunit.asserts.*;
+
+    public class ArrayCollection_AddRemoveNumbers_Tests
+	{	
+		protected var _sut:ArrayCollection;
+		
+		[Before]
+		public function setUp():void
+		{
+			_sut = new ArrayCollection();
+		}
+		
+		[After]
+		public function tearDown():void
+		{
+			_sut = null;
+		}
+		
+		[Test]
+		public function empty():void
+		{
+			//then
+			assertEquals(_sut.length, 0);
+		}
+		
+		[Test]
+		public function addNumbers():void
+		{
+			_sut.addItem(1);
+			assertEquals("Length is not one",  1, _sut.length);
+			assertEquals("First element not correct",  1, _sut[0]);
+			_sut.addItem(2);
+			assertEquals("Length is not two",  2, _sut.length);
+			assertEquals("Second element not correct",  2, _sut[1]);
+		}
+		
+		[Test]
+		public function addDuplicate():void
+		{
+			addNumbers();
+			_sut.addItem(1);
+			assertEquals("Length is not three",  3, _sut.length);
+			assertEquals("First element not correct",  1, _sut[0]);
+			assertEquals("Second element not correct",  2, _sut[1]);
+			assertEquals("Second element not correct",  1, _sut[2]);
+		}
+		
+		[Test]
+		public function removeDuplicate():void
+		{
+			addNumbers();
+			_sut.addItem(1);
+			_sut.removeItemAt(0);
+			assertEquals("Length is not two",  2, _sut.length);
+			assertEquals("First element not correct",  2, _sut[0]);
+			assertEquals("Second element not correct",  1, _sut[1]);
+		}
+		
+		[Test]
+		public function removeAllNumbers():void
+		{
+			addNumbers();
+			_sut.removeAll();
+			assertEquals("Length is not zero",  0, _sut.length);
+		}
+		
+		[Test]
+		public function removeFirstNumbers():void
+		{
+			addNumbers();
+			_sut.removeItemAt(0);
+			assertEquals("First element not correct",  2, _sut[0]);
+			assertEquals("Length is not one",  1, _sut.length);
+			_sut.removeItemAt(0);
+			assertEquals("Length is not zero",  0, _sut.length);
+		}
+		
+		[Test]
+		public function removeLastNumbers():void
+		{
+			addNumbers();
+			_sut.removeItemAt(1);
+			assertEquals("First element not correct",  1, _sut[0]);
+			assertEquals("Length is not one",  1, _sut.length);
+			_sut.removeItemAt(0);
+			assertEquals("Length is not zero",  0, _sut.length);
+		}
+		
+		[Test]
+		public function removeItemByIndex():void
+		{
+			addNumbers();
+			_sut.removeItemAt(_sut.getItemIndex(1));
+			assertEquals("First element not correct",  2, _sut[0]);
+			assertEquals("Length is not one",  1, _sut.length);
+			_sut.removeItemAt(_sut.getItemIndex(2));
+			assertEquals("Length is not zero",  0, _sut.length);
+		}
+		
+		[Test]
+		public function outOfRange():void
+		{
+			addNumbers();
+			try {
+				_sut.removeItemAt(-1);
+			}
+			catch (error:Error)
+			{
+				assertTrue("Error not range error", error is RangeError);
+			}
+			assertEquals("Length is not two",  2, _sut.length);
+			try {
+				_sut.removeItemAt(10);
+			}
+			catch (error:Error)
+			{
+				assertTrue("Error not range error", error is RangeError);
+			}
+			assertEquals("Length is not two",  2, _sut.length);
+		}
+		
+		[Test]
+		public function swapItemsTwoThenOne():void
+		{
+			addNumbers();
+			
+			var item1:Number = _sut.getItemAt(0) as Number;
+			var item2:Number = _sut.getItemAt(1) as Number;
+			
+			_sut.setItemAt(item2,0);
+			_sut.setItemAt(item1,1);
+			
+			assertEquals("Length is not two",  2, _sut.length);
+			assertEquals("First element not correct",  2, _sut[0]);
+			assertEquals("Second element not correct",  1, _sut[1]);
+		}
+		
+		[Test]
+		public function swapItemsOneThenTwo():void
+		{
+			addNumbers();
+
+			var item1:Number = _sut.getItemAt(0) as Number;
+			var item2:Number = _sut.getItemAt(1) as Number;
+			
+			_sut.setItemAt(item1,1);
+			_sut.setItemAt(item2,0);
+			
+			assertEquals("Length is not two",  2, _sut.length);
+			assertEquals("First element not correct",  2, _sut[0]);
+			assertEquals("Second element not correct",  1, _sut[1]);
+		}
+		
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/81643dd1/frameworks/projects/framework/tests/mx/collections/ArrayCollection_AddRemoveObjects_Tests.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/framework/tests/mx/collections/ArrayCollection_AddRemoveObjects_Tests.as b/frameworks/projects/framework/tests/mx/collections/ArrayCollection_AddRemoveObjects_Tests.as
new file mode 100644
index 0000000..a6ae79d
--- /dev/null
+++ b/frameworks/projects/framework/tests/mx/collections/ArrayCollection_AddRemoveObjects_Tests.as
@@ -0,0 +1,274 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package mx.collections {
+    import org.flexunit.asserts.*;
+
+    public class ArrayCollection_AddRemoveObjects_Tests
+	{	
+		private var _sut:ArrayCollection;
+		
+		protected var players:Array = [
+			{team:"TeamOne",jerseyNumber:80,lastName:"PlayerA",firstName:"Aa"},
+			{team:"TeamTwo",jerseyNumber:7, lastName:"PlayerB",firstName:"Bb"},
+			{team:"TeamOne",jerseyNumber:12, lastName:"PlayerC",firstName:"Cc"},
+			{team:"TeamOne",jerseyNumber:21,lastName:"PlayerD",firstName:"Dd"},
+			{team:"TeamThree",jerseyNumber:34, lastName:"PlayerE",firstName:"Ee"},
+			{team:"TeamOne",jerseyNumber:12, lastName:"PlayerF",firstName:"Ff"},
+			{team:"TeamTwo",jerseyNumber:7, lastName:"PlayerG",firstName:"Gg"}
+		];
+		
+		[Before]
+		public function setUp():void
+		{
+			_sut = new ArrayCollection();
+		}
+		
+		[After]
+		public function tearDown():void
+		{
+			_sut = null;
+		}
+		
+		[Test]
+		public function empty():void
+		{
+			assertEquals(_sut.length, 0);
+		}
+		
+		[Test]
+		public function addObjects():void
+		{
+			_sut = new ArrayCollection(players);
+			assertEquals("Length is not seven",  7, _sut.length);
+			assertEquals("First element not correct",  players[0], _sut[0]);
+			assertEquals("Second element not correct",  players[1], _sut[1]);
+			assertEquals("Third element not correct",  players[2], _sut[2]);
+			assertEquals("Fouth element not correct",  players[3], _sut[3]);
+			assertEquals("Fifth element not correct",  players[4], _sut[4]);
+			assertEquals("Sixth element not correct",  players[5], _sut[5]);
+			assertEquals("Seventh element not correct",  players[6], _sut[6]);
+		}
+		
+		[Test]
+		public function addDuplicate():void
+		{
+			addObjects();
+			_sut.addItem(players[0]);
+			assertEquals("Length is not eight",  8, _sut.length);
+			assertEquals("First element not correct",  players[0], _sut[0]);
+			assertEquals("Second element not correct",  players[1], _sut[1]);
+			assertEquals("Third element not correct",  players[2], _sut[2]);
+			assertEquals("Fouth element not correct",  players[3], _sut[3]);
+			assertEquals("Fifth element not correct",  players[4], _sut[4]);
+			assertEquals("Sixth element not correct",  players[5], _sut[5]);
+			assertEquals("Seventh element not correct",  players[6], _sut[6]);
+			assertEquals("Eighth element not correct",  players[0], _sut[7]);
+		}
+		
+		[Test]
+		public function removeDuplicate():void
+		{
+            //given
+			addObjects();
+            var firstPlayer:* = players[0];
+            var secondPlayer:* = players[1];
+            var thirdPlayer:* = players[2];
+            var fourthPlayer:* = players[3];
+            var fifthPlayer:* = players[4];
+            var sixthPlayer:* = players[5];
+            var seventhPlayer:* = players[6];
+
+            //when
+			_sut.addItem(players[0]);
+            _sut.removeItemAt(0);
+            //then
+			assertEquals("Length is not seven",  7, _sut.length);
+            assertEquals("First element not correct",  secondPlayer, _sut[0]);
+            assertEquals("Second element not correct",  thirdPlayer, _sut[1]);
+            assertEquals("Third element not correct",  fourthPlayer, _sut[2]);
+            assertEquals("Fourth element not correct",  fifthPlayer, _sut[3]);
+            assertEquals("Fifth element not correct",  sixthPlayer, _sut[4]);
+            assertEquals("Sixth element not correct",  seventhPlayer, _sut[5]);
+            assertEquals("Seventh element not correct",  firstPlayer, _sut[6]);
+		}
+		
+		[Test]
+		public function removeAllObjects():void
+		{
+			addObjects();
+			_sut.removeAll();
+			assertEquals("Length is not zero",  0, _sut.length);
+		}
+		
+		[Test]
+		public function removeFirstObjects():void
+		{
+            //given
+			addObjects();
+            var secondPlayer:Object = players[1];
+
+            //when
+			_sut.removeItemAt(0);
+
+            //then
+            assertEquals("First element not correct", secondPlayer, _sut[0]);
+			assertEquals("Length is not six", 6, _sut.length);
+
+            //when
+			_sut.removeItemAt(0);
+            //then
+			assertEquals("Length is not five",  5, _sut.length);
+
+            //when
+			_sut.removeItemAt(0);
+            //then
+			assertEquals("Length is not four",  4, _sut.length);
+
+            //when
+			_sut.removeItemAt(0);
+            //then
+			assertEquals("Length is not three",  3, _sut.length);
+
+            //when
+			_sut.removeItemAt(0);
+            //then
+			assertEquals("Length is not two",  2, _sut.length);
+
+            //when
+			_sut.removeItemAt(0);
+            //then
+			assertEquals("Length is not one",  1, _sut.length);
+
+            //when
+			_sut.removeItemAt(0);
+            //then
+			assertEquals("Length is not zero",  0, _sut.length);
+		}
+		
+		[Test]
+		public function removeLastNumbers():void
+		{
+			addObjects();
+			_sut.removeItemAt(6);
+			assertEquals("First element not correct",  players[0], _sut[0]);
+			assertEquals("Length is not six",  6, _sut.length);
+			_sut.removeItemAt(0);
+			assertEquals("Length is not five",  5, _sut.length);
+			_sut.removeItemAt(0);
+			assertEquals("Length is not four",  4, _sut.length);
+			_sut.removeItemAt(0);
+			assertEquals("Length is not three",  3, _sut.length);
+			_sut.removeItemAt(0);
+			assertEquals("Length is not two",  2, _sut.length);
+			_sut.removeItemAt(0);
+			assertEquals("Length is not one",  1, _sut.length);
+			_sut.removeItemAt(0);
+			assertEquals("Length is not zero",  0, _sut.length);
+		}
+		
+		[Test]
+		public function removeItemByIndex():void
+		{
+			//given
+			addObjects();
+            const secondPlayer:Object = players[1];
+            const thirdPlayer:Object = players[2];
+            const fourthPlayer:Object = players[3];
+
+            //when
+			_sut.removeItemAt(_sut.getItemIndex(players[0]));
+
+            //then
+            assertEquals("First element incorrect", secondPlayer, _sut[0]);
+			assertEquals("Length is not six", 6, _sut.length);
+
+            //when
+			_sut.removeItemAt(_sut.getItemIndex(thirdPlayer));
+
+            //then
+			assertEquals("First element not correct", secondPlayer, _sut[0]);
+			assertEquals("Second element not correct", fourthPlayer, _sut[1]);
+			assertEquals("Length is not four", 5, _sut.length);
+		}
+		
+		[Test]
+		public function outOfRange():void
+		{
+			addObjects();
+			try {
+				_sut.removeItemAt(-1);
+			}
+			catch (error:Error)
+			{
+				assertTrue("Error not range error", error is RangeError);
+			}
+			assertEquals("Length is not seven",  7, _sut.length);
+			try {
+				_sut.removeItemAt(10);
+			}
+			catch (error:Error)
+			{
+				assertTrue("Error not range error", error is RangeError);
+			}
+			assertEquals("Length is not seven",  7, _sut.length);
+		}
+		
+		[Test]
+		public function swapItemsTwoThenOne():void
+		{
+            //given
+			addObjects();
+			var item1:Object = _sut.getItemAt(0);
+			var item2:Object = _sut.getItemAt(1);
+            var firstPlayer:* = players[0];
+            var secondPlayer:* = players[1];
+
+            //when
+			_sut.setItemAt(item2,0);
+			_sut.setItemAt(item1,1);
+
+            //then
+			assertEquals("Length is not seven",  7, _sut.length);
+            assertEquals("First element not correct",  secondPlayer, _sut[0]);
+            assertEquals("Second element not correct",  firstPlayer, _sut[1]);
+		}
+		
+		[Test]
+		public function swapItemsOneThenTwo():void
+		{
+            //given
+			addObjects();
+			var item1:Object = _sut.getItemAt(0);
+			var item2:Object = _sut.getItemAt(1);
+            var secondPlayer:Object = players[1];
+            var firstPlayer:Object = players[0];
+
+            //when
+			_sut.setItemAt(item1,1);
+			_sut.setItemAt(item2,0);
+
+            //then
+			assertEquals("Length is not seven",  7, _sut.length);
+            assertEquals("First element not correct",  secondPlayer, _sut[0]);
+            assertEquals("Second element not correct",  firstPlayer, _sut[1]);
+
+		}
+		
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/81643dd1/frameworks/projects/framework/tests/mx/collections/ArrayCollection_AddRemoveStrings_Tests.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/framework/tests/mx/collections/ArrayCollection_AddRemoveStrings_Tests.as b/frameworks/projects/framework/tests/mx/collections/ArrayCollection_AddRemoveStrings_Tests.as
new file mode 100644
index 0000000..0ae1873
--- /dev/null
+++ b/frameworks/projects/framework/tests/mx/collections/ArrayCollection_AddRemoveStrings_Tests.as
@@ -0,0 +1,200 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package mx.collections {
+    import org.flexunit.asserts.*;
+
+    public class ArrayCollection_AddRemoveStrings_Tests
+	{	
+		protected var _sut:ArrayCollection;
+		
+		[Before]
+		public function setUp():void
+		{
+			_sut = new ArrayCollection();
+		}
+		
+		[After]
+		public function tearDown():void
+		{
+			_sut = null;
+		}
+		
+		[Test]
+		public function empty():void
+		{
+			assertEquals(0, _sut.length);
+		}
+		
+		[Test]
+		public function addStrings():void
+		{
+			_sut.addItem("A");
+			assertEquals("Length is not one", 1, _sut.length);
+			assertEquals("First element not correct", "A", _sut[0]);
+
+			_sut.addItem("B");
+			assertEquals("Length is not two", 2, _sut.length);
+			assertEquals("Second element not correct", "B", _sut[1]);
+
+			_sut.addItem("D");
+			assertEquals("Length is not three", 3, _sut.length);
+			assertEquals("Second element not correct", "D", _sut[2]);
+
+			_sut.addItem("C");
+			assertEquals("Length is not four", 4, _sut.length);
+			assertEquals("Second element not correct", "C", _sut[3]);
+		}
+		
+		[Test]
+		public function addDuplicate():void
+		{
+            //given
+			addStrings();
+
+            //when
+			_sut.addItem("B");
+
+            //then
+			assertEquals("Length is not five", 5, _sut.length);
+			assertEquals("First element not correct", "A", _sut[0]);
+			assertEquals("Second element not correct", "B", _sut[1]);
+			assertEquals("Second element not correct", "D", _sut[2]);
+			assertEquals("Second element not correct", "C", _sut[3]);
+			assertEquals("Second element not correct", "B", _sut[4]);
+		}
+		
+		[Test]
+		public function removeDuplicate():void
+		{
+            //given
+			addStrings();
+
+            //when
+			_sut.addItem("B");
+			_sut.removeItemAt(1);
+
+            //then
+			assertEquals("Length is not four", 4, _sut.length);
+			assertEquals("First element not correct",  "A", _sut[0]);
+			assertEquals("Second element not correct",  "D", _sut[1]);
+			assertEquals("Second element not correct",  "C", _sut[2]);
+			assertEquals("Second element not correct",  "B", _sut[3]);
+		}
+		
+		[Test]
+		public function removeAllStrings():void
+		{
+			addStrings();
+			_sut.removeAll();
+			assertEquals("Length is not zero",  0, _sut.length);
+		}
+		
+		[Test]
+		public function removeFirstStrings():void
+		{
+			addStrings();
+			_sut.removeItemAt(0);
+			assertEquals("First element not correct",  "B", _sut[0]);
+			assertEquals("Length is not three",  3, _sut.length);
+			_sut.removeItemAt(0);
+			assertEquals("Length is not two",  2, _sut.length);
+		}
+		
+		[Test]
+		public function removeLastStrings():void
+		{
+			addStrings();
+			_sut.removeItemAt(1);
+			assertEquals("First element not correct",  "A", _sut[0]);
+			assertEquals("Length is not three",  3, _sut.length);
+			_sut.removeItemAt(0);
+			assertEquals("Length is not two",  2, _sut.length);
+		}
+		
+		[Test]
+		public function removeItemByIndex():void
+		{
+			addStrings();
+			_sut.removeItemAt(_sut.getItemIndex("B"));
+			assertEquals("First element not correct",  "A", _sut[0]);
+			assertEquals("Length is not three",  3, _sut.length);
+			_sut.removeItemAt(_sut.getItemIndex("D"));
+			assertEquals("Length is not two",  2, _sut.length);
+		}
+		
+		[Test]
+		public function outOfRange():void
+		{
+			addStrings();
+			try {
+				_sut.removeItemAt(-1);
+			}
+			catch (error:Error)
+			{
+				assertTrue("Error not range error", error is RangeError);
+			}
+			assertEquals("Length is not four", 4, _sut.length);
+			try {
+				_sut.removeItemAt(10);
+			}
+			catch (error:Error)
+			{
+				assertTrue("Error not range error", error is RangeError);
+			}
+			assertEquals("Length is not two", 4, _sut.length);
+		}
+		
+		[Test]
+		public function swapItemsTwoThenOne():void
+		{
+            //given
+			addStrings();
+			var item1:String = _sut.getItemAt(0) as String;
+			var item2:String = _sut.getItemAt(1) as String;
+
+            //when
+			_sut.setItemAt(item2, 0);
+			_sut.setItemAt(item1, 1);
+
+            //then
+			assertEquals("Length is not four",  4, _sut.length);
+			assertEquals("First element not correct",  "B", _sut[0]);
+			assertEquals("Second element not correct",  "A", _sut[1]);
+		}
+		
+		[Test]
+		public function swapItemsOneThenTwo():void
+		{
+            //given
+			addStrings();
+			var item1:String = _sut.getItemAt(0) as String;
+			var item2:String = _sut.getItemAt(1) as String;
+
+			//when
+			_sut.setItemAt(item1, 1);
+			_sut.setItemAt(item2, 0);
+
+            //then
+			assertEquals("Length is not four", 4, _sut.length);
+			assertEquals("First element not correct",  "B", _sut[0]);
+			assertEquals("Second element not correct",  "A", _sut[1]);
+		}
+		
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/81643dd1/frameworks/projects/framework/tests/mx/collections/ArrayCollection_FilerAndSortNumbers_Tests.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/framework/tests/mx/collections/ArrayCollection_FilerAndSortNumbers_Tests.as b/frameworks/projects/framework/tests/mx/collections/ArrayCollection_FilerAndSortNumbers_Tests.as
new file mode 100644
index 0000000..18ac40d
--- /dev/null
+++ b/frameworks/projects/framework/tests/mx/collections/ArrayCollection_FilerAndSortNumbers_Tests.as
@@ -0,0 +1,114 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package mx.collections {
+    import org.flexunit.asserts.*;
+
+    public class ArrayCollection_FilerAndSortNumbers_Tests
+	{
+        private var _sut:ArrayCollection;
+		
+		[Before]
+		public function setUp():void
+		{
+			_sut = new ArrayCollection();
+		}
+		
+		[After]
+		public function tearDown():void
+		{
+			_sut = null;
+		}
+		
+		
+		protected function addNumbers():void
+		{
+			_sut.addItem(6);
+			_sut.addItem(2);
+			_sut.addItem(3);
+			_sut.addItem(1);
+			_sut.addItem(5);
+			_sut.addItem(4);
+		}
+		
+		protected function even(object:Object):Boolean
+		{
+			return Number(object) % 2 == 0;
+		}
+		
+		protected function odd(object:Object):Boolean
+		{
+			return Number(object) % 2 == 1;
+		}
+		
+		[Test]
+		public function filterAndSortCombinations():void
+		{
+			addNumbers();
+			_sut.filterFunction = even;
+			_sut.sort = new Sort();
+			_sut.refresh();
+			
+			assertEquals("Length is not three",  3, _sut.length);
+			assertEquals("First element not correct",  2, _sut[0]);
+			assertEquals("Second element not correct",  4, _sut[1]);
+			assertEquals("Third element not correct",  6, _sut[2]);
+			
+			_sut.filterFunction = odd;
+			_sut.refresh();
+			
+			assertEquals("Length is not three",  3, _sut.length);
+			assertEquals("First element not correct",  1, _sut[0]);
+			assertEquals("Second element not correct",  3, _sut[1]);
+			assertEquals("Third element not correct",  5, _sut[2]);
+			
+			_sut.sort = new Sort();
+			_sut.sort.fields = [new SortField(null, false, true, true)];
+			_sut.refresh();
+			
+			assertEquals("Length is not three",  3, _sut.length);
+			assertEquals("First element not correct",  5, _sut[0]);
+			assertEquals("Second element not correct",  3, _sut[1]);
+			assertEquals("Third element not correct",  1, _sut[2]);
+			
+			_sut.filterFunction = null;
+			_sut.refresh();
+			
+			assertEquals("Length is not six",  6, _sut.length);
+			assertEquals("First element not correct",  6, _sut[0]);
+			assertEquals("Second element not correct",  5, _sut[1]);
+			assertEquals("Third element not correct",  4, _sut[2]);
+			assertEquals("Fourth element not correct",  3, _sut[3]);
+			assertEquals("Fith element not correct",  2, _sut[4]);
+			assertEquals("Six element not correct",  1, _sut[5]);
+			
+			_sut.sort = null;
+			_sut.refresh();
+			
+			assertEquals("Length is not six",  6, _sut.length);
+			assertEquals("First element not correct",  6, _sut[0]);
+			assertEquals("Second element not correct",  2, _sut[1]);
+			assertEquals("Third element not correct",  3, _sut[2]);
+			assertEquals("Fourth element not correct",  1, _sut[3]);
+			assertEquals("Fith element not correct",  5, _sut[4]);
+			assertEquals("Six element not correct",  4, _sut[5]);
+		}	
+		
+		
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/81643dd1/frameworks/projects/framework/tests/mx/collections/ArrayCollection_FilerAndSortStrings_Tests.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/framework/tests/mx/collections/ArrayCollection_FilerAndSortStrings_Tests.as b/frameworks/projects/framework/tests/mx/collections/ArrayCollection_FilerAndSortStrings_Tests.as
new file mode 100644
index 0000000..c4e4a2c
--- /dev/null
+++ b/frameworks/projects/framework/tests/mx/collections/ArrayCollection_FilerAndSortStrings_Tests.as
@@ -0,0 +1,114 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package mx.collections {
+    import org.flexunit.asserts.*;
+
+    public class ArrayCollection_FilerAndSortStrings_Tests
+	{
+        private var _sut:ArrayCollection;
+		
+		[Before]
+		public function setUp():void
+		{
+			_sut = new ArrayCollection();
+		}
+		
+		[After]
+		public function tearDown():void
+		{
+			_sut = null;
+		}
+		
+		
+		protected function addNumbers():void
+		{
+			_sut.addItem(6);
+			_sut.addItem(2);
+			_sut.addItem(3);
+			_sut.addItem(1);
+			_sut.addItem(5);
+			_sut.addItem(4);
+		}
+		
+		protected function even(object:Object):Boolean
+		{
+			return Number(object) % 2 == 0;
+		}
+		
+		protected function odd(object:Object):Boolean
+		{
+			return Number(object) % 2 == 1;
+		}
+		
+		[Test]
+		public function filterAndSortCombinations():void
+		{
+			addNumbers();
+			_sut.filterFunction = even;
+			_sut.sort = new Sort();
+			_sut.refresh();
+			
+			assertEquals("Length is not three",  3, _sut.length);
+			assertEquals("First element not correct",  2, _sut[0]);
+			assertEquals("Second element not correct",  4, _sut[1]);
+			assertEquals("Third element not correct",  6, _sut[2]);
+			
+			_sut.filterFunction = odd;
+			_sut.refresh();
+			
+			assertEquals("Length is not three",  3, _sut.length);
+			assertEquals("First element not correct",  1, _sut[0]);
+			assertEquals("Second element not correct",  3, _sut[1]);
+			assertEquals("Third element not correct",  5, _sut[2]);
+			
+			_sut.sort = new Sort();
+			_sut.sort.fields = [new SortField(null, false, true, true)];
+			_sut.refresh();
+			
+			assertEquals("Length is not three",  3, _sut.length);
+			assertEquals("First element not correct",  5, _sut[0]);
+			assertEquals("Second element not correct",  3, _sut[1]);
+			assertEquals("Third element not correct",  1, _sut[2]);
+			
+			_sut.filterFunction = null;
+			_sut.refresh();
+			
+			assertEquals("Length is not six",  6, _sut.length);
+			assertEquals("First element not correct",  6, _sut[0]);
+			assertEquals("Second element not correct",  5, _sut[1]);
+			assertEquals("Third element not correct",  4, _sut[2]);
+			assertEquals("Fourth element not correct",  3, _sut[3]);
+			assertEquals("Fith element not correct",  2, _sut[4]);
+			assertEquals("Six element not correct",  1, _sut[5]);
+			
+			_sut.sort = null;
+			_sut.refresh();
+			
+			assertEquals("Length is not six",  6, _sut.length);
+			assertEquals("First element not correct",  6, _sut[0]);
+			assertEquals("Second element not correct",  2, _sut[1]);
+			assertEquals("Third element not correct",  3, _sut[2]);
+			assertEquals("Fourth element not correct",  1, _sut[3]);
+			assertEquals("Fith element not correct",  5, _sut[4]);
+			assertEquals("Six element not correct",  4, _sut[5]);
+		}	
+		
+		
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/81643dd1/frameworks/projects/framework/tests/mx/collections/ArrayCollection_FilterNumbers_Tests.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/framework/tests/mx/collections/ArrayCollection_FilterNumbers_Tests.as b/frameworks/projects/framework/tests/mx/collections/ArrayCollection_FilterNumbers_Tests.as
new file mode 100644
index 0000000..9662b6d
--- /dev/null
+++ b/frameworks/projects/framework/tests/mx/collections/ArrayCollection_FilterNumbers_Tests.as
@@ -0,0 +1,315 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package mx.collections {
+    import org.flexunit.asserts.*;
+
+    public class ArrayCollection_FilterNumbers_Tests
+	{
+        private var _sut:ArrayCollection;
+		
+		[Before]
+		public function setUp():void
+		{
+			_sut = new ArrayCollection();
+		}
+		
+		[After]
+		public function tearDown():void
+		{
+			_sut = null;
+		}
+		
+		protected function addNumbers():void
+		{
+			_sut.addItem(1);
+			_sut.addItem(2);
+		}
+		
+		protected function allIn(object:Object):Boolean
+		{
+			return true;
+		}
+		
+		protected function allOut(object:Object):Boolean
+		{
+			return false;
+		}
+		
+		protected function isOne(object:Object):Boolean
+		{
+			return object == 1;
+		}
+		
+		[Test]
+		public function nullFilter():void
+		{
+			addNumbers();
+			_sut.filterFunction = null;
+			_sut.refresh();
+			
+			assertEquals("Length is not two",  2, _sut.length);
+			assertEquals("First element not correct",  1, _sut[0]);
+			assertEquals("Second element not correct",  2, _sut[1]);
+		}	
+		
+		[Test]
+		public function trueFilter():void
+		{
+			addNumbers();
+			_sut.filterFunction = allIn;
+			_sut.refresh();
+			
+			assertEquals("Length is not two",  2, _sut.length);
+			assertEquals("First element not correct",  1, _sut[0]);
+			assertEquals("Second element not correct",  2, _sut[1]);
+		}
+		
+		[Test]
+		public function falseFilter():void
+		{
+			addNumbers();
+			_sut.filterFunction = allOut;
+			_sut.refresh();
+			
+			assertEquals("Length is not two",  0, _sut.length);
+		}
+		
+		
+		[Test]
+		public function filterNoRefresh():void
+		{
+			addNumbers();
+			_sut.filterFunction = allOut;
+			
+			// Filter should not take effect
+			assertEquals("Length is not two",  2, _sut.length);
+			assertEquals("First element not correct",  1, _sut[0]);
+			assertEquals("Second element not correct",  2, _sut[1]);
+		}
+		
+		[Test]
+		public function nullFilterNoRefresh():void
+		{
+			addNumbers();
+			_sut.filterFunction = null;
+			
+			// Filter should not take effect
+			assertEquals("Length is not two",  2, _sut.length);
+			assertEquals("First element not correct",  1, _sut[0]);
+			assertEquals("Second element not correct",  2, _sut[1]);
+		}
+		
+		[Test]
+		public function filterDoubleRefresh():void
+		{
+			addNumbers();
+			_sut.filterFunction = allOut;
+			_sut.refresh();
+			
+			assertEquals("Length is not zero",  0, _sut.length);
+			
+			_sut.filterFunction = null;
+			_sut.refresh();
+			
+			// Filter should not take effect
+			assertEquals("Length is not two",  2, _sut.length);
+			assertEquals("First element not correct",  1, _sut[0]);
+			assertEquals("Second element not correct",  2, _sut[1]);
+		}
+		
+		// RTEs in Apache Flex 4.9.1
+		[Test]
+		public function filterAddAfterNullNoRefresh():void
+		{
+			addNumbers();
+			
+			_sut.filterFunction = allOut;
+			_sut.refresh();
+			
+			assertEquals("Length is not zero",  0, _sut.length);
+			
+			_sut.filterFunction = null;
+			addNumbers();
+			
+			// Filter should be in effect and first 2 items sorted
+			// item added after are not filtered until refresh called
+			assertEquals("Length is not two",  2, _sut.length);
+			assertEquals("First element not correct",  1, _sut[0]);
+			assertEquals("Second element not correct",  2, _sut[1]);
+			
+			_sut.refresh();
+			assertEquals("Length is not four",  4, _sut.length);
+			assertEquals("First element not correct",  1, _sut[0]);
+			assertEquals("Second element not correct",  2, _sut[1]);
+			assertEquals("First element not correct",  1, _sut[2]);
+			assertEquals("Second element not correct",  2, _sut[3]);
+		}
+		
+		[Test]
+		public function filterRemoveAfterNullNoRefresh():void
+		{
+			addNumbers();
+			
+			_sut.filterFunction = allOut;
+			_sut.refresh();
+			_sut.filterFunction = null;
+			
+			assertEquals("Length is not zero",  0, _sut.length);
+			
+			try {
+				_sut.removeItemAt(0);
+			}
+			catch (error:Error)
+			{
+				assertTrue("Error not range error", error is RangeError);
+			}
+			
+			assertEquals("Length is not zero",  0, _sut.length);
+			
+			_sut.refresh();
+			assertEquals("Length is not two",  2, _sut.length);
+		}
+		
+		[Test]
+		public function filterIncludingDuplicates():void
+		{
+			addNumbers();
+			addNumbers();
+			
+			_sut.filterFunction = isOne;
+			_sut.refresh();
+			
+			assertEquals("Length is not two",  2, _sut.length);
+			
+			assertEquals("First element not correct",  1, _sut[0]);
+			assertEquals("Second element not correct",  1, _sut[1]);
+		}
+		
+		// Fails in Apache Flex 4.9.1
+		[Test]
+		public function swapItemsTwoThenOne():void
+		{
+			//given
+			addNumbers();
+			_sut.filterFunction = allIn;
+			_sut.refresh();
+			
+			var item1:Number = _sut.getItemAt(0) as Number;
+			var item2:Number = _sut.getItemAt(1) as Number;
+
+            //when
+			_sut.setItemAt(item2, 0);
+			_sut.setItemAt(item1, 1);
+
+            //then
+			assertEquals("Length is not two", 2, _sut.length);
+			assertEquals("First element not correct", 2, _sut[0]);
+			assertEquals("Second element not correct", 1, _sut[1]);
+		}
+		
+		[Test]
+		public function swapItemsOneThenTwo():void
+		{
+			addNumbers();
+			_sut.filterFunction = allIn;
+			_sut.refresh();
+			
+			var item1:Number = _sut.getItemAt(0) as Number;
+			var item2:Number = _sut.getItemAt(1) as Number;
+			
+			_sut.setItemAt(item1,1);
+			_sut.setItemAt(item2,0);
+			
+			assertEquals("Length is not two",  2, _sut.length);
+			assertEquals("First element not correct",  2, _sut[0]);
+			assertEquals("Second element not correct",  1, _sut[1]);
+		}
+		
+		[Test]
+		public function removeAllAfterFiltered():void
+		{
+			addNumbers();
+			_sut.filterFunction = allOut;
+			_sut.refresh();
+			
+			assertEquals("Length is not two",  0, _sut.length);
+			
+			_sut.removeAll();
+			
+			assertEquals("Length is not two",  0, _sut.length);
+			
+			_sut.filterFunction = null;
+			_sut.refresh();
+			
+			assertEquals("Length is not two",  2, _sut.length);
+			assertEquals("First element not correct",  1, _sut[0]);
+			assertEquals("Second element not correct",  2, _sut[1]);
+		}
+		
+		[Test]
+		public function removeFilteredItem():void
+		{
+			addNumbers();
+			_sut.filterFunction = isOne;
+			_sut.refresh();
+			
+			assertEquals("Length is not one",  1, _sut.length);
+			
+			_sut.removeItemAt(_sut.getItemIndex(1));
+			
+			assertEquals("Length is not zero",  0, _sut.length);
+			
+			_sut.filterFunction = null;
+			_sut.refresh();
+			
+			assertEquals("Length is not two",  1, _sut.length);
+			assertEquals("First element not correct",  2, _sut[0]);
+		}
+		
+		[Test]
+		public function removeNonFilteredItem():void
+		{
+			addNumbers();
+			_sut.filterFunction = isOne;
+			_sut.refresh();
+			
+			assertEquals("Length is not one",  1, _sut.length);
+			
+			try {
+				// not removed as filter hids it - perhaps it should be removed?
+				_sut.removeItemAt(_sut.getItemIndex(2));
+			}
+			catch (error:Error)
+			{
+				assertTrue("Error not range error", error is RangeError);
+			}
+			
+			assertEquals("Length is not one",  1, _sut.length);
+			
+			_sut.filterFunction = null;
+			_sut.refresh();
+			
+			assertEquals("Length is not two",  2, _sut.length);
+			assertEquals("First element not correct",  1, _sut[0]);
+			assertEquals("First element not correct",  2, _sut[1]);
+		}
+		
+		
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/81643dd1/frameworks/projects/framework/tests/mx/collections/ArrayCollection_FilterStrings_Tests.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/framework/tests/mx/collections/ArrayCollection_FilterStrings_Tests.as b/frameworks/projects/framework/tests/mx/collections/ArrayCollection_FilterStrings_Tests.as
new file mode 100644
index 0000000..2d764dc
--- /dev/null
+++ b/frameworks/projects/framework/tests/mx/collections/ArrayCollection_FilterStrings_Tests.as
@@ -0,0 +1,341 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package mx.collections {
+    import org.flexunit.asserts.*;
+
+    public class ArrayCollection_FilterStrings_Tests
+	{
+        private var _sut:ArrayCollection;
+		
+		[Before]
+		public function setUp():void
+		{
+			_sut = new ArrayCollection();
+		}
+		
+		[After]
+		public function tearDown():void
+		{
+			_sut = null;
+		}
+		
+		protected function addStrings():void
+		{
+			_sut.addItem("A");
+			_sut.addItem("B");
+			_sut.addItem("D");
+			_sut.addItem("C");
+		}
+		
+		protected function allIn(object:Object):Boolean
+		{
+			return true;
+		}
+		
+		protected function allOut(object:Object):Boolean
+		{
+			return false;
+		}
+		
+		protected function isA(object:Object):Boolean
+		{
+			return object == "A";
+		}
+		
+		[Test]
+		public function nullFilter():void
+		{
+			addStrings();
+			_sut.filterFunction = null;
+			_sut.refresh();
+			
+			assertEquals("Length is not four",  4, _sut.length);
+			assertEquals("First element not correct",  "A", _sut[0]);
+			assertEquals("Second element not correct",  "B", _sut[1]);
+			assertEquals("Third element not correct",  "D", _sut[2]);
+			assertEquals("Four element not correct",  "C", _sut[3]);
+		}	
+		
+		[Test]
+		public function trueFilter():void
+		{
+			addStrings();
+			_sut.filterFunction = allIn;
+			_sut.refresh();
+			
+			assertEquals("Length is not four",  4, _sut.length);
+			assertEquals("First element not correct",  "A", _sut[0]);
+			assertEquals("Second element not correct",  "B", _sut[1]);
+			assertEquals("Third element not correct",  "D", _sut[2]);
+			assertEquals("Four element not correct",  "C", _sut[3]);
+		}
+		
+		[Test]
+		public function falseFilter():void
+		{
+			addStrings();
+			_sut.filterFunction = allOut;
+			_sut.refresh();
+			
+			assertEquals("Length is not zero",  0, _sut.length);
+		}
+		
+		
+		[Test]
+		public function filterNoRefresh():void
+		{
+			addStrings();
+			_sut.filterFunction = allOut;
+			
+			// Filter should not take effect
+			assertEquals("Length is not four",  4, _sut.length);
+			assertEquals("First element not correct",  "A", _sut[0]);
+			assertEquals("Second element not correct",  "B", _sut[1]);
+			assertEquals("Third element not correct",  "D", _sut[2]);
+			assertEquals("Four element not correct",  "C", _sut[3]);
+		}
+		
+		[Test]
+		public function nullFilterNoRefresh():void
+		{
+			addStrings();
+			_sut.filterFunction = null;
+			
+			// Filter should not take effect
+			assertEquals("Length is not four",  4, _sut.length);
+			assertEquals("First element not correct",  "A", _sut[0]);
+			assertEquals("Second element not correct",  "B", _sut[1]);
+			assertEquals("Third element not correct",  "D", _sut[2]);
+			assertEquals("Four element not correct",  "C", _sut[3]);
+		}
+		
+		[Test]
+		public function filterDoubleRefresh():void
+		{
+			addStrings();
+			_sut.filterFunction = allOut;
+			_sut.refresh();
+			
+			assertEquals("Length is not zero",  0, _sut.length);
+			
+			_sut.filterFunction = null;
+			_sut.refresh();
+			
+			// Filter should not take effect
+			assertEquals("Length is not four",  4, _sut.length);
+			assertEquals("First element not correct",  "A", _sut[0]);
+			assertEquals("Second element not correct",  "B", _sut[1]);
+			assertEquals("Third element not correct",  "D", _sut[2]);
+			assertEquals("Four element not correct",  "C", _sut[3]);
+		}
+		
+		// RTEs in Apache Flex 4.9.1
+		[Test]
+		public function filterAddAfterNullNoRefresh():void
+		{
+			addStrings();
+			
+			_sut.filterFunction = allOut;
+			_sut.refresh();
+			
+			assertEquals("Length is not zero",  0, _sut.length);
+			
+			_sut.filterFunction = null;
+			addStrings();
+			
+			// Filter should be in effect and first 2 items sorted
+			// item added after are not filtered until refresh called
+			assertEquals("Length is not four",  4, _sut.length);
+			assertEquals("First element not correct",  "A", _sut[0]);
+			assertEquals("Second element not correct",  "B", _sut[1]);
+			assertEquals("Third element not correct",  "D", _sut[2]);
+			assertEquals("Four element not correct",  "C", _sut[3]);
+			
+			_sut.refresh();
+			assertEquals("Length is not eight",  8, _sut.length);
+			assertEquals("First element not correct",  "A", _sut[0]);
+			assertEquals("Second element not correct",  "B", _sut[1]);
+			assertEquals("Third element not correct",  "D", _sut[2]);
+			assertEquals("Four element not correct",  "C", _sut[3]);
+			assertEquals("First element not correct",  "A", _sut[4]);
+			assertEquals("Second element not correct",  "B", _sut[5]);
+			assertEquals("Third element not correct",  "D", _sut[6]);
+			assertEquals("Four element not correct",  "C", _sut[7]);
+		}
+		
+		[Test]
+		public function filterRemoveAfterNullNoRefresh():void
+		{
+			addStrings();
+			
+			_sut.filterFunction = allOut;
+			_sut.refresh();
+			_sut.filterFunction = null;
+			
+			assertEquals("Length is not zero",  0, _sut.length);
+			
+			try {
+				_sut.removeItemAt(0);
+			}
+			catch (error:Error)
+			{
+				assertTrue("Error not range error", error is RangeError);
+			}
+			
+			assertEquals("Length is not zero",  0, _sut.length);
+			
+			_sut.refresh();
+			assertEquals("Length is not four",  4, _sut.length);
+		}
+		
+		[Test]
+		public function filterIncludingDuplicates():void
+		{
+			addStrings();
+			addStrings();
+			
+			_sut.filterFunction = isA;
+			_sut.refresh();
+			
+			assertEquals("Length is not two",  2, _sut.length);
+			
+			assertEquals("First element not correct",  "A", _sut[0]);
+			assertEquals("Second element not correct",  "A", _sut[1]);
+		}
+		
+		// Fails in Apache Flex 4.9.1
+		[Test]
+		public function swapItemsTwoThenOne():void
+		{
+			//given
+			addStrings();
+			_sut.filterFunction = allIn;
+			_sut.refresh();
+			
+			var item1:String = _sut.getItemAt(0) as String;
+			var item2:String = _sut.getItemAt(1) as String;
+
+            //when
+			_sut.setItemAt(item2,0);
+			_sut.setItemAt(item1,1);
+
+            //then
+			assertEquals("Length is not four",  4, _sut.length);
+			assertEquals("First element not correct",  _sut[0], "B");
+			assertEquals("Second element not correct",  _sut[1], "A");
+			assertEquals("Third element not correct",  _sut[2], "D");
+			assertEquals("Four element not correct",  _sut[3], "C");
+		}
+		
+		[Test]
+		public function swapItemsOneThenTwo():void
+		{
+			addStrings();
+			_sut.filterFunction = allIn;
+			_sut.refresh();
+			
+			var item1:String = _sut.getItemAt(0) as String;
+			var item2:String = _sut.getItemAt(1) as String;
+			
+			_sut.setItemAt(item1,1);
+			_sut.setItemAt(item2,0);
+			
+			assertEquals("Length is not four",  4, _sut.length);
+			assertEquals("First element not correct",  "B", _sut[0]);
+			assertEquals("Second element not correct",  "A", _sut[1]);
+			assertEquals("Third element not correct",  "D", _sut[2]);
+			assertEquals("Four element not correct",  "C", _sut[3]);
+		}
+		
+		[Test]
+		public function removeAllAfterFiltered():void
+		{
+			addStrings();
+			_sut.filterFunction = allOut;
+			_sut.refresh();
+			
+			assertEquals("Length is not two",  0, _sut.length);
+			
+			_sut.removeAll();
+			
+			assertEquals("Length is not two",  0, _sut.length);
+			
+			_sut.filterFunction = null;
+			_sut.refresh();
+			
+			assertEquals("Length is not four",  4, _sut.length);
+			assertEquals("First element not correct",  "A", _sut[0]);
+			assertEquals("Second element not correct",  "B", _sut[1]);
+			assertEquals("Third element not correct",  "D", _sut[2]);
+			assertEquals("Four element not correct",  "C", _sut[3]);
+		}
+		
+		[Test]
+		public function removeFilteredItem():void
+		{
+			addStrings();
+			_sut.filterFunction = isA;
+			_sut.refresh();
+			
+			assertEquals("Length is not one",  1, _sut.length);
+			
+			_sut.removeItemAt(_sut.getItemIndex("A"));
+			
+			assertEquals("Length is not zero",  0, _sut.length);
+			
+			_sut.filterFunction = null;
+			_sut.refresh();
+			
+			assertEquals("Length is not three",  3, _sut.length);
+			assertEquals("First element not correct",  "B", _sut[0]);
+		}
+		
+		[Test]
+		public function removeNonFilteredItem():void
+		{
+			addStrings();
+			_sut.filterFunction = isA;
+			_sut.refresh();
+			
+			assertEquals("Length is not one",  1, _sut.length);
+			
+			try {
+				// not removed as filter hids it - perhaps it should be removed?
+				_sut.removeItemAt(_sut.getItemIndex("B"));
+			}
+			catch (error:Error)
+			{
+				assertTrue("Error not range error", error is RangeError);
+			}
+			
+			assertEquals("Length is not one",  1, _sut.length);
+			
+			_sut.filterFunction = null;
+			_sut.refresh();
+			
+			assertEquals("Length is not four",  4, _sut.length);
+			assertEquals("First element not correct",  "A", _sut[0]);
+			assertEquals("Second element not correct",  "B", _sut[1]);
+			assertEquals("Third element not correct",  "D", _sut[2]);
+			assertEquals("Four element not correct",  "C", _sut[3]);
+		}
+		
+		
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/81643dd1/frameworks/projects/framework/tests/mx/collections/ArrayCollection_SortNumbers_Tests.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/framework/tests/mx/collections/ArrayCollection_SortNumbers_Tests.as b/frameworks/projects/framework/tests/mx/collections/ArrayCollection_SortNumbers_Tests.as
new file mode 100644
index 0000000..85f800e
--- /dev/null
+++ b/frameworks/projects/framework/tests/mx/collections/ArrayCollection_SortNumbers_Tests.as
@@ -0,0 +1,212 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package mx.collections {
+    import org.flexunit.asserts.*;
+
+    public class ArrayCollection_SortNumbers_Tests
+	{
+        private var _sut:ArrayCollection;
+		
+		[Before]
+		public function setUp():void
+		{
+			_sut = new ArrayCollection();
+		}
+		
+		[After]
+		public function tearDown():void
+		{
+			_sut = null;
+		}
+		
+		protected function addNumbers():void
+		{
+			_sut.addItem(1);
+			_sut.addItem(2);
+		}
+		
+		[Test]
+		public function nullSort():void
+		{
+			addNumbers();
+			_sut.sort = null;
+			_sut.refresh();
+			
+			assertEquals("Length is not two",  2, _sut.length);
+			assertEquals("First element not correct",  1, _sut[0]);
+			assertEquals("Second element not correct",  2, _sut[1]);
+		}	
+		
+		[Test]
+		public function emptySort():void
+		{
+			addNumbers();
+			_sut.sort = new Sort();
+			_sut.refresh();
+			
+			assertEquals("Length is not two",  2, _sut.length);
+			assertEquals("First element not correct",  1, _sut[0]);
+			assertEquals("Second element not correct",  2, _sut[1]);
+		}
+		
+		[Test]
+		public function reverseSort():void
+		{
+			var sort:Sort = new Sort();			
+			sort.fields = [new SortField(null, false, true, true)];
+			addNumbers();
+			_sut.sort = sort;
+			_sut.refresh();
+			
+			assertEquals("Length is not two",  2, _sut.length);
+			assertEquals("First element not correct",  2, _sut[0]);
+			assertEquals("Second element not correct",  1, _sut[1]);
+		}
+		
+		[Test]
+		public function sortNoRefresh():void
+		{
+			var sort:Sort = new Sort();			
+			sort.fields = [new SortField(null, false, true, true)];
+			addNumbers();
+			_sut.sort = sort;
+			
+			// Short should not take effect
+			assertEquals("Length is not two",  2, _sut.length);
+			assertEquals("First element not correct",  1, _sut[0]);
+			assertEquals("Second element not correct",  2, _sut[1]);
+		}
+		
+		[Test]
+		public function nullSortNoRefresh():void
+		{
+			var sort:Sort = new Sort();			
+			sort.fields = [new SortField(null, false, true, true)];
+			addNumbers();
+			_sut.sort = sort;
+			_sut.refresh();
+			_sut.sort = null;
+			
+			// Sort should be in effect
+			assertEquals("Length is not two",  2, _sut.length);
+			assertEquals("First element not correct",  2, _sut[0]);
+			assertEquals("Second element not correct",  1, _sut[1]);
+			
+			_sut.refresh();
+			
+			// and back to original
+			assertEquals("Length is not two",  2, _sut.length);
+			assertEquals("First element not correct",  1, _sut[0]);
+			assertEquals("Second element not correct",  2, _sut[1]);
+		}
+		
+		[Test]
+		public function sortDoubleRefresh():void
+		{
+			var sort:Sort = new Sort();			
+			sort.fields = [new SortField(null, false, true, true)];
+			addNumbers();
+			_sut.sort = sort;
+			_sut.refresh();
+			_sut.sort = null;
+			_sut.refresh();
+			
+			// Sort should not be in effect
+			assertEquals("Length is not two",  2, _sut.length);
+			assertEquals("First element not correct",  1, _sut[0]);
+			assertEquals("Second element not correct",  2, _sut[1]);
+		}
+		
+		// RTEs in APache flex 4.9.1
+		[Test]
+		public function sortAddAfterNullNoRefresh():void
+		{
+			addNumbers();
+			
+			var sort:Sort = new Sort();			
+			sort.fields = [new SortField(null, false, true, true)];
+			_sut.sort = sort;
+			_sut.refresh();
+			_sut.sort = null;
+			addNumbers();
+			
+			// Sort should be in effect and first 2 items sorted
+			// item added after are not sorted
+			assertEquals("Length is not four",  4, _sut.length);
+			assertEquals("First element not correct",  2, _sut[0]);
+			assertEquals("Second element not correct",  1, _sut[1]);
+			assertEquals("Third element not correct",  1, _sut[2]);
+			assertEquals("Fourth element not correct",  2, _sut[3]);
+			
+			_sut.refresh();
+			
+			// and back to being unsorted
+			assertEquals("Length is not four",  4, _sut.length);
+			assertEquals("First element not correct",  1, _sut[0]);
+			assertEquals("Second element not correct",  2, _sut[1]);
+			assertEquals("Third element not correct",  1, _sut[2]);
+			assertEquals("Fourth element not correct",  2, _sut[3]);
+		}
+		
+		// RTEs in Apache Flex 4.9.1
+		[Test]
+		public function sortRemoveAfterNullNoRefresh():void
+		{
+			addNumbers();
+			
+			var sort:Sort = new Sort();			
+			sort.fields = [new SortField(null, false, true, true)];
+			_sut.sort = sort;
+			_sut.refresh();
+			_sut.sort = null;
+			
+			assertEquals("Length is not two",  2, _sut.length);
+			
+			_sut.removeItemAt(0); // still sorted so 2 is removed leaving 1
+			assertEquals("Length is not one",  1, _sut.length);
+			assertEquals("First element not correct",  1, _sut[0]);
+			
+			_sut.refresh();
+			
+			// still the same
+			assertEquals("Length is not one",  1, _sut.length);
+			assertEquals("First element not correct",  1, _sut[0]);
+		}
+		
+		[Test]
+		public function sortIncludingDuplicates():void
+		{
+			addNumbers();
+			addNumbers();
+			
+			var sort:Sort = new Sort();			
+			sort.fields = [new SortField(null, false, true, true)];
+			_sut.sort = sort;
+			_sut.refresh();
+			
+			assertEquals("Length is not four",  4, _sut.length);
+			
+			assertEquals("First element not correct",  2, _sut[0]);
+			assertEquals("Second element not correct",  2, _sut[1]);
+			assertEquals("Third element not correct",  1, _sut[2]);
+			assertEquals("Fourth element not correct",  1, _sut[3]);
+		}
+		
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/81643dd1/frameworks/projects/framework/tests/mx/collections/ArrayCollection_SortStrings_Tests.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/framework/tests/mx/collections/ArrayCollection_SortStrings_Tests.as b/frameworks/projects/framework/tests/mx/collections/ArrayCollection_SortStrings_Tests.as
new file mode 100644
index 0000000..3f49d52
--- /dev/null
+++ b/frameworks/projects/framework/tests/mx/collections/ArrayCollection_SortStrings_Tests.as
@@ -0,0 +1,254 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package mx.collections {
+    import org.flexunit.asserts.*;
+
+    public class ArrayCollection_SortStrings_Tests
+	{
+        private var _sut:ArrayCollection;
+		
+		[Before]
+		public function setUp():void
+		{
+			_sut = new ArrayCollection();
+		}
+		
+		[After]
+		public function tearDown():void
+		{
+			_sut = null;
+		}
+		
+		protected function addStrings():void
+		{
+			_sut.addItem("A");
+			_sut.addItem("B");
+			_sut.addItem("D");
+			_sut.addItem("C");
+		}
+		
+		[Test]
+		public function nullSort():void
+		{
+			addStrings();
+			_sut.sort = null;
+			_sut.refresh();
+			
+			assertEquals("Length is not four",  4, _sut.length);
+			assertEquals("First element not correct",  "A", _sut[0]);
+			assertEquals("Second element not correct",  "B", _sut[1]);
+			assertEquals("First element not correct",  "D", _sut[2]);
+			assertEquals("Second element not correct",  "C", _sut[3]);
+		}	
+		
+		[Test]
+		public function emptySort():void
+		{
+			addStrings();
+			_sut.sort = new Sort();
+			_sut.refresh();
+			
+			assertEquals("Length is not four",  4, _sut.length);
+			assertEquals("First element not correct",  "A", _sut[0]);
+			assertEquals("Second element not correct",  "B", _sut[1]);
+			assertEquals("First element not correct",  "C", _sut[2]);
+			assertEquals("Second element not correct",  "D", _sut[3]);
+		}
+		
+		[Test]
+		public function reverseSort():void
+		{
+			var sort:Sort = new Sort();			
+			sort.fields = [new SortField(null, false, true)];
+			addStrings();
+			_sut.sort = sort;
+			_sut.refresh();
+			
+			assertEquals("Length is not four",  4, _sut.length);
+			assertEquals("First element not correct",  "D", _sut[0]);
+			assertEquals("Second element not correct",  "C", _sut[1]);
+			assertEquals("First element not correct",  "B", _sut[2]);
+			assertEquals("Second element not correct",  "A", _sut[3]);
+		}
+		
+		[Test]
+		public function forwardSort():void
+		{
+			var sort:Sort = new Sort();			
+			sort.fields = [new SortField()];
+			addStrings();
+			_sut.sort = sort;
+			_sut.refresh();
+			
+			assertEquals("Length is not four",  4, _sut.length);
+			assertEquals("First element not correct",  "A", _sut[0]);
+			assertEquals("Second element not correct",  "B", _sut[1]);
+			assertEquals("First element not correct",  "C", _sut[2]);
+			assertEquals("Second element not correct",  "D", _sut[3]);
+		}
+		
+		[Test]
+		public function sortNoRefresh():void
+		{
+			var sort:Sort = new Sort();			
+			sort.fields = [new SortField()];
+			addStrings();
+			_sut.sort = sort;
+			
+			// Short should not take effect
+			assertEquals("Length is not four",  4, _sut.length);
+			assertEquals("First element not correct",  "A", _sut[0]);
+			assertEquals("Second element not correct",  "B", _sut[1]);
+			assertEquals("First element not correct",  "D", _sut[2]);
+			assertEquals("Second element not correct",  "C", _sut[3]);
+		}
+		
+		[Test]
+		public function nullSortNoRefresh():void
+		{
+			var sort:Sort = new Sort();			
+			sort.fields = [new SortField()];
+			addStrings();
+			_sut.sort = sort;
+			_sut.refresh();
+			_sut.sort = null;
+			
+			// Sort should be in effect
+			assertEquals("Length is not four",  4, _sut.length);
+			assertEquals("First element not correct",  "A", _sut[0]);
+			assertEquals("Second element not correct",  "B", _sut[1]);
+			assertEquals("First element not correct",  "C", _sut[2]);
+			assertEquals("Second element not correct",  "D", _sut[3]);
+			
+			_sut.refresh();
+			
+			// and back to original
+			assertEquals("Length is not four",  4, _sut.length);
+			assertEquals("First element not correct",  "A", _sut[0]);
+			assertEquals("Second element not correct",  "B", _sut[1]);
+			assertEquals("First element not correct",  "D", _sut[2]);
+			assertEquals("Second element not correct",  "C", _sut[3]);
+		}
+		
+		[Test]
+		public function sortDoubleRefresh():void
+		{
+			var sort:Sort = new Sort();			
+			sort.fields = [new SortField()];
+			addStrings();
+			_sut.sort = sort;
+			_sut.refresh();
+			_sut.sort = null;
+			_sut.refresh();
+			
+			// Sort should not be in effect
+			assertEquals("Length is not four",  4, _sut.length);
+			assertEquals("First element not correct",  "A", _sut[0]);
+			assertEquals("Second element not correct",  "B", _sut[1]);
+			assertEquals("First element not correct",  "D", _sut[2]);
+			assertEquals("Second element not correct",  "C", _sut[3]);
+		}
+		
+		// RTEs in APache flex 4.9.1
+		[Test]
+		public function sortAddAfterNullNoRefresh():void
+		{
+			addStrings();
+			
+			var sort:Sort = new Sort();			
+			sort.fields = [new SortField()];
+			_sut.sort = sort;
+			_sut.refresh();
+			_sut.sort = null;
+			addStrings();
+			
+			// Sort should be in effect and first 4 items sorted
+			// item added after are not sorted
+			assertEquals("Length is not eight",  8, _sut.length);
+			assertEquals("First element not correct",  "A", _sut[0]);
+			assertEquals("Second element not correct",  "B", _sut[1]);
+			assertEquals("First element not correct",  "C", _sut[2]);
+			assertEquals("Second element not correct",  "D", _sut[3]);
+			assertEquals("First element not correct",  "A", _sut[4]);
+			assertEquals("Second element not correct",  "B", _sut[5]);
+			assertEquals("First element not correct",  "D", _sut[6]);
+			assertEquals("Second element not correct",  "C", _sut[7]);
+			
+			_sut.refresh();
+			
+			// and back to being unsorted
+			assertEquals("Length is not eight",  8, _sut.length);
+			assertEquals("First element not correct",  "A", _sut[0]);
+			assertEquals("Second element not correct",  "B", _sut[1]);
+			assertEquals("First element not correct",  "D", _sut[2]);
+			assertEquals("Second element not correct",  "C", _sut[3]);
+			assertEquals("First element not correct",  "A", _sut[4]);
+			assertEquals("Second element not correct",  "B", _sut[5]);
+			assertEquals("First element not correct",  "D", _sut[6]);
+			assertEquals("Second element not correct",  "C", _sut[7]);
+		}
+		
+		// RTEs in Apache Flex 4.9.1
+		[Test]
+		public function sortRemoveAfterNullNoRefresh():void
+		{
+			addStrings();
+			
+			var sort:Sort = new Sort();			
+			sort.fields = [new SortField(null, false, true, true)];
+			_sut.sort = sort;
+			_sut.refresh();
+			_sut.sort = null;
+			
+			assertEquals("Length is not four",  4, _sut.length);
+			
+			_sut.removeItemAt(0); // still sorted so 2 is removed leaving 1
+			assertEquals("Length is not three",  3, _sut.length);
+			assertEquals("First element not correct",  "B", _sut[0]);
+			
+			_sut.refresh();
+			
+			assertEquals("Length is not four",  3, _sut.length);
+			assertEquals("First element not correct",  "A", _sut[0]);
+		}
+		
+		[Test]
+		public function sortIncludingDuplicates():void
+		{
+			addStrings();
+			addStrings();
+			
+			var sort:Sort = new Sort();			
+			sort.fields = [new SortField()];
+			_sut.sort = sort;
+			_sut.refresh();
+			
+			assertEquals("Length is not eight",  8, _sut.length);
+			assertEquals("First element not correct",  "A", _sut[0]);
+			assertEquals("Second element not correct",  "A", _sut[1]);
+			assertEquals("First element not correct",  "B", _sut[2]);
+			assertEquals("Second element not correct",  "B", _sut[3]);
+			assertEquals("First element not correct",  "C", _sut[4]);
+			assertEquals("Second element not correct",  "C", _sut[5]);
+			assertEquals("First element not correct",  "D", _sut[6]);
+			assertEquals("Second element not correct",  "D", _sut[7]);
+		}
+		
+	}
+}
\ No newline at end of file


Mime
View raw message