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

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

Issue 8203005: Implement chrome.experimental.downloads.onChanged (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: comments Created 8 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
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2012 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/FTP/SYNC/TCP/UDP/ server used for testing Chrome. 6 """This is a simple HTTP/FTP/SYNC/TCP/UDP/ 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 By default, it listens on an ephemeral port and sends the port number back to 9 By default, it listens on an ephemeral port and sends the port number back to
10 the originating process over a pipe. The originating process can specify an 10 the originating process over a pipe. The originating process can specify an
(...skipping 891 matching lines...) Expand 10 before | Expand all | Expand 10 after
902 902
903 return True 903 return True
904 904
905 def FileHandler(self): 905 def FileHandler(self):
906 """This handler sends the contents of the requested file. Wow, it's like 906 """This handler sends the contents of the requested file. Wow, it's like
907 a real webserver!""" 907 a real webserver!"""
908 prefix = self.server.file_root_url 908 prefix = self.server.file_root_url
909 if not self.path.startswith(prefix): 909 if not self.path.startswith(prefix):
910 return False 910 return False
911 # Consume a request body if present. 911 # Consume a request body if present.
912 if self.command == 'POST' or self.command == 'PUT' : 912 if self.command == 'POST' or self.command == 'PUT':
913 self.ReadRequestBody() 913 self.ReadRequestBody()
914 return self._FileHandlerHelper(prefix) 914 return self._FileHandlerHelper(prefix)
915 915
916 def PostOnlyFileHandler(self): 916 def PostOnlyFileHandler(self):
917 """This handler sends the contents of the requested file on a POST.""" 917 """This handler sends the contents of the requested file on a POST."""
918 prefix = urlparse.urljoin(self.server.file_root_url, 'post/') 918 prefix = urlparse.urljoin(self.server.file_root_url, 'post/')
919 if not self.path.startswith(prefix): 919 if not self.path.startswith(prefix):
920 return False 920 return False
921 self.ReadRequestBody() 921 body = self.ReadRequestBody()
922 _, _, _, _, query_str, _ = urlparse.urlparse(self.path)
923 query_dict = cgi.parse_qs(query_str)
924 expected_body = query_dict.get('expected_body', [])
925 if body not in expected_body:
926 self.send_response(404)
927 self.end_headers()
928 self.wfile.write('')
929 return True
922 return self._FileHandlerHelper(prefix) 930 return self._FileHandlerHelper(prefix)
923 931
924 def _FileHandlerHelper(self, prefix): 932 def _FileHandlerHelper(self, prefix):
925 _, _, url_path, _, query, _ = urlparse.urlparse(self.path) 933 _, _, url_path, _, query, _ = urlparse.urlparse(self.path)
926 sub_path = url_path[len(prefix):] 934 sub_path = url_path[len(prefix):]
927 entries = sub_path.split('/') 935 entries = sub_path.split('/')
928 file_path = os.path.join(self.server.data_dir, *entries) 936 file_path = os.path.join(self.server.data_dir, *entries)
929 if os.path.isdir(file_path): 937 if os.path.isdir(file_path):
930 file_path = os.path.join(file_path, 'index.html') 938 file_path = os.path.join(file_path, 'index.html')
931 939
(...skipping 1073 matching lines...) Expand 10 before | Expand all | Expand 10 after
2005 'random key if none is specified on the command ' 2013 'random key if none is specified on the command '
2006 'line.') 2014 'line.')
2007 option_parser.add_option('', '--policy-user', default='user@example.com', 2015 option_parser.add_option('', '--policy-user', default='user@example.com',
2008 dest='policy_user', 2016 dest='policy_user',
2009 help='Specify the user name the server should ' 2017 help='Specify the user name the server should '
2010 'report back to the client as the user owning the ' 2018 'report back to the client as the user owning the '
2011 'token used for making the policy request.') 2019 'token used for making the policy request.')
2012 options, args = option_parser.parse_args() 2020 options, args = option_parser.parse_args()
2013 2021
2014 sys.exit(main(options, args)) 2022 sys.exit(main(options, args))
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698