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

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

Issue 1863573003: PlzNavigate: make all ResourceDispatcherHostTests pass (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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 <utility> 5 #include <utility>
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/macros.h" 8 #include "base/macros.h"
9 #include "base/memory/ref_counted.h" 9 #include "base/memory/ref_counted.h"
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
11 #include "base/run_loop.h"
12 #include "content/browser/frame_host/navigation_request_info.h" 11 #include "content/browser/frame_host/navigation_request_info.h"
13 #include "content/browser/loader/navigation_url_loader_delegate.h"
14 #include "content/browser/loader/navigation_url_loader_impl.h" 12 #include "content/browser/loader/navigation_url_loader_impl.h"
15 #include "content/browser/loader/resource_dispatcher_host_impl.h" 13 #include "content/browser/loader/resource_dispatcher_host_impl.h"
16 #include "content/browser/streams/stream.h" 14 #include "content/browser/streams/stream.h"
17 #include "content/browser/streams/stream_context.h" 15 #include "content/browser/streams/stream_context.h"
18 #include "content/browser/streams/stream_registry.h" 16 #include "content/browser/streams/stream_registry.h"
19 #include "content/browser/streams/stream_url_request_job.h" 17 #include "content/browser/streams/stream_url_request_job.h"
20 #include "content/common/navigation_params.h" 18 #include "content/common/navigation_params.h"
21 #include "content/public/browser/browser_context.h" 19 #include "content/public/browser/browser_context.h"
22 #include "content/public/browser/resource_context.h" 20 #include "content/public/browser/resource_context.h"
23 #include "content/public/browser/resource_dispatcher_host_delegate.h" 21 #include "content/public/browser/resource_dispatcher_host_delegate.h"
24 #include "content/public/browser/stream_handle.h" 22 #include "content/public/browser/stream_handle.h"
25 #include "content/public/common/content_switches.h" 23 #include "content/public/common/content_switches.h"
26 #include "content/public/common/resource_response.h" 24 #include "content/public/common/resource_response.h"
27 #include "content/public/test/test_browser_context.h" 25 #include "content/public/test/test_browser_context.h"
28 #include "content/public/test/test_browser_thread_bundle.h" 26 #include "content/public/test/test_browser_thread_bundle.h"
27 #include "content/test/test_navigation_url_loader_delegate.h"
29 #include "net/base/load_flags.h" 28 #include "net/base/load_flags.h"
30 #include "net/base/net_errors.h" 29 #include "net/base/net_errors.h"
31 #include "net/http/http_response_headers.h" 30 #include "net/http/http_response_headers.h"
32 #include "net/url_request/redirect_info.h" 31 #include "net/url_request/redirect_info.h"
33 #include "net/url_request/url_request.h" 32 #include "net/url_request/url_request.h"
34 #include "net/url_request/url_request_context.h" 33 #include "net/url_request/url_request_context.h"
35 #include "net/url_request/url_request_job_factory_impl.h" 34 #include "net/url_request/url_request_job_factory_impl.h"
36 #include "net/url_request/url_request_test_job.h" 35 #include "net/url_request/url_request_test_job.h"
37 #include "net/url_request/url_request_test_util.h" 36 #include "net/url_request/url_request_test_util.h"
38 #include "testing/gtest/include/gtest/gtest.h" 37 #include "testing/gtest/include/gtest/gtest.h"
(...skipping 17 matching lines...) Expand all
56 return new StreamURLRequestJob(request, network_delegate, stream); 55 return new StreamURLRequestJob(request, network_delegate, stream);
57 return nullptr; 56 return nullptr;
58 } 57 }
59 58
60 private: 59 private:
61 StreamRegistry* registry_; 60 StreamRegistry* registry_;
62 61
63 DISALLOW_COPY_AND_ASSIGN(StreamProtocolHandler); 62 DISALLOW_COPY_AND_ASSIGN(StreamProtocolHandler);
64 }; 63 };
65 64
66 class TestNavigationURLLoaderDelegate : public NavigationURLLoaderDelegate {
67 public:
68 TestNavigationURLLoaderDelegate()
69 : net_error_(0), on_request_handled_counter_(0) {}
70
71 const net::RedirectInfo& redirect_info() const { return redirect_info_; }
72 ResourceResponse* redirect_response() const {
73 return redirect_response_.get();
74 }
75 ResourceResponse* response() const { return response_.get(); }
76 StreamHandle* body() const { return body_.get(); }
77 int net_error() const { return net_error_; }
78 int on_request_handled_counter() const { return on_request_handled_counter_; }
79
80 void WaitForRequestRedirected() {
81 request_redirected_.reset(new base::RunLoop);
82 request_redirected_->Run();
83 request_redirected_.reset();
84 }
85
86 void WaitForResponseStarted() {
87 response_started_.reset(new base::RunLoop);
88 response_started_->Run();
89 response_started_.reset();
90 }
91
92 void WaitForRequestFailed() {
93 request_failed_.reset(new base::RunLoop);
94 request_failed_->Run();
95 request_failed_.reset();
96 }
97
98 void ReleaseBody() {
99 body_.reset();
100 }
101
102 // NavigationURLLoaderDelegate implementation.
103 void OnRequestRedirected(
104 const net::RedirectInfo& redirect_info,
105 const scoped_refptr<ResourceResponse>& response) override {
106 redirect_info_ = redirect_info;
107 redirect_response_ = response;
108 ASSERT_TRUE(request_redirected_);
109 request_redirected_->Quit();
110 }
111
112 void OnResponseStarted(const scoped_refptr<ResourceResponse>& response,
113 scoped_ptr<StreamHandle> body) override {
114 response_ = response;
115 body_ = std::move(body);
116 ASSERT_TRUE(response_started_);
117 response_started_->Quit();
118 }
119
120 void OnRequestFailed(bool in_cache, int net_error) override {
121 net_error_ = net_error;
122 ASSERT_TRUE(request_failed_);
123 request_failed_->Quit();
124 }
125
126 void OnRequestStarted(base::TimeTicks timestamp) override {
127 ASSERT_FALSE(timestamp.is_null());
128 ++on_request_handled_counter_;
129 }
130
131 private:
132 net::RedirectInfo redirect_info_;
133 scoped_refptr<ResourceResponse> redirect_response_;
134 scoped_refptr<ResourceResponse> response_;
135 scoped_ptr<StreamHandle> body_;
136 int net_error_;
137 int on_request_handled_counter_;
138
139 scoped_ptr<base::RunLoop> request_redirected_;
140 scoped_ptr<base::RunLoop> response_started_;
141 scoped_ptr<base::RunLoop> request_failed_;
142 };
143
144 class RequestBlockingResourceDispatcherHostDelegate 65 class RequestBlockingResourceDispatcherHostDelegate
145 : public ResourceDispatcherHostDelegate { 66 : public ResourceDispatcherHostDelegate {
146 public: 67 public:
147 // ResourceDispatcherHostDelegate implementation: 68 // ResourceDispatcherHostDelegate implementation:
148 bool ShouldBeginRequest(const std::string& method, 69 bool ShouldBeginRequest(const std::string& method,
149 const GURL& url, 70 const GURL& url,
150 ResourceType resource_type, 71 ResourceType resource_type,
151 ResourceContext* resource_context) override { 72 ResourceContext* resource_context) override {
152 return false; 73 return false;
153 } 74 }
(...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after
409 330
410 // Release the body. 331 // Release the body.
411 delegate.ReleaseBody(); 332 delegate.ReleaseBody();
412 base::RunLoop().RunUntilIdle(); 333 base::RunLoop().RunUntilIdle();
413 334
414 // Verify that URLRequestTestJob no longer has anything paused. 335 // Verify that URLRequestTestJob no longer has anything paused.
415 EXPECT_FALSE(net::URLRequestTestJob::ProcessOnePendingMessage()); 336 EXPECT_FALSE(net::URLRequestTestJob::ProcessOnePendingMessage());
416 } 337 }
417 338
418 } // namespace content 339 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698