OLD | NEW |
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_loader_client_impl.h" | 5 #include "content/child/url_loader_client_impl.h" |
6 | 6 |
7 #include <vector> | 7 #include <vector> |
8 #include "base/memory/ptr_util.h" | 8 #include "base/memory/ptr_util.h" |
9 #include "base/message_loop/message_loop.h" | 9 #include "base/message_loop/message_loop.h" |
10 #include "base/run_loop.h" | 10 #include "base/run_loop.h" |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
46 } | 46 } |
47 | 47 |
48 bool Send(IPC::Message* message) override { | 48 bool Send(IPC::Message* message) override { |
49 ADD_FAILURE() << "IPC::Sender::Send should not be called."; | 49 ADD_FAILURE() << "IPC::Sender::Send should not be called."; |
50 return false; | 50 return false; |
51 } | 51 } |
52 | 52 |
53 void CreateLoaderAndStart(mojom::URLLoaderAssociatedRequest request, | 53 void CreateLoaderAndStart(mojom::URLLoaderAssociatedRequest request, |
54 int32_t routing_id, | 54 int32_t routing_id, |
55 int32_t request_id, | 55 int32_t request_id, |
| 56 int32_t options, |
56 const ResourceRequest& url_request, | 57 const ResourceRequest& url_request, |
57 mojom::URLLoaderClientPtr client) override { | 58 mojom::URLLoaderClientPtr client) override { |
58 url_loader_client_ = std::move(client); | 59 url_loader_client_ = std::move(client); |
59 } | 60 } |
60 | 61 |
61 void SyncLoad(int32_t routing_id, | 62 void SyncLoad(int32_t routing_id, |
62 int32_t request_id, | 63 int32_t request_id, |
63 const ResourceRequest& request, | 64 const ResourceRequest& request, |
64 const SyncLoadCallback& callback) override { | 65 const SyncLoadCallback& callback) override { |
65 NOTREACHED(); | 66 NOTREACHED(); |
(...skipping 13 matching lines...) Expand all Loading... |
79 TestRequestPeer::Context request_peer_context_; | 80 TestRequestPeer::Context request_peer_context_; |
80 int request_id_ = 0; | 81 int request_id_ = 0; |
81 mojom::URLLoaderClientPtr url_loader_client_; | 82 mojom::URLLoaderClientPtr url_loader_client_; |
82 mojom::URLLoaderFactoryPtr url_loader_factory_proxy_; | 83 mojom::URLLoaderFactoryPtr url_loader_factory_proxy_; |
83 mojo::Binding<mojom::URLLoaderFactory> mojo_binding_; | 84 mojo::Binding<mojom::URLLoaderFactory> mojo_binding_; |
84 }; | 85 }; |
85 | 86 |
86 TEST_F(URLLoaderClientImplTest, OnReceiveResponse) { | 87 TEST_F(URLLoaderClientImplTest, OnReceiveResponse) { |
87 ResourceResponseHead response_head; | 88 ResourceResponseHead response_head; |
88 | 89 |
89 url_loader_client_->OnReceiveResponse(response_head, nullptr); | 90 url_loader_client_->OnReceiveResponse( |
| 91 response_head, base::Optional<net::SSLInfo>(), nullptr); |
90 | 92 |
91 EXPECT_FALSE(request_peer_context_.received_response); | 93 EXPECT_FALSE(request_peer_context_.received_response); |
92 base::RunLoop().RunUntilIdle(); | 94 base::RunLoop().RunUntilIdle(); |
93 EXPECT_TRUE(request_peer_context_.received_response); | 95 EXPECT_TRUE(request_peer_context_.received_response); |
94 } | 96 } |
95 | 97 |
96 TEST_F(URLLoaderClientImplTest, ResponseBody) { | 98 TEST_F(URLLoaderClientImplTest, ResponseBody) { |
97 ResourceResponseHead response_head; | 99 ResourceResponseHead response_head; |
98 | 100 |
99 url_loader_client_->OnReceiveResponse(response_head, nullptr); | 101 url_loader_client_->OnReceiveResponse( |
| 102 response_head, base::Optional<net::SSLInfo>(), nullptr); |
100 | 103 |
101 EXPECT_FALSE(request_peer_context_.received_response); | 104 EXPECT_FALSE(request_peer_context_.received_response); |
102 base::RunLoop().RunUntilIdle(); | 105 base::RunLoop().RunUntilIdle(); |
103 EXPECT_TRUE(request_peer_context_.received_response); | 106 EXPECT_TRUE(request_peer_context_.received_response); |
104 | 107 |
105 mojo::DataPipe data_pipe(DataPipeOptions()); | 108 mojo::DataPipe data_pipe(DataPipeOptions()); |
106 url_loader_client_->OnStartLoadingResponseBody( | 109 url_loader_client_->OnStartLoadingResponseBody( |
107 std::move(data_pipe.consumer_handle)); | 110 std::move(data_pipe.consumer_handle)); |
108 uint32_t size = 5; | 111 uint32_t size = 5; |
109 MojoResult result = | 112 MojoResult result = |
(...skipping 13 matching lines...) Expand all Loading... |
123 url_loader_client_->OnReceiveRedirect(redirect_info, response_head); | 126 url_loader_client_->OnReceiveRedirect(redirect_info, response_head); |
124 | 127 |
125 EXPECT_EQ(0, request_peer_context_.seen_redirects); | 128 EXPECT_EQ(0, request_peer_context_.seen_redirects); |
126 base::RunLoop().RunUntilIdle(); | 129 base::RunLoop().RunUntilIdle(); |
127 EXPECT_EQ(1, request_peer_context_.seen_redirects); | 130 EXPECT_EQ(1, request_peer_context_.seen_redirects); |
128 } | 131 } |
129 | 132 |
130 TEST_F(URLLoaderClientImplTest, OnDataDownloaded) { | 133 TEST_F(URLLoaderClientImplTest, OnDataDownloaded) { |
131 ResourceResponseHead response_head; | 134 ResourceResponseHead response_head; |
132 | 135 |
133 url_loader_client_->OnReceiveResponse(response_head, nullptr); | 136 url_loader_client_->OnReceiveResponse( |
| 137 response_head, base::Optional<net::SSLInfo>(), nullptr); |
134 url_loader_client_->OnDataDownloaded(8, 13); | 138 url_loader_client_->OnDataDownloaded(8, 13); |
135 url_loader_client_->OnDataDownloaded(2, 1); | 139 url_loader_client_->OnDataDownloaded(2, 1); |
136 | 140 |
137 EXPECT_FALSE(request_peer_context_.received_response); | 141 EXPECT_FALSE(request_peer_context_.received_response); |
138 EXPECT_EQ(0, request_peer_context_.total_downloaded_data_length); | 142 EXPECT_EQ(0, request_peer_context_.total_downloaded_data_length); |
139 EXPECT_EQ(0, request_peer_context_.total_encoded_data_length); | 143 EXPECT_EQ(0, request_peer_context_.total_encoded_data_length); |
140 base::RunLoop().RunUntilIdle(); | 144 base::RunLoop().RunUntilIdle(); |
141 EXPECT_TRUE(request_peer_context_.received_response); | 145 EXPECT_TRUE(request_peer_context_.received_response); |
142 EXPECT_EQ(10, request_peer_context_.total_downloaded_data_length); | 146 EXPECT_EQ(10, request_peer_context_.total_downloaded_data_length); |
143 EXPECT_EQ(14, request_peer_context_.total_encoded_data_length); | 147 EXPECT_EQ(14, request_peer_context_.total_encoded_data_length); |
144 } | 148 } |
145 | 149 |
146 TEST_F(URLLoaderClientImplTest, OnReceiveCachedMetadata) { | 150 TEST_F(URLLoaderClientImplTest, OnReceiveCachedMetadata) { |
147 ResourceResponseHead response_head; | 151 ResourceResponseHead response_head; |
148 std::vector<uint8_t> metadata; | 152 std::vector<uint8_t> metadata; |
149 metadata.push_back('a'); | 153 metadata.push_back('a'); |
150 | 154 |
151 url_loader_client_->OnReceiveResponse(response_head, nullptr); | 155 url_loader_client_->OnReceiveResponse( |
| 156 response_head, base::Optional<net::SSLInfo>(), nullptr); |
152 url_loader_client_->OnReceiveCachedMetadata(metadata); | 157 url_loader_client_->OnReceiveCachedMetadata(metadata); |
153 | 158 |
154 EXPECT_FALSE(request_peer_context_.received_response); | 159 EXPECT_FALSE(request_peer_context_.received_response); |
155 EXPECT_TRUE(request_peer_context_.cached_metadata.empty()); | 160 EXPECT_TRUE(request_peer_context_.cached_metadata.empty()); |
156 base::RunLoop().RunUntilIdle(); | 161 base::RunLoop().RunUntilIdle(); |
157 EXPECT_TRUE(request_peer_context_.received_response); | 162 EXPECT_TRUE(request_peer_context_.received_response); |
158 ASSERT_EQ(1u, request_peer_context_.cached_metadata.size()); | 163 ASSERT_EQ(1u, request_peer_context_.cached_metadata.size()); |
159 EXPECT_EQ('a', request_peer_context_.cached_metadata[0]); | 164 EXPECT_EQ('a', request_peer_context_.cached_metadata[0]); |
160 } | 165 } |
161 | 166 |
162 TEST_F(URLLoaderClientImplTest, OnTransferSizeUpdated) { | 167 TEST_F(URLLoaderClientImplTest, OnTransferSizeUpdated) { |
163 ResourceResponseHead response_head; | 168 ResourceResponseHead response_head; |
164 | 169 |
165 url_loader_client_->OnReceiveResponse(response_head, nullptr); | 170 url_loader_client_->OnReceiveResponse( |
| 171 response_head, base::Optional<net::SSLInfo>(), nullptr); |
166 url_loader_client_->OnTransferSizeUpdated(4); | 172 url_loader_client_->OnTransferSizeUpdated(4); |
167 url_loader_client_->OnTransferSizeUpdated(4); | 173 url_loader_client_->OnTransferSizeUpdated(4); |
168 | 174 |
169 EXPECT_FALSE(request_peer_context_.received_response); | 175 EXPECT_FALSE(request_peer_context_.received_response); |
170 EXPECT_EQ(0, request_peer_context_.total_encoded_data_length); | 176 EXPECT_EQ(0, request_peer_context_.total_encoded_data_length); |
171 base::RunLoop().RunUntilIdle(); | 177 base::RunLoop().RunUntilIdle(); |
172 EXPECT_TRUE(request_peer_context_.received_response); | 178 EXPECT_TRUE(request_peer_context_.received_response); |
173 EXPECT_EQ(8, request_peer_context_.total_encoded_data_length); | 179 EXPECT_EQ(8, request_peer_context_.total_encoded_data_length); |
174 } | 180 } |
175 | 181 |
176 TEST_F(URLLoaderClientImplTest, OnCompleteWithoutResponseBody) { | 182 TEST_F(URLLoaderClientImplTest, OnCompleteWithoutResponseBody) { |
177 ResourceResponseHead response_head; | 183 ResourceResponseHead response_head; |
178 ResourceRequestCompletionStatus completion_status; | 184 ResourceRequestCompletionStatus completion_status; |
179 | 185 |
180 url_loader_client_->OnReceiveResponse(response_head, nullptr); | 186 url_loader_client_->OnReceiveResponse( |
| 187 response_head, base::Optional<net::SSLInfo>(), nullptr); |
181 url_loader_client_->OnComplete(completion_status); | 188 url_loader_client_->OnComplete(completion_status); |
182 | 189 |
183 EXPECT_FALSE(request_peer_context_.received_response); | 190 EXPECT_FALSE(request_peer_context_.received_response); |
184 EXPECT_FALSE(request_peer_context_.complete); | 191 EXPECT_FALSE(request_peer_context_.complete); |
185 base::RunLoop().RunUntilIdle(); | 192 base::RunLoop().RunUntilIdle(); |
186 EXPECT_TRUE(request_peer_context_.received_response); | 193 EXPECT_TRUE(request_peer_context_.received_response); |
187 EXPECT_TRUE(request_peer_context_.complete); | 194 EXPECT_TRUE(request_peer_context_.complete); |
188 } | 195 } |
189 | 196 |
190 TEST_F(URLLoaderClientImplTest, OnCompleteWithResponseBody) { | 197 TEST_F(URLLoaderClientImplTest, OnCompleteWithResponseBody) { |
191 ResourceResponseHead response_head; | 198 ResourceResponseHead response_head; |
192 ResourceRequestCompletionStatus completion_status; | 199 ResourceRequestCompletionStatus completion_status; |
193 | 200 |
194 url_loader_client_->OnReceiveResponse(response_head, nullptr); | 201 url_loader_client_->OnReceiveResponse( |
| 202 response_head, base::Optional<net::SSLInfo>(), nullptr); |
195 mojo::DataPipe data_pipe(DataPipeOptions()); | 203 mojo::DataPipe data_pipe(DataPipeOptions()); |
196 url_loader_client_->OnStartLoadingResponseBody( | 204 url_loader_client_->OnStartLoadingResponseBody( |
197 std::move(data_pipe.consumer_handle)); | 205 std::move(data_pipe.consumer_handle)); |
198 uint32_t size = 5; | 206 uint32_t size = 5; |
199 MojoResult result = | 207 MojoResult result = |
200 mojo::WriteDataRaw(data_pipe.producer_handle.get(), "hello", &size, | 208 mojo::WriteDataRaw(data_pipe.producer_handle.get(), "hello", &size, |
201 MOJO_WRITE_DATA_FLAG_NONE); | 209 MOJO_WRITE_DATA_FLAG_NONE); |
202 ASSERT_EQ(MOJO_RESULT_OK, result); | 210 ASSERT_EQ(MOJO_RESULT_OK, result); |
203 EXPECT_EQ(5u, size); | 211 EXPECT_EQ(5u, size); |
204 data_pipe.producer_handle.reset(); | 212 data_pipe.producer_handle.reset(); |
(...skipping 14 matching lines...) Expand all Loading... |
219 EXPECT_TRUE(request_peer_context_.complete); | 227 EXPECT_TRUE(request_peer_context_.complete); |
220 } | 228 } |
221 | 229 |
222 // Due to the lack of ordering guarantee, it is possible that the response body | 230 // Due to the lack of ordering guarantee, it is possible that the response body |
223 // bytes arrives after the completion message. URLLoaderClientImpl should | 231 // bytes arrives after the completion message. URLLoaderClientImpl should |
224 // restore the order. | 232 // restore the order. |
225 TEST_F(URLLoaderClientImplTest, OnCompleteShouldBeTheLastMessage) { | 233 TEST_F(URLLoaderClientImplTest, OnCompleteShouldBeTheLastMessage) { |
226 ResourceResponseHead response_head; | 234 ResourceResponseHead response_head; |
227 ResourceRequestCompletionStatus completion_status; | 235 ResourceRequestCompletionStatus completion_status; |
228 | 236 |
229 url_loader_client_->OnReceiveResponse(response_head, nullptr); | 237 url_loader_client_->OnReceiveResponse( |
| 238 response_head, base::Optional<net::SSLInfo>(), nullptr); |
230 mojo::DataPipe data_pipe(DataPipeOptions()); | 239 mojo::DataPipe data_pipe(DataPipeOptions()); |
231 url_loader_client_->OnStartLoadingResponseBody( | 240 url_loader_client_->OnStartLoadingResponseBody( |
232 std::move(data_pipe.consumer_handle)); | 241 std::move(data_pipe.consumer_handle)); |
233 url_loader_client_->OnComplete(completion_status); | 242 url_loader_client_->OnComplete(completion_status); |
234 | 243 |
235 base::RunLoop().RunUntilIdle(); | 244 base::RunLoop().RunUntilIdle(); |
236 EXPECT_TRUE(request_peer_context_.received_response); | 245 EXPECT_TRUE(request_peer_context_.received_response); |
237 EXPECT_FALSE(request_peer_context_.complete); | 246 EXPECT_FALSE(request_peer_context_.complete); |
238 | 247 |
239 uint32_t size = 5; | 248 uint32_t size = 5; |
(...skipping 12 matching lines...) Expand all Loading... |
252 EXPECT_EQ("hello", request_peer_context_.data); | 261 EXPECT_EQ("hello", request_peer_context_.data); |
253 EXPECT_TRUE(request_peer_context_.complete); | 262 EXPECT_TRUE(request_peer_context_.complete); |
254 } | 263 } |
255 | 264 |
256 TEST_F(URLLoaderClientImplTest, CancelOnReceiveResponse) { | 265 TEST_F(URLLoaderClientImplTest, CancelOnReceiveResponse) { |
257 request_peer_context_.cancel_on_receive_response = true; | 266 request_peer_context_.cancel_on_receive_response = true; |
258 | 267 |
259 ResourceResponseHead response_head; | 268 ResourceResponseHead response_head; |
260 ResourceRequestCompletionStatus completion_status; | 269 ResourceRequestCompletionStatus completion_status; |
261 | 270 |
262 url_loader_client_->OnReceiveResponse(response_head, nullptr); | 271 url_loader_client_->OnReceiveResponse( |
| 272 response_head, base::Optional<net::SSLInfo>(), nullptr); |
263 mojo::DataPipe data_pipe(DataPipeOptions()); | 273 mojo::DataPipe data_pipe(DataPipeOptions()); |
264 url_loader_client_->OnStartLoadingResponseBody( | 274 url_loader_client_->OnStartLoadingResponseBody( |
265 std::move(data_pipe.consumer_handle)); | 275 std::move(data_pipe.consumer_handle)); |
266 url_loader_client_->OnComplete(completion_status); | 276 url_loader_client_->OnComplete(completion_status); |
267 | 277 |
268 EXPECT_FALSE(request_peer_context_.received_response); | 278 EXPECT_FALSE(request_peer_context_.received_response); |
269 EXPECT_FALSE(request_peer_context_.complete); | 279 EXPECT_FALSE(request_peer_context_.complete); |
270 EXPECT_FALSE(request_peer_context_.cancelled); | 280 EXPECT_FALSE(request_peer_context_.cancelled); |
271 | 281 |
272 base::RunLoop().RunUntilIdle(); | 282 base::RunLoop().RunUntilIdle(); |
273 EXPECT_TRUE(request_peer_context_.received_response); | 283 EXPECT_TRUE(request_peer_context_.received_response); |
274 EXPECT_FALSE(request_peer_context_.complete); | 284 EXPECT_FALSE(request_peer_context_.complete); |
275 EXPECT_TRUE(request_peer_context_.cancelled); | 285 EXPECT_TRUE(request_peer_context_.cancelled); |
276 } | 286 } |
277 | 287 |
278 TEST_F(URLLoaderClientImplTest, CancelOnReceiveData) { | 288 TEST_F(URLLoaderClientImplTest, CancelOnReceiveData) { |
279 request_peer_context_.cancel_on_receive_data = true; | 289 request_peer_context_.cancel_on_receive_data = true; |
280 | 290 |
281 ResourceResponseHead response_head; | 291 ResourceResponseHead response_head; |
282 ResourceRequestCompletionStatus completion_status; | 292 ResourceRequestCompletionStatus completion_status; |
283 | 293 |
284 mojo::DataPipe data_pipe(DataPipeOptions()); | 294 mojo::DataPipe data_pipe(DataPipeOptions()); |
285 uint32_t size = 5; | 295 uint32_t size = 5; |
286 MojoResult result = | 296 MojoResult result = |
287 mojo::WriteDataRaw(data_pipe.producer_handle.get(), "hello", &size, | 297 mojo::WriteDataRaw(data_pipe.producer_handle.get(), "hello", &size, |
288 MOJO_WRITE_DATA_FLAG_NONE); | 298 MOJO_WRITE_DATA_FLAG_NONE); |
289 ASSERT_EQ(MOJO_RESULT_OK, result); | 299 ASSERT_EQ(MOJO_RESULT_OK, result); |
290 EXPECT_EQ(5u, size); | 300 EXPECT_EQ(5u, size); |
291 | 301 |
292 url_loader_client_->OnReceiveResponse(response_head, nullptr); | 302 url_loader_client_->OnReceiveResponse( |
| 303 response_head, base::Optional<net::SSLInfo>(), nullptr); |
293 url_loader_client_->OnStartLoadingResponseBody( | 304 url_loader_client_->OnStartLoadingResponseBody( |
294 std::move(data_pipe.consumer_handle)); | 305 std::move(data_pipe.consumer_handle)); |
295 url_loader_client_->OnComplete(completion_status); | 306 url_loader_client_->OnComplete(completion_status); |
296 | 307 |
297 EXPECT_FALSE(request_peer_context_.received_response); | 308 EXPECT_FALSE(request_peer_context_.received_response); |
298 EXPECT_EQ("", request_peer_context_.data); | 309 EXPECT_EQ("", request_peer_context_.data); |
299 EXPECT_FALSE(request_peer_context_.complete); | 310 EXPECT_FALSE(request_peer_context_.complete); |
300 EXPECT_FALSE(request_peer_context_.cancelled); | 311 EXPECT_FALSE(request_peer_context_.cancelled); |
301 | 312 |
302 base::RunLoop().RunUntilIdle(); | 313 base::RunLoop().RunUntilIdle(); |
303 EXPECT_TRUE(request_peer_context_.received_response); | 314 EXPECT_TRUE(request_peer_context_.received_response); |
304 EXPECT_EQ("hello", request_peer_context_.data); | 315 EXPECT_EQ("hello", request_peer_context_.data); |
305 EXPECT_FALSE(request_peer_context_.complete); | 316 EXPECT_FALSE(request_peer_context_.complete); |
306 EXPECT_TRUE(request_peer_context_.cancelled); | 317 EXPECT_TRUE(request_peer_context_.cancelled); |
307 } | 318 } |
308 | 319 |
309 TEST_F(URLLoaderClientImplTest, Defer) { | 320 TEST_F(URLLoaderClientImplTest, Defer) { |
310 ResourceResponseHead response_head; | 321 ResourceResponseHead response_head; |
311 ResourceRequestCompletionStatus completion_status; | 322 ResourceRequestCompletionStatus completion_status; |
312 | 323 |
313 url_loader_client_->OnReceiveResponse(response_head, nullptr); | 324 url_loader_client_->OnReceiveResponse( |
| 325 response_head, base::Optional<net::SSLInfo>(), nullptr); |
314 url_loader_client_->OnComplete(completion_status); | 326 url_loader_client_->OnComplete(completion_status); |
315 | 327 |
316 EXPECT_FALSE(request_peer_context_.received_response); | 328 EXPECT_FALSE(request_peer_context_.received_response); |
317 EXPECT_FALSE(request_peer_context_.complete); | 329 EXPECT_FALSE(request_peer_context_.complete); |
318 | 330 |
319 dispatcher_->SetDefersLoading(request_id_, true); | 331 dispatcher_->SetDefersLoading(request_id_, true); |
320 | 332 |
321 base::RunLoop().RunUntilIdle(); | 333 base::RunLoop().RunUntilIdle(); |
322 EXPECT_FALSE(request_peer_context_.received_response); | 334 EXPECT_FALSE(request_peer_context_.received_response); |
323 EXPECT_FALSE(request_peer_context_.complete); | 335 EXPECT_FALSE(request_peer_context_.complete); |
324 | 336 |
325 dispatcher_->SetDefersLoading(request_id_, false); | 337 dispatcher_->SetDefersLoading(request_id_, false); |
326 EXPECT_FALSE(request_peer_context_.received_response); | 338 EXPECT_FALSE(request_peer_context_.received_response); |
327 EXPECT_FALSE(request_peer_context_.complete); | 339 EXPECT_FALSE(request_peer_context_.complete); |
328 | 340 |
329 base::RunLoop().RunUntilIdle(); | 341 base::RunLoop().RunUntilIdle(); |
330 EXPECT_TRUE(request_peer_context_.received_response); | 342 EXPECT_TRUE(request_peer_context_.received_response); |
331 EXPECT_TRUE(request_peer_context_.complete); | 343 EXPECT_TRUE(request_peer_context_.complete); |
332 } | 344 } |
333 | 345 |
334 TEST_F(URLLoaderClientImplTest, DeferWithResponseBody) { | 346 TEST_F(URLLoaderClientImplTest, DeferWithResponseBody) { |
335 ResourceResponseHead response_head; | 347 ResourceResponseHead response_head; |
336 ResourceRequestCompletionStatus completion_status; | 348 ResourceRequestCompletionStatus completion_status; |
337 | 349 |
338 url_loader_client_->OnReceiveResponse(response_head, nullptr); | 350 url_loader_client_->OnReceiveResponse( |
| 351 response_head, base::Optional<net::SSLInfo>(), nullptr); |
339 mojo::DataPipe data_pipe(DataPipeOptions()); | 352 mojo::DataPipe data_pipe(DataPipeOptions()); |
340 uint32_t size = 5; | 353 uint32_t size = 5; |
341 MojoResult result = | 354 MojoResult result = |
342 mojo::WriteDataRaw(data_pipe.producer_handle.get(), "hello", &size, | 355 mojo::WriteDataRaw(data_pipe.producer_handle.get(), "hello", &size, |
343 MOJO_WRITE_DATA_FLAG_NONE); | 356 MOJO_WRITE_DATA_FLAG_NONE); |
344 ASSERT_EQ(MOJO_RESULT_OK, result); | 357 ASSERT_EQ(MOJO_RESULT_OK, result); |
345 EXPECT_EQ(5u, size); | 358 EXPECT_EQ(5u, size); |
346 data_pipe.producer_handle.reset(); | 359 data_pipe.producer_handle.reset(); |
347 | 360 |
348 url_loader_client_->OnStartLoadingResponseBody( | 361 url_loader_client_->OnStartLoadingResponseBody( |
(...skipping 21 matching lines...) Expand all Loading... |
370 EXPECT_TRUE(request_peer_context_.complete); | 383 EXPECT_TRUE(request_peer_context_.complete); |
371 EXPECT_EQ("hello", request_peer_context_.data); | 384 EXPECT_EQ("hello", request_peer_context_.data); |
372 } | 385 } |
373 | 386 |
374 // As "transfer size update" message is handled specially in the implementation, | 387 // As "transfer size update" message is handled specially in the implementation, |
375 // we have a separate test. | 388 // we have a separate test. |
376 TEST_F(URLLoaderClientImplTest, DeferWithTransferSizeUpdated) { | 389 TEST_F(URLLoaderClientImplTest, DeferWithTransferSizeUpdated) { |
377 ResourceResponseHead response_head; | 390 ResourceResponseHead response_head; |
378 ResourceRequestCompletionStatus completion_status; | 391 ResourceRequestCompletionStatus completion_status; |
379 | 392 |
380 url_loader_client_->OnReceiveResponse(response_head, nullptr); | 393 url_loader_client_->OnReceiveResponse( |
| 394 response_head, base::Optional<net::SSLInfo>(), nullptr); |
381 mojo::DataPipe data_pipe(DataPipeOptions()); | 395 mojo::DataPipe data_pipe(DataPipeOptions()); |
382 uint32_t size = 5; | 396 uint32_t size = 5; |
383 MojoResult result = | 397 MojoResult result = |
384 mojo::WriteDataRaw(data_pipe.producer_handle.get(), "hello", &size, | 398 mojo::WriteDataRaw(data_pipe.producer_handle.get(), "hello", &size, |
385 MOJO_WRITE_DATA_FLAG_NONE); | 399 MOJO_WRITE_DATA_FLAG_NONE); |
386 ASSERT_EQ(MOJO_RESULT_OK, result); | 400 ASSERT_EQ(MOJO_RESULT_OK, result); |
387 EXPECT_EQ(5u, size); | 401 EXPECT_EQ(5u, size); |
388 data_pipe.producer_handle.reset(); | 402 data_pipe.producer_handle.reset(); |
389 | 403 |
390 url_loader_client_->OnStartLoadingResponseBody( | 404 url_loader_client_->OnStartLoadingResponseBody( |
(...skipping 28 matching lines...) Expand all Loading... |
419 } | 433 } |
420 | 434 |
421 TEST_F(URLLoaderClientImplTest, SetDeferredDuringFlushingDeferredMessage) { | 435 TEST_F(URLLoaderClientImplTest, SetDeferredDuringFlushingDeferredMessage) { |
422 request_peer_context_.defer_on_redirect = true; | 436 request_peer_context_.defer_on_redirect = true; |
423 | 437 |
424 net::RedirectInfo redirect_info; | 438 net::RedirectInfo redirect_info; |
425 ResourceResponseHead response_head; | 439 ResourceResponseHead response_head; |
426 ResourceRequestCompletionStatus completion_status; | 440 ResourceRequestCompletionStatus completion_status; |
427 | 441 |
428 url_loader_client_->OnReceiveRedirect(redirect_info, response_head); | 442 url_loader_client_->OnReceiveRedirect(redirect_info, response_head); |
429 url_loader_client_->OnReceiveResponse(response_head, nullptr); | 443 url_loader_client_->OnReceiveResponse( |
| 444 response_head, base::Optional<net::SSLInfo>(), nullptr); |
430 mojo::DataPipe data_pipe(DataPipeOptions()); | 445 mojo::DataPipe data_pipe(DataPipeOptions()); |
431 uint32_t size = 5; | 446 uint32_t size = 5; |
432 MojoResult result = | 447 MojoResult result = |
433 mojo::WriteDataRaw(data_pipe.producer_handle.get(), "hello", &size, | 448 mojo::WriteDataRaw(data_pipe.producer_handle.get(), "hello", &size, |
434 MOJO_WRITE_DATA_FLAG_NONE); | 449 MOJO_WRITE_DATA_FLAG_NONE); |
435 ASSERT_EQ(MOJO_RESULT_OK, result); | 450 ASSERT_EQ(MOJO_RESULT_OK, result); |
436 EXPECT_EQ(5u, size); | 451 EXPECT_EQ(5u, size); |
437 data_pipe.producer_handle.reset(); | 452 data_pipe.producer_handle.reset(); |
438 | 453 |
439 url_loader_client_->OnStartLoadingResponseBody( | 454 url_loader_client_->OnStartLoadingResponseBody( |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
481 EXPECT_FALSE(request_peer_context_.cancelled); | 496 EXPECT_FALSE(request_peer_context_.cancelled); |
482 } | 497 } |
483 | 498 |
484 TEST_F(URLLoaderClientImplTest, | 499 TEST_F(URLLoaderClientImplTest, |
485 SetDeferredDuringFlushingDeferredMessageOnTransferSizeUpdated) { | 500 SetDeferredDuringFlushingDeferredMessageOnTransferSizeUpdated) { |
486 request_peer_context_.defer_on_transfer_size_updated = true; | 501 request_peer_context_.defer_on_transfer_size_updated = true; |
487 | 502 |
488 ResourceResponseHead response_head; | 503 ResourceResponseHead response_head; |
489 ResourceRequestCompletionStatus completion_status; | 504 ResourceRequestCompletionStatus completion_status; |
490 | 505 |
491 url_loader_client_->OnReceiveResponse(response_head, nullptr); | 506 url_loader_client_->OnReceiveResponse( |
| 507 response_head, base::Optional<net::SSLInfo>(), nullptr); |
492 | 508 |
493 url_loader_client_->OnTransferSizeUpdated(4); | 509 url_loader_client_->OnTransferSizeUpdated(4); |
494 url_loader_client_->OnComplete(completion_status); | 510 url_loader_client_->OnComplete(completion_status); |
495 | 511 |
496 EXPECT_FALSE(request_peer_context_.received_response); | 512 EXPECT_FALSE(request_peer_context_.received_response); |
497 EXPECT_FALSE(request_peer_context_.complete); | 513 EXPECT_FALSE(request_peer_context_.complete); |
498 EXPECT_EQ(0, request_peer_context_.total_encoded_data_length); | 514 EXPECT_EQ(0, request_peer_context_.total_encoded_data_length); |
499 | 515 |
500 dispatcher_->SetDefersLoading(request_id_, true); | 516 dispatcher_->SetDefersLoading(request_id_, true); |
501 | 517 |
(...skipping 15 matching lines...) Expand all Loading... |
517 | 533 |
518 dispatcher_->SetDefersLoading(request_id_, false); | 534 dispatcher_->SetDefersLoading(request_id_, false); |
519 base::RunLoop().RunUntilIdle(); | 535 base::RunLoop().RunUntilIdle(); |
520 EXPECT_TRUE(request_peer_context_.received_response); | 536 EXPECT_TRUE(request_peer_context_.received_response); |
521 EXPECT_TRUE(request_peer_context_.complete); | 537 EXPECT_TRUE(request_peer_context_.complete); |
522 EXPECT_EQ(4, request_peer_context_.total_encoded_data_length); | 538 EXPECT_EQ(4, request_peer_context_.total_encoded_data_length); |
523 EXPECT_FALSE(request_peer_context_.cancelled); | 539 EXPECT_FALSE(request_peer_context_.cancelled); |
524 } | 540 } |
525 | 541 |
526 } // namespace content | 542 } // namespace content |
OLD | NEW |