blob: 4188cd103897b60c0e6fbb049af674aa46d15491 [file] [log] [blame]
joi@chromium.org66a61db2011-03-25 22:30:21 +00001#!/usr/bin/python2.4
2# Copyright (c) 2011 The Chromium Authors. All rights reserved.
3# Use of this source code is governed by a BSD-style license that can be
4# found in the LICENSE file.
5
6"""This is a simple HTTP server for manually testing exponential
7back-off functionality in Chrome.
8"""
9
10
11import BaseHTTPServer
12import sys
13import urlparse
14
15
16class RequestHandler(BaseHTTPServer.BaseHTTPRequestHandler):
17 keep_running = True
18
19 def do_GET(self):
20 if self.path == '/quitquitquit':
21 self.send_response(200)
22 self.send_header('Content-Type', 'text/plain')
23 self.end_headers()
24 self.wfile.write('QUITTING')
25 RequestHandler.keep_running = False
26 return
27
28 params = urlparse.parse_qs(urlparse.urlparse(self.path).query)
29
30 if not params or not 'code' in params or params['code'][0] == '200':
31 self.send_response(200)
32 self.send_header('Content-Type', 'text/plain')
33 self.end_headers()
34 self.wfile.write('OK')
35 else:
36 self.send_error(int(params['code'][0]))
37
38
39def main():
40 if len(sys.argv) != 2:
41 print "Usage: %s PORT" % sys.argv[0]
42 sys.exit(1)
43 port = int(sys.argv[1])
44 print "To stop the server, go to http://localhost:%d/quitquitquit" % port
45 httpd = BaseHTTPServer.HTTPServer(('', port), RequestHandler)
46 while RequestHandler.keep_running:
47 httpd.handle_request()
48
49
50if __name__ == '__main__':
51 main()