diff --git a/Foundation/CPUserDefaults.j b/Foundation/CPUserDefaults.j index 484f03376..e3358ddd4 100644 --- a/Foundation/CPUserDefaults.j +++ b/Foundation/CPUserDefaults.j @@ -184,9 +184,8 @@ var StandardUserDefaults; } [domain setObject:anObject forKey:aKey]; - [self domainDidChange:aDomain]; - _searchListNeedsReload = YES; + [self domainDidChange:aDomain]; } /*! @@ -211,9 +210,8 @@ var StandardUserDefaults; return; [domain removeObjectForKey:aKey]; - [self domainDidChange:aDomain]; - _searchListNeedsReload = YES; + [self domainDidChange:aDomain]; } /*! diff --git a/Tests/Foundation/CPUserDefaultsTest.j b/Tests/Foundation/CPUserDefaultsTest.j index 40fdeb00e..cb3a218b4 100644 --- a/Tests/Foundation/CPUserDefaultsTest.j +++ b/Tests/Foundation/CPUserDefaultsTest.j @@ -18,6 +18,7 @@ CPUserDefaultsTestKey2 = @"KEY2"; @implementation CPUserDefaultsTest : OJTestCase { CPUserDefaults target; + id lastObservedCPUserDefaultsTestKey1; } - (void)setUp @@ -40,7 +41,6 @@ CPUserDefaultsTestKey2 = @"KEY2"; } - - (void)testSetObjectForKey { [target setObject:[CPArray arrayWithObjects:@"cell1", @"cell2"] forKey:CPUserDefaultsTestKey1]; @@ -133,7 +133,23 @@ CPUserDefaultsTestKey2 = @"KEY2"; [target removeObjectForKey:CPUserDefaultsTestKey1]; [self assert:[target dataForKey:CPUserDefaultsTestKey1] equals:nil]; +} +- (void)testNotification +{ + [target setDouble:5.0 forKey:CPUserDefaultsTestKey1]; + + [[CPNotificationCenter defaultCenter] addObserver:self selector:@selector(userDefaultsDidChange:) name:CPUserDefaultsDidChangeNotification object:target]; + + // Prod the class to resolve any outstanding _searchListNeedsReload's. + [self assert:5.0 equals:[target objectForKey:CPUserDefaultsTestKey1] message:"normal read"]; + [target setDouble:10.0 forKey:CPUserDefaultsTestKey1]; + [self assert:[target objectForKey:CPUserDefaultsTestKey1] equals:lastObservedCPUserDefaultsTestKey1 message:"should observe new value"]; +} + +- (void)userDefaultsDidChange:(CPNotification)aNotification +{ + lastObservedCPUserDefaultsTestKey1 = [target objectForKey:CPUserDefaultsTestKey1]; } @end \ No newline at end of file