package test.customLayoutList.testCase { import component.list.CustomLayoutList; import flash.events.TimerEvent; import flash.geom.Rectangle; import flash.utils.Timer; import mx.core.IDataRenderer; import mx.core.UIComponent; import mx.events.FlexEvent; import net.digitalprimates.fluint.tests.TestCase; import test.customLayoutList.view.CustomLayoutListView; public class TestInitialization extends TestCase { private var testView : CustomLayoutListView; public function TestInitialization() { super(); } override protected function setUp() : void { testView = new CustomLayoutListView(); testView.addEventListener(FlexEvent.CREATION_COMPLETE, asyncHandler(pendUntilComplete, 1000), false, 0, true); addChild(testView); } override protected function tearDown() : void { removeChild(testView); testView = null; } [Test] public function listItemsAfterCreation() : void { assertTrue(testView.list.dataProvider.length == 10); for (var i : int = 0; i < testView.list.listItems.length; i++) { var item : IDataRenderer = IDataRenderer(testView.list.listItems.getItemAt(i)); var itemData : Object = testView.dataProvider.getItemAt(i); assertEquals(item.data, itemData); } } [Test] public function layoutAfterCreation() : void { var timer : Timer = new Timer(CustomLayoutList.TWEEN_DURATION_SECONDS * 2000, 1); timer.addEventListener(TimerEvent.TIMER_COMPLETE, asyncHandler(handleLayoutTimerComplete, CustomLayoutList.TWEEN_DURATION_SECONDS * 2000 + 10), false, 0, true); timer.start(); } private function handleLayoutTimerComplete(e : TimerEvent, passthroughData : Object) : void { var dimensions : Array = testView.list.layout.updateLayout(testView.list, testView.list.listItems, testView.list.removedItems); for (var i : int = 0; i < dimensions.length; i++) { var dimension : Rectangle = Rectangle(dimensions[i]); var item : UIComponent = UIComponent(testView.list.listItems.getItemAt(i)); assertEquals(dimension.x, item.x); assertEquals(dimension.y, item.y); assertEquals(dimension.width, item.width); assertEquals(dimension.height, item.height); } } } }