From c55cd03db106871ba5544e8570cc762e7739baf4 Mon Sep 17 00:00:00 2001 From: Antoine Mercadal Date: Fri, 5 Nov 2010 17:28:40 +0100 Subject: [PATCH] more robust tests for CPUserDefaults --- Tests/Foundation/CPUserDefaultsTest.j | 116 +++++++++++++++++++++----- 1 file changed, 97 insertions(+), 19 deletions(-) diff --git a/Tests/Foundation/CPUserDefaultsTest.j b/Tests/Foundation/CPUserDefaultsTest.j index fd45e2b4d..dfd782ff8 100644 --- a/Tests/Foundation/CPUserDefaultsTest.j +++ b/Tests/Foundation/CPUserDefaultsTest.j @@ -16,10 +16,23 @@ * along with this program. If not, see . */ - @import @import +@import "../../Foundation/CPUserDefaults.j" +CPUserDefaultsTestKey1 = @"KEY1"; +CPUserDefaultsTestKey2 = @"KEY2"; + +@implementation CPUserDefaultsCookieStore (test) + +- (void)setData:(CPData)aData +{ + // deactive real storage +} + +@end + +//CPLogRegister(CPLogPrint) @implementation CPUserDefaultsTest : OJTestCase { @@ -33,45 +46,110 @@ - (void)tearDown { - [target removeObjectForKey:@"TESTBOOLKEY"]; - [target removeObjectForKey:@"TESTOBJECTKEY"]; + [CPUserDefaults resetStandardUserDefaults]; } -- (void)testSetBoolForKey +- (void)testAppDefault { - [target setBool:YES forKey:@"TESTBOOLKEY"]; + var appDefaults = [CPDictionary dictionaryWithObjectsAndKeys:YES, CPUserDefaultsTestKey1, @"Hello!", CPUserDefaultsTestKey2]; + [target registerDefaults:appDefaults]; + + [self assertTrue:[target boolForKey:CPUserDefaultsTestKey1]]; + [self assert:[target objectForKey:CPUserDefaultsTestKey2] equals:@"Hello!"]; - [self assertTrue:[target boolForKey:@"TESTBOOLKEY"]]; } + - (void)testSetObjectForKey { - [target setObject:[CPArray arrayWithObjects:@"cell1", @"cell2"] forKey:@"TESTOBJECTKEY"]; + [target setObject:[CPArray arrayWithObjects:@"cell1", @"cell2"] forKey:CPUserDefaultsTestKey1]; - var cell1 = [[target objectForKey:@"TESTOBJECTKEY"] objectAtIndex:0], - cell2 = [[target objectForKey:@"TESTOBJECTKEY"] objectAtIndex:1]; + var cell1 = [[target objectForKey:CPUserDefaultsTestKey1] objectAtIndex:0], + cell2 = [[target objectForKey:CPUserDefaultsTestKey1] objectAtIndex:1]; [self assert:cell1 equals:@"cell1"]; [self assert:cell2 equals:@"cell2"]; } -- (void)testRemoveObjectForKey +- (void)testBool { - [target setBool:YES forKey:@"TESTREMOVE"]; + [target setBool:YES forKey:CPUserDefaultsTestKey1]; + [self assertTrue:[target boolForKey:CPUserDefaultsTestKey1]]; - [target removeObjectForKey:@"TESTREMOVE"]; - - [self assert:[target boolForKey:@"TESTREMOVE"] equals:NO]; + [target removeObjectForKey:CPUserDefaultsTestKey1]; + [self assertFalse:[target boolForKey:CPUserDefaultsTestKey1]]; } -- (void)testAppDefault +- (void)testInteger { - var appDefaults = [CPDictionary dictionaryWithObjectsAndKeys:YES, @"TESTAPPDEF-A", @"Hello!", @"TESTAPPDEF-B"]; - [target registerDefaults:appDefaults]; + [target setInteger:1 forKey:CPUserDefaultsTestKey1]; + [self assert:[target integerForKey:CPUserDefaultsTestKey1] equals:1]; - [self assert:[target boolForKey:@"TESTAPPDEF-A"] equals:YES]; - [self assert:[target objectForKey:@"TESTAPPDEF-B"] equals:@"Hello!"]; + [target removeObjectForKey:CPUserDefaultsTestKey1]; + [self assert:[target integerForKey:CPUserDefaultsTestKey1] equals:0]; } +- (void)testFloat +{ + [target setFloat:1.0 forKey:CPUserDefaultsTestKey1]; + [self assert:[target floatForKey:CPUserDefaultsTestKey1] equals:1.0]; + + [target removeObjectForKey:CPUserDefaultsTestKey1]; + [self assert:[target floatForKey:CPUserDefaultsTestKey1] equals:0.0]; +} + +- (void)testDouble +{ + [target setDouble:1.0 forKey:CPUserDefaultsTestKey1]; + [self assert:[target doubleForKey:CPUserDefaultsTestKey1] equals:1.0]; + + [target removeObjectForKey:CPUserDefaultsTestKey1]; + [self assert:[target doubleForKey:CPUserDefaultsTestKey1] equals:0.0]; +} + +- (void)testString +{ + [target setString:@"Hello World" forKey:CPUserDefaultsTestKey1]; + [self assert:[target stringForKey:CPUserDefaultsTestKey1] equals:@"Hello World"]; + + [target removeObjectForKey:CPUserDefaultsTestKey1]; + [self assert:[target stringForKey:CPUserDefaultsTestKey1] equals:nil]; +} + +- (void)testURL +{ + [target setURL:[CPURL URLWithString:@"http://cappuccino.org"] forKey:CPUserDefaultsTestKey1]; + [self assert:[[target URLForKey:CPUserDefaultsTestKey1] class] equals:CPURL]; + [self assert:[[target URLForKey:CPUserDefaultsTestKey1] absoluteString] equals:@"http://cappuccino.org"]; + + [target setURL:@"http://cappuccino.org" forKey:CPUserDefaultsTestKey1]; + [self assert:[[target URLForKey:CPUserDefaultsTestKey1] class] equals:CPURL]; + [self assert:[[target URLForKey:CPUserDefaultsTestKey1] absoluteString] equals:@"http://cappuccino.org"]; + + [target removeObjectForKey:CPUserDefaultsTestKey1]; + [self assert:[target URLForKey:CPUserDefaultsTestKey1] equals:nil]; +} + +- (void)testArray +{ + [target setObject:[@"a", @"b", 3] forKey:CPUserDefaultsTestKey1]; + [self assert:[[target arrayForKey:CPUserDefaultsTestKey1] class] equals:CPArray]; + [self assert:[[target arrayForKey:CPUserDefaultsTestKey1] objectAtIndex:1] equals:@"b"]; + [self assert:[[target arrayForKey:CPUserDefaultsTestKey1] objectAtIndex:2] equals:3]; + [self assert:[target stringArrayForKey:CPUserDefaultsTestKey1] equals:nil]; + + [target removeObjectForKey:CPUserDefaultsTestKey1]; + [self assert:[target arrayForKey:CPUserDefaultsTestKey1] equals:nil]; +} + +- (void)testData +{ + [target setObject:[CPData dataWithRawString:@"data"] forKey:CPUserDefaultsTestKey1]; + [self assert:[[target dataForKey:CPUserDefaultsTestKey1] class] equals:CPData]; + + [target removeObjectForKey:CPUserDefaultsTestKey1]; + [self assert:[target dataForKey:CPUserDefaultsTestKey1] equals:nil]; + +} @end \ No newline at end of file