Commit c968b443 authored by Barry Warsaw's avatar Barry Warsaw

Added tests for SF patch #597593, syntactically invalid Content-Type: headers.

parent 6c97897d
...@@ -428,12 +428,12 @@ class TestMessageAPI(TestEmailBase): ...@@ -428,12 +428,12 @@ class TestMessageAPI(TestEmailBase):
def test_get_content_maintype_error(self): def test_get_content_maintype_error(self):
msg = Message() msg = Message()
msg['Content-Type'] = 'no-slash-in-this-string' msg['Content-Type'] = 'no-slash-in-this-string'
self.assertRaises(ValueError, msg.get_content_maintype) self.assertEqual(msg.get_content_maintype(), 'text')
def test_get_content_subtype_error(self): def test_get_content_subtype_error(self):
msg = Message() msg = Message()
msg['Content-Type'] = 'no-slash-in-this-string' msg['Content-Type'] = 'no-slash-in-this-string'
self.assertRaises(ValueError, msg.get_content_subtype) self.assertEqual(msg.get_content_subtype(), 'plain')
...@@ -1007,6 +1007,27 @@ class TestNonConformant(TestEmailBase): ...@@ -1007,6 +1007,27 @@ class TestNonConformant(TestEmailBase):
finally: finally:
fp.close() fp.close()
def test_invalid_content_type(self):
eq = self.assertEqual
neq = self.ndiffAssertEqual
msg = Message()
# RFC 2045, $5.2 says invalid yields text/plain
msg['Content-Type'] = 'text'
eq(msg.get_content_maintype(), 'text')
eq(msg.get_content_subtype(), 'plain')
eq(msg.get_content_type(), 'text/plain')
# Clear the old value and try something /really/ invalid
del msg['content-type']
msg['Content-Type'] = 'foo'
eq(msg.get_content_maintype(), 'text')
eq(msg.get_content_subtype(), 'plain')
eq(msg.get_content_type(), 'text/plain')
# Still, make sure that the message is idempotently generated
s = StringIO()
g = Generator(s)
g.flatten(msg)
neq(s.getvalue(), 'Content-Type: foo\n\n')
# Test RFC 2047 header encoding and decoding # Test RFC 2047 header encoding and decoding
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment