Index: ios/web/public/test/response_providers/delayed_response_provider.mm |
diff --git a/ios/web/public/test/response_providers/delayed_response_provider.mm b/ios/web/public/test/response_providers/delayed_response_provider.mm |
deleted file mode 100644 |
index 7d57911fefeb1c29bc37f382f7fb9749761de3f6..0000000000000000000000000000000000000000 |
--- a/ios/web/public/test/response_providers/delayed_response_provider.mm |
+++ /dev/null |
@@ -1,125 +0,0 @@ |
-// Copyright 2016 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#import "ios/web/public/test/response_providers/delayed_response_provider.h" |
- |
-#import <Foundation/Foundation.h> |
- |
-#import "base/ios/weak_nsobject.h" |
-#import "base/mac/scoped_nsobject.h" |
-#import "base/mac/foundation_util.h" |
-#import "ios/third_party/gcdwebserver/src/GCDWebServer/Responses/GCDWebServerDataResponse.h" |
- |
-// A proxy class that will forward all messages to the |_response|. |
-// It will delay read operation |_delay| seconds. |
-@interface DelayedGCDWebServerResponse : NSProxy { |
- base::scoped_nsobject<GCDWebServerResponse> _response; |
- NSTimeInterval _delay; |
-} |
- |
-+ (instancetype)responseWithServerResponse:(GCDWebServerResponse*)response |
- delay:(NSTimeInterval)delay; |
-- (instancetype)initWithServerResponse:(GCDWebServerResponse*)response |
- delay:(NSTimeInterval)delay; |
-@end |
- |
-@implementation DelayedGCDWebServerResponse |
-+ (instancetype)responseWithServerResponse:(GCDWebServerResponse*)response |
- delay:(NSTimeInterval)delay { |
- return [[[DelayedGCDWebServerResponse alloc] initWithServerResponse:response |
- delay:delay] |
- autorelease]; |
-} |
- |
-- (instancetype)initWithServerResponse:(GCDWebServerResponse*)response |
- delay:(NSTimeInterval)delay { |
- _response.reset([response retain]); |
- _delay = delay; |
- return self; |
-} |
- |
-#pragma mark - GCDWebServerResponse |
- |
-- (void)performReadDataWithCompletion: |
- (GCDWebServerBodyReaderCompletionBlock)block { |
- [self asyncReadDataWithCompletion:block]; |
-} |
- |
-- (void)asyncReadDataWithCompletion: |
- (GCDWebServerBodyReaderCompletionBlock)block { |
- dispatch_async(dispatch_get_main_queue(), ^{ |
- base::WeakNSObject<GCDWebServerResponse> weakResponse(_response); |
- if ([_response |
- respondsToSelector:@selector(asyncReadDataWithCompletion:)]) { |
- dispatch_after(dispatch_time(DISPATCH_TIME_NOW, |
- static_cast<int64_t>(_delay * NSEC_PER_SEC)), |
- dispatch_get_main_queue(), ^{ |
- base::scoped_nsobject<GCDWebServerResponse> response( |
- [weakResponse retain]); |
- [response asyncReadDataWithCompletion:block]; |
- }); |
- } else { |
- dispatch_after(dispatch_time(DISPATCH_TIME_NOW, |
- static_cast<int64_t>(_delay * NSEC_PER_SEC)), |
- dispatch_get_main_queue(), ^{ |
- base::scoped_nsobject<GCDWebServerResponse> response( |
- [weakResponse retain]); |
- if (!response) { |
- return; |
- } |
- NSError* error = nil; |
- NSData* data = [response readData:&error]; |
- block(data, error); |
- }); |
- } |
- }); |
-} |
- |
-#pragma mark - NSProxy |
- |
-- (BOOL)conformsToProtocol:(Protocol*)protocol { |
- return [[_response class] conformsToProtocol:protocol]; |
-} |
- |
-- (BOOL)respondsToSelector:(SEL)selector { |
- return [[_response class] instancesRespondToSelector:selector]; |
-} |
- |
-- (NSMethodSignature*)methodSignatureForSelector:(SEL)selector { |
- return [[_response class] instanceMethodSignatureForSelector:selector]; |
-} |
- |
-- (void)forwardInvocation:(NSInvocation*)invocation { |
- SEL selector = [invocation selector]; |
- if ([_response respondsToSelector:selector]) |
- [invocation invokeWithTarget:_response]; |
-} |
- |
-@end |
- |
-namespace web { |
- |
-DelayedResponseProvider::DelayedResponseProvider( |
- std::unique_ptr<web::ResponseProvider> delayed_provider, |
- double delay) |
- : web::ResponseProvider(), |
- delayed_provider_(std::move(delayed_provider)), |
- delay_(delay) {} |
- |
-DelayedResponseProvider::~DelayedResponseProvider() {} |
- |
-bool DelayedResponseProvider::CanHandleRequest(const Request& request) { |
- return delayed_provider_->CanHandleRequest(request); |
-} |
- |
-GCDWebServerResponse* DelayedResponseProvider::GetGCDWebServerResponse( |
- const Request& request) { |
- DelayedGCDWebServerResponse* response = [DelayedGCDWebServerResponse |
- responseWithServerResponse:delayed_provider_->GetGCDWebServerResponse( |
- request) |
- delay:delay_]; |
- return base::mac::ObjCCastStrict<GCDWebServerResponse>(response); |
-} |
- |
-} // namespace web |