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

Side by Side Diff: net/tools/testserver/testserver.py

Issue 20279: Add a unit test for ERR_UNEXPECTED_SERVER_AUTH.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 10 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 | « no previous file | net/url_request/url_request_http_job.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/python2.4 1 #!/usr/bin/python2.4
2 # Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 """This is a simple HTTP server used for testing Chrome. 6 """This is a simple HTTP server used for testing Chrome.
7 7
8 It supports several test URLs, as specified by the handlers in TestPageHandler. 8 It supports several test URLs, as specified by the handlers in TestPageHandler.
9 It defaults to living on localhost:8888. 9 It defaults to living on localhost:8888.
10 It can use https if you specify the flag --https=CERT where CERT is the path 10 It can use https if you specify the flag --https=CERT where CERT is the path
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
70 return True 70 return True
71 except tlslite.api.TLSError, error: 71 except tlslite.api.TLSError, error:
72 print "Handshake failure:", str(error) 72 print "Handshake failure:", str(error)
73 return False 73 return False
74 74
75 class TestPageHandler(BaseHTTPServer.BaseHTTPRequestHandler): 75 class TestPageHandler(BaseHTTPServer.BaseHTTPRequestHandler):
76 76
77 def __init__(self, request, client_address, socket_server): 77 def __init__(self, request, client_address, socket_server):
78 self._connect_handlers = [ 78 self._connect_handlers = [
79 self.RedirectConnectHandler, 79 self.RedirectConnectHandler,
80 self.ServerAuthConnectHandler,
80 self.DefaultConnectResponseHandler] 81 self.DefaultConnectResponseHandler]
81 self._get_handlers = [ 82 self._get_handlers = [
82 self.KillHandler, 83 self.KillHandler,
83 self.NoCacheMaxAgeTimeHandler, 84 self.NoCacheMaxAgeTimeHandler,
84 self.NoCacheTimeHandler, 85 self.NoCacheTimeHandler,
85 self.CacheTimeHandler, 86 self.CacheTimeHandler,
86 self.CacheExpiresHandler, 87 self.CacheExpiresHandler,
87 self.CacheProxyRevalidateHandler, 88 self.CacheProxyRevalidateHandler,
88 self.CachePrivateHandler, 89 self.CachePrivateHandler,
89 self.CachePublicHandler, 90 self.CachePublicHandler,
(...skipping 815 matching lines...) Expand 10 before | Expand all | Expand 10 after
905 return False 906 return False
906 907
907 dest = "http://www.destination.com/foo.js" 908 dest = "http://www.destination.com/foo.js"
908 909
909 self.send_response(302) # moved temporarily 910 self.send_response(302) # moved temporarily
910 self.send_header('Location', dest) 911 self.send_header('Location', dest)
911 self.send_header('Connection', 'close') 912 self.send_header('Connection', 'close')
912 self.end_headers() 913 self.end_headers()
913 return True 914 return True
914 915
916 def ServerAuthConnectHandler(self):
917 """Sends a 401 to the CONNECT request for www.server-auth.com. This
918 response doesn't make sense because the proxy server cannot request
919 server authentication."""
920
921 if (self.path.find("www.server-auth.com") < 0):
922 return False
923
924 challenge = 'Basic realm="WallyWorld"'
925
926 self.send_response(401) # unauthorized
927 self.send_header('WWW-Authenticate', challenge)
928 self.send_header('Connection', 'close')
929 self.end_headers()
930 return True
915 931
916 def DefaultConnectResponseHandler(self): 932 def DefaultConnectResponseHandler(self):
917 """This is the catch-all response handler for CONNECT requests that aren't 933 """This is the catch-all response handler for CONNECT requests that aren't
918 handled by one of the special handlers above. Real Web servers respond 934 handled by one of the special handlers above. Real Web servers respond
919 with 400 to CONNECT requests.""" 935 with 400 to CONNECT requests."""
920 936
921 contents = "Your client has issued a malformed or illegal request." 937 contents = "Your client has issued a malformed or illegal request."
922 self.send_response(400) # bad request 938 self.send_response(400) # bad request
923 self.send_header('Content-type', 'text/html') 939 self.send_header('Content-type', 'text/html')
924 self.send_header("Content-Length", len(contents)) 940 self.send_header("Content-Length", len(contents))
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
1047 option_parser.add_option('', '--data-dir', dest='data_dir', 1063 option_parser.add_option('', '--data-dir', dest='data_dir',
1048 help='Directory from which to read the files') 1064 help='Directory from which to read the files')
1049 option_parser.add_option('', '--https', dest='cert', 1065 option_parser.add_option('', '--https', dest='cert',
1050 help='Specify that https should be used, specify ' 1066 help='Specify that https should be used, specify '
1051 'the path to the cert containing the private key ' 1067 'the path to the cert containing the private key '
1052 'the server should use') 1068 'the server should use')
1053 options, args = option_parser.parse_args() 1069 options, args = option_parser.parse_args()
1054 1070
1055 sys.exit(main(options, args)) 1071 sys.exit(main(options, args))
1056 1072
OLDNEW
« no previous file with comments | « no previous file | net/url_request/url_request_http_job.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698