[IMP] removed dependency to pyquery
[odoo/odoo.git] / openerp / tests / test_html_sanitize.py
1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
3 import unittest
4 from openerp.tools.html_sanitize import html_sanitize
5
6 test_case = """
7 <font size="2" style="color: rgb(31, 31, 31); font-family: monospace; font-variant: normal; line-height: normal; ">test1</font>
8 <div style="color: rgb(31, 31, 31); font-family: monospace; font-variant: normal; line-height: normal; font-size: 12px; font-style: normal; ">
9 <b>test2</b></div><div style="color: rgb(31, 31, 31); font-family: monospace; font-variant: normal; line-height: normal; font-size: 12px; ">
10 <i>test3</i></div><div style="color: rgb(31, 31, 31); font-family: monospace; font-variant: normal; line-height: normal; font-size: 12px; ">
11 <u>test4</u></div><div style="color: rgb(31, 31, 31); font-family: monospace; font-variant: normal; line-height: normal; font-size: 12px; ">
12 <strike>test5</strike></div><div style="color: rgb(31, 31, 31); font-family: monospace; font-variant: normal; line-height: normal; ">
13 <font size="5">test6</font></div><div><ul><li><font color="#1f1f1f" face="monospace" size="2">test7</font></li><li>
14 <font color="#1f1f1f" face="monospace" size="2">test8</font></li></ul><div><ol><li><font color="#1f1f1f" face="monospace" size="2">test9</font>
15 </li><li><font color="#1f1f1f" face="monospace" size="2">test10</font></li></ol></div></div>
16 <blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div><div><div><font color="#1f1f1f" face="monospace" size="2">
17 test11</font></div></div></div></blockquote><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;">
18 <blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div><font color="#1f1f1f" face="monospace" size="2">
19 test12</font></div><div><font color="#1f1f1f" face="monospace" size="2"><br></font></div></blockquote></blockquote>
20 <font color="#1f1f1f" face="monospace" size="2"><a href="http://google.com">google</a></font>
21 <a href="javascript:alert('malicious code')">test link</a>
22 """
23
24 class TestSanitizer(unittest.TestCase):
25
26     def test_simple(self):
27         x = "yop"
28         self.assertEqual(x, html_sanitize(x))
29         
30     def test_trailing_text(self):
31         x = 'lala<p>yop</p>xxx'
32         self.assertEqual(x, html_sanitize(x))
33     
34     def test_no_exception(self):
35         html_sanitize(test_case)
36         
37     def test_unicode(self):
38         html_sanitize("Merci à l'intérêt pour notre produit.nous vous contacterons bientôt. Merci")
39
40 if __name__ == '__main__':
41     unittest.main()