1 """testcases for cssutils.css.CSSUnkownRule"""
2 __author__ = '$LastChangedBy: cthedot $'
3 __date__ = '$LastChangedDate: 2008-02-12 23:43:05 +0100 (Di, 12 Feb 2008) $'
4 __version__ = '$LastChangedRevision: 1049 $'
5
6 import xml.dom
7 import test_cssrule
8 import cssutils
9
11
18
20 "CSSUnknownRule.type and init"
21 super(CSSUnknownRuleTestCase, self).test_init()
22
23 self.assertFalse(self.r.wellformed)
24
25
26 r = cssutils.css.CSSUnknownRule(cssText=u'@init;')
27 self.assertEqual(u'@init', r.atkeyword)
28 self.assertEqual(u'@init;', r.cssText)
29 self.assertTrue(r.wellformed)
30
31
32 r = cssutils.css.CSSUnknownRule(cssText=u'@-init;')
33 self.assertEqual(u'@-init;', r.cssText)
34 self.assertEqual(u'@-init', r.atkeyword)
35 self.assertTrue(r.wellformed)
36
37 r = cssutils.css.CSSUnknownRule(cssText=u'@_w-h-a-012;')
38 self.assertEqual(u'@_w-h-a-012;', r.cssText)
39 self.assertEqual(u'@_w-h-a-012', r.atkeyword)
40 self.assertTrue(r.wellformed)
41
42
43 r = cssutils.css.CSSUnknownRule(cssText=u'@init xxx;')
44 self.assertEqual(u'@init', r.atkeyword)
45 self.assertEqual(u'@init xxx;', r.cssText)
46 self.assertTrue(r.wellformed)
47
48
49 r = cssutils.css.CSSUnknownRule(cssText=u'@init { xxx }')
50 self.assertEqual(u'@init', r.atkeyword)
51 self.assertEqual(u'@init {\n xxx\n }', r.cssText)
52 self.assertTrue(r.wellformed)
53
54
55 r = cssutils.css.CSSUnknownRule(cssText=u'@init xxx { yyy }')
56 self.assertEqual(u'@init', r.atkeyword)
57 self.assertEqual(u'@init xxx {\n yyy\n }', r.cssText)
58 self.assertTrue(r.wellformed)
59
63
64 - def test_cssText(self):
65 "CSSUnknownRule.cssText"
66 tests = {
67 '@x;': None,
68 '@x {}': u'@x {\n}',
69 '@x{ \n \t \f\r}': u'@x {\n}',
70 '@x {\n [()]([ {\n }]) {\n }\n }': None,
71 '@a {\n @b;\n }': None,
72 '''@a {
73 @b {
74 x: 1x;
75 y: 2y;
76 }
77 }''': None,
78 '@x "string" url(x);': None,
79 "@x'string'url('x');": '@x "string" url(x);',
80 }
81 self.do_equal_p(tests)
82 self.do_equal_r(tests)
83
85 "CSSUnknownRule.cssText"
86
87 self.assertRaises(xml.dom.InvalidModificationErr,
88 self.r._setCssText, '@;')
89 self.assertRaises(xml.dom.InvalidModificationErr,
90 self.r._setCssText, '@{}')
91 self.assertRaises(xml.dom.InvalidModificationErr,
92 self.r._setCssText, '@ ;')
93 self.assertRaises(xml.dom.InvalidModificationErr,
94 self.r._setCssText, '@ {}')
95
96 self.assertRaises(xml.dom.SyntaxErr, self.r._setCssText, '@x {}{}')
97 self.assertRaises(xml.dom.SyntaxErr, self.r._setCssText, '@x {};')
98 self.assertRaises(xml.dom.SyntaxErr, self.r._setCssText, '@x ;{}')
99 self.assertRaises(xml.dom.SyntaxErr, self.r._setCssText, '@x ;;')
100 self.assertRaises(xml.dom.SyntaxErr, self.r._setCssText, '@x } ')
101 self.assertRaises(xml.dom.SyntaxErr, self.r._setCssText, '@x } ;')
102 self.assertRaises(xml.dom.SyntaxErr, self.r._setCssText, '@x { ')
103 self.assertRaises(xml.dom.SyntaxErr, self.r._setCssText, '@x { ;')
104 self.assertRaises(xml.dom.SyntaxErr, self.r._setCssText, '@x ')
105 self.assertRaises(xml.dom.SyntaxErr, self.r._setCssText, '@x (;')
106 self.assertRaises(xml.dom.SyntaxErr, self.r._setCssText, '@x );')
107 self.assertRaises(xml.dom.SyntaxErr, self.r._setCssText, '@x [;')
108 self.assertRaises(xml.dom.SyntaxErr, self.r._setCssText, '@x ];')
109 self.assertRaises(xml.dom.SyntaxErr, self.r._setCssText, '@x {[(]()}')
110
112 "CSSUnknownRule.__repr__(), .__str__()"
113 s = cssutils.css.CSSUnknownRule(cssText='@x;')
114
115 s2 = eval(repr(s))
116 self.assert_(isinstance(s2, s.__class__))
117
118
119 if __name__ == '__main__':
120 import unittest
121 unittest.main()
122