From 4d8faf8a23c94fa71bed2e80d39e8227eaca0bc8 Mon Sep 17 00:00:00 2001 From: Blake Watters Date: Mon, 13 May 2013 09:25:13 -0400 Subject: [PATCH] Pull in a few more basic request/response tests from @kcharwood --- Tests/AFHTTPRequestOperationTests.m | 53 ++++++++++++++++++++++++++++- 1 file changed, 52 insertions(+), 1 deletion(-) diff --git a/Tests/AFHTTPRequestOperationTests.m b/Tests/AFHTTPRequestOperationTests.m index ff5a80c..029ce9c 100644 --- a/Tests/AFHTTPRequestOperationTests.m +++ b/Tests/AFHTTPRequestOperationTests.m @@ -29,7 +29,7 @@ - (void)testThatOperationInvokesFailureCompletionBlockWithErrorOnFailure { __block NSError *blockError = nil; - NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"/404" relativeToURL:AFNetworkingTestsBaseURL()]]; + NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"/status/404" relativeToURL:AFNetworkingTestsBaseURL()]]; AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request]; [operation setCompletionBlockWithSuccess:nil failure:^(AFHTTPRequestOperation *operation, NSError *error) { blockError = error; @@ -65,4 +65,55 @@ expect(blockError.code).to.equal(NSURLErrorCancelled); } +- (void)testThat500StatusCodeInvokesFailureCompletionBlockWithErrorOnFailure +{ + __block NSError *blockError = nil; + NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"/status/500" relativeToURL:AFNetworkingTestsBaseURL()]]; + AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request]; + [operation setCompletionBlockWithSuccess:nil failure:^(AFHTTPRequestOperation *operation, NSError *error) { + blockError = error; + }]; + [operation start]; + expect([operation isFinished]).will.beTruthy(); + expect(blockError).willNot.beNil(); +} + +- (void)testThatRedirectBlockIsCalledWhen302IsEncountered +{ + __block BOOL success; + NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"/redirect/1" relativeToURL:AFNetworkingTestsBaseURL()]]; + AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request]; + [operation setCompletionBlockWithSuccess:nil + failure:nil]; + [operation + setRedirectResponseBlock:^NSURLRequest *(NSURLConnection *connection, NSURLRequest *request, NSURLResponse *redirectResponse) { + if(redirectResponse){ + success = YES; + } + return request; + }]; + [operation start]; + expect([operation isFinished]).will.beTruthy(); + expect(success).will.beTruthy(); +} + +- (void)testThatRedirectBlockIsCalledMultipleTimesWhen302IsEncountered +{ + __block NSInteger numberOfRedirects = 0; + NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"/redirect/5" relativeToURL:AFNetworkingTestsBaseURL()]]; + AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request]; + [operation setCompletionBlockWithSuccess:nil + failure:nil]; + [operation + setRedirectResponseBlock:^NSURLRequest *(NSURLConnection *connection, NSURLRequest *request, NSURLResponse *redirectResponse) { + if(redirectResponse){ + numberOfRedirects++; + } + return request; + }]; + [operation start]; + expect([operation isFinished]).will.beTruthy(); + expect(numberOfRedirects).will.equal(5); +} + @end