Index: content/child/test_request_peer.h |
diff --git a/content/child/test_request_peer.h b/content/child/test_request_peer.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..81162acde553f1d0ccd5fa1813e5fad4cbceedfa |
--- /dev/null |
+++ b/content/child/test_request_peer.h |
@@ -0,0 +1,85 @@ |
+// 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. |
+ |
+#ifndef CONTENT_CHILD_TEST_REQUEST_PEER_H_ |
+#define CONTENT_CHILD_TEST_REQUEST_PEER_H_ |
+ |
+#include <stdint.h> |
+#include <memory> |
+#include <string> |
+#include "base/time/time.h" |
+#include "content/public/child/request_peer.h" |
+ |
+namespace net { |
+struct RedirectInfo; |
+} // namespace net |
+ |
+namespace content { |
+ |
+class ReceivedData; |
+class ResourceDispatcher; |
+struct ResourceResponseInfo; |
+ |
+// Listens for request response data and stores it so that it can be compared |
+// to the reference data. |
+class TestRequestPeer : public RequestPeer { |
+ public: |
+ struct Context; |
+ TestRequestPeer(ResourceDispatcher* dispatcher, Context* context); |
+ ~TestRequestPeer() override; |
+ |
+ void OnUploadProgress(uint64_t position, uint64_t size) override; |
+ bool OnReceivedRedirect(const net::RedirectInfo& redirect_info, |
+ const ResourceResponseInfo& info) override; |
+ void OnReceivedResponse(const ResourceResponseInfo& info) override; |
+ void OnDownloadedData(int len, int encoded_data_length) override; |
+ void OnReceivedData(std::unique_ptr<ReceivedData> data) override; |
+ void OnTransferSizeUpdated(int transfer_size_diff) override; |
+ void OnCompletedRequest(int error_code, |
+ bool was_ignored_by_handler, |
+ bool stale_copy_in_cache, |
+ const base::TimeTicks& completion_time, |
+ int64_t total_transfer_size, |
+ int64_t encoded_body_size) override; |
+ |
+ struct Context final { |
+ Context(); |
+ ~Context(); |
+ |
+ // True if should follow redirects, false if should cancel them. |
+ bool follow_redirects = true; |
+ // True if the request should be deferred on redirects. |
+ bool defer_on_redirect = false; |
+ |
+ // Number of total redirects seen. |
+ int seen_redirects = 0; |
+ |
+ bool cancel_on_receive_response = false; |
+ bool cancel_on_receive_data = false; |
+ bool received_response = false; |
+ |
+ // Data received. If downloading to file, remains empty. |
+ std::string data; |
+ |
+ // Total encoded data length, regardless of whether downloading to a file or |
+ // not. |
+ int total_encoded_data_length = 0; |
+ // Total length when downloading to a file. |
+ int total_downloaded_data_length = 0; |
+ |
+ bool complete = false; |
+ bool cancelled = false; |
+ int request_id = -1; |
+ }; |
+ |
+ private: |
+ ResourceDispatcher* dispatcher_; |
+ Context* context_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(TestRequestPeer); |
+}; |
+ |
+} // namespace content |
+ |
+#endif // CONTENT_CHILD_TEST_REQUEST_PEER_H_ |