Files
cappuccino/Tests/AppKit/CPTabViewTest.j
T
Alexandre Wilhelm 6fe9dae3d6 Fixed: AppKit unit-tests are not standalone
Previously, every AppKit tests used the same sharedApplication. Due to this implementation, a could not pass because a previous test made failed the current test. For instance, a test could fail because the window of the previous test resigned (just imagine a new window is the key window in the current test), and this resign could raise an error. The error was displayed for the current test thought this test was perfect !

We now instead of using sharedApplication create a new CPApplication per unit-test file in the class method setUp.
2015-07-07 14:12:19 -07:00

101 lines
2.3 KiB
Plaintext

@import <Foundation/Foundation.j>
@import <AppKit/AppKit.j>
@implementation CPTabView (TEST)
- (CPSegmentedControl)tabs
{
return _tabs;
}
- (CPBox)box
{
return _box;
}
@end
@implementation CPTabViewTest : OJTestCase
{
CPTabView _tabView;
CPTabViewItem _tabItem1;
CPTabViewItem _tabItem2;
}
+ (void)setUp
{
// This will init the global var CPApp which are used internally in the AppKit
[[CPApplication alloc] init];
}
- (void)setUp
{
_tabView = [[CPTabView alloc] initWithFrame:CGRectMake(0, 0, 800, 600)];
_tabItem1 = [[CPTabViewItem alloc] initWithIdentifier:@"id1"];
[_tabItem1 setLabel:@"Item A"];
[_tabItem1 setView:[[CPView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)]]
_tabItem2 = [[CPTabViewItem alloc] initWithIdentifier:@"id2"];
[_tabItem2 setLabel:@"Item B"];
[_tabItem2 setView:[[CPView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)]]
[_tabView addTabViewItem:_tabItem1];
[_tabView addTabViewItem:_tabItem2];
}
- (void)testCreate
{
[self assertNotNull:_tabView];
}
- (void)testMiddle
{
var tabs = [_tabView tabs];
[self assert:([_tabView frameSize].width / 2) equals:CGRectGetMidX([tabs frame])];
}
- (void)testMiddleAfterMoveFrame
{
var tabs = [_tabView tabs];
[_tabView setFrame:CGRectMake(10, 100, 1000, 200)];
// Perform this manually for the sake of the unit test.
[_tabView layoutIfNeeded];
[self assert:([_tabView frameSize].width / 2) equals:CGRectGetMidX([tabs frame])];
}
- (void)testMiddleAfterMoveBound
{
var tabs = [_tabView tabs];
[_tabView setBounds:CGRectMake(100, 100, 20, 300)];
// Perform this manually for the sake of the unit test.
[_tabView layoutIfNeeded];
[self assert:([tabs boundsSize].width / 2) equals:CGRectGetMidX([tabs bounds])];
}
- (void)testBoxHeight
{
var box = [_tabView box],
tabs = [_tabView tabs];
[_tabView setFrame:CGRectMake(0, 0, 800, 800)];
// Perform this manually for the sake of the unit test.
[_tabView layoutIfNeeded];
[self assert:[box frameSize].height equals:800 - [tabs frameSize].height / 2];
}
- (void)testTabViewGetsSetOnViewItem
{
[self assert:[_tabItem1 tabView] equals:_tabView];
}
- (void)testTabViewGetsRemoveOnViewItem
{
[_tabView removeTabViewItem:_tabItem1];
[self assertNull:[_tabItem1 tabView]];
}
@end