| OLD | NEW |
| 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 890 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 901 self.wfile.write(data) | 901 self.wfile.write(data) |
| 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 post_prefix = urlparse.urljoin(self.server.file_root_url, 'post/') |
| 912 if self.path.startswith(post_prefix): |
| 913 self.send_response(404) |
| 914 self.send_header('Content-Length', 1) |
| 915 self.end_headers() |
| 916 self.wfile.write('') |
| 917 return True |
| 911 # Consume a request body if present. | 918 # Consume a request body if present. |
| 912 if self.command == 'POST' or self.command == 'PUT' : | 919 if self.command == 'POST' or self.command == 'PUT' : |
| 913 self.ReadRequestBody() | 920 body = self.ReadRequestBody() |
| 914 return self._FileHandlerHelper(prefix) | 921 return self._FileHandlerHelper(prefix) |
| 915 | 922 |
| 916 def PostOnlyFileHandler(self): | 923 def PostOnlyFileHandler(self): |
| 917 """This handler sends the contents of the requested file on a POST.""" | 924 """This handler sends the contents of the requested file on a POST.""" |
| 918 prefix = urlparse.urljoin(self.server.file_root_url, 'post/') | 925 prefix = urlparse.urljoin(self.server.file_root_url, 'post/') |
| 919 if not self.path.startswith(prefix): | 926 if not self.path.startswith(prefix): |
| 920 return False | 927 return False |
| 921 self.ReadRequestBody() | 928 body = self.ReadRequestBody() |
| 929 _, _, url_path, _, query_str, _ = urlparse.urlparse(self.path) |
| 930 if query_str == 'require_body_eq_path' and body != self.path: |
| 931 return False |
| 922 return self._FileHandlerHelper(prefix) | 932 return self._FileHandlerHelper(prefix) |
| 923 | 933 |
| 924 def _FileHandlerHelper(self, prefix): | 934 def _FileHandlerHelper(self, prefix): |
| 925 _, _, url_path, _, query, _ = urlparse.urlparse(self.path) | 935 _, _, url_path, _, query, _ = urlparse.urlparse(self.path) |
| 926 sub_path = url_path[len(prefix):] | 936 sub_path = url_path[len(prefix):] |
| 927 entries = sub_path.split('/') | 937 entries = sub_path.split('/') |
| 928 file_path = os.path.join(self.server.data_dir, *entries) | 938 file_path = os.path.join(self.server.data_dir, *entries) |
| 929 if os.path.isdir(file_path): | 939 if os.path.isdir(file_path): |
| 930 file_path = os.path.join(file_path, 'index.html') | 940 file_path = os.path.join(file_path, 'index.html') |
| 931 | 941 |
| (...skipping 1073 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2005 'random key if none is specified on the command ' | 2015 'random key if none is specified on the command ' |
| 2006 'line.') | 2016 'line.') |
| 2007 option_parser.add_option('', '--policy-user', default='user@example.com', | 2017 option_parser.add_option('', '--policy-user', default='user@example.com', |
| 2008 dest='policy_user', | 2018 dest='policy_user', |
| 2009 help='Specify the user name the server should ' | 2019 help='Specify the user name the server should ' |
| 2010 'report back to the client as the user owning the ' | 2020 'report back to the client as the user owning the ' |
| 2011 'token used for making the policy request.') | 2021 'token used for making the policy request.') |
| 2012 options, args = option_parser.parse_args() | 2022 options, args = option_parser.parse_args() |
| 2013 | 2023 |
| 2014 sys.exit(main(options, args)) | 2024 sys.exit(main(options, args)) |
| OLD | NEW |