--- a/web/test/unittest_idownloadable.py Fri Nov 30 21:19:36 2012 +0100
+++ b/web/test/unittest_idownloadable.py Tue Dec 11 17:17:40 2012 +0100
@@ -58,12 +58,44 @@
req.form['eid'] = str(req.user.eid)
data = self.ctrl_publish(req,'view')
get = req.headers_out.getRawHeaders
- self.assertEqual(['attachment;filename=admin.txt'],
+ self.assertEqual(['attachment;filename="admin.txt"'],
get('content-disposition'))
self.assertEqual(['text/plain;charset=ascii'],
get('content-type'))
self.assertEqual('Babar is not dead!', data)
+ def test_header_with_space(self):
+ req = self.request()
+ self.create_user(req, login=u'c c l a', password='babar')
+ self.commit()
+ with self.login(u'c c l a', password='babar'):
+ req = self.request()
+ req.form['vid'] = 'download'
+ req.form['eid'] = str(req.user.eid)
+ data = self.ctrl_publish(req,'view')
+ get = req.headers_out.getRawHeaders
+ self.assertEqual(['attachment;filename="c c l a.txt"'],
+ get('content-disposition'))
+ self.assertEqual(['text/plain;charset=ascii'],
+ get('content-type'))
+ self.assertEqual('Babar is not dead!', data)
+
+ def test_header_with_space_and_comma(self):
+ req = self.request()
+ self.create_user(req, login=ur'c " l\ a', password='babar')
+ self.commit()
+ with self.login(ur'c " l\ a', password='babar'):
+ req = self.request()
+ req.form['vid'] = 'download'
+ req.form['eid'] = str(req.user.eid)
+ data = self.ctrl_publish(req,'view')
+ get = req.headers_out.getRawHeaders
+ self.assertEqual([r'attachment;filename="c \" l\\ a.txt"'],
+ get('content-disposition'))
+ self.assertEqual(['text/plain;charset=ascii'],
+ get('content-type'))
+ self.assertEqual('Babar is not dead!', data)
+
def test_header_unicode_filename(self):
req = self.request()
self.create_user(req, login=u'cécilia', password='babar')
@@ -74,7 +106,7 @@
req.form['eid'] = str(req.user.eid)
self.ctrl_publish(req,'view')
get = req.headers_out.getRawHeaders
- self.assertEqual(["attachment;filename=ccilia.txt;filename*=utf-8''c%C3%A9cilia.txt"],
+ self.assertEqual(['''attachment;filename="ccilia.txt";filename*=utf-8''c%C3%A9cilia.txt'''],
get('content-disposition'))
def test_header_unicode_long_filename(self):
@@ -88,7 +120,7 @@
req.form['eid'] = str(req.user.eid)
self.ctrl_publish(req,'view')
get = req.headers_out.getRawHeaders
- self.assertEqual(["attachment;filename=Brte_h_grand_nm_a_va_totallement_dborder_de_la_limite_l.txt;filename*=utf-8''B%C3%A8rte_h%C3%B4_grand_n%C3%B4m_%C3%A7a_va_totallement_d%C3%A9border_de_la_limite_l%C3%A0.txt"],
+ self.assertEqual(["""attachment;filename="Brte_h_grand_nm_a_va_totallement_dborder_de_la_limite_l.txt";filename*=utf-8''B%C3%A8rte_h%C3%B4_grand_n%C3%B4m_%C3%A7a_va_totallement_d%C3%A9border_de_la_limite_l%C3%A0.txt"""],
get('content-disposition'))
if __name__ == '__main__':