| OLD | NEW |
| 1 # Copyright 2013 The Chromium Authors. All rights reserved. | 1 # Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 | 4 |
| 5 | 5 |
| 6 class RequestHeaders(object): | 6 class RequestHeaders(object): |
| 7 '''A custom dictionary impementation for headers which ignores the case | 7 '''A custom dictionary impementation for headers which ignores the case |
| 8 of requests, since different HTTP libraries seem to mangle them. | 8 of requests, since different HTTP libraries seem to mangle them. |
| 9 ''' | 9 ''' |
| 10 def __init__(self, dict_): | 10 def __init__(self, dict_): |
| 11 if isinstance(dict_, RequestHeaders): | 11 if isinstance(dict_, RequestHeaders): |
| 12 self._dict = dict_ | 12 self._dict = dict_ |
| 13 else: | 13 else: |
| 14 self._dict = dict((k.lower(), v) for k, v in dict_.iteritems()) | 14 self._dict = dict((k.lower(), v) for k, v in dict_.iteritems()) |
| 15 | 15 |
| 16 def get(self, key, default=None): | 16 def get(self, key, default=None): |
| 17 return self._dict.get(key.lower(), default) | 17 return self._dict.get(key.lower(), default) |
| 18 | 18 |
| 19 def __repr__(self): | 19 def __repr__(self): |
| 20 return repr(self._dict) | 20 return repr(self._dict) |
| 21 | 21 |
| 22 def __str__(self): | 22 def __str__(self): |
| 23 return repr(self._dict) | 23 return repr(self._dict) |
| 24 | 24 |
| 25 | 25 |
| 26 class Request(object): | 26 class Request(object): |
| 27 '''Request data. | 27 '''Request data. |
| 28 ''' | 28 ''' |
| 29 def __init__(self, path, host, headers): | 29 def __init__(self, path, host, headers, arguments={}): |
| 30 self.path = path.lstrip('/') | 30 self.path = path.lstrip('/') |
| 31 self.host = host.rstrip('/') | 31 self.host = host.rstrip('/') |
| 32 self.headers = RequestHeaders(headers) | 32 self.headers = RequestHeaders(headers) |
| 33 self.arguments = arguments |
| 33 | 34 |
| 34 @staticmethod | 35 @staticmethod |
| 35 def ForTest(path, host=None, headers=None): | 36 def ForTest(path, host=None, headers=None): |
| 36 return Request(path, host or 'http://developer.chrome.com', headers or {}) | 37 return Request(path, host or 'http://developer.chrome.com', headers or {}) |
| 37 | 38 |
| 38 def __repr__(self): | 39 def __repr__(self): |
| 39 return 'Request(path=%s, host=%s, headers=%s)' % ( | 40 return 'Request(path=%s, host=%s, headers=%s)' % ( |
| 40 self.path, self.host, self.headers) | 41 self.path, self.host, self.headers) |
| 41 | 42 |
| 42 def __str__(self): | 43 def __str__(self): |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 100 @staticmethod | 101 @staticmethod |
| 101 def NotModified(content, headers=None): | 102 def NotModified(content, headers=None): |
| 102 return Response(content=content, headers=headers, status=304) | 103 return Response(content=content, headers=headers, status=304) |
| 103 | 104 |
| 104 @staticmethod | 105 @staticmethod |
| 105 def InternalError(content, headers=None): | 106 def InternalError(content, headers=None): |
| 106 '''Returns an internal error (500) response. | 107 '''Returns an internal error (500) response. |
| 107 ''' | 108 ''' |
| 108 return Response(content=content, headers=headers, status=500) | 109 return Response(content=content, headers=headers, status=500) |
| 109 | 110 |
| 111 @staticmethod |
| 112 def ThrottledError(content, headers=None): |
| 113 '''Returns an HTTP throttle error (429) response. |
| 114 ''' |
| 115 return Response(content=content, headers=headers, status=429) |
| 116 |
| 110 def Append(self, content): | 117 def Append(self, content): |
| 111 '''Appends |content| to the response content. | 118 '''Appends |content| to the response content. |
| 112 ''' | 119 ''' |
| 113 self.content.append(content) | 120 self.content.append(content) |
| 114 | 121 |
| 115 def AddHeader(self, key, value): | 122 def AddHeader(self, key, value): |
| 116 '''Adds a header to the response. | 123 '''Adds a header to the response. |
| 117 ''' | 124 ''' |
| 118 self.headers[key] = value | 125 self.headers[key] = value |
| 119 | 126 |
| (...skipping 30 matching lines...) Expand all Loading... |
| 150 return repr(self) | 157 return repr(self) |
| 151 | 158 |
| 152 class Servlet(object): | 159 class Servlet(object): |
| 153 def __init__(self, request): | 160 def __init__(self, request): |
| 154 self._request = request | 161 self._request = request |
| 155 | 162 |
| 156 def Get(self): | 163 def Get(self): |
| 157 '''Returns a Response. | 164 '''Returns a Response. |
| 158 ''' | 165 ''' |
| 159 raise NotImplemented() | 166 raise NotImplemented() |
| OLD | NEW |