Merge pull request #1743 from ahankinson/fix-issue1723

Fix for #1723: CPArrayController insert
This commit is contained in:
Alexander Ljungberg
2013-02-11 11:21:43 +00:00
2 changed files with 49 additions and 3 deletions
+10 -3
View File
@@ -897,7 +897,9 @@
if (![self canAdd])
return;
[self insert:sender];
var newObject = [self automaticallyPreparesContent] ? [self newObject] : [self _defaultNewObject];
[self addObject:newObject];
}
/*!
@@ -909,9 +911,14 @@
if (![self canInsert])
return;
var newObject = [self automaticallyPreparesContent] ? [self newObject] : [self _defaultNewObject];
var newObject = [self automaticallyPreparesContent] ? [self newObject] : [self _defaultNewObject],
lastSelectedIndex = [_selectionIndexes lastIndex];
if (lastSelectedIndex)
[self insertObject:newObject atArrangedObjectIndex:lastSelectedIndex];
else
[self addObject:newObject];
[self addObject:newObject];
}
/*!
+39
View File
@@ -184,7 +184,46 @@
[self assert:[CPNumber numberWithInt:2] equals:[_arrayController arrangedObjects][1]];
}
- (void)testAdd
{
_contentArray = [];
_arrayController = [[CPArrayController alloc] initWithContent:_contentArray];
[self _testAdd];
}
- (void)_testAdd
{
[_arrayController setObjectClass:[Employee class]];
[self assert:[[_arrayController contentArray] count] equals:0];
[_arrayController add:nil];
[self assert:[[_arrayController contentArray] count] equals:1];
[self assert:[[_arrayController arrangedObjects][0] class] equals:[Employee class]];
// switch it up so that we can tell where this one is.
[_arrayController setObjectClass:[Department class]];
[_arrayController add:nil];
[self assert:[[[_arrayController arrangedObjects] lastObject] class] equals:[Department class]];
}
- (void)testInsert
{
_contentArray = [];
_arrayController = [[CPArrayController alloc] initWithContent:_contentArray];
[self _testInsert];
}
- (void)_testInsert
{
[_arrayController setObjectClass:[Employee class]];
[_arrayController add:nil];
[_arrayController add:nil];
[_arrayController add:nil];
[_arrayController setObjectClass:[Department class]];
[_arrayController setSelectionIndex:1];
[_arrayController insert:nil];
[self assert:[[[_arrayController arrangedObjects] objectAtIndex:1] class] equals:[Department class]];
}
- (void)_initTestRemoveObjects_SimpleArray
{