source: monitoring/plugins/mpi/simplejson/tests/test_encode_for_html.py @ 2028

Last change on this file since 2028 was 2028, checked in by sanmai, 12 years ago
  • Add CLARIN Discojuice JSON monitoring plugin.
  • Add CLARIN Discojuice HTML monitoring plugin.
  • Add CLARIN SAML monitoring plugin.
  • LAT OAI-PMH endpoint monitoring plugin.
  • Add one dependency (SimpleJSON), for the time being, needed for Python 2.5.
File size: 1.1 KB
Line 
1import unittest
2
3import simplejson.decoder
4import simplejson.encoder
5
6
7class TestEncodeForHTML(unittest.TestCase):
8
9    def setUp(self):
10        self.decoder = simplejson.decoder.JSONDecoder()
11        self.encoder = simplejson.encoder.JSONEncoderForHTML()
12
13    def test_basic_encode(self):
14        self.assertEqual(r'"\u0026"', self.encoder.encode('&'))
15        self.assertEqual(r'"\u003c"', self.encoder.encode('<'))
16        self.assertEqual(r'"\u003e"', self.encoder.encode('>'))
17
18    def test_basic_roundtrip(self):
19        for char in '&<>':
20            self.assertEqual(
21                char, self.decoder.decode(
22                    self.encoder.encode(char)))
23
24    def test_prevent_script_breakout(self):
25        bad_string = '</script><script>alert("gotcha")</script>'
26        self.assertEqual(
27            r'"\u003c/script\u003e\u003cscript\u003e'
28            r'alert(\"gotcha\")\u003c/script\u003e"',
29            self.encoder.encode(bad_string))
30        self.assertEqual(
31            bad_string, self.decoder.decode(
32                self.encoder.encode(bad_string)))
Note: See TracBrowser for help on using the repository browser.