Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(173)

Unified Diff: ios/web/public/test/response_providers/delayed_response_provider.mm

Issue 2898733003: Split up ios/web:test_support. (Closed)
Patch Set: don't break downstream clients Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698