| # -*- coding: utf-8 -*- |
| from webapp2_extras import securecookie |
| |
| import test_base |
| |
| |
| class TestSecureCookie(test_base.BaseTestCase): |
| def test_secure_cookie_serializer(self): |
| serializer = securecookie.SecureCookieSerializer('secret-key') |
| serializer._get_timestamp = lambda: 1 |
| |
| value = ['a', 'b', 'c'] |
| result = 'WyJhIiwiYiIsImMiXQ==|1|38837d6af8ac1ded9292b83924fc8521ce76f47e' |
| |
| rv = serializer.serialize('foo', value) |
| self.assertEqual(rv, result) |
| |
| rv = serializer.deserialize('foo', result) |
| self.assertEqual(rv, value) |
| |
| # no value |
| rv = serializer.deserialize('foo', None) |
| self.assertEqual(rv, None) |
| |
| # not 3 parts |
| rv = serializer.deserialize('foo', 'a|b') |
| self.assertEqual(rv, None) |
| |
| # bad signature |
| rv = serializer.deserialize('foo', result + 'foo') |
| self.assertEqual(rv, None) |
| |
| # too old |
| rv = serializer.deserialize('foo', result, max_age=-86400) |
| self.assertEqual(rv, None) |
| |
| # not correctly encoded |
| serializer2 = securecookie.SecureCookieSerializer('foo') |
| serializer2._encode = lambda x: 'foo' |
| result2 = serializer2.serialize('foo', value) |
| rv2 = serializer2.deserialize('foo', result2) |
| self.assertEqual(rv2, None) |
| |
| |
| if __name__ == '__main__': |
| test_base.main() |