Repository: flex-sdk Updated Branches: refs/heads/master 0bfbaed0d -> f56041e6a
FLEX-34775 Improved unit tests. Project: http://git-wip-us.apache.org/repos/asf/flex-sdk/repo Commit: http://git-wip-us.apache.org/repos/asf/flex-sdk/commit/f34fc444 Tree: http://git-wip-us.apache.org/repos/asf/flex-sdk/tree/f34fc444 Diff: http://git-wip-us.apache.org/repos/asf/flex-sdk/diff/f34fc444 Branch: refs/heads/master Commit: f34fc444622c4a592ba58da130514fe58891ba43 Parents: cc2ccf6 Author: Mihai Chira <[email protected]> Authored: Thu Mar 5 17:57:43 2015 +0100 Committer: Mihai Chira <[email protected]> Committed: Thu Mar 5 17:57:43 2015 +0100 ---------------------------------------------------------------------- ...erarchicalCollectionView_FLEX_34775_Tests.as | 133 ++++++++++++++----- 1 file changed, 102 insertions(+), 31 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/f34fc444/frameworks/tests/unitTests/mx/collections/HierarchicalCollectionView_FLEX_34775_Tests.as ---------------------------------------------------------------------- diff --git a/frameworks/tests/unitTests/mx/collections/HierarchicalCollectionView_FLEX_34775_Tests.as b/frameworks/tests/unitTests/mx/collections/HierarchicalCollectionView_FLEX_34775_Tests.as index e4eeccd..2b07605 100644 --- a/frameworks/tests/unitTests/mx/collections/HierarchicalCollectionView_FLEX_34775_Tests.as +++ b/frameworks/tests/unitTests/mx/collections/HierarchicalCollectionView_FLEX_34775_Tests.as @@ -19,61 +19,132 @@ package mx.collections { + import mx.collections.*; + import mx.utils.StringUtil; + import org.flexunit.asserts.assertEquals; - public class HierarchicalCollectionView_FLEX_34775_Tests - { - private static var _utils:HierarchicalCollectionViewTestUtils = new HierarchicalCollectionViewTestUtils(); - private static var _sut:HierarchicalCollectionView; - private var _level0:ArrayCollection; - - [Before] - public function setUp():void - { + public class HierarchicalCollectionView_FLEX_34775_Test + { + private static var _utils:HierarchicalCollectionViewTestUtils = new HierarchicalCollectionViewTestUtils(); + private static var _sut:HierarchicalCollectionView; + private var _level0:ArrayCollection; + + [Before] + public function setUp():void + { _sut = generateHierarchyViewWithClosedNodes(); _level0 = _utils.getRoot(_sut) as ArrayCollection; - } - - [After] - public function tearDown():void - { + } + + [After] + public function tearDown():void + { _sut = null; _level0 = null; - } + } + + + + [Test] + public function test_navigation_after_trying_to_open_inaccessible_node():void + { + //given + var company:DataNode = _level0.getItemAt(0) as DataNode; + var location:DataNode = company.children.getItemAt(0) as DataNode; + + //when + _sut.openNode(location); + + //then + var stepsRequiredToNavigateStructure:int = attemptNavigation(_sut); + assertEquals(1, stepsRequiredToNavigateStructure); + assertEquals(1, _sut.length); + } + + [Test] + public function test_navigation_after_trying_to_open_accessible_node():void + { + //given + var company:DataNode = _level0.getItemAt(0) as DataNode; + var location:DataNode = company.children.getItemAt(0) as DataNode; + + //when + _sut.openNode(company); + _sut.openNode(location); + //then + var stepsRequiredToNavigateStructure:int = attemptNavigation(_sut); + assertEquals(3, stepsRequiredToNavigateStructure); + assertEquals(3, _sut.length); + } + [Test] + public function test_navigation_after_trying_to_open_previously_closed_node():void + { + //given + var company:DataNode = _level0.getItemAt(0) as DataNode; + var location:DataNode = company.children.getItemAt(0) as DataNode; + + //when + _sut.openNode(company); + _sut.openNode(location); + _sut.closeNode(location); + + //then + var stepsRequiredToNavigateStructure:int = attemptNavigation(_sut); + assertEquals(2, stepsRequiredToNavigateStructure); + assertEquals(2, _sut.length); + } [Test] - public function test_navigation_after_opening_hidden_node():void + public function test_navigation_after_trying_to_open_filtered_out_node():void { + function filterOutLocationNode(node:DataNode):Boolean { + return node && node.label != locationNodeName; + }; + + const locationNodeName:String = StringUtil.trim(HIERARCHY_STRING.split("\n")[2]); + //given var company:DataNode = _level0.getItemAt(0) as DataNode; var location:DataNode = company.children.getItemAt(0) as DataNode; + _sut.openNode(company); + _sut.openNode(location); //when + _sut.filterFunction = filterOutLocationNode; + _sut.refresh(); + _sut.openNode(location); - var cursor:IViewCursor = _sut.createCursor(); + //then + var stepsRequiredToNavigateStructure:int = attemptNavigation(_sut); + assertEquals(1, stepsRequiredToNavigateStructure); + assertEquals(1, _sut.length); + } + + private function attemptNavigation(into:HierarchicalCollectionView):int + { + var cursor:IViewCursor = into.createCursor(); var i:int = 0; while(!cursor.afterLast && i++ < 100) { cursor.moveNext(); } - //then - assertEquals(1, i); - assertEquals(1, _sut.length); + return i; + } + + private static function generateHierarchyViewWithClosedNodes():HierarchicalCollectionView + { + return _utils.generateHCV(_utils.generateHierarchySourceFromString(HIERARCHY_STRING)); } - private static function generateHierarchyViewWithClosedNodes():HierarchicalCollectionView - { - return _utils.generateHCV(_utils.generateHierarchySourceFromString(HIERARCHY_STRING)); - } - - private static const HIERARCHY_STRING:String = (<![CDATA[ - Adobe - Adobe->London - Adobe->London->FlexDept - ]]>).toString(); - } + private static const HIERARCHY_STRING:String = (<![CDATA[ + Adobe + Adobe->London + Adobe->London->FlexDept + ]]>).toString(); + } } \ No newline at end of file
