diff options
Diffstat (limited to 'testing/web-platform/tests/tools/wptserve/tests/functional/test_response.py')
-rw-r--r-- | testing/web-platform/tests/tools/wptserve/tests/functional/test_response.py | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/testing/web-platform/tests/tools/wptserve/tests/functional/test_response.py b/testing/web-platform/tests/tools/wptserve/tests/functional/test_response.py new file mode 100644 index 000000000..e9808b54e --- /dev/null +++ b/testing/web-platform/tests/tools/wptserve/tests/functional/test_response.py @@ -0,0 +1,47 @@ +import unittest +from types import MethodType + +import wptserve +from .base import TestUsingServer + +def send_body_as_header(self): + if self._response.add_required_headers: + self.write_default_headers() + + self.write("X-Body: ") + self._headers_complete = True + +class TestResponse(TestUsingServer): + def test_head_without_body(self): + @wptserve.handlers.handler + def handler(request, response): + response.writer.end_headers = MethodType(send_body_as_header, + response.writer, + wptserve.response.ResponseWriter) + return [("X-Test", "TEST")], "body\r\n" + + route = ("GET", "/test/test_head_without_body", handler) + self.server.router.register(*route) + resp = self.request(route[1], method="HEAD") + self.assertEqual("6", resp.info()['Content-Length']) + self.assertEqual("TEST", resp.info()['x-Test']) + self.assertEqual("", resp.info()['x-body']) + + def test_head_with_body(self): + @wptserve.handlers.handler + def handler(request, response): + response.send_body_for_head_request = True + response.writer.end_headers = MethodType(send_body_as_header, + response.writer, + wptserve.response.ResponseWriter) + return [("X-Test", "TEST")], "body\r\n" + + route = ("GET", "/test/test_head_with_body", handler) + self.server.router.register(*route) + resp = self.request(route[1], method="HEAD") + self.assertEqual("6", resp.info()['Content-Length']) + self.assertEqual("TEST", resp.info()['x-Test']) + self.assertEqual("body", resp.info()['X-Body']) + +if __name__ == '__main__': + unittest.main() |