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

Side by Side Diff: content/browser/frame_host/navigation_handle_impl_unittest.cc

Issue 2161073002: Adds RequestContextType information to the NavigationHandle. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase. Created 4 years, 5 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "base/macros.h" 5 #include "base/macros.h"
6 #include "content/browser/frame_host/navigation_handle_impl.h" 6 #include "content/browser/frame_host/navigation_handle_impl.h"
7 #include "content/public/browser/navigation_throttle.h" 7 #include "content/public/browser/navigation_throttle.h"
8 #include "content/public/common/request_context_type.h"
8 #include "content/test/test_render_frame_host.h" 9 #include "content/test/test_render_frame_host.h"
9 10
10 namespace content { 11 namespace content {
11 12
12 // Test version of a NavigationThrottle. It will always return the current 13 // Test version of a NavigationThrottle. It will always return the current
13 // NavigationThrottle::ThrottleCheckResult |result_|, It also monitors the 14 // NavigationThrottle::ThrottleCheckResult |result_|, It also monitors the
14 // number of times WillStartRequest, WillRedirectRequest, and 15 // number of times WillStartRequest, WillRedirectRequest, and
15 // WillProcessResponse were called. 16 // WillProcessResponse were called.
16 class TestNavigationThrottle : public NavigationThrottle { 17 class TestNavigationThrottle : public NavigationThrottle {
17 public: 18 public:
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
96 // returns DEFER, |callback_result_| will be set to the actual result of 97 // returns DEFER, |callback_result_| will be set to the actual result of
97 // the throttle checks when they are finished. 98 // the throttle checks when they are finished.
98 void SimulateWillStartRequest() { 99 void SimulateWillStartRequest() {
99 was_callback_called_ = false; 100 was_callback_called_ = false;
100 callback_result_ = NavigationThrottle::DEFER; 101 callback_result_ = NavigationThrottle::DEFER;
101 102
102 // It's safe to use base::Unretained since the NavigationHandle is owned by 103 // It's safe to use base::Unretained since the NavigationHandle is owned by
103 // the NavigationHandleImplTest. 104 // the NavigationHandleImplTest.
104 test_handle_->WillStartRequest( 105 test_handle_->WillStartRequest(
105 "GET", nullptr, Referrer(), false, ui::PAGE_TRANSITION_LINK, false, 106 "GET", nullptr, Referrer(), false, ui::PAGE_TRANSITION_LINK, false,
107 REQUEST_CONTEXT_TYPE_LOCATION,
106 base::Bind(&NavigationHandleImplTest::UpdateThrottleCheckResult, 108 base::Bind(&NavigationHandleImplTest::UpdateThrottleCheckResult,
107 base::Unretained(this))); 109 base::Unretained(this)));
108 } 110 }
109 111
110 // Helper function to call WillRedirectRequest on |handle|. If this function 112 // Helper function to call WillRedirectRequest on |handle|. If this function
111 // returns DEFER, |callback_result_| will be set to the actual result of the 113 // returns DEFER, |callback_result_| will be set to the actual result of the
112 // throttle checks when they are finished. 114 // throttle checks when they are finished.
113 // TODO(clamy): this should also simulate that WillStartRequest was called if 115 // TODO(clamy): this should also simulate that WillStartRequest was called if
114 // it has not been called before. 116 // it has not been called before.
115 void SimulateWillRedirectRequest() { 117 void SimulateWillRedirectRequest() {
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
171 NavigationThrottle::ThrottleCheckResult result) { 173 NavigationThrottle::ThrottleCheckResult result) {
172 callback_result_ = result; 174 callback_result_ = result;
173 was_callback_called_ = true; 175 was_callback_called_ = true;
174 } 176 }
175 177
176 std::unique_ptr<NavigationHandleImpl> test_handle_; 178 std::unique_ptr<NavigationHandleImpl> test_handle_;
177 bool was_callback_called_; 179 bool was_callback_called_;
178 NavigationThrottle::ThrottleCheckResult callback_result_; 180 NavigationThrottle::ThrottleCheckResult callback_result_;
179 }; 181 };
180 182
183 // Checks that the fetch_request_context_type is properly set.
184 // Note: can be extended to cover more internal members.
185 TEST_F(NavigationHandleImplTest, SimpleDataChecks) {
186 EXPECT_EQ(REQUEST_CONTEXT_TYPE_UNSPECIFIED,
187 test_handle()->fetch_request_context_type());
188
189 SimulateWillStartRequest();
190 EXPECT_EQ(REQUEST_CONTEXT_TYPE_LOCATION,
191 test_handle()->fetch_request_context_type());
192
193 test_handle()->Resume();
194 SimulateWillRedirectRequest();
195 EXPECT_EQ(REQUEST_CONTEXT_TYPE_LOCATION,
196 test_handle()->fetch_request_context_type());
197
198 test_handle()->Resume();
199 SimulateWillProcessResponse();
200 EXPECT_EQ(REQUEST_CONTEXT_TYPE_LOCATION,
201 test_handle()->fetch_request_context_type());
202 }
203
181 // Checks that a deferred navigation can be properly resumed. 204 // Checks that a deferred navigation can be properly resumed.
182 TEST_F(NavigationHandleImplTest, ResumeDeferred) { 205 TEST_F(NavigationHandleImplTest, ResumeDeferred) {
183 TestNavigationThrottle* test_throttle = 206 TestNavigationThrottle* test_throttle =
184 CreateTestNavigationThrottle(NavigationThrottle::DEFER); 207 CreateTestNavigationThrottle(NavigationThrottle::DEFER);
185 EXPECT_FALSE(IsDeferringStart()); 208 EXPECT_FALSE(IsDeferringStart());
186 EXPECT_FALSE(IsDeferringRedirect()); 209 EXPECT_FALSE(IsDeferringRedirect());
187 EXPECT_FALSE(IsDeferringResponse()); 210 EXPECT_FALSE(IsDeferringResponse());
188 EXPECT_EQ(0, test_throttle->will_start_calls()); 211 EXPECT_EQ(0, test_throttle->will_start_calls());
189 EXPECT_EQ(0, test_throttle->will_redirect_calls()); 212 EXPECT_EQ(0, test_throttle->will_redirect_calls());
190 EXPECT_EQ(0, test_throttle->will_process_response_calls()); 213 EXPECT_EQ(0, test_throttle->will_process_response_calls());
(...skipping 448 matching lines...) Expand 10 before | Expand all | Expand 10 after
639 EXPECT_EQ(NavigationThrottle::CANCEL_AND_IGNORE, callback_result()); 662 EXPECT_EQ(NavigationThrottle::CANCEL_AND_IGNORE, callback_result());
640 EXPECT_EQ(0, cancel_throttle->will_start_calls()); 663 EXPECT_EQ(0, cancel_throttle->will_start_calls());
641 EXPECT_EQ(0, cancel_throttle->will_redirect_calls()); 664 EXPECT_EQ(0, cancel_throttle->will_redirect_calls());
642 EXPECT_EQ(1, cancel_throttle->will_process_response_calls()); 665 EXPECT_EQ(1, cancel_throttle->will_process_response_calls());
643 EXPECT_EQ(0, proceed_throttle->will_start_calls()); 666 EXPECT_EQ(0, proceed_throttle->will_start_calls());
644 EXPECT_EQ(0, proceed_throttle->will_redirect_calls()); 667 EXPECT_EQ(0, proceed_throttle->will_redirect_calls());
645 EXPECT_EQ(0, proceed_throttle->will_process_response_calls()); 668 EXPECT_EQ(0, proceed_throttle->will_process_response_calls());
646 } 669 }
647 670
648 } // namespace content 671 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698