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

Side by Side Diff: chrome/browser/extensions/extension_protocols_unittest.cc

Issue 51953002: [Net] Add a priority parameter to URLRequest's constructor (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix compile error from rebase Created 7 years, 1 month 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 <string> 5 #include <string>
6 6
7 #include "base/file_util.h" 7 #include "base/file_util.h"
8 #include "base/message_loop/message_loop.h" 8 #include "base/message_loop/message_loop.h"
9 #include "base/strings/string_number_conversions.h" 9 #include "base/strings/string_number_conversions.h"
10 #include "base/strings/string_util.h" 10 #include "base/strings/string_util.h"
11 #include "base/values.h" 11 #include "base/values.h"
12 #include "chrome/browser/extensions/extension_info_map.h" 12 #include "chrome/browser/extensions/extension_info_map.h"
13 #include "chrome/browser/extensions/extension_protocols.h" 13 #include "chrome/browser/extensions/extension_protocols.h"
14 #include "chrome/common/chrome_paths.h" 14 #include "chrome/common/chrome_paths.h"
15 #include "chrome/common/extensions/extension.h" 15 #include "chrome/common/extensions/extension.h"
16 #include "chrome/common/url_constants.h" 16 #include "chrome/common/url_constants.h"
17 #include "content/public/browser/resource_request_info.h" 17 #include "content/public/browser/resource_request_info.h"
18 #include "content/public/test/mock_resource_context.h" 18 #include "content/public/test/mock_resource_context.h"
19 #include "content/public/test/test_browser_thread_bundle.h" 19 #include "content/public/test/test_browser_thread_bundle.h"
20 #include "extensions/common/constants.h" 20 #include "extensions/common/constants.h"
21 #include "net/base/request_priority.h"
21 #include "net/url_request/url_request.h" 22 #include "net/url_request/url_request.h"
22 #include "net/url_request/url_request_job_factory_impl.h" 23 #include "net/url_request/url_request_job_factory_impl.h"
23 #include "net/url_request/url_request_status.h" 24 #include "net/url_request/url_request_status.h"
24 #include "net/url_request/url_request_test_util.h" 25 #include "net/url_request/url_request_test_util.h"
25 #include "testing/gtest/include/gtest/gtest.h" 26 #include "testing/gtest/include/gtest/gtest.h"
26 27
27 namespace extensions { 28 namespace extensions {
28 29
29 scoped_refptr<Extension> CreateTestExtension(const std::string& name, 30 scoped_refptr<Extension> CreateTestExtension(const std::string& name,
30 bool incognito_split_mode) { 31 bool incognito_split_mode) {
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
163 CreateTestExtension(cases[i].name, cases[i].incognito_split_mode); 164 CreateTestExtension(cases[i].name, cases[i].incognito_split_mode);
164 extension_info_map_->AddExtension( 165 extension_info_map_->AddExtension(
165 extension.get(), base::Time::Now(), cases[i].incognito_enabled); 166 extension.get(), base::Time::Now(), cases[i].incognito_enabled);
166 167
167 // First test a main frame request. 168 // First test a main frame request.
168 { 169 {
169 // It doesn't matter that the resource doesn't exist. If the resource 170 // It doesn't matter that the resource doesn't exist. If the resource
170 // is blocked, we should see ADDRESS_UNREACHABLE. Otherwise, the request 171 // is blocked, we should see ADDRESS_UNREACHABLE. Otherwise, the request
171 // should just fail because the file doesn't exist. 172 // should just fail because the file doesn't exist.
172 net::URLRequest request(extension->GetResourceURL("404.html"), 173 net::URLRequest request(extension->GetResourceURL("404.html"),
174 net::DEFAULT_PRIORITY,
173 &test_delegate_, 175 &test_delegate_,
174 resource_context_.GetRequestContext()); 176 resource_context_.GetRequestContext(),
177 NULL);
mmenke 2013/10/30 15:27:11 I don't think we should depend on the resource con
akalin 2013/10/30 21:44:37 From our chat, making the 'deprecated' constructor
175 StartRequest(&request, ResourceType::MAIN_FRAME); 178 StartRequest(&request, ResourceType::MAIN_FRAME);
176 EXPECT_EQ(net::URLRequestStatus::FAILED, request.status().status()); 179 EXPECT_EQ(net::URLRequestStatus::FAILED, request.status().status());
177 180
178 if (cases[i].should_allow_main_frame_load) { 181 if (cases[i].should_allow_main_frame_load) {
179 EXPECT_EQ(net::ERR_FILE_NOT_FOUND, request.status().error()) << 182 EXPECT_EQ(net::ERR_FILE_NOT_FOUND, request.status().error()) <<
180 cases[i].name; 183 cases[i].name;
181 } else { 184 } else {
182 EXPECT_EQ(net::ERR_ADDRESS_UNREACHABLE, request.status().error()) << 185 EXPECT_EQ(net::ERR_ADDRESS_UNREACHABLE, request.status().error()) <<
183 cases[i].name; 186 cases[i].name;
184 } 187 }
185 } 188 }
186 189
187 // Now do a subframe request. 190 // Now do a subframe request.
188 { 191 {
189 net::URLRequest request(extension->GetResourceURL("404.html"), 192 net::URLRequest request(extension->GetResourceURL("404.html"),
193 net::DEFAULT_PRIORITY,
190 &test_delegate_, 194 &test_delegate_,
191 resource_context_.GetRequestContext()); 195 resource_context_.GetRequestContext(),
196 NULL);
192 StartRequest(&request, ResourceType::SUB_FRAME); 197 StartRequest(&request, ResourceType::SUB_FRAME);
193 EXPECT_EQ(net::URLRequestStatus::FAILED, request.status().status()); 198 EXPECT_EQ(net::URLRequestStatus::FAILED, request.status().status());
194 199
195 if (cases[i].should_allow_sub_frame_load) { 200 if (cases[i].should_allow_sub_frame_load) {
196 EXPECT_EQ(net::ERR_FILE_NOT_FOUND, request.status().error()) << 201 EXPECT_EQ(net::ERR_FILE_NOT_FOUND, request.status().error()) <<
197 cases[i].name; 202 cases[i].name;
198 } else { 203 } else {
199 EXPECT_EQ(net::ERR_ADDRESS_UNREACHABLE, request.status().error()) << 204 EXPECT_EQ(net::ERR_ADDRESS_UNREACHABLE, request.status().error()) <<
200 cases[i].name; 205 cases[i].name;
201 } 206 }
(...skipping 16 matching lines...) Expand all
218 TEST_F(ExtensionProtocolTest, ComponentResourceRequest) { 223 TEST_F(ExtensionProtocolTest, ComponentResourceRequest) {
219 // Register a non-incognito extension protocol handler. 224 // Register a non-incognito extension protocol handler.
220 SetProtocolHandler(false); 225 SetProtocolHandler(false);
221 226
222 scoped_refptr<Extension> extension = CreateWebStoreExtension(); 227 scoped_refptr<Extension> extension = CreateWebStoreExtension();
223 extension_info_map_->AddExtension(extension.get(), base::Time::Now(), false); 228 extension_info_map_->AddExtension(extension.get(), base::Time::Now(), false);
224 229
225 // First test it with the extension enabled. 230 // First test it with the extension enabled.
226 { 231 {
227 net::URLRequest request(extension->GetResourceURL("webstore_icon_16.png"), 232 net::URLRequest request(extension->GetResourceURL("webstore_icon_16.png"),
233 net::DEFAULT_PRIORITY,
228 &test_delegate_, 234 &test_delegate_,
229 resource_context_.GetRequestContext()); 235 resource_context_.GetRequestContext(),
236 NULL);
230 StartRequest(&request, ResourceType::MEDIA); 237 StartRequest(&request, ResourceType::MEDIA);
231 EXPECT_EQ(net::URLRequestStatus::SUCCESS, request.status().status()); 238 EXPECT_EQ(net::URLRequestStatus::SUCCESS, request.status().status());
232 CheckForContentLengthHeader(&request); 239 CheckForContentLengthHeader(&request);
233 } 240 }
234 241
235 // And then test it with the extension disabled. 242 // And then test it with the extension disabled.
236 extension_info_map_->RemoveExtension(extension->id(), 243 extension_info_map_->RemoveExtension(extension->id(),
237 UnloadedExtensionInfo::REASON_DISABLE); 244 UnloadedExtensionInfo::REASON_DISABLE);
238 { 245 {
239 net::URLRequest request(extension->GetResourceURL("webstore_icon_16.png"), 246 net::URLRequest request(extension->GetResourceURL("webstore_icon_16.png"),
247 net::DEFAULT_PRIORITY,
240 &test_delegate_, 248 &test_delegate_,
241 resource_context_.GetRequestContext()); 249 resource_context_.GetRequestContext(),
250 NULL);
242 StartRequest(&request, ResourceType::MEDIA); 251 StartRequest(&request, ResourceType::MEDIA);
243 EXPECT_EQ(net::URLRequestStatus::SUCCESS, request.status().status()); 252 EXPECT_EQ(net::URLRequestStatus::SUCCESS, request.status().status());
244 CheckForContentLengthHeader(&request); 253 CheckForContentLengthHeader(&request);
245 } 254 }
246 } 255 }
247 256
248 // Tests that a URL request for resource from an extension returns a few 257 // Tests that a URL request for resource from an extension returns a few
249 // expected response headers. 258 // expected response headers.
250 TEST_F(ExtensionProtocolTest, ResourceRequestResponseHeaders) { 259 TEST_F(ExtensionProtocolTest, ResourceRequestResponseHeaders) {
251 // Register a non-incognito extension protocol handler. 260 // Register a non-incognito extension protocol handler.
252 SetProtocolHandler(false); 261 SetProtocolHandler(false);
253 262
254 scoped_refptr<Extension> extension = CreateTestResponseHeaderExtension(); 263 scoped_refptr<Extension> extension = CreateTestResponseHeaderExtension();
255 extension_info_map_->AddExtension(extension.get(), base::Time::Now(), false); 264 extension_info_map_->AddExtension(extension.get(), base::Time::Now(), false);
256 265
257 { 266 {
258 net::URLRequest request(extension->GetResourceURL("test.dat"), 267 net::URLRequest request(extension->GetResourceURL("test.dat"),
268 net::DEFAULT_PRIORITY,
259 &test_delegate_, 269 &test_delegate_,
260 resource_context_.GetRequestContext()); 270 resource_context_.GetRequestContext(),
271 NULL);
261 StartRequest(&request, ResourceType::MEDIA); 272 StartRequest(&request, ResourceType::MEDIA);
262 EXPECT_EQ(net::URLRequestStatus::SUCCESS, request.status().status()); 273 EXPECT_EQ(net::URLRequestStatus::SUCCESS, request.status().status());
263 274
264 // Check that cache-related headers are set. 275 // Check that cache-related headers are set.
265 std::string etag; 276 std::string etag;
266 request.GetResponseHeaderByName("ETag", &etag); 277 request.GetResponseHeaderByName("ETag", &etag);
267 EXPECT_TRUE(StartsWithASCII(etag, "\"", false)); 278 EXPECT_TRUE(StartsWithASCII(etag, "\"", false));
268 EXPECT_TRUE(EndsWith(etag, "\"", false)); 279 EXPECT_TRUE(EndsWith(etag, "\"", false));
269 280
270 std::string revalidation_header; 281 std::string revalidation_header;
271 request.GetResponseHeaderByName("cache-control", &revalidation_header); 282 request.GetResponseHeaderByName("cache-control", &revalidation_header);
272 EXPECT_EQ("no-cache", revalidation_header); 283 EXPECT_EQ("no-cache", revalidation_header);
273 284
274 // We set test.dat as web-accessible, so it should have a CORS header. 285 // We set test.dat as web-accessible, so it should have a CORS header.
275 std::string access_control; 286 std::string access_control;
276 request.GetResponseHeaderByName("Access-Control-Allow-Origin", 287 request.GetResponseHeaderByName("Access-Control-Allow-Origin",
277 &access_control); 288 &access_control);
278 EXPECT_EQ("*", access_control); 289 EXPECT_EQ("*", access_control);
279 } 290 }
280 } 291 }
281 292
282 } // namespace extensions 293 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698