Skip to content
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ - (void)testDidReceiveDataIsForwarded {
id proxy = [[BSGURLSessionTracingProxy alloc] initWithDelegate:sessionDelegate tracingDelegate:(id)tracingDelegate];

NSURLSession *session = [NSURLSession sessionWithConfiguration:NSURLSessionConfiguration.ephemeralSessionConfiguration];
NSURLSessionDataTask *task = [[NSURLSessionDataTask alloc] init];
NSURLSessionDataTask *task = [session dataTaskWithURL:[NSURL URLWithString:@"https://example.com"]];

XCTAssertTrue([proxy respondsToSelector:@selector(URLSession:dataTask:didReceiveData:)]);
[proxy URLSession:session dataTask:task didReceiveData:[NSData data]];
Expand All @@ -55,11 +55,14 @@ - (void)testDidFinishCollectingMetricsIsForwardedToSessionDelegate {
id proxy = [[BSGURLSessionTracingProxy alloc] initWithDelegate:sessionDelegate tracingDelegate:(id)tracingDelegate];

NSURLSession *session = [NSURLSession sessionWithConfiguration:NSURLSessionConfiguration.ephemeralSessionConfiguration];
NSURLSessionDataTask *task = [[NSURLSessionDataTask alloc] init];
NSURLSessionDataTask *task = [session dataTaskWithURL:[NSURL URLWithString:@"https://example.com"]];

XCTAssertFalse([proxy respondsToSelector:@selector(URLSession:dataTask:didReceiveData:)]);
XCTAssertTrue([proxy respondsToSelector:@selector(URLSession:task:didFinishCollectingMetrics:)]);
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
[proxy URLSession:session task:task didFinishCollectingMetrics:[[NSURLSessionTaskMetrics alloc] init]];
#pragma clang diagnostic pop
XCTAssertTrue(sessionDelegate.didFinishCollectingMetricsWasCalled, @"The session delegate's method should be called");
XCTAssertTrue(tracingDelegate.didFinishCollectingMetricsWasCalled, @"The tracing delegate's method should be called");
} else {
Expand All @@ -75,10 +78,13 @@ - (void)testDidFinishCollectingMetricsIsNotImplementedBySessionDelegate {
id proxy = [[BSGURLSessionTracingProxy alloc] initWithDelegate:sessionDelegate tracingDelegate:(id)tracingDelegate];

NSURLSession *session = [NSURLSession sessionWithConfiguration:NSURLSessionConfiguration.ephemeralSessionConfiguration];
NSURLSessionDataTask *task = [[NSURLSessionDataTask alloc] init];
NSURLSessionDataTask *task = [session dataTaskWithURL:[NSURL URLWithString:@"https://example.com"]];

XCTAssertTrue([proxy respondsToSelector:@selector(URLSession:task:didFinishCollectingMetrics:)]);
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
XCTAssertNoThrow([proxy URLSession:session task:task didFinishCollectingMetrics:[[NSURLSessionTaskMetrics alloc] init]]);
#pragma clang diagnostic pop
XCTAssertTrue(tracingDelegate.didFinishCollectingMetricsWasCalled, @"The tracing delegate's method should be called");
} else {
XCTSkip(@"Required API is not available for this test.");
Expand Down
Loading