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

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

Issue 425653002: content: ResourceType cleanup. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: REBASE Created 6 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 | Annotate | Revision Log
« no previous file with comments | « extensions/browser/extension_protocols.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 <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"
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
113 net::URLRequestContext* request_context = 113 net::URLRequestContext* request_context =
114 resource_context_.GetRequestContext(); 114 resource_context_.GetRequestContext();
115 job_factory_.SetProtocolHandler( 115 job_factory_.SetProtocolHandler(
116 kExtensionScheme, 116 kExtensionScheme,
117 CreateExtensionProtocolHandler(is_incognito, 117 CreateExtensionProtocolHandler(is_incognito,
118 extension_info_map_.get())); 118 extension_info_map_.get()));
119 request_context->set_job_factory(&job_factory_); 119 request_context->set_job_factory(&job_factory_);
120 } 120 }
121 121
122 void StartRequest(net::URLRequest* request, 122 void StartRequest(net::URLRequest* request,
123 ResourceType::Type resource_type) { 123 ResourceType resource_type) {
124 content::ResourceRequestInfo::AllocateForTesting(request, 124 content::ResourceRequestInfo::AllocateForTesting(request,
125 resource_type, 125 resource_type,
126 &resource_context_, 126 &resource_context_,
127 -1, 127 -1,
128 -1, 128 -1,
129 -1, 129 -1,
130 false); 130 false);
131 request->Start(); 131 request->Start();
132 base::MessageLoop::current()->Run(); 132 base::MessageLoop::current()->Run();
133 } 133 }
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
174 174
175 // First test a main frame request. 175 // First test a main frame request.
176 { 176 {
177 // It doesn't matter that the resource doesn't exist. If the resource 177 // It doesn't matter that the resource doesn't exist. If the resource
178 // is blocked, we should see ADDRESS_UNREACHABLE. Otherwise, the request 178 // is blocked, we should see ADDRESS_UNREACHABLE. Otherwise, the request
179 // should just fail because the file doesn't exist. 179 // should just fail because the file doesn't exist.
180 net::URLRequest request(extension->GetResourceURL("404.html"), 180 net::URLRequest request(extension->GetResourceURL("404.html"),
181 net::DEFAULT_PRIORITY, 181 net::DEFAULT_PRIORITY,
182 &test_delegate_, 182 &test_delegate_,
183 resource_context_.GetRequestContext()); 183 resource_context_.GetRequestContext());
184 StartRequest(&request, ResourceType::MAIN_FRAME); 184 StartRequest(&request, content::RESOURCE_TYPE_MAIN_FRAME);
185 EXPECT_EQ(net::URLRequestStatus::FAILED, request.status().status()); 185 EXPECT_EQ(net::URLRequestStatus::FAILED, request.status().status());
186 186
187 if (cases[i].should_allow_main_frame_load) { 187 if (cases[i].should_allow_main_frame_load) {
188 EXPECT_EQ(net::ERR_FILE_NOT_FOUND, request.status().error()) << 188 EXPECT_EQ(net::ERR_FILE_NOT_FOUND, request.status().error()) <<
189 cases[i].name; 189 cases[i].name;
190 } else { 190 } else {
191 EXPECT_EQ(net::ERR_ADDRESS_UNREACHABLE, request.status().error()) << 191 EXPECT_EQ(net::ERR_ADDRESS_UNREACHABLE, request.status().error()) <<
192 cases[i].name; 192 cases[i].name;
193 } 193 }
194 } 194 }
195 195
196 // Now do a subframe request. 196 // Now do a subframe request.
197 { 197 {
198 net::URLRequest request(extension->GetResourceURL("404.html"), 198 net::URLRequest request(extension->GetResourceURL("404.html"),
199 net::DEFAULT_PRIORITY, 199 net::DEFAULT_PRIORITY,
200 &test_delegate_, 200 &test_delegate_,
201 resource_context_.GetRequestContext()); 201 resource_context_.GetRequestContext());
202 StartRequest(&request, ResourceType::SUB_FRAME); 202 StartRequest(&request, content::RESOURCE_TYPE_SUB_FRAME);
203 EXPECT_EQ(net::URLRequestStatus::FAILED, request.status().status()); 203 EXPECT_EQ(net::URLRequestStatus::FAILED, request.status().status());
204 204
205 if (cases[i].should_allow_sub_frame_load) { 205 if (cases[i].should_allow_sub_frame_load) {
206 EXPECT_EQ(net::ERR_FILE_NOT_FOUND, request.status().error()) << 206 EXPECT_EQ(net::ERR_FILE_NOT_FOUND, request.status().error()) <<
207 cases[i].name; 207 cases[i].name;
208 } else { 208 } else {
209 EXPECT_EQ(net::ERR_ADDRESS_UNREACHABLE, request.status().error()) << 209 EXPECT_EQ(net::ERR_ADDRESS_UNREACHABLE, request.status().error()) <<
210 cases[i].name; 210 cases[i].name;
211 } 211 }
212 } 212 }
(...skipping 21 matching lines...) Expand all
234 base::Time::Now(), 234 base::Time::Now(),
235 false, 235 false,
236 false); 236 false);
237 237
238 // First test it with the extension enabled. 238 // First test it with the extension enabled.
239 { 239 {
240 net::URLRequest request(extension->GetResourceURL("webstore_icon_16.png"), 240 net::URLRequest request(extension->GetResourceURL("webstore_icon_16.png"),
241 net::DEFAULT_PRIORITY, 241 net::DEFAULT_PRIORITY,
242 &test_delegate_, 242 &test_delegate_,
243 resource_context_.GetRequestContext()); 243 resource_context_.GetRequestContext());
244 StartRequest(&request, ResourceType::MEDIA); 244 StartRequest(&request, content::RESOURCE_TYPE_MEDIA);
245 EXPECT_EQ(net::URLRequestStatus::SUCCESS, request.status().status()); 245 EXPECT_EQ(net::URLRequestStatus::SUCCESS, request.status().status());
246 CheckForContentLengthHeader(&request); 246 CheckForContentLengthHeader(&request);
247 } 247 }
248 248
249 // And then test it with the extension disabled. 249 // And then test it with the extension disabled.
250 extension_info_map_->RemoveExtension(extension->id(), 250 extension_info_map_->RemoveExtension(extension->id(),
251 UnloadedExtensionInfo::REASON_DISABLE); 251 UnloadedExtensionInfo::REASON_DISABLE);
252 { 252 {
253 net::URLRequest request(extension->GetResourceURL("webstore_icon_16.png"), 253 net::URLRequest request(extension->GetResourceURL("webstore_icon_16.png"),
254 net::DEFAULT_PRIORITY, 254 net::DEFAULT_PRIORITY,
255 &test_delegate_, 255 &test_delegate_,
256 resource_context_.GetRequestContext()); 256 resource_context_.GetRequestContext());
257 StartRequest(&request, ResourceType::MEDIA); 257 StartRequest(&request, content::RESOURCE_TYPE_MEDIA);
258 EXPECT_EQ(net::URLRequestStatus::SUCCESS, request.status().status()); 258 EXPECT_EQ(net::URLRequestStatus::SUCCESS, request.status().status());
259 CheckForContentLengthHeader(&request); 259 CheckForContentLengthHeader(&request);
260 } 260 }
261 } 261 }
262 262
263 // Tests that a URL request for resource from an extension returns a few 263 // Tests that a URL request for resource from an extension returns a few
264 // expected response headers. 264 // expected response headers.
265 TEST_F(ExtensionProtocolTest, ResourceRequestResponseHeaders) { 265 TEST_F(ExtensionProtocolTest, ResourceRequestResponseHeaders) {
266 // Register a non-incognito extension protocol handler. 266 // Register a non-incognito extension protocol handler.
267 SetProtocolHandler(false); 267 SetProtocolHandler(false);
268 268
269 scoped_refptr<Extension> extension = CreateTestResponseHeaderExtension(); 269 scoped_refptr<Extension> extension = CreateTestResponseHeaderExtension();
270 extension_info_map_->AddExtension(extension.get(), 270 extension_info_map_->AddExtension(extension.get(),
271 base::Time::Now(), 271 base::Time::Now(),
272 false, 272 false,
273 false); 273 false);
274 274
275 { 275 {
276 net::URLRequest request(extension->GetResourceURL("test.dat"), 276 net::URLRequest request(extension->GetResourceURL("test.dat"),
277 net::DEFAULT_PRIORITY, 277 net::DEFAULT_PRIORITY,
278 &test_delegate_, 278 &test_delegate_,
279 resource_context_.GetRequestContext()); 279 resource_context_.GetRequestContext());
280 StartRequest(&request, ResourceType::MEDIA); 280 StartRequest(&request, content::RESOURCE_TYPE_MEDIA);
281 EXPECT_EQ(net::URLRequestStatus::SUCCESS, request.status().status()); 281 EXPECT_EQ(net::URLRequestStatus::SUCCESS, request.status().status());
282 282
283 // Check that cache-related headers are set. 283 // Check that cache-related headers are set.
284 std::string etag; 284 std::string etag;
285 request.GetResponseHeaderByName("ETag", &etag); 285 request.GetResponseHeaderByName("ETag", &etag);
286 EXPECT_TRUE(StartsWithASCII(etag, "\"", false)); 286 EXPECT_TRUE(StartsWithASCII(etag, "\"", false));
287 EXPECT_TRUE(EndsWith(etag, "\"", false)); 287 EXPECT_TRUE(EndsWith(etag, "\"", false));
288 288
289 std::string revalidation_header; 289 std::string revalidation_header;
290 request.GetResponseHeaderByName("cache-control", &revalidation_header); 290 request.GetResponseHeaderByName("cache-control", &revalidation_header);
(...skipping 18 matching lines...) Expand all
309 base::Time::Now(), 309 base::Time::Now(),
310 false, 310 false,
311 false); 311 false);
312 312
313 // All MAIN_FRAME and SUB_FRAME requests should succeed. 313 // All MAIN_FRAME and SUB_FRAME requests should succeed.
314 { 314 {
315 net::URLRequest request(extension->GetResourceURL("test.dat"), 315 net::URLRequest request(extension->GetResourceURL("test.dat"),
316 net::DEFAULT_PRIORITY, 316 net::DEFAULT_PRIORITY,
317 &test_delegate_, 317 &test_delegate_,
318 resource_context_.GetRequestContext()); 318 resource_context_.GetRequestContext());
319 StartRequest(&request, ResourceType::MAIN_FRAME); 319 StartRequest(&request, content::RESOURCE_TYPE_MAIN_FRAME);
320 EXPECT_EQ(net::URLRequestStatus::SUCCESS, request.status().status()); 320 EXPECT_EQ(net::URLRequestStatus::SUCCESS, request.status().status());
321 } 321 }
322 { 322 {
323 net::URLRequest request(extension->GetResourceURL("test.dat"), 323 net::URLRequest request(extension->GetResourceURL("test.dat"),
324 net::DEFAULT_PRIORITY, 324 net::DEFAULT_PRIORITY,
325 &test_delegate_, 325 &test_delegate_,
326 resource_context_.GetRequestContext()); 326 resource_context_.GetRequestContext());
327 StartRequest(&request, ResourceType::SUB_FRAME); 327 StartRequest(&request, content::RESOURCE_TYPE_SUB_FRAME);
328 EXPECT_EQ(net::URLRequestStatus::SUCCESS, request.status().status()); 328 EXPECT_EQ(net::URLRequestStatus::SUCCESS, request.status().status());
329 } 329 }
330 330
331 // And subresource types, such as media, should fail. 331 // And subresource types, such as media, should fail.
332 { 332 {
333 net::URLRequest request(extension->GetResourceURL("test.dat"), 333 net::URLRequest request(extension->GetResourceURL("test.dat"),
334 net::DEFAULT_PRIORITY, 334 net::DEFAULT_PRIORITY,
335 &test_delegate_, 335 &test_delegate_,
336 resource_context_.GetRequestContext()); 336 resource_context_.GetRequestContext());
337 StartRequest(&request, ResourceType::MEDIA); 337 StartRequest(&request, content::RESOURCE_TYPE_MEDIA);
338 EXPECT_EQ(net::URLRequestStatus::FAILED, request.status().status()); 338 EXPECT_EQ(net::URLRequestStatus::FAILED, request.status().status());
339 } 339 }
340 } 340 }
341 341
342 } // namespace extensions 342 } // namespace extensions
OLDNEW
« no previous file with comments | « extensions/browser/extension_protocols.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698