GOT IT!!! (and without debugging :-) ) Actually, in spark DataGrid, the content is not in the DataGrid, but in the subgridViews, so that's where the updateComplete occurs when the dataProvider is changed.
The UDL that is triggered in the Grid itself, related only to selection/caret changes. Regarding resetDP(), I confirm what you say: -reassigning the same instance, does nothing. - So everything is done in the RemoveAll() and AddItem() RemoveAll will trigger RESET, that will trigger UDL in a subGridView And all the AddItem will trigger one consolidated ADD event (AFAIR). So the test case won't trigger the UDL... So the test case needs to wait for updateComplete on one of the subViews, not the dataGrid itself. Maurice -----Message d'origine----- De : Alex Harui [mailto:aha...@adobe.com] Envoyé : mardi 15 octobre 2013 02:18 À : dev@flex.apache.org Objet : Re: Build failed in Jenkins: flex-sdk_mustella #470 Debug into the dataProvider setter. It looks like resetDP assigns the same instance so if there is a change check in the setter then it won't call the invalidation methods. Also check the invalidation flags to see if they are being set or not. I would expect all of those addItem calls to invalidate something. And is that RunCode the 3rd step or could this be from a different RunCode? On 10/14/13 5:10 PM, "Maurice Amsellem" <maurice.amsel...@systar.com> wrote: >I changed to following: ><RunCode code="FlexGlobals.topLevelApplication.dataGrid.resetDP()" >waitEvent="updateComplete" waitTarget="dataGrid" /> > >Instead of : > <RunCode code="FlexGlobals.topLevelApplication.dataGrid.resetDP()" >waitEvent="enterFrame" waitTarget="stage"/> > >DataGrid_comp3.resetDP() is actually re-assigning the dataProvider, so >this SHOULD eventually trigger an updateComplete event. > >Unfortunately, the test fails with : > >Failed RunCode(body:step 3) Timeout waiting for updateComplete from >dataGrid > >Any idea ? > >Maurice > >-----Message d'origine----- >De : Maurice Amsellem [mailto:maurice.amsel...@systar.com] >Envoyé : mardi 15 octobre 2013 02:00 >À : dev@flex.apache.org >Objet : RE: Build failed in Jenkins: flex-sdk_mustella #470 > >>Worth trying. But can you set a breakpoint on updateDisplayList to >>make sure it doesn't get called twice? We want to make sure the >>deferred work doesn't force another round >of validation. > >I remember I did that already when manually testing the fix: I did >several changes to the dataProvider, but only one UDL was executed. > >Maurice > >-----Message d'origine----- >De : Alex Harui [mailto:aha...@adobe.com] Envoyé : mardi 15 octobre >2013 >01:55 À : dev@flex.apache.org Objet : Re: Build failed in Jenkins: >flex-sdk_mustella #470 > >Worth trying. But can you set a breakpoint on updateDisplayList to >make sure it doesn't get called twice? We want to make sure the >deferred work doesn't force another round of validation. > >-Alex > >On 10/14/13 4:50 PM, "Maurice Amsellem" <maurice.amsel...@systar.com> >wrote: > >>>Sounds like a timing issue with the tests. eg They need to wait for >>>undateComplete event? >> >>In the test case below (which was one of the failing), after the DP >>has been reset, it's waiting for the next frame: >> >><RunCode code="FlexGlobals.topLevelApplication.dataGrid.resetDP()" >>waitEvent="enterFrame" waitTarget="stage"/> >> >>And after that, it's waiting for two more frames before comparing the >>bitmaps... >><WaitForEvent target="stage" eventName="enterFrame" >>numExpectedEvents="2"/> >> >>So maybe I should change to waitEvent="updateComplete" so that it wait >>until the udateDisplayList ? >> >> >> >> >> <TestCase testID="requireSelection_test15" >>keywords="[GridSelection,property,requireSelection ]" >> description="Test selection is on first row/cell,reset >>dataprovider,verify first row/cell is still selected"> >> <setup> >> <ResetComponent target="dataGrid" >>className="components.DataGrid_comp3" waitEvent="updateComplete" /> >> <WaitForEvent target="stage" eventName="enterFrame" >>numExpectedEvents="2"/></setup> >> <body> >> <RunCode >>code="FlexGlobals.topLevelApplication.dataGrid.selectionMode=GridSelec >>t >>ion >>Mode.MULTIPLE_CELLS"/> >> <AssertMethodValue >>method="value=FlexGlobals.topLevelApplication.dataGrid.selectionContai >>n >>sCe >>ll(0,0)" value="true"/> >> <RunCode >> code="FlexGlobals.topLevelApplication.dataGrid.resetDP()" >>waitEvent="enterFrame" waitTarget="stage"/> >> <AssertMethodValue >>method="value=FlexGlobals.topLevelApplication.dataGrid.selectionContai >>n >>sCe >>ll(0,0)" value="true"/> >> <WaitForEvent target="stage" eventName="enterFrame" >>numExpectedEvents="2"/> >> <CompareBitmap numColorVariances="20" >> maxColorVariance="20" >>url="../Properties/Baselines/$testID_cell.png" target="dataGrid"/> >> </body> >> </TestCase> >> >> >>Maurice >> >>-----Message d'origine----- >>De : Justin Mclean [mailto:jus...@classsoftware.com] Envoyé : mardi 15 >>octobre 2013 01:34 À : dev@flex.apache.org Objet : Re: Build failed in >>Jenkins: flex-sdk_mustella #470 >> >>HI, >> >>Sounds like a timing issue with the tests. eg They need to wait for >>undateComplete event? >> >>Justin >