Good luck.
-Alex

On 6/9/15, 1:25 AM, "Mihai Chira" <mih...@apache.org> wrote:

>Just want to make sure that everyone thinks this is a bug? I think it
>is because in mx.collections.ListCollectionView.handlePropertyChangeEvents
>it explicitly decides to call moveItemInView() if, among others,
>updateInfo.property is null or empty. But then it fails to remove the
>old item from the localIndex. If no one disagrees, I'll proceed to
>solve it.
>
>On 9 June 2015 at 10:21,  <mih...@apache.org> wrote:
>> Repository: flex-sdk
>> Updated Branches:
>>   refs/heads/develop 97e625a80 -> 2779ea9f3
>>
>>
>> FLEX-34854 FLEX-34885
>> While trying to figure out whether ComplexFieldChangeWatcher should
>>handle CollectionEventKind.UPDATE events, I stumbled on this bug. This
>>is the unit test which demonstrates it (currently fails, since the bug
>>is still there).
>>
>>
>> Project: http://git-wip-us.apache.org/repos/asf/flex-sdk/repo
>> Commit: http://git-wip-us.apache.org/repos/asf/flex-sdk/commit/2779ea9f
>> Tree: http://git-wip-us.apache.org/repos/asf/flex-sdk/tree/2779ea9f
>> Diff: http://git-wip-us.apache.org/repos/asf/flex-sdk/diff/2779ea9f
>>
>> Branch: refs/heads/develop
>> Commit: 2779ea9f32e8053edd3bc2620ccfbc37f52c3eba
>> Parents: 97e625a
>> Author: Mihai Chira <mih...@apache.org>
>> Authored: Tue Jun 9 10:21:18 2015 +0200
>> Committer: Mihai Chira <mih...@apache.org>
>> Committed: Tue Jun 9 10:21:18 2015 +0200
>>
>> ----------------------------------------------------------------------
>>  .../tests/ListCollectionView_Sort_Tests.as      | 39
>>+++++++++++++++++---
>>  1 file changed, 33 insertions(+), 6 deletions(-)
>> ----------------------------------------------------------------------
>>
>>
>> 
>>http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/2779ea9f/frameworks/
>>projects/framework/tests/ListCollectionView_Sort_Tests.as
>> ----------------------------------------------------------------------
>> diff --git 
>>a/frameworks/projects/framework/tests/ListCollectionView_Sort_Tests.as
>>b/frameworks/projects/framework/tests/ListCollectionView_Sort_Tests.as
>> index 7024626..f21310e 100644
>> --- 
>>a/frameworks/projects/framework/tests/ListCollectionView_Sort_Tests.as
>> +++ 
>>b/frameworks/projects/framework/tests/ListCollectionView_Sort_Tests.as
>> @@ -360,6 +360,37 @@ package {
>>              assertRemoveAll();
>>          }
>>
>> +        [Test]
>> +        public function
>>test_marking_entire_item_as_updated_gets_the_old_object_out_of_the_list()
>>:void
>> +        {
>> +            //given
>> +            var from0To4:IList = generateVOs(5);
>> +            _sut.addAll(from0To4);
>> +
>> +            const sortByNameAscending:Sort = new Sort();
>> +            sortByNameAscending.fields = [new SortField("name", false,
>>false, false)];
>> +            _sut.sort = sortByNameAscending;
>> +            _sut.refresh(); //values["name"]: Object0, Object1,
>>Object2, Object3, Object4
>> +
>> +            //when
>> +            const removedItem:ListCollectionView_Sort_VO =
>>_sut.getItemAt(0) as ListCollectionView_Sort_VO;
>> +            const newItem:ListCollectionView_Sort_VO =
>>generateOneObject(0);
>> +            (_sut.list as ArrayList).source[0] = newItem;
>> +            _sut.itemUpdated(newItem, null, removedItem, newItem);
>> +
>> +            removedItem.name = "Object7"; //should make no difference
>> +            newItem.name = "Object9"; //should place it at the end of
>>the list
>> +
>> +            //then
>> +            const indexOfRemovedItem:int =
>>_sut.getItemIndex(removedItem);
>> +            assertEquals("the item should have been removed from the
>>list", -1, indexOfRemovedItem);
>> +            for(var i:int = 0; i < _sut.length; i++)
>> +            {
>> +                assertThat(_sut.getItemAt(i) != removedItem);
>> +            }
>> +            assertEquals("the new item should have been moved to the
>>end of the list", _sut.length - 1, _sut.getItemIndex(newItem));
>> +        }
>> +
>>          private function assertIndexesAre(indexes:Array):void
>>          {
>>              assertFieldValuesAre("index", indexes);
>> @@ -442,15 +473,11 @@ package {
>>      }
>>  }
>>
>> +[Bindable]
>>  dynamic class ListCollectionView_Sort_VO
>>  {
>> -    [Bindable]
>>      public var name:String;
>> -
>> -    [Bindable]
>>      public var address:ListCollectionView_Sort_AddressVO;
>> -
>> -    [Bindable]
>>      public var index:Number;
>>
>>      public function ListCollectionView_Sort_VO(index:Number,
>>namePrefix:String, streetPrefix:String)
>> @@ -461,9 +488,9 @@ dynamic class ListCollectionView_Sort_VO
>>      }
>>  }
>>
>> +[Bindable]
>>  class ListCollectionView_Sort_AddressVO
>>  {
>> -    [Bindable]
>>      public var street:String;
>>
>>      public function ListCollectionView_Sort_AddressVO(street:String)
>>

Reply via email to