@@ -15,11 +15,11 @@ #include "config.h" #import "TestsAppDelegate.h" -static OFString *module = @"OFList"; +static OFString *const module = @"OFList"; static OFString *strings[] = { @"Foo", @"Bar", @"Baz" }; @@ -28,47 +28,49 @@ - (void)listTests { void *pool = objc_autoreleasePoolPush(); OFList *list; OFEnumerator *enumerator; - of_list_object_t *loe; - OFString *obj; + OFListItem iter; + OFString *object; size_t i; bool ok; TEST(@"+[list]", (list = [OFList list])) TEST(@"-[appendObject:]", [list appendObject: strings[0]] && [list appendObject: strings[1]] && [list appendObject: strings[2]]) - TEST(@"-[firstListObject]", - [list.firstListObject->object isEqual: strings[0]]) - - TEST(@"-[firstListObject]->next", - [list.firstListObject->next->object isEqual: strings[1]]) - - TEST(@"-[lastListObject]", - [list.lastListObject->object isEqual: strings[2]]) - - TEST(@"-[lastListObject]->previous", - [list.lastListObject->previous->object isEqual: strings[1]]) - - TEST(@"-[removeListObject:]", - R([list removeListObject: list.lastListObject]) && - [list.lastListObject->object isEqual: strings[1]] && - R([list removeListObject: list.firstListObject]) && - [list.firstListObject->object isEqual: list.lastListObject->object]) - - TEST(@"-[insertObject:beforeListObject:]", - [list insertObject: strings[0] - beforeListObject: list.lastListObject] && - [list.lastListObject->previous->object isEqual: strings[0]]) - - TEST(@"-[insertObject:afterListObject:]", + TEST(@"-[firstListItem]", + [OFListItemObject(list.firstListItem) isEqual: strings[0]]) + + TEST(@"OFListItemNext()", + [OFListItemObject(OFListItemNext(list.firstListItem)) + isEqual: strings[1]]) + + TEST(@"-[lastListItem]", + [OFListItemObject(list.lastListItem) isEqual: strings[2]]) + + TEST(@"OFListItemPrevious()", + [OFListItemObject(OFListItemPrevious(list.lastListItem)) + isEqual: strings[1]]) + + TEST(@"-[removeListItem:]", + R([list removeListItem: list.lastListItem]) && + [list.lastObject isEqual: strings[1]] && + R([list removeListItem: list.firstListItem]) && + [list.firstObject isEqual: list.lastObject]) + + TEST(@"-[insertObject:beforeListItem:]", + [list insertObject: strings[0] beforeListItem: list.lastListItem] && + [OFListItemObject(OFListItemPrevious(list.lastListItem)) + isEqual: strings[0]]) + + TEST(@"-[insertObject:afterListItem:]", [list insertObject: strings[2] - afterListObject: list.firstListObject->next] && - [list.lastListObject->object isEqual: strings[2]]) + afterListItem: OFListItemNext(list.firstListItem)] && + [list.lastObject isEqual: strings[2]]) TEST(@"-[count]", list.count == 3) TEST(@"-[containsObject:]", [list containsObject: strings[1]] && @@ -78,53 +80,54 @@ [list containsObjectIdenticalTo: strings[1]] && ![list containsObjectIdenticalTo: [OFString stringWithString: strings[1]]]) TEST(@"-[copy]", (list = [[list copy] autorelease]) && - [list.firstListObject->object isEqual: strings[0]] && - [list.firstListObject->next->object isEqual: strings[1]] && - [list.lastListObject->object isEqual: strings[2]]) + [list.firstObject isEqual: strings[0]] && + [OFListItemObject(OFListItemNext(list.firstListItem)) + isEqual: strings[1]] && + [list.lastObject isEqual: strings[2]]) TEST(@"-[isEqual:]", [list isEqual: [[list copy] autorelease]]) TEST(@"-[description]", [list.description isEqual: @"[\n\tFoo,\n\tBar,\n\tBaz\n]"]) TEST(@"-[objectEnumerator]", (enumerator = [list objectEnumerator])) - loe = list.firstListObject; + iter = list.firstListItem; i = 0; ok = true; - while ((obj = [enumerator nextObject]) != nil) { - if (![obj isEqual: loe->object]) + while ((object = [enumerator nextObject]) != nil) { + if (![object isEqual: OFListItemObject(iter)]) ok = false; - loe = loe->next; + iter = OFListItemNext(iter); i++; } if (list.count != i) ok = false; TEST(@"OFEnumerator's -[nextObject]", ok); - [list removeListObject: list.firstListObject]; + [list removeListItem: list.firstListItem]; EXPECT_EXCEPTION(@"Detection of mutation during enumeration", OFEnumerationMutationException, [enumerator nextObject]) [list prependObject: strings[0]]; - loe = list.firstListObject; + iter = list.firstListItem; i = 0; ok = true; - for (OFString *object in list) { - if (![object isEqual: loe->object]) + for (OFString *object_ in list) { + if (![object_ isEqual: OFListItemObject(iter)]) ok = false; - loe = loe->next; + iter = OFListItemNext(iter); i++; } if (list.count != i) ok = false; @@ -131,14 +134,14 @@ TEST(@"Fast Enumeration", ok) ok = false; @try { - for (OFString *object in list) { - (void)object; + for (OFString *object_ in list) { + (void)object_; - [list removeListObject: list.lastListObject]; + [list removeListItem: list.lastListItem]; } } @catch (OFEnumerationMutationException *e) { ok = true; }