Index: net/tools/testserver/testserver.py |
diff --git a/net/tools/testserver/testserver.py b/net/tools/testserver/testserver.py |
index f9177897cc6e17b64a3fa075498365b96f0a7b81..80ca395f2e8dbaa0c608147b30adfe58c1a8eb7c 100755 |
--- a/net/tools/testserver/testserver.py |
+++ b/net/tools/testserver/testserver.py |
@@ -909,8 +909,18 @@ class TestPageHandler(BasePageHandler): |
if not self.path.startswith(prefix): |
return False |
# Consume a request body if present. |
- if self.command == 'POST' or self.command == 'PUT' : |
+ if self.command == 'POST' or self.command == 'PUT': |
self.ReadRequestBody() |
+ _, _, _, _, query_str, _ = urlparse.urlparse(self.path) |
cbentzel
2012/02/13 19:23:38
Feels like expected_headers and expected_body shou
benjhayden
2012/02/13 21:05:31
Done.
|
+ query_dict = cgi.parse_qs(query_str) |
+ expected_headers = query_dict.get('expected_headers', []) |
+ for expected_header in expected_headers: |
+ header_name, expected_value = expected_header.split(':') |
+ if self.headers.getheader(header_name) != expected_value: |
+ self.send_response(404) |
+ self.end_headers() |
+ self.wfile.write('') |
+ return True |
return self._FileHandlerHelper(prefix) |
def PostOnlyFileHandler(self): |
@@ -918,7 +928,15 @@ class TestPageHandler(BasePageHandler): |
prefix = urlparse.urljoin(self.server.file_root_url, 'post/') |
if not self.path.startswith(prefix): |
return False |
- self.ReadRequestBody() |
+ body = self.ReadRequestBody() |
+ _, _, _, _, query_str, _ = urlparse.urlparse(self.path) |
+ query_dict = cgi.parse_qs(query_str) |
+ expected_body = query_dict.get('expected_body', []) |
+ if expected_body and body not in expected_body: |
+ self.send_response(404) |
+ self.end_headers() |
+ self.wfile.write('') |
+ return True |
return self._FileHandlerHelper(prefix) |
def _FileHandlerHelper(self, prefix): |