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

Side by Side Diff: content/browser/loader/test_resource_handler.cc

Issue 2476163003: Refactor ResourceHandler API. (Closed)
Patch Set: Minor cleanups, one real fix Created 4 years, 1 month 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 unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/loader/test_resource_handler.h" 5 #include "content/browser/loader/test_resource_handler.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "content/public/browser/resource_controller.h"
8 #include "net/url_request/url_request_status.h" 9 #include "net/url_request/url_request_status.h"
9 #include "testing/gtest/include/gtest/gtest.h" 10 #include "testing/gtest/include/gtest/gtest.h"
10 11
11 namespace content { 12 namespace content {
12 13
13 TestResourceHandler::TestResourceHandler(net::URLRequestStatus* request_status, 14 TestResourceHandler::TestResourceHandler(net::URLRequestStatus* request_status,
14 std::string* body) 15 std::string* body)
15 : ResourceHandler(nullptr), request_status_(request_status), body_(body) { 16 : ResourceHandler(nullptr), request_status_(request_status), body_(body) {
16 SetBufferSize(2048); 17 SetBufferSize(2048);
17 } 18 }
18 19
19 TestResourceHandler::TestResourceHandler() 20 TestResourceHandler::TestResourceHandler()
20 : TestResourceHandler(nullptr, nullptr) {} 21 : TestResourceHandler(nullptr, nullptr) {}
21 22
22 TestResourceHandler::~TestResourceHandler() {} 23 TestResourceHandler::~TestResourceHandler() {}
23 24
24 void TestResourceHandler::SetController(ResourceController* controller) {} 25 void TestResourceHandler::SetController(ResourceController* controller) {
26 controller_ = controller;
27 }
25 28
26 bool TestResourceHandler::OnRequestRedirected( 29 void TestResourceHandler::OnRequestRedirected(
27 const net::RedirectInfo& redirect_info, 30 const net::RedirectInfo& redirect_info,
28 ResourceResponse* response, 31 ResourceResponse* response,
29 bool* defer) { 32 bool* defer_or_cancel) {
30 NOTREACHED() << "Redirects are not supported by the TestResourceHandler."; 33 NOTREACHED() << "Redirects are not supported by the TestResourceHandler.";
31 return false;
32 } 34 }
33 35
34 bool TestResourceHandler::OnResponseStarted(ResourceResponse* response, 36 void TestResourceHandler::OnResponseStarted(ResourceResponse* response,
35 bool* defer) { 37 bool* defer_or_cancel) {
36 EXPECT_EQ(1, on_will_start_called_); 38 EXPECT_EQ(1, on_will_start_called_);
37 EXPECT_EQ(0, on_response_started_called_); 39 EXPECT_EQ(0, on_response_started_called_);
38 EXPECT_EQ(0, on_response_completed_called_); 40 EXPECT_EQ(0, on_response_completed_called_);
39 ++on_response_started_called_; 41 ++on_response_started_called_;
40 42
41 if (!on_response_started_result_) 43 if (!on_response_started_result_) {
42 return false; 44 controller_->Cancel();
43 *defer = defer_on_response_started_; 45 *defer_or_cancel = true;
46 return;
47 }
48
49 *defer_or_cancel = defer_on_response_started_;
44 defer_on_response_started_ = false; 50 defer_on_response_started_ = false;
45 return true;
46 } 51 }
47 52
48 bool TestResourceHandler::OnWillStart(const GURL& url, bool* defer) { 53 void TestResourceHandler::OnWillStart(const GURL& url, bool* defer_or_cancel) {
49 EXPECT_EQ(0, on_response_started_called_); 54 EXPECT_EQ(0, on_response_started_called_);
50 EXPECT_EQ(0, on_will_start_called_); 55 EXPECT_EQ(0, on_will_start_called_);
51 EXPECT_EQ(0, on_response_completed_called_); 56 EXPECT_EQ(0, on_response_completed_called_);
52 ++on_will_start_called_; 57 ++on_will_start_called_;
53 58
54 if (!on_will_start_result_) 59 if (!on_will_start_result_) {
55 return false; 60 *defer_or_cancel = true;
61 controller_->Cancel();
62 return;
63 }
56 64
57 *defer = defer_on_will_start_; 65 *defer_or_cancel = defer_on_will_start_;
58 return true;
59 } 66 }
60 67
61 bool TestResourceHandler::OnWillRead(scoped_refptr<net::IOBuffer>* buf, 68 bool TestResourceHandler::OnWillRead(scoped_refptr<net::IOBuffer>* buf,
62 int* buf_size, 69 int* buf_size,
63 int min_size) { 70 int min_size) {
64 EXPECT_EQ(0, on_response_completed_called_); 71 EXPECT_EQ(0, on_response_completed_called_);
65 ++on_will_read_called_; 72 ++on_will_read_called_;
66 73
67 *buf = buffer_; 74 *buf = buffer_;
68 *buf_size = buffer_size_; 75 *buf_size = buffer_size_;
69 memset(buffer_->data(), '\0', buffer_size_); 76 memset(buffer_->data(), '\0', buffer_size_);
70 return on_will_read_result_; 77 return on_will_read_result_;
71 } 78 }
72 79
73 bool TestResourceHandler::OnReadCompleted(int bytes_read, bool* defer) { 80 void TestResourceHandler::OnReadCompleted(int bytes_read,
81 bool* defer_or_cancel) {
74 EXPECT_EQ(1, on_will_start_called_); 82 EXPECT_EQ(1, on_will_start_called_);
75 EXPECT_EQ(1, on_response_started_called_); 83 EXPECT_EQ(1, on_response_started_called_);
76 EXPECT_EQ(0, on_response_completed_called_); 84 EXPECT_EQ(0, on_response_completed_called_);
77 ++on_read_completed_called_; 85 ++on_read_completed_called_;
78 86
79 EXPECT_LE(static_cast<size_t>(bytes_read), buffer_size_); 87 EXPECT_LE(static_cast<size_t>(bytes_read), buffer_size_);
80 if (body_) 88 if (body_)
81 body_->append(buffer_->data(), bytes_read); 89 body_->append(buffer_->data(), bytes_read);
82 if (!on_read_completed_result_) 90 if (!on_read_completed_result_) {
83 return false; 91 *defer_or_cancel = true;
84 *defer = defer_on_read_completed_; 92 controller_->Cancel();
93 return;
94 }
95
96 *defer_or_cancel = defer_on_read_completed_;
85 defer_on_read_completed_ = false; 97 defer_on_read_completed_ = false;
86 return true;
87 } 98 }
88 99
89 void TestResourceHandler::OnResponseCompleted( 100 void TestResourceHandler::OnResponseCompleted(
90 const net::URLRequestStatus& status, 101 const net::URLRequestStatus& status,
91 bool* defer) { 102 bool* defer) {
92 EXPECT_EQ(0, on_response_completed_called_); 103 EXPECT_EQ(0, on_response_completed_called_);
93 ++on_response_completed_called_; 104 ++on_response_completed_called_;
94 105
95 if (request_status_) 106 if (request_status_)
96 *request_status_ = status; 107 *request_status_ = status;
97 *defer = defer_on_response_completed_; 108 *defer = defer_on_response_completed_;
98 defer_on_response_completed_ = false; 109 defer_on_response_completed_ = false;
99 } 110 }
100 111
101 void TestResourceHandler::OnDataDownloaded(int bytes_downloaded) { 112 void TestResourceHandler::OnDataDownloaded(int bytes_downloaded) {
102 NOTREACHED() << "Saving to file is not supported by the TestResourceHandler."; 113 NOTREACHED() << "Saving to file is not supported by the TestResourceHandler.";
103 } 114 }
104 115
105 void TestResourceHandler::SetBufferSize(int buffer_size) { 116 void TestResourceHandler::SetBufferSize(int buffer_size) {
106 buffer_ = new net::IOBuffer(buffer_size); 117 buffer_ = new net::IOBuffer(buffer_size);
107 buffer_size_ = buffer_size; 118 buffer_size_ = buffer_size;
108 memset(buffer_->data(), '\0', buffer_size); 119 memset(buffer_->data(), '\0', buffer_size);
109 } 120 }
110 121
111 } // namespace content 122 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/loader/test_resource_handler.h ('k') | content/browser/loader/throttling_resource_handler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698