aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/objective-c
diff options
context:
space:
mode:
authorGravatar Muxi Yan <mxyan@google.com>2018-08-07 12:04:35 -0700
committerGravatar Muxi Yan <mxyan@google.com>2018-08-07 12:04:35 -0700
commit8617879613133c06782c955b03c0bd3d1f8517e2 (patch)
tree4979243f22a415c84f051951d82be2e6b10fc7ed /src/objective-c
parentae013976b24ce95140d3a9b129f15d4714532e28 (diff)
Add test for returned debug information
Diffstat (limited to 'src/objective-c')
-rw-r--r--src/objective-c/tests/GRPCClientTests.m35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/objective-c/tests/GRPCClientTests.m b/src/objective-c/tests/GRPCClientTests.m
index 2a169800a0..6dda346514 100644
--- a/src/objective-c/tests/GRPCClientTests.m
+++ b/src/objective-c/tests/GRPCClientTests.m
@@ -591,4 +591,39 @@ static GRPCProtoMethod *kFullDuplexCallMethod;
[self testTimeoutBackoffWithTimeout:0.3 Backoff:0.7];
}
+- (void)testErrorDebugInformation {
+ __weak XCTestExpectation *expectation = [self expectationWithDescription:@"RPC unauthorized."];
+
+ RMTSimpleRequest *request = [RMTSimpleRequest message];
+ request.fillUsername = YES;
+ request.fillOauthScope = YES;
+ GRXWriter *requestsWriter = [GRXWriter writerWithValue:[request data]];
+
+ GRPCCall *call = [[GRPCCall alloc] initWithHost:kRemoteSSLHost
+ path:kUnaryCallMethod.HTTPPath
+ requestsWriter:requestsWriter];
+
+ call.oauth2AccessToken = @"bogusToken";
+
+ id<GRXWriteable> responsesWriteable =
+ [[GRXWriteable alloc] initWithValueHandler:^(NSData *value) {
+ XCTFail(@"Received unexpected response: %@", value);
+ }
+ completionHandler:^(NSError *errorOrNil) {
+ XCTAssertNotNil(errorOrNil, @"Finished without error!");
+ NSDictionary *userInfo = errorOrNil.userInfo;
+ NSString *debugInformation = userInfo[NSDebugDescriptionErrorKey];
+ XCTAssertNotNil(debugInformation);
+ XCTAssertNotEqual([debugInformation length], 0);
+ NSString *challengeHeader = call.oauth2ChallengeHeader;
+ XCTAssertGreaterThan(challengeHeader.length, 0, @"No challenge in response headers %@",
+ call.responseHeaders);
+ [expectation fulfill];
+ }];
+
+ [call startWithWriteable:responsesWriteable];
+
+ [self waitForExpectationsWithTimeout:TEST_TIMEOUT handler:nil];
+}
+
@end