From 2f428fa389bd42a7f180d2eb52c84c80f568e52e Mon Sep 17 00:00:00 2001 From: Antoine Mercadal Date: Mon, 10 Sep 2012 15:19:32 -0700 Subject: [PATCH] test item visibility when expanding/collapsing items --- Tests/AppKit/CPOutlineViewTest.j | 58 ++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/Tests/AppKit/CPOutlineViewTest.j b/Tests/AppKit/CPOutlineViewTest.j index af61c64a8..eac2c4f34 100644 --- a/Tests/AppKit/CPOutlineViewTest.j +++ b/Tests/AppKit/CPOutlineViewTest.j @@ -161,6 +161,17 @@ [self assert:2 equals:[[outlineView selectedRowIndexes] count] message:"selections should remain"]; } + +- (void)testExpandCollapseItemVisibility +{ + var delegate = [TestExpandCollapseVisibilityDelegate new]; + [delegate setTester:self]; + [outlineView setDelegate:delegate]; + + [outlineView collapseItem:".1"]; + [outlineView expandItem:".1"]; +} + /*! Test that the outline view archives properly. */ @@ -270,3 +281,50 @@ } @end + +@implementation TestExpandCollapseVisibilityDelegate : CPObject +{ + id tester @accessors; +} + +- (void)outlineViewItemWillCollapse:(CPNotification)aNotification +{ + var anOutlineView = [aNotification object], + visibleRows = [anOutlineView rowsInRect:[anOutlineView visibleRect]]; + + [tester assertTrue:[anOutlineView isItemExpanded:".1"]]; + [tester assert:0 equals:visibleRows.location]; + [tester assert:8 equals:visibleRows.length]; +} + +- (void)outlineViewItemDidCollapse:(CPNotification)aNotification +{ + var anOutlineView = [aNotification object], + visibleRows = [anOutlineView rowsInRect:[anOutlineView visibleRect]]; + + [tester assertFalse:[anOutlineView isItemExpanded:".1"]]; + [tester assert:0 equals:visibleRows.location]; + [tester assert:4 equals:visibleRows.length]; +} + +- (void)outlineViewItemWillExpand:(CPNotification)aNotification +{ + var anOutlineView = [aNotification object], + visibleRows = [anOutlineView rowsInRect:[anOutlineView visibleRect]]; + + [tester assertFalse:[anOutlineView isItemExpanded:".1"]]; + [tester assert:0 equals:visibleRows.location]; + [tester assert:4 equals:visibleRows.length]; +} + +- (void)outlineViewItemDidExpand:(CPNotification)aNotification +{ + var anOutlineView = [aNotification object], + visibleRows = [anOutlineView rowsInRect:[anOutlineView visibleRect]]; + + [tester assertTrue:[anOutlineView isItemExpanded:".1"]]; + [tester assert:0 equals:visibleRows.location]; + [tester assert:8 equals:visibleRows.length]; +} + +@end