Home | History | Annotate | Download | only in tests
      1 # -*- coding: utf-8 -*-
      2 from webapp2_extras import json
      3 
      4 import test_base
      5 
      6 
      7 class TestJson(test_base.BaseTestCase):
      8     def test_encode(self):
      9         self.assertEqual(json.encode(
     10             '<script>alert("hello")</script>'),
     11             '"<script>alert(\\"hello\\")<\\/script>"')
     12 
     13     def test_decode(self):
     14         self.assertEqual(json.decode(
     15             '"<script>alert(\\"hello\\")<\\/script>"'),
     16             '<script>alert("hello")</script>')
     17 
     18     def test_b64encode(self):
     19         self.assertEqual(json.b64encode(
     20             '<script>alert("hello")</script>'),
     21             'IjxzY3JpcHQ+YWxlcnQoXCJoZWxsb1wiKTxcL3NjcmlwdD4i')
     22 
     23     def test_b64decode(self):
     24         self.assertEqual(json.b64decode(
     25             'IjxzY3JpcHQ+YWxlcnQoXCJoZWxsb1wiKTxcL3NjcmlwdD4i'),
     26             '<script>alert("hello")</script>')
     27 
     28     def test_quote(self):
     29         self.assertEqual(json.quote('<script>alert("hello")</script>'),
     30             '%22%3Cscript%3Ealert%28%5C%22hello%5C%22%29%3C%5C/script%3E%22')
     31 
     32     def test_unquote(self):
     33         self.assertEqual(json.unquote('%22%3Cscript%3Ealert%28%5C%22hello%5C%22%29%3C%5C/script%3E%22'),
     34             '<script>alert("hello")</script>')
     35 
     36 if __name__ == '__main__':
     37     test_base.main()
     38