more robust tests for CPUserDefaults

This commit is contained in:
Antoine Mercadal
2010-11-05 17:28:40 +01:00
parent 6a2b347b21
commit c55cd03db1
+97 -19
View File
@@ -16,10 +16,23 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
@import <Foundation/Foundation.j>
@import <AppKit/AppKit.j>
@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