OLD | NEW |
1 #!/usr/bin/python2.4 | 1 #!/usr/bin/python2.4 |
2 # Copyright (c) 2006-2010 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2006-2010 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 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
120 self.ContentTypeHandler, | 120 self.ContentTypeHandler, |
121 self.ServerRedirectHandler, | 121 self.ServerRedirectHandler, |
122 self.ClientRedirectHandler, | 122 self.ClientRedirectHandler, |
123 self.ChromiumSyncTimeHandler, | 123 self.ChromiumSyncTimeHandler, |
124 self.MultipartHandler, | 124 self.MultipartHandler, |
125 self.DefaultResponseHandler] | 125 self.DefaultResponseHandler] |
126 self._post_handlers = [ | 126 self._post_handlers = [ |
127 self.WriteFile, | 127 self.WriteFile, |
128 self.EchoTitleHandler, | 128 self.EchoTitleHandler, |
129 self.EchoAllHandler, | 129 self.EchoAllHandler, |
| 130 self.ChromiumSyncConfigureHandler, |
130 self.ChromiumSyncCommandHandler, | 131 self.ChromiumSyncCommandHandler, |
131 self.EchoHandler] + self._get_handlers | 132 self.EchoHandler] + self._get_handlers |
132 self._put_handlers = [ | 133 self._put_handlers = [ |
133 self.WriteFile, | 134 self.WriteFile, |
134 self.EchoTitleHandler, | 135 self.EchoTitleHandler, |
135 self.EchoAllHandler, | 136 self.EchoAllHandler, |
136 self.EchoHandler] + self._get_handlers | 137 self.EchoHandler] + self._get_handlers |
137 | 138 |
138 self._mime_types = { | 139 self._mime_types = { |
139 'gif': 'image/gif', | 140 'gif': 'image/gif', |
(...skipping 860 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1000 """ | 1001 """ |
1001 test_name = "/chromiumsync/time" | 1002 test_name = "/chromiumsync/time" |
1002 if not self._ShouldHandleRequest(test_name): | 1003 if not self._ShouldHandleRequest(test_name): |
1003 return False | 1004 return False |
1004 | 1005 |
1005 self.send_response(200) | 1006 self.send_response(200) |
1006 self.send_header('Content-type', 'text/html') | 1007 self.send_header('Content-type', 'text/html') |
1007 self.end_headers() | 1008 self.end_headers() |
1008 return True | 1009 return True |
1009 | 1010 |
| 1011 def ChromiumSyncConfigureHandler(self): |
| 1012 """Handle updating the configuration of the sync server. |
| 1013 |
| 1014 The name and value pairs of the post payload will update the |
| 1015 configuration of the sync server. Supported tuples are: |
| 1016 user_email,<email address> - Sets the email for the fake user account |
| 1017 """ |
| 1018 test_name = "/chromiumsync/configure" |
| 1019 if not self._ShouldHandleRequest(test_name): |
| 1020 return False |
| 1021 |
| 1022 length = int(self.headers.getheader('content-length')) |
| 1023 raw_request = self.rfile.read(length) |
| 1024 config = cgi.parse_qs(raw_request, keep_blank_values=1) |
| 1025 |
| 1026 success = self._sync_handler.HandleConfigure(config) |
| 1027 if success: |
| 1028 self.send_response(200) |
| 1029 else: |
| 1030 self.send_response(500) |
| 1031 self.end_headers() |
| 1032 return True |
| 1033 |
1010 def ChromiumSyncCommandHandler(self): | 1034 def ChromiumSyncCommandHandler(self): |
1011 """Handle a chromiumsync command arriving via http. | 1035 """Handle a chromiumsync command arriving via http. |
1012 | 1036 |
1013 This covers all sync protocol commands: authentication, getupdates, and | 1037 This covers all sync protocol commands: authentication, getupdates, and |
1014 commit. | 1038 commit. |
1015 """ | 1039 """ |
1016 test_name = "/chromiumsync/command" | 1040 test_name = "/chromiumsync/command" |
1017 if not self._ShouldHandleRequest(test_name): | 1041 if not self._ShouldHandleRequest(test_name): |
1018 return False | 1042 return False |
1019 | 1043 |
(...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1264 option_parser.add_option('', '--file-root-url', default='/files/', | 1288 option_parser.add_option('', '--file-root-url', default='/files/', |
1265 help='Specify a root URL for files served.') | 1289 help='Specify a root URL for files served.') |
1266 option_parser.add_option('', '--never-die', default=False, | 1290 option_parser.add_option('', '--never-die', default=False, |
1267 action="store_true", | 1291 action="store_true", |
1268 help='Prevent the server from dying when visiting ' | 1292 help='Prevent the server from dying when visiting ' |
1269 'a /kill URL. Useful for manually running some ' | 1293 'a /kill URL. Useful for manually running some ' |
1270 'tests.') | 1294 'tests.') |
1271 options, args = option_parser.parse_args() | 1295 options, args = option_parser.parse_args() |
1272 | 1296 |
1273 sys.exit(main(options, args)) | 1297 sys.exit(main(options, args)) |
OLD | NEW |