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

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

Issue 2118903002: scheduler: Move the Blink scheduler into Blink (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Really fixed the test failure this time Created 4 years, 4 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/web_url_loader_impl.h" 5 #include "content/child/web_url_loader_impl.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 #include <string.h> 8 #include <string.h>
9 9
10 #include <utility> 10 #include <utility>
11 #include <vector> 11 #include <vector>
12 12
13 #include "base/command_line.h" 13 #include "base/command_line.h"
14 #include "base/macros.h" 14 #include "base/macros.h"
15 #include "base/memory/ptr_util.h" 15 #include "base/memory/ptr_util.h"
16 #include "base/memory/weak_ptr.h" 16 #include "base/memory/weak_ptr.h"
17 #include "base/message_loop/message_loop.h" 17 #include "base/message_loop/message_loop.h"
18 #include "base/run_loop.h" 18 #include "base/run_loop.h"
19 #include "base/single_thread_task_runner.h" 19 #include "base/single_thread_task_runner.h"
20 #include "base/time/default_tick_clock.h" 20 #include "base/time/default_tick_clock.h"
21 #include "base/time/time.h" 21 #include "base/time/time.h"
22 #include "components/scheduler/child/scheduler_tqm_delegate_impl.h"
23 #include "components/scheduler/child/web_task_runner_impl.h"
24 #include "components/scheduler/child/worker_scheduler.h"
25 #include "content/child/request_extra_data.h" 22 #include "content/child/request_extra_data.h"
26 #include "content/child/request_info.h" 23 #include "content/child/request_info.h"
27 #include "content/child/resource_dispatcher.h" 24 #include "content/child/resource_dispatcher.h"
28 #include "content/child/sync_load_response.h" 25 #include "content/child/sync_load_response.h"
29 #include "content/public/child/fixed_received_data.h" 26 #include "content/public/child/fixed_received_data.h"
30 #include "content/public/child/request_peer.h" 27 #include "content/public/child/request_peer.h"
31 #include "content/public/common/content_switches.h" 28 #include "content/public/common/content_switches.h"
32 #include "content/public/common/resource_response_info.h" 29 #include "content/public/common/resource_response_info.h"
33 #include "net/base/host_port_pair.h" 30 #include "net/base/host_port_pair.h"
34 #include "net/base/net_errors.h" 31 #include "net/base/net_errors.h"
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
112 bool defers_loading_; 109 bool defers_loading_;
113 GURL url_; 110 GURL url_;
114 GURL stream_url_; 111 GURL stream_url_;
115 SyncLoadResponse sync_load_response_; 112 SyncLoadResponse sync_load_response_;
116 113
117 DISALLOW_COPY_AND_ASSIGN(TestResourceDispatcher); 114 DISALLOW_COPY_AND_ASSIGN(TestResourceDispatcher);
118 }; 115 };
119 116
120 class TestWebURLLoaderClient : public blink::WebURLLoaderClient { 117 class TestWebURLLoaderClient : public blink::WebURLLoaderClient {
121 public: 118 public:
122 TestWebURLLoaderClient(ResourceDispatcher* dispatcher, 119 TestWebURLLoaderClient(ResourceDispatcher* dispatcher)
123 scoped_refptr<scheduler::TaskQueue> task_runner) 120 : loader_(new WebURLLoaderImpl(dispatcher)),
124 : loader_(new WebURLLoaderImpl(
125 dispatcher,
126 base::WrapUnique(new scheduler::WebTaskRunnerImpl(task_runner)))),
127 delete_on_receive_redirect_(false), 121 delete_on_receive_redirect_(false),
128 delete_on_receive_response_(false), 122 delete_on_receive_response_(false),
129 delete_on_receive_data_(false), 123 delete_on_receive_data_(false),
130 delete_on_finish_(false), 124 delete_on_finish_(false),
131 delete_on_fail_(false), 125 delete_on_fail_(false),
132 did_receive_redirect_(false), 126 did_receive_redirect_(false),
133 did_receive_response_(false), 127 did_receive_response_(false),
134 check_redirect_request_priority_(false), 128 check_redirect_request_priority_(false),
135 did_finish_(false) {} 129 did_finish_(false) {}
136 130
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
269 std::string received_data_; 263 std::string received_data_;
270 bool did_finish_; 264 bool did_finish_;
271 blink::WebURLError error_; 265 blink::WebURLError error_;
272 blink::WebURLResponse response_; 266 blink::WebURLResponse response_;
273 267
274 DISALLOW_COPY_AND_ASSIGN(TestWebURLLoaderClient); 268 DISALLOW_COPY_AND_ASSIGN(TestWebURLLoaderClient);
275 }; 269 };
276 270
277 class WebURLLoaderImplTest : public testing::Test { 271 class WebURLLoaderImplTest : public testing::Test {
278 public: 272 public:
279 explicit WebURLLoaderImplTest() 273 WebURLLoaderImplTest() {
280 : worker_scheduler_(scheduler::WorkerScheduler::Create( 274 client_.reset(new TestWebURLLoaderClient(&dispatcher_));
281 scheduler::SchedulerTqmDelegateImpl::Create(
282 &message_loop_,
283 base::WrapUnique(new base::DefaultTickClock())))) {
284 worker_scheduler_->Init();
285 client_.reset(new TestWebURLLoaderClient(
286 &dispatcher_, worker_scheduler_->DefaultTaskRunner()));
287 } 275 }
288 276
289 ~WebURLLoaderImplTest() override {} 277 ~WebURLLoaderImplTest() override {}
290 278
291 void DoStartAsyncRequest() { 279 void DoStartAsyncRequest() {
292 blink::WebURLRequest request; 280 blink::WebURLRequest request;
293 request.setURL(GURL(kTestURL)); 281 request.setURL(GURL(kTestURL));
294 client()->loader()->loadAsynchronously(request, client()); 282 client()->loader()->loadAsynchronously(request, client());
295 ASSERT_TRUE(peer()); 283 ASSERT_TRUE(peer());
296 } 284 }
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
366 EXPECT_NE(kFtpDirListing, client()->received_data()); 354 EXPECT_NE(kFtpDirListing, client()->received_data());
367 } 355 }
368 356
369 TestWebURLLoaderClient* client() { return client_.get(); } 357 TestWebURLLoaderClient* client() { return client_.get(); }
370 TestResourceDispatcher* dispatcher() { return &dispatcher_; } 358 TestResourceDispatcher* dispatcher() { return &dispatcher_; }
371 RequestPeer* peer() { return dispatcher()->peer(); } 359 RequestPeer* peer() { return dispatcher()->peer(); }
372 base::MessageLoop* message_loop() { return &message_loop_; } 360 base::MessageLoop* message_loop() { return &message_loop_; }
373 361
374 private: 362 private:
375 base::MessageLoop message_loop_; 363 base::MessageLoop message_loop_;
376 // WorkerScheduler is needed because WebURLLoaderImpl needs a
377 // scheduler::TaskQueue.
378 std::unique_ptr<scheduler::WorkerScheduler> worker_scheduler_;
379 TestResourceDispatcher dispatcher_; 364 TestResourceDispatcher dispatcher_;
380 std::unique_ptr<TestWebURLLoaderClient> client_; 365 std::unique_ptr<TestWebURLLoaderClient> client_;
381 }; 366 };
382 367
383 TEST_F(WebURLLoaderImplTest, Success) { 368 TEST_F(WebURLLoaderImplTest, Success) {
384 DoStartAsyncRequest(); 369 DoStartAsyncRequest();
385 DoReceiveResponse(); 370 DoReceiveResponse();
386 DoReceiveData(); 371 DoReceiveData();
387 DoCompleteRequest(); 372 DoCompleteRequest();
388 EXPECT_FALSE(dispatcher()->canceled()); 373 EXPECT_FALSE(dispatcher()->canceled());
(...skipping 319 matching lines...) Expand 10 before | Expand all | Expand 10 after
708 encoded_data_length); 693 encoded_data_length);
709 694
710 EXPECT_EQ(kEncodedBodyLength, response.encodedBodyLength()); 695 EXPECT_EQ(kEncodedBodyLength, response.encodedBodyLength());
711 EXPECT_EQ(kEncodedDataLength, encoded_data_length); 696 EXPECT_EQ(kEncodedDataLength, encoded_data_length);
712 int expected_decoded_body_length = strlen(kBodyData); 697 int expected_decoded_body_length = strlen(kBodyData);
713 EXPECT_EQ(expected_decoded_body_length, response.decodedBodyLength()); 698 EXPECT_EQ(expected_decoded_body_length, response.decodedBodyLength());
714 } 699 }
715 700
716 } // namespace 701 } // namespace
717 } // namespace content 702 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698