diff --git a/Tests/base/NSUserDefaults/general.m b/Tests/base/NSUserDefaults/general.m index c62d51e73..cdaa97d6a 100644 --- a/Tests/base/NSUserDefaults/general.m +++ b/Tests/base/NSUserDefaults/general.m @@ -1,6 +1,8 @@ #import #import #import +#import +#import #import "ObjectTesting.h" @interface Observer : NSObject @@ -40,27 +42,39 @@ int main() [defs setBool: YES forKey: @"Test Suite Bool"]; PASS([defs boolForKey: @"Test Suite Bool"], "NSUserDefaults can set/get a BOOL"); + PASS([[defs objectForKey: @"Test Suite Bool"] isKindOfClass:[NSNumber class]], + "NSUserDefaults returns NSNumber for a BOOL"); PASS_EQUAL([obs count], @"1", "setting a boolean causes notification"); [defs setInteger: 34 forKey: @"Test Suite Int"]; PASS([defs integerForKey: @"Test Suite Int"] == 34, "NSUserDefaults can set/get an int"); + PASS([[defs objectForKey: @"Test Suite Int"] isKindOfClass:[NSNumber class]], + "NSUserDefaults returns NSNumber for an int"); PASS_EQUAL([obs count], @"2", "setting an integer causes notification"); [defs setObject: @"SetString" forKey: @"Test Suite Str"]; PASS([[defs stringForKey: @"Test Suite Str"] isEqual: @"SetString"], "NSUserDefaults can set/get a string"); - + PASS([[defs objectForKey: @"Test Suite Str"] isKindOfClass:[NSString class]], + "NSUserDefaults returns NSString for a string"); + + PASS_EQUAL([obs count], @"3", "setting a string causes notification"); + [defs removeObjectForKey: @"Test Suite Bool"]; PASS(nil == [defs objectForKey: @"Test Suite Bool"], "NSUserDefaults can use -removeObjectForKey: to remove a bool"); + PASS_EQUAL([obs count], @"4", "removing a key causes notification"); + [defs setObject: nil forKey: @"Test Suite Int"]; PASS(nil == [defs objectForKey: @"Test Suite Int"], "NSUserDefaults can use -setObject:forKey: to remove an int"); + PASS_EQUAL([obs count], @"5", "setting nil object causes notification"); + [arp release]; arp = nil; return 0; }