Files
cappuccino/Tests/AppKit/CPSegmentedControlTest.j
T
cacaodev 3ea230fd17 Improved tests for segmented control
Added manual test showing fix for setLabel:forSegment for flexible
segments.
Added ojtest showing that the selection is preserved when a selected
segment is removed.
2015-02-27 13:33:11 +01:00

66 lines
1.8 KiB
Plaintext

@import <AppKit/AppKit.j>
// TODO: Maybe create one test file for each tracking mode so they can be tested separately without confusion.
@implementation CPSegmentedControlTest : OJTestCase
{
CPSegmentedControl _segmentedControl;
}
- (void)setUp
{
_segmentedControl = [[CPSegmentedControl alloc] initWithFrame:CGRectMakeZero()];
[_segmentedControl setSegmentCount:3];
}
- (void)testMakeCPSegmentedControlInstance
{
[self assertNotNull:_segmentedControl];
}
- (void)testDefaultsToSelectOneTrackingMode
{
[self assert:[_segmentedControl trackingMode] equals:CPSegmentSwitchTrackingSelectOne];
}
- (void)testSelectsOneSegmentStartingAtBlankState
{
[self assert:[_segmentedControl selectedSegment] equals:-1];
[_segmentedControl setSelectedSegment:1];
[self assert:[_segmentedControl selectedSegment] equals:1];
}
- (void)testSegmentWidthAfterLabelChange
{
[_segmentedControl setWidth:0 forSegment:0]; // This is the default.
[_segmentedControl setLabel:@"Label 1" forSegment:0];
[self assert:[_segmentedControl widthForSegment:0] equals:0]; // The width property is still 0 : means sizeToFit content.
[_segmentedControl setWidth:100 forSegment:0];
[self assert:[_segmentedControl widthForSegment:0] equals:100];
//Unfortunatly it is not possible to test frameForSegment: or anything related to the layout.
// -sizeWithFont: uses the DOM and will always return (0,0) in the terminal.
}
- (void)testRemoveSelection
{
[_segmentedControl setSelectedSegment:2];
[_segmentedControl setSegmentCount:2];
[self assert:1 equals:[_segmentedControl selectedSegment]]; // The last segment is now selected.
}
- (void)testEmpty
{
[self assertNoThrow:function()
{
[_segmentedControl setSegmentCount:0];
}];
[self assert:[_segmentedControl selectedSegment] equals:-1];
}
@end