1 """testcases for cssutils.css.CSSUnkownRule"""
2 __version__ = '$Id: test_cssunknownrule.py 1175 2008-03-20 17:43:26Z cthedot $'
3
4 import xml.dom
5 import test_cssrule
6 import cssutils
7
9
16
18 "CSSUnknownRule.type and init"
19 super(CSSUnknownRuleTestCase, self).test_init()
20
21 self.assertFalse(self.r.wellformed)
22
23
24 r = cssutils.css.CSSUnknownRule(cssText=u'@init;')
25 self.assertEqual(u'@init', r.atkeyword)
26 self.assertEqual(u'@init;', r.cssText)
27 self.assertTrue(r.wellformed)
28
29
30 r = cssutils.css.CSSUnknownRule(cssText=u'@-init;')
31 self.assertEqual(u'@-init;', r.cssText)
32 self.assertEqual(u'@-init', r.atkeyword)
33 self.assertTrue(r.wellformed)
34
35 r = cssutils.css.CSSUnknownRule(cssText=u'@_w-h-a-012;')
36 self.assertEqual(u'@_w-h-a-012;', r.cssText)
37 self.assertEqual(u'@_w-h-a-012', r.atkeyword)
38 self.assertTrue(r.wellformed)
39
40
41 r = cssutils.css.CSSUnknownRule(cssText=u'@init xxx;')
42 self.assertEqual(u'@init', r.atkeyword)
43 self.assertEqual(u'@init xxx;', r.cssText)
44 self.assertTrue(r.wellformed)
45
46
47 r = cssutils.css.CSSUnknownRule(cssText=u'@init { xxx }')
48 self.assertEqual(u'@init', r.atkeyword)
49 self.assertEqual(u'@init {\n xxx\n }', r.cssText)
50 self.assertTrue(r.wellformed)
51
52
53 r = cssutils.css.CSSUnknownRule(cssText=u'@init xxx { yyy }')
54 self.assertEqual(u'@init', r.atkeyword)
55 self.assertEqual(u'@init xxx {\n yyy\n }', r.cssText)
56 self.assertTrue(r.wellformed)
57
58 - def test_cssText(self):
59 "CSSUnknownRule.cssText"
60 tests = {
61 '@x;': None,
62 '@x {}': u'@x {\n}',
63 '@x{ \n \t \f\r}': u'@x {\n}',
64 '@x {\n [()]([ {\n }]) {\n }\n }': None,
65 '@x {\n @b;\n }': None,
66 '''@x {
67 @b {
68 x: 1x;
69 y: 2y;
70 }
71 }''': None,
72 '@x "string" url(x);': None,
73
74
75 '@x/*1*//*2*/"str"/*3*//*4*/url("x");':
76 '@x /*1*/ /*2*/ "str" /*3*/ /*4*/ url(x);',
77
78 '@x"string"url("x");': '@x "string" url(x);',
79 '@x\n\r\t\f "string"\n\r\t\f url(\n\r\t\f "x"\n\r\t\f )\n\r\t\f ;':
80 '@x "string" url(x);',
81 }
82 self.do_equal_p(tests)
83 self.do_equal_r(tests)
84
85 tests = {
86 u'@;': xml.dom.InvalidModificationErr,
87 u'@{}': xml.dom.InvalidModificationErr,
88 u'@ ;': xml.dom.InvalidModificationErr,
89 u'@ {};': xml.dom.InvalidModificationErr,
90
91 u'@x ;{}': xml.dom.SyntaxErr,
92 u'@x ;;': xml.dom.SyntaxErr,
93 u'@x } ': xml.dom.SyntaxErr,
94 u'@x } ;': xml.dom.SyntaxErr,
95 u'@x { ': xml.dom.SyntaxErr,
96 u'@x { ;': xml.dom.SyntaxErr,
97 u'@x ': xml.dom.SyntaxErr,
98 u'@x (;': xml.dom.SyntaxErr,
99 u'@x );': xml.dom.SyntaxErr,
100 u'@x [;': xml.dom.SyntaxErr,
101 u'@x ];': xml.dom.SyntaxErr,
102 u'@x {[(]()}': xml.dom.SyntaxErr,
103
104 u'@x{}{}': xml.dom.SyntaxErr,
105 u'@x{};': xml.dom.SyntaxErr,
106 u'@x{}1': xml.dom.SyntaxErr,
107 u'@x{} ': xml.dom.SyntaxErr,
108 u'@x{}/**/': xml.dom.SyntaxErr,
109 u'@x;1': xml.dom.SyntaxErr,
110 u'@x; ': xml.dom.SyntaxErr,
111 u'@x;/**/': xml.dom.SyntaxErr,
112
113 }
114 self.do_raise_r(tests)
115
119
121 "CSSUnknownRule.__repr__(), .__str__()"
122 s = cssutils.css.CSSUnknownRule(cssText='@x;')
123
124 s2 = eval(repr(s))
125 self.assert_(isinstance(s2, s.__class__))
126
127
128 if __name__ == '__main__':
129 import unittest
130 unittest.main()
131