1 """Testcases for cssutils.css.CSSStyleRuleTestCase"""
2 __version__ = '$Id: test_cssstylerule.py 1116 2008-03-05 13:52:23Z cthedot $'
3
4 import xml.dom
5 import test_cssrule
6 import cssutils
7
9
16
27
28 - def test_cssText(self):
29 "CSSStyleRule.cssText"
30 tests = {
31 u'* {}': u'',
32 u'a {}': u'',
33 }
34 self.do_equal_p(tests)
35
36
37 cssutils.ser.prefs.keepEmptyRules = True
38 tests = {
39 u'''a\n{color: #000}''': 'a {\n color: #000\n }',
40 u'''a\n{color: #000000}''': 'a {\n color: #000000\n }',
41 u'''a\n{color: #abc}''': 'a {\n color: #abc\n }',
42 u'''a\n{color: #abcdef}''': 'a {\n color: #abcdef\n }',
43 u'''a\n{color: #00a}''': 'a {\n color: #00a\n }',
44 u'''a\n{color: #1a1a1a}''': 'a {\n color: #1a1a1a\n }',
45 u'''#id\n{ color: red }''': '#id {\n color: red\n }',
46 u'''* {}''': None,
47 u'a {}': None,
48 u'b { a: 1; }': u'b {\n a: 1\n }',
49
50 u'c1 {/*1*/a:1;}': u'c1 {\n /*1*/\n a: 1\n }',
51 u'c2 {a:1;/*2*/}': u'c2 {\n a: 1;\n /*2*/\n }',
52 u'd1 {/*0*/}': u'd1 {\n /*0*/\n }',
53 u'd2 {/*0*//*1*/}': u'd2 {\n /*0*/\n /*1*/\n }',
54
55
56 u'''a/*1*//*2*/,/*3*//*4*/b/*5*//*6*/{color: #000}''':
57 u'a/*1*//*2*/, /*3*//*4*/b/*5*//*6*/ {\n color: #000\n }',
58
59 u'''a,b{color: #000}''': 'a, b {\n color: #000\n }',
60 u'''a\n\r\t\f ,\n\r\t\f b\n\r\t\f {color: #000}''': 'a, b {\n color: #000\n }',
61 }
62 self.do_equal_p(tests)
63 self.do_equal_r(tests)
64
65 tests = {
66 u'''a;''': xml.dom.SyntaxErr,
67 u'''a {{}''': xml.dom.SyntaxErr,
68 u'''a }''': xml.dom.SyntaxErr,
69 }
70 self.do_raise_p(tests)
71 tests.update({
72 u'''/*x*/''': xml.dom.SyntaxErr,
73 u'''a {''': xml.dom.SyntaxErr,
74
75 u'''a {}x''': xml.dom.SyntaxErr,
76 u'''a {/**/''': xml.dom.SyntaxErr,
77 u'''a {} ''': xml.dom.SyntaxErr,
78 })
79 self.do_raise_r(tests)
80 cssutils.ser.prefs.useDefaults()
81
97
99 "CSSStyleRule.selectorText"
100 r = cssutils.css.CSSStyleRule()
101
102 r.selectorText = u'a'
103 self.assertEqual(1, r.selectorList.length)
104 self.assertEqual(u'a', r.selectorText)
105
106 r.selectorText = u' b, h1 '
107 self.assertEqual(2, r.selectorList.length)
108 self.assertEqual(u'b, h1', r.selectorText)
109
118
129
130
131
132
133
135 "CSSStyleRule.__repr__(), .__str__()"
136 sel=u'a > b + c'
137
138 s = cssutils.css.CSSStyleRule(selectorText=sel)
139
140 self.assert_(sel in str(s))
141
142 s2 = eval(repr(s))
143 self.assert_(isinstance(s2, s.__class__))
144 self.assert_(sel == s2.selectorText)
145
146
147 if __name__ == '__main__':
148 import unittest
149 unittest.main()
150