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 2015/06/07 18:10:06 UTC
[7/8] git commit: [flex-sdk] [refs/heads/develop] - FLEX-34852 Added
more unit tests to check for edge cases,
and for Sort.unique variations. Also replaced the last inline sort field value
retrieval in SortField (in initializeDefaultCompareFunction()).
FLEX-34852
Added more unit tests to check for edge cases, and for Sort.unique variations.
Also replaced the last inline sort field value retrieval in SortField (in initializeDefaultCompareFunction()).
Project: http://git-wip-us.apache.org/repos/asf/flex-sdk/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-sdk/commit/8dae0daa
Tree: http://git-wip-us.apache.org/repos/asf/flex-sdk/tree/8dae0daa
Diff: http://git-wip-us.apache.org/repos/asf/flex-sdk/diff/8dae0daa
Branch: refs/heads/develop
Commit: 8dae0daab1d779ee17a23477159bef33524d4cb3
Parents: c4f20ee
Author: Mihai Chira <mi...@apache.org>
Authored: Sun Jun 7 14:57:22 2015 +0200
Committer: Mihai Chira <mi...@apache.org>
Committed: Sun Jun 7 14:57:22 2015 +0200
----------------------------------------------------------------------
.../framework/src/mx/collections/Sort.as | 3 +-
.../framework/src/mx/collections/SortField.as | 8 +--
.../framework/tests/FLEX_34852_Tests.as | 76 ++++++++++++++++++++
3 files changed, 78 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/8dae0daa/frameworks/projects/framework/src/mx/collections/Sort.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/framework/src/mx/collections/Sort.as b/frameworks/projects/framework/src/mx/collections/Sort.as
index db0f704..14f1d64 100644
--- a/frameworks/projects/framework/src/mx/collections/Sort.as
+++ b/frameworks/projects/framework/src/mx/collections/Sort.as
@@ -672,8 +672,7 @@ public class Sort extends EventDispatcher implements ISort
}
else
{
- uniqueRet2 = items.sort(internalCompare,
- Array.UNIQUESORT);
+ uniqueRet2 = items.sort(internalCompare, Array.UNIQUESORT);
}
if (uniqueRet2 == 0)
{
http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/8dae0daa/frameworks/projects/framework/src/mx/collections/SortField.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/framework/src/mx/collections/SortField.as b/frameworks/projects/framework/src/mx/collections/SortField.as
index 270bea5..d8780f1 100644
--- a/frameworks/projects/framework/src/mx/collections/SortField.as
+++ b/frameworks/projects/framework/src/mx/collections/SortField.as
@@ -520,13 +520,7 @@ public class SortField extends EventDispatcher implements ISortField
var value:Object;
if (_name)
{
- try
- {
- value = obj[_name];
- }
- catch(error:Error)
- {
- }
+ value = getSortFieldValue(obj);
}
//this needs to be an == null check because !value will return true
//where value == 0 or value == false
http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/8dae0daa/frameworks/projects/framework/tests/FLEX_34852_Tests.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/framework/tests/FLEX_34852_Tests.as b/frameworks/projects/framework/tests/FLEX_34852_Tests.as
index 50836b9..dcb1bc9 100644
--- a/frameworks/projects/framework/tests/FLEX_34852_Tests.as
+++ b/frameworks/projects/framework/tests/FLEX_34852_Tests.as
@@ -26,6 +26,7 @@ package {
import mx.collections.SortFieldCompareTypes;
import org.flexunit.asserts.assertEquals;
+ import org.flexunit.asserts.assertTrue;
public class FLEX_34852_Tests {
private var _sut:ListCollectionView;
@@ -79,6 +80,42 @@ package {
}
[Test]
+ public function test_simple_ascending_sort_by_complex_string_fields_with_unique_field():void
+ {
+ //given
+ var from4To0:IList = generateVOs(5, true);
+ _sut.addAll(from4To0); //values["address.street"]: Street4, Street3, Street2, Street1, Street0
+
+ const sortByStreetAscending:Sort = new Sort();
+ sortByStreetAscending.fields = [new ComplexSortField("address.street", false, false, false)];
+ sortByStreetAscending.unique = true;
+ _sut.sort = sortByStreetAscending;
+
+ //when
+ _sut.refresh(); //should be: Street0, Street1, Street2, Street3, Street4
+
+ //then
+ assertIndexesAre([0, 1, 2, 3, 4]);
+ }
+
+ [Test(expects="Error")]
+ public function test_simple_ascending_sort_by_complex_string_fields_with_unique_flag_and_duplicating_field_throws_error():void
+ {
+ //given
+ var from4To0:IList = generateVOs(5, true);
+ _sut.addAll(from4To0); //values["address.street"]: Street4, Street3, Street2, Street1, Street0
+ FLEX_34852_VO(_sut.getItemAt(0)).address.street = "Street0"; //making sure there's a duplicate
+
+ const sortByStreetAscending:Sort = new Sort();
+ sortByStreetAscending.fields = [new ComplexSortField("address.street", false, false, false)];
+ sortByStreetAscending.unique = true;
+ _sut.sort = sortByStreetAscending;
+
+ //when
+ _sut.refresh(); //should throw an error about there being a duplicate value
+ }
+
+ [Test]
public function test_simple_ascending_sort_by_complex_date_fields():void
{
//given
@@ -154,6 +191,45 @@ package {
assertIndexesAre([4, 3, 2, 1, 0]);
}
+ [Test]
+ public function test_simple_ascending_sort_with_empty_field_name_should_not_throw_error():void
+ {
+ //given
+ var from4To0:IList = generateVOs(5, true);
+ _sut.addAll(from4To0); //values["index"]: 4, 3, 2, 1, 0
+
+ const sortByNothingAscending:Sort = new Sort();
+ sortByNothingAscending.fields = [new ComplexSortField("", false, false)];
+ _sut.sort = sortByNothingAscending;
+
+ //when
+ _sut.refresh(); //just make sure it doesn't throw an error.
+
+ //then - we cannot guarantee the order of the items because SortField.nullCompare returns 0 in this
+ // situation, so we just make sure there's no error
+ assertTrue(true);
+ }
+
+ [Test]
+ public function test_simple_ascending_sort_with_erroneous_field_name_should_not_throw_error():void
+ {
+ //given
+ var from4To0:IList = generateVOs(5, true);
+ _sut.addAll(from4To0); //values["index"]: 4, 3, 2, 1, 0
+
+ const sortByNothingAscending:Sort = new Sort();
+ sortByNothingAscending.fields = [new ComplexSortField("aFieldThatDoesntExist", false, false)];
+ _sut.sort = sortByNothingAscending;
+
+ //when
+ _sut.refresh(); //just make sure it doesn't throw an error.
+
+ //then - we cannot guarantee the order of the items because SortField.nullCompare returns 0 in this
+ // situation, so we just make sure there's no error
+ assertTrue(true);
+ }
+
+
private function assertIndexesAre(indexes:Array):void