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

Side by Side Diff: content/child/url_response_body_consumer_unittest.cc

Issue 2345253002: Remove content::RequestInfo (Closed)
Patch Set: Rebase Created 4 years, 3 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 unified diff | Download patch
« no previous file with comments | « content/child/resource_dispatcher_unittest.cc ('k') | content/child/web_url_loader_impl.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/child/url_response_body_consumer.h" 5 #include "content/child/url_response_body_consumer.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/callback_forward.h" 8 #include "base/callback_forward.h"
9 #include "base/macros.h" 9 #include "base/macros.h"
10 #include "base/memory/ptr_util.h" 10 #include "base/memory/ptr_util.h"
11 #include "base/run_loop.h" 11 #include "base/run_loop.h"
12 #include "content/child/request_info.h" 12 #include "content/child/request_extra_data.h"
13 #include "content/child/resource_dispatcher.h" 13 #include "content/child/resource_dispatcher.h"
14 #include "content/common/resource_messages.h" 14 #include "content/common/resource_messages.h"
15 #include "content/common/resource_request.h"
15 #include "content/common/resource_request_completion_status.h" 16 #include "content/common/resource_request_completion_status.h"
17 #include "content/common/service_worker/service_worker_types.h"
16 #include "content/public/child/request_peer.h" 18 #include "content/public/child/request_peer.h"
19 #include "content/public/common/request_context_frame_type.h"
20 #include "net/base/request_priority.h"
17 #include "testing/gtest/include/gtest/gtest.h" 21 #include "testing/gtest/include/gtest/gtest.h"
22 #include "url/gurl.h"
18 23
19 namespace content { 24 namespace content {
20 25
21 namespace { 26 namespace {
22 27
23 class TestRequestPeer : public RequestPeer { 28 class TestRequestPeer : public RequestPeer {
24 public: 29 public:
25 struct Context; 30 struct Context;
26 explicit TestRequestPeer(Context* context) : context_(context) {} 31 explicit TestRequestPeer(Context* context) : context_(context) {}
27 32
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 ~URLResponseBodyConsumerTest() override { 89 ~URLResponseBodyConsumerTest() override {
85 dispatcher_.reset(); 90 dispatcher_.reset();
86 base::RunLoop().RunUntilIdle(); 91 base::RunLoop().RunUntilIdle();
87 } 92 }
88 93
89 bool Send(IPC::Message* message) override { 94 bool Send(IPC::Message* message) override {
90 delete message; 95 delete message;
91 return true; 96 return true;
92 } 97 }
93 98
94 std::unique_ptr<RequestInfo> CreateRequestInfo() { 99 std::unique_ptr<ResourceRequest> CreateResourceRequest() {
95 std::unique_ptr<RequestInfo> request_info(new RequestInfo); 100 std::unique_ptr<ResourceRequest> request(new ResourceRequest);
96 request_info->method = "GET"; 101
97 request_info->url = GURL("http://www.example.com/"); 102 request->method = "GET";
98 return request_info; 103 request->url = GURL("http://www.example.com/");
104 request->priority = net::LOW;
105 request->appcache_host_id = 0;
106 request->fetch_request_mode = FETCH_REQUEST_MODE_NO_CORS;
107 request->fetch_frame_type = REQUEST_CONTEXT_FRAME_TYPE_NONE;
108
109 const RequestExtraData extra_data;
110 extra_data.CopyToResourceRequest(request.get());
111
112 return request;
99 } 113 }
100 114
101 MojoCreateDataPipeOptions CreateDataPipeOptions() { 115 MojoCreateDataPipeOptions CreateDataPipeOptions() {
102 MojoCreateDataPipeOptions options; 116 MojoCreateDataPipeOptions options;
103 options.struct_size = sizeof(MojoCreateDataPipeOptions); 117 options.struct_size = sizeof(MojoCreateDataPipeOptions);
104 options.flags = MOJO_CREATE_DATA_PIPE_OPTIONS_FLAG_NONE; 118 options.flags = MOJO_CREATE_DATA_PIPE_OPTIONS_FLAG_NONE;
105 options.element_num_bytes = 1; 119 options.element_num_bytes = 1;
106 options.capacity_num_bytes = 1024; 120 options.capacity_num_bytes = 1024;
107 return options; 121 return options;
108 } 122 }
109 123
110 // Returns the request id. 124 // Returns the request id.
111 int SetUpRequestPeer(const RequestInfo& request_info, 125 int SetUpRequestPeer(std::unique_ptr<ResourceRequest> request,
112 TestRequestPeer::Context* context) { 126 TestRequestPeer::Context* context) {
113 return dispatcher_->StartAsync( 127 return dispatcher_->StartAsync(
114 request_info, nullptr, base::MakeUnique<TestRequestPeer>(context), 128 std::move(request), 0, nullptr, GURL(),
129 base::MakeUnique<TestRequestPeer>(context),
115 blink::WebURLRequest::LoadingIPCType::ChromeIPC, nullptr); 130 blink::WebURLRequest::LoadingIPCType::ChromeIPC, nullptr);
116 } 131 }
117 132
118 void Run(TestRequestPeer::Context* context) { 133 void Run(TestRequestPeer::Context* context) {
119 base::RunLoop run_loop; 134 base::RunLoop run_loop;
120 context->run_loop_quit_closure = run_loop.QuitClosure(); 135 context->run_loop_quit_closure = run_loop.QuitClosure();
121 run_loop.Run(); 136 run_loop.Run();
122 } 137 }
123 138
124 base::MessageLoop message_loop_; 139 base::MessageLoop message_loop_;
125 std::unique_ptr<ResourceDispatcher> dispatcher_; 140 std::unique_ptr<ResourceDispatcher> dispatcher_;
126 static const MojoWriteDataFlags kNone = MOJO_WRITE_DATA_FLAG_NONE; 141 static const MojoWriteDataFlags kNone = MOJO_WRITE_DATA_FLAG_NONE;
127 }; 142 };
128 143
129 TEST_F(URLResponseBodyConsumerTest, ReceiveData) { 144 TEST_F(URLResponseBodyConsumerTest, ReceiveData) {
130 TestRequestPeer::Context context; 145 TestRequestPeer::Context context;
131 std::unique_ptr<RequestInfo> request_info(CreateRequestInfo()); 146 std::unique_ptr<ResourceRequest> request(CreateResourceRequest());
132 int request_id = SetUpRequestPeer(*request_info, &context); 147 int request_id = SetUpRequestPeer(std::move(request), &context);
133 mojo::DataPipe data_pipe(CreateDataPipeOptions()); 148 mojo::DataPipe data_pipe(CreateDataPipeOptions());
134 149
135 scoped_refptr<URLResponseBodyConsumer> consumer(new URLResponseBodyConsumer( 150 scoped_refptr<URLResponseBodyConsumer> consumer(new URLResponseBodyConsumer(
136 request_id, dispatcher_.get(), std::move(data_pipe.consumer_handle), 151 request_id, dispatcher_.get(), std::move(data_pipe.consumer_handle),
137 message_loop_.task_runner())); 152 message_loop_.task_runner()));
138 153
139 mojo::ScopedDataPipeProducerHandle writer = 154 mojo::ScopedDataPipeProducerHandle writer =
140 std::move(data_pipe.producer_handle); 155 std::move(data_pipe.producer_handle);
141 std::string buffer = "hello"; 156 std::string buffer = "hello";
142 uint32_t size = buffer.size(); 157 uint32_t size = buffer.size();
143 MojoResult result = 158 MojoResult result =
144 mojo::WriteDataRaw(writer.get(), buffer.c_str(), &size, kNone); 159 mojo::WriteDataRaw(writer.get(), buffer.c_str(), &size, kNone);
145 ASSERT_EQ(MOJO_RESULT_OK, result); 160 ASSERT_EQ(MOJO_RESULT_OK, result);
146 ASSERT_EQ(buffer.size(), size); 161 ASSERT_EQ(buffer.size(), size);
147 162
148 Run(&context); 163 Run(&context);
149 164
150 EXPECT_FALSE(context.complete); 165 EXPECT_FALSE(context.complete);
151 EXPECT_EQ("hello", context.data); 166 EXPECT_EQ("hello", context.data);
152 } 167 }
153 168
154 TEST_F(URLResponseBodyConsumerTest, OnCompleteThenClose) { 169 TEST_F(URLResponseBodyConsumerTest, OnCompleteThenClose) {
155 TestRequestPeer::Context context; 170 TestRequestPeer::Context context;
156 std::unique_ptr<RequestInfo> request_info(CreateRequestInfo()); 171 std::unique_ptr<ResourceRequest> request(CreateResourceRequest());
157 int request_id = SetUpRequestPeer(*request_info, &context); 172 int request_id = SetUpRequestPeer(std::move(request), &context);
158 mojo::DataPipe data_pipe(CreateDataPipeOptions()); 173 mojo::DataPipe data_pipe(CreateDataPipeOptions());
159 174
160 scoped_refptr<URLResponseBodyConsumer> consumer(new URLResponseBodyConsumer( 175 scoped_refptr<URLResponseBodyConsumer> consumer(new URLResponseBodyConsumer(
161 request_id, dispatcher_.get(), std::move(data_pipe.consumer_handle), 176 request_id, dispatcher_.get(), std::move(data_pipe.consumer_handle),
162 message_loop_.task_runner())); 177 message_loop_.task_runner()));
163 178
164 consumer->OnComplete(ResourceRequestCompletionStatus()); 179 consumer->OnComplete(ResourceRequestCompletionStatus());
165 mojo::ScopedDataPipeProducerHandle writer = 180 mojo::ScopedDataPipeProducerHandle writer =
166 std::move(data_pipe.producer_handle); 181 std::move(data_pipe.producer_handle);
167 std::string buffer = "hello"; 182 std::string buffer = "hello";
(...skipping 10 matching lines...) Expand all
178 EXPECT_EQ("hello", context.data); 193 EXPECT_EQ("hello", context.data);
179 194
180 Run(&context); 195 Run(&context);
181 196
182 EXPECT_TRUE(context.complete); 197 EXPECT_TRUE(context.complete);
183 EXPECT_EQ("hello", context.data); 198 EXPECT_EQ("hello", context.data);
184 } 199 }
185 200
186 TEST_F(URLResponseBodyConsumerTest, CloseThenOnComplete) { 201 TEST_F(URLResponseBodyConsumerTest, CloseThenOnComplete) {
187 TestRequestPeer::Context context; 202 TestRequestPeer::Context context;
188 std::unique_ptr<RequestInfo> request_info(CreateRequestInfo()); 203 std::unique_ptr<ResourceRequest> request(CreateResourceRequest());
189 int request_id = SetUpRequestPeer(*request_info, &context); 204 int request_id = SetUpRequestPeer(std::move(request), &context);
190 mojo::DataPipe data_pipe(CreateDataPipeOptions()); 205 mojo::DataPipe data_pipe(CreateDataPipeOptions());
191 206
192 scoped_refptr<URLResponseBodyConsumer> consumer(new URLResponseBodyConsumer( 207 scoped_refptr<URLResponseBodyConsumer> consumer(new URLResponseBodyConsumer(
193 request_id, dispatcher_.get(), std::move(data_pipe.consumer_handle), 208 request_id, dispatcher_.get(), std::move(data_pipe.consumer_handle),
194 message_loop_.task_runner())); 209 message_loop_.task_runner()));
195 210
196 ResourceRequestCompletionStatus status; 211 ResourceRequestCompletionStatus status;
197 status.error_code = net::ERR_FAILED; 212 status.error_code = net::ERR_FAILED;
198 data_pipe.producer_handle.reset(); 213 data_pipe.producer_handle.reset();
199 consumer->OnComplete(status); 214 consumer->OnComplete(status);
200 215
201 Run(&context); 216 Run(&context);
202 217
203 EXPECT_TRUE(context.complete); 218 EXPECT_TRUE(context.complete);
204 EXPECT_EQ(net::ERR_FAILED, context.error_code); 219 EXPECT_EQ(net::ERR_FAILED, context.error_code);
205 EXPECT_EQ("", context.data); 220 EXPECT_EQ("", context.data);
206 } 221 }
207 222
208 } // namespace 223 } // namespace
209 224
210 } // namespace content 225 } // namespace content
OLDNEW
« no previous file with comments | « content/child/resource_dispatcher_unittest.cc ('k') | content/child/web_url_loader_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698