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

Side by Side Diff: content/test/net/url_request_abort_on_end_job.cc

Issue 11293252: Change Interceptors into URLRequestJobFactory::ProtocolHandlers. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: sync Created 8 years 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 // This class simulates what wininet does when a dns lookup fails. 4 // This class simulates what wininet does when a dns lookup fails.
5 5
6 #include <algorithm> 6 #include <algorithm>
7 #include <cstring> 7 #include <cstring>
8 8
9 #include "base/compiler_specific.h" 9 #include "base/compiler_specific.h"
10 #include "base/string_util.h" 10 #include "base/string_util.h"
11 #include "content/public/browser/browser_thread.h" 11 #include "content/public/browser/browser_thread.h"
12 #include "content/test/net/url_request_abort_on_end_job.h" 12 #include "content/test/net/url_request_abort_on_end_job.h"
13 #include "net/base/io_buffer.h" 13 #include "net/base/io_buffer.h"
14 #include "net/base/net_errors.h" 14 #include "net/base/net_errors.h"
15 #include "net/http/http_response_headers.h" 15 #include "net/http/http_response_headers.h"
16 #include "net/url_request/url_request.h" 16 #include "net/url_request/url_request.h"
17 #include "net/url_request/url_request_filter.h" 17 #include "net/url_request/url_request_filter.h"
18 #include "net/url_request/url_request_status.h" 18 #include "net/url_request/url_request_status.h"
19 19
20 namespace content { 20 namespace content {
21 namespace { 21 namespace {
22
22 const char kPageContent[] = "some data\r\n"; 23 const char kPageContent[] = "some data\r\n";
23 }
24 24
25 const char URLRequestAbortOnEndJob::k400AbortOnEndUrl[] = 25 net::URLRequestJob* JobFactory(
26 "http://url.handled.by.abort.on.end/400";
27
28 // static
29 void URLRequestAbortOnEndJob::AddUrlHandler() {
30 net::URLRequestFilter* filter = net::URLRequestFilter::GetInstance();
31 filter->AddUrlHandler(GURL(k400AbortOnEndUrl),
32 &URLRequestAbortOnEndJob::Factory);
33 }
34
35 // static
36 net::URLRequestJob* URLRequestAbortOnEndJob::Factory(
37 net::URLRequest* request, 26 net::URLRequest* request,
38 net::NetworkDelegate* network_delegate, 27 net::NetworkDelegate* network_delegate,
39 const std::string& scheme) { 28 const std::string& scheme) {
40 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 29 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
41 return new URLRequestAbortOnEndJob(request, network_delegate); 30 return new URLRequestAbortOnEndJob(request, network_delegate);
42 } 31 }
43 32
33 void AddUrlHandlerOnIOThread() {
34 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
35 net::URLRequestFilter* filter = net::URLRequestFilter::GetInstance();
36 filter->AddUrlHandler(GURL(URLRequestAbortOnEndJob::k400AbortOnEndUrl),
37 &JobFactory);
38 }
39
40 } // anonymous namespace
41
42 const char URLRequestAbortOnEndJob::k400AbortOnEndUrl[] =
43 "http://url.handled.by.abort.on.end/400";
44
45 // static
46 void URLRequestAbortOnEndJob::AddUrlHandler() {
47 BrowserThread::PostTask(BrowserThread::IO, FROM_HERE,
48 base::Bind(AddUrlHandlerOnIOThread));
49 }
50
44 // Private const version. 51 // Private const version.
45 void URLRequestAbortOnEndJob::GetResponseInfoConst( 52 void URLRequestAbortOnEndJob::GetResponseInfoConst(
46 net::HttpResponseInfo* info) const { 53 net::HttpResponseInfo* info) const {
47 // Send back mock headers. 54 // Send back mock headers.
48 std::string raw_headers; 55 std::string raw_headers;
49 if (LowerCaseEqualsASCII(k400AbortOnEndUrl, 56 if (LowerCaseEqualsASCII(k400AbortOnEndUrl,
50 request_->url().spec().c_str())) { 57 request_->url().spec().c_str())) {
51 raw_headers.append( 58 raw_headers.append(
52 "HTTP/1.1 400 This is not OK\n" 59 "HTTP/1.1 400 This is not OK\n"
53 "Content-type: text/plain\n"); 60 "Content-type: text/plain\n");
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
100 return true; 107 return true;
101 } 108 }
102 109
103 SetStatus(net::URLRequestStatus(net::URLRequestStatus::FAILED, 110 SetStatus(net::URLRequestStatus(net::URLRequestStatus::FAILED,
104 net::ERR_CONNECTION_ABORTED)); 111 net::ERR_CONNECTION_ABORTED));
105 *bytes_read = -1; 112 *bytes_read = -1;
106 return false; 113 return false;
107 } 114 }
108 115
109 } // namespace content 116 } // namespace content
OLDNEW
« no previous file with comments | « content/test/net/url_request_abort_on_end_job.h ('k') | content/test/net/url_request_prepackaged_interceptor.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698