Skip to content

Commit

Permalink
Fixed issue where response serializers did not inherit super class co…
Browse files Browse the repository at this point in the history
…pying
  • Loading branch information
kcharwood committed Oct 6, 2016
1 parent a26a500 commit 2d1fb6b
Show file tree
Hide file tree
Showing 5 changed files with 38 additions and 9 deletions.
10 changes: 5 additions & 5 deletions AFNetworking/AFURLResponseSerialization.m
Original file line number Diff line number Diff line change
Expand Up @@ -288,7 +288,7 @@ - (void)encodeWithCoder:(NSCoder *)coder {
#pragma mark - NSCopying

- (instancetype)copyWithZone:(NSZone *)zone {
AFJSONResponseSerializer *serializer = [[[self class] allocWithZone:zone] init];
AFJSONResponseSerializer *serializer = [super copyWithZone:zone];
serializer.readingOptions = self.readingOptions;
serializer.removesKeysWithNullValues = self.removesKeysWithNullValues;

Expand Down Expand Up @@ -407,7 +407,7 @@ - (void)encodeWithCoder:(NSCoder *)coder {
#pragma mark - NSCopying

- (instancetype)copyWithZone:(NSZone *)zone {
AFXMLDocumentResponseSerializer *serializer = [[[self class] allocWithZone:zone] init];
AFXMLDocumentResponseSerializer *serializer = [super copyWithZone:zone];
serializer.options = self.options;

return serializer;
Expand Down Expand Up @@ -496,7 +496,7 @@ - (void)encodeWithCoder:(NSCoder *)coder {
#pragma mark - NSCopying

- (instancetype)copyWithZone:(NSZone *)zone {
AFPropertyListResponseSerializer *serializer = [[[self class] allocWithZone:zone] init];
AFPropertyListResponseSerializer *serializer = [super copyWithZone:zone];
serializer.format = self.format;
serializer.readOptions = self.readOptions;

Expand Down Expand Up @@ -722,7 +722,7 @@ - (void)encodeWithCoder:(NSCoder *)coder {
#pragma mark - NSCopying

- (instancetype)copyWithZone:(NSZone *)zone {
AFImageResponseSerializer *serializer = [[[self class] allocWithZone:zone] init];
AFImageResponseSerializer *serializer = [super copyWithZone:zone];

#if TARGET_OS_IOS || TARGET_OS_TV || TARGET_OS_WATCH
serializer.imageScale = self.imageScale;
Expand Down Expand Up @@ -796,7 +796,7 @@ - (void)encodeWithCoder:(NSCoder *)coder {
#pragma mark - NSCopying

- (instancetype)copyWithZone:(NSZone *)zone {
AFCompoundResponseSerializer *serializer = [[[self class] allocWithZone:zone] init];
AFCompoundResponseSerializer *serializer = [super copyWithZone:zone];
serializer.responseSerializers = self.responseSerializers;

return serializer;
Expand Down
5 changes: 5 additions & 0 deletions Tests/Tests/AFCompoundResponseSerializerTests.m
Original file line number Diff line number Diff line change
Expand Up @@ -64,12 +64,17 @@ - (void)testCompoundSerializerCanBeCopied {
AFImageResponseSerializer *imageSerializer = [AFImageResponseSerializer serializer];
AFJSONResponseSerializer *jsonSerializer = [AFJSONResponseSerializer serializer];
AFCompoundResponseSerializer *compoundSerializer = [AFCompoundResponseSerializer compoundSerializerWithResponseSerializers:@[imageSerializer, jsonSerializer]];
[compoundSerializer setAcceptableStatusCodes:[NSIndexSet indexSetWithIndex:100]];
[compoundSerializer setAcceptableContentTypes:[NSSet setWithObject:@"test/type"]];

AFCompoundResponseSerializer *copiedSerializer = [compoundSerializer copy];
XCTAssertNotNil(copiedSerializer);
XCTAssertNotEqual(compoundSerializer, copiedSerializer);
XCTAssertTrue(compoundSerializer.responseSerializers.count == copiedSerializer.responseSerializers.count);
XCTAssertTrue([NSStringFromClass([[copiedSerializer.responseSerializers objectAtIndex:0] class]) isEqualToString:NSStringFromClass([AFImageResponseSerializer class])]);
XCTAssertTrue([NSStringFromClass([[copiedSerializer.responseSerializers objectAtIndex:1] class]) isEqualToString:NSStringFromClass([AFJSONResponseSerializer class])]);
XCTAssertEqual(compoundSerializer.acceptableStatusCodes, copiedSerializer.acceptableStatusCodes);
XCTAssertEqual(compoundSerializer.acceptableContentTypes, copiedSerializer.acceptableContentTypes);
}

- (void)testCompoundSerializerCanBeArchivedAndUnarchived {
Expand Down
7 changes: 5 additions & 2 deletions Tests/Tests/AFImageResponseSerializerTests.m
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,14 @@ @implementation AFImageResponseSerializerTests

- (void)testImageSerializerCanBeCopied {
AFImageResponseSerializer *responseSerializer = [AFImageResponseSerializer serializer];
[responseSerializer setAcceptableContentTypes:[NSSet setWithObject:@"test/type"]];
[responseSerializer setAcceptableStatusCodes:[NSIndexSet indexSetWithIndex:100]];

AFImageResponseSerializer *copiedSerializer = [responseSerializer copy];
XCTAssertNotNil(copiedSerializer);
XCTAssertNotEqual(copiedSerializer, responseSerializer);
XCTAssertTrue([copiedSerializer.acceptableContentTypes isEqualToSet:responseSerializer.acceptableContentTypes]);
XCTAssertTrue([copiedSerializer.acceptableStatusCodes isEqualToIndexSet:responseSerializer.acceptableStatusCodes]);
XCTAssertEqual(copiedSerializer.acceptableContentTypes, responseSerializer.acceptableContentTypes);
XCTAssertEqual(copiedSerializer.acceptableStatusCodes, responseSerializer.acceptableStatusCodes);
#if TARGET_OS_IOS || TARGET_OS_TV || TARGET_OS_WATCH
XCTAssertTrue(copiedSerializer.automaticallyInflatesResponseImage == responseSerializer.automaticallyInflatesResponseImage);
XCTAssertTrue(fabs(copiedSerializer.imageScale - responseSerializer.imageScale) <= 0.001);
Expand Down
14 changes: 14 additions & 0 deletions Tests/Tests/AFJSONSerializationTests.m
Original file line number Diff line number Diff line change
Expand Up @@ -168,4 +168,18 @@ - (void)testThatJSONRemovesKeysWithNullValues {
XCTAssertNil(responseObject[@"array"][0][@"subnullkey"]);
}

- (void)testThatJSONResponseSerializerCanBeCopied {
[self.responseSerializer setAcceptableStatusCodes:[NSIndexSet indexSetWithIndex:100]];
[self.responseSerializer setAcceptableContentTypes:[NSSet setWithObject:@"test/type"]];
[self.responseSerializer setReadingOptions:NSJSONReadingMutableLeaves];
[self.responseSerializer setRemovesKeysWithNullValues:YES];

AFJSONResponseSerializer *copiedSerializer = [self.responseSerializer copy];
XCTAssertNotEqual(copiedSerializer, self.responseSerializer);
XCTAssertEqual(copiedSerializer.acceptableStatusCodes, self.responseSerializer.acceptableStatusCodes);
XCTAssertEqual(copiedSerializer.acceptableContentTypes, self.responseSerializer.acceptableContentTypes);
XCTAssertEqual(copiedSerializer.readingOptions, self.responseSerializer.readingOptions);
XCTAssertEqual(copiedSerializer.removesKeysWithNullValues, self.responseSerializer.removesKeysWithNullValues);
}

@end
11 changes: 9 additions & 2 deletions Tests/Tests/AFPropertyListResponseSerializerTests.m
Original file line number Diff line number Diff line change
Expand Up @@ -46,11 +46,18 @@ - (void)testThatPropertyListResponseSerializerHandles204 {
}

- (void)testResponseSerializerCanBeCopied {
[self.responseSerializer setAcceptableContentTypes:[NSSet setWithObject:@"test/type"]];
[self.responseSerializer setAcceptableStatusCodes:[NSIndexSet indexSetWithIndex:100]];
[self.responseSerializer setFormat:NSPropertyListXMLFormat_v1_0];
[self.responseSerializer setReadOptions:NSPropertyListMutableContainers];

AFPropertyListResponseSerializer *copiedSerializer = [self.responseSerializer copy];
XCTAssertNotNil(copiedSerializer);
XCTAssertNotEqual(copiedSerializer, self.responseSerializer);
XCTAssertTrue(copiedSerializer.format == self.responseSerializer.format);
XCTAssertTrue(copiedSerializer.readOptions == self.responseSerializer.readOptions);
XCTAssertEqual(copiedSerializer.format, self.responseSerializer.format);
XCTAssertEqual(copiedSerializer.readOptions, self.responseSerializer.readOptions);
XCTAssertEqual(copiedSerializer.acceptableContentTypes, self.responseSerializer.acceptableContentTypes);
XCTAssertEqual(copiedSerializer.acceptableStatusCodes, self.responseSerializer.acceptableStatusCodes);
}

- (void)testResponseSerializerCanBeArchivedAndUnarchived {
Expand Down

0 comments on commit 2d1fb6b

Please sign in to comment.