CPCharacterSet isEqual support when the set is of the characterSetWithCharactersInString kind.

This commit is contained in:
Alexander Ljungberg committed 2011-08-12 19:12:47 -04:00
1 parent 92c94eab8f
commit 0789f49b94
2 files changed
+34

No files matched your search

+22
View File
@@ -342,6 +342,25 @@ var _builtInCharacterSets = {};
}
}
- (BOOL)isEqual:(CPCharacterSet)aCharacterSet
{
if (self === aCharacterSet)
return YES;
if (!aCharacterSet || ![aCharacterSet isKindOfClass:[self class]])
return NO;
return [self _isEqualToStringContentCharacterSet:aCharacterSet];
}
- (BOOL)_isEqualToStringContentCharacterSet:(_CPStringContentCharacterSet)aCharacterSet
{
if (!aCharacterSet)
return NO;
return _string == aCharacterSet._string && _inverted == aCharacterSet._inverted;
}
@end
var _CPStringContentCharacterSetStringKey = @"_CPStringContentCharacterSetStringKey";
@@ -350,6 +369,8 @@ var _CPStringContentCharacterSetStringKey = @"_CPStringContentCharacterSetString
- (id)initWithCoder:(CPCoder)aCoder
{
// TODO Replace with self = [super initWithCoder:] when super supports it, to get
// "inverted" flag.
if (self)
{
_string = [aCoder decodeObjectForKey:_CPStringContentCharacterSetStringKey]
@@ -360,6 +381,7 @@ var _CPStringContentCharacterSetStringKey = @"_CPStringContentCharacterSetString
- (void)encodeWithCoder:(CPCoder)aCoder
{
// TODO When supported, call super encodeWithCoder:.
[aCoder encodeObject:_string forKey:_CPStringContentCharacterSetStringKey];
}
+12
View File
@@ -2,6 +2,18 @@
@implementation CPCharacterSetTest : OJTestCase
- (void)testEquals
{
var charSetA = [CPCharacterSet characterSetWithCharactersInString:"abc"],
charSetB = [CPCharacterSet characterSetWithCharactersInString:"abc"],
charSetC = [CPCharacterSet characterSetWithCharactersInString:""];
[self assertFalse:[charSetA isEqual:[CPNull null]]];
[self assertFalse:[charSetA isEqual:charSetC]];
[self assertTrue:[charSetA isEqual:charSetA]];
[self assertTrue:[charSetA isEqual:charSetB]];
}
- (void)testArchiving
{
var charSet = [CPCharacterSet characterSetWithCharactersInString:"abc"],