| 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 "base/bind.h" | 5 #include "base/bind.h" |
| 6 #include "base/run_loop.h" | 6 #include "base/run_loop.h" |
| 7 #include "components/web_restrictions/browser/mock_web_restrictions_client.h" | 7 #include "components/web_restrictions/browser/mock_web_restrictions_client.h" |
| 8 #include "components/web_restrictions/browser/web_restrictions_client.h" | 8 #include "components/web_restrictions/browser/web_restrictions_client.h" |
| 9 #include "components/web_restrictions/browser/web_restrictions_resource_throttle
.h" | 9 #include "components/web_restrictions/browser/web_restrictions_resource_throttle
.h" |
| 10 #include "content/public/browser/resource_controller.h" | 10 #include "content/public/browser/resource_controller.h" |
| (...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 116 // first to ensure that everything is initialized. | 116 // first to ensure that everything is initialized. |
| 117 StartProvider(); | 117 StartProvider(); |
| 118 // Now the real test. | 118 // Now the real test. |
| 119 WebRestrictionsResourceThrottle throttle( | 119 WebRestrictionsResourceThrottle throttle( |
| 120 &provider_, GURL("http://example.com/sub"), false); | 120 &provider_, GURL("http://example.com/sub"), false); |
| 121 base::RunLoop test_run_loop; | 121 base::RunLoop test_run_loop; |
| 122 TestResourceController test_controller(test_run_loop.QuitClosure()); | 122 TestResourceController test_controller(test_run_loop.QuitClosure()); |
| 123 throttle.set_controller_for_testing(&test_controller); | 123 throttle.set_controller_for_testing(&test_controller); |
| 124 bool defer; | 124 bool defer; |
| 125 throttle.WillStartRequest(&defer); | 125 throttle.WillStartRequest(&defer); |
| 126 EXPECT_FALSE(defer); | 126 ASSERT_FALSE(defer); |
| 127 } | 127 } |
| 128 | 128 |
| 129 TEST_F(WebRestrictionsResourceThrottleTest, WillRedirectRequest_KnownUrl) { | 129 TEST_F(WebRestrictionsResourceThrottleTest, WillRedirectRequest_KnownUrl) { |
| 130 // Set up a cached url. | 130 // Set up a cached url. |
| 131 StartProvider(); | 131 StartProvider(); |
| 132 // Using the same URL should not be deferred | 132 // Using the same URL should not be deferred |
| 133 net::RedirectInfo redirect; | 133 net::RedirectInfo redirect; |
| 134 redirect.new_url = GURL("http://example.com"); | 134 redirect.new_url = GURL("http://example.com"); |
| 135 bool defer; | 135 bool defer; |
| 136 throttle_.WillRedirectRequest(redirect, &defer); | 136 throttle_.WillRedirectRequest(redirect, &defer); |
| 137 EXPECT_FALSE(defer); | 137 ASSERT_FALSE(defer); |
| 138 } | 138 } |
| 139 | 139 |
| 140 TEST_F(WebRestrictionsResourceThrottleTest, WillRedirectRequest_NewUrl) { | 140 TEST_F(WebRestrictionsResourceThrottleTest, WillRedirectRequest_NewUrl) { |
| 141 // Set up a cached url. | 141 // Set up a cached url. |
| 142 StartProvider(); | 142 StartProvider(); |
| 143 // Using a different URL should be deferred | 143 // Using a different URL should be deferred |
| 144 net::RedirectInfo redirect; | 144 net::RedirectInfo redirect; |
| 145 redirect.new_url = GURL("http://example.com/2"); | 145 redirect.new_url = GURL("http://example.com/2"); |
| 146 base::RunLoop test_run_loop; | 146 base::RunLoop test_run_loop; |
| 147 TestResourceController test_controller(test_run_loop.QuitClosure()); | 147 TestResourceController test_controller(test_run_loop.QuitClosure()); |
| 148 throttle_.set_controller_for_testing(&test_controller); | 148 throttle_.set_controller_for_testing(&test_controller); |
| 149 bool defer; | 149 bool defer; |
| 150 throttle_.WillRedirectRequest(redirect, &defer); | 150 throttle_.WillRedirectRequest(redirect, &defer); |
| 151 EXPECT_TRUE(defer); | 151 ASSERT_TRUE(defer); |
| 152 // If we don't wait for the callback it may happen after the exit, which | 152 // If we don't wait for the callback it may happen after the exit, which |
| 153 // results in accesses the redirect_url after the stack frame is freed. | 153 // results in accesses the redirect_url after the stack frame is freed. |
| 154 test_run_loop.Run(); | 154 test_run_loop.Run(); |
| 155 } | 155 } |
| 156 | 156 |
| 157 } // namespace web_restrictions | 157 } // namespace web_restrictions |
| OLD | NEW |