From 297ff98e0d9f8f3b32ca5d2afe566a80bb16c6d8 Mon Sep 17 00:00:00 2001 From: Miguel Grinberg Date: Mon, 23 Jan 2017 09:55:11 -0800 Subject: [PATCH] Use text/plain content type for base64 encoded responses Fixes #33 --- engineio/server.py | 5 ++++- tests/test_server.py | 10 ++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/engineio/server.py b/engineio/server.py index f0ff7af4..91e9e30e 100644 --- a/engineio/server.py +++ b/engineio/server.py @@ -374,7 +374,10 @@ def _ok(self, packets=None, headers=None, b64=False): if packets is not None: if headers is None: headers = [] - headers += [('Content-Type', 'application/octet-stream')] + if b64: + headers += [('Content-Type', 'text/plain; charset=UTF-8')] + else: + headers += [('Content-Type', 'application/octet-stream')] return {'status': '200 OK', 'headers': headers, 'response': payload.Payload(packets=packets).encode(b64)} diff --git a/tests/test_server.py b/tests/test_server.py index f6775b08..cbc634a6 100644 --- a/tests/test_server.py +++ b/tests/test_server.py @@ -325,6 +325,8 @@ def test_connect(self): self.assertEqual(len(s.sockets), 1) self.assertEqual(start_response.call_count, 1) self.assertEqual(start_response.call_args[0][0], '200 OK') + self.assertIn(('Content-Type', 'application/octet-stream'), + start_response.call_args[0][1]) self.assertEqual(len(r), 1) packets = payload.Payload(encoded_payload=r[0]).packets self.assertEqual(len(packets), 1) @@ -348,6 +350,8 @@ def test_connect_b64_with_1(self): start_response = mock.MagicMock() s.handle_request(environ, start_response) self.assertTrue(start_response.call_args[0][0], '200 OK') + self.assertIn(('Content-Type', 'text/plain; charset=UTF-8'), + start_response.call_args[0][1]) s.send('1', b'\x00\x01\x02', binary=True) environ = {'REQUEST_METHOD': 'GET', 'QUERY_STRING': 'sid=1&b64=1'} r = s.handle_request(environ, start_response) @@ -360,6 +364,8 @@ def test_connect_b64_with_true(self): start_response = mock.MagicMock() s.handle_request(environ, start_response) self.assertTrue(start_response.call_args[0][0], '200 OK') + self.assertIn(('Content-Type', 'text/plain; charset=UTF-8'), + start_response.call_args[0][1]) s.send('1', b'\x00\x01\x02', binary=True) environ = {'REQUEST_METHOD': 'GET', 'QUERY_STRING': 'sid=1&b64=true'} r = s.handle_request(environ, start_response) @@ -372,6 +378,8 @@ def test_connect_b64_with_0(self): start_response = mock.MagicMock() s.handle_request(environ, start_response) self.assertTrue(start_response.call_args[0][0], '200 OK') + self.assertIn(('Content-Type', 'application/octet-stream'), + start_response.call_args[0][1]) s.send('1', b'\x00\x01\x02', binary=True) environ = {'REQUEST_METHOD': 'GET', 'QUERY_STRING': 'sid=1&b64=0'} r = s.handle_request(environ, start_response) @@ -384,6 +392,8 @@ def test_connect_b64_with_false(self): start_response = mock.MagicMock() s.handle_request(environ, start_response) self.assertTrue(start_response.call_args[0][0], '200 OK') + self.assertIn(('Content-Type', 'application/octet-stream'), + start_response.call_args[0][1]) s.send('1', b'\x00\x01\x02', binary=True) environ = {'REQUEST_METHOD': 'GET', 'QUERY_STRING': 'sid=1&b64=false'} r = s.handle_request(environ, start_response)