8 Replies Latest reply on Apr 12, 2013 9:18 AM by mlabriola

    proceedOnEvent() timeout waiting for creationComplete

    jeff@toll Level 1



      I have a test case that will not run due to proceedOnEvent not seeing the desired event.  Here's the test code:


      package com.mine.components.buttonBar


                import flexunit.framework.Assert;


                import mx.collections.ArrayList;

                import mx.core.FlexGlobals;

                import mx.events.FlexEvent;


                import org.flexunit.async.Async;

                import org.fluint.uiImpersonation.UIImpersonator;

                import org.hamcrest.assertThat;

                import org.hamcrest.collection.hasItems;

                import org.hamcrest.object.equalTo;

                import org.hamcrest.object.notNullValue;


                public class ButtonBarTest


                          private var buttonBar: ButtonBar;


                          private var buttonData: Array = [{label: "one"  },{label: "two"},{label: "three"},{label: "four"},{label: "five"}];



                          [Before(async, ui)]

                          public function setUp():void


                                    buttonBar = new ButtonBar();

                                    buttonBar.dataProvider = new ArrayList( buttonData );


                                    Async.proceedOnEvent( this, buttonBar, FlexEvent.CREATION_COMPLETE, 3000 );

                                    UIImpersonator.addChild( buttonBar );




                          public function tearDown():void


                                    UIImpersonator.removeChild( buttonBar );

                                    buttonBar.dataProvider = null;

                                    buttonBar = null;




                          public static function setUpBeforeClass():void





                          public static function tearDownAfterClass():void




                          [Test(async, ui)]

                          public function testGet_selectedIndices():void


                                    assertThat( buttonBar, notNullValue() );

                                    var selectedIndices: Vector.<int> = buttonBar.selectedIndices;

                                    assertThat( selectedIndices, notNullValue() );

                                    assertThat( selectedIndices, equalTo( 0 ) );

                                    buttonBar.selectedIndices = new Vector.<int>( 0, 2, 4 );

                                    assertThat( buttonBar.selectedIndices, hasItems( 0, 2, 4 ) );





      I can run the test within flashbuilder or from ant using a test runner and I get the same result.


      The button bar component is derived from spark.components.SkinnableDataContainer and has its own skin.  Buttons are added to a DataGroup, one button for each dataProvider element.  The buttons and data group are added by the skin classes associated with the button bar.

      I am using flexunit-4.1.0-8-4.1.016076.


      I'd really appreciate some help in getting this test case to work correctly.