1 """testcases for cssutils.CSSSerializer
2 """
3 __author__ = '$LastChangedBy: doerwalter $'
4 __date__ = '$LastChangedDate: 2007-08-02 22:58:23 +0200 (Do, 02 Aug 2007) $'
5 __version__ = '0.9.2a1, $LastChangedRevision: 160 $'
6
7 import basetest
8 import cssutils
9
10
12 """
13 testcases for cssutils.CSSSerializer
14 """
15
16
17
18
21
22
24 "Preferences"
25 self._resetprefs()
26 self.assertEqual(cssutils.ser.prefs.defaultAtKeyword,
27 True)
28 self.assertEqual(cssutils.ser.prefs.defaultPropertyName,
29 True)
30 self.assertEqual(cssutils.ser.prefs.importHrefFormat,
31 None)
32 self.assertEqual(cssutils.ser.prefs.indent,
33 4*u' ')
34 self.assertEqual(cssutils.ser.prefs.keepComments,
35 True)
36 self.assertEqual(cssutils.ser.prefs.keepAllProperties,
37 False)
38 self.assertEqual(cssutils.ser.prefs.lineNumbers,
39 False)
40 self.assertEqual(cssutils.ser.prefs.removeInvalid,
41 True)
42 self.assertEqual(cssutils.ser.prefs.setBOM,
43 False)
44
45
56
57
59 "CSSSerializer Preferences.defaultPropertyName"
60
61
62
63 s = cssutils.parseString(u'a { c\olor: green; }')
64 self.assertEqual(u'a {\n color: green\n }', s.cssText)
65 cssutils.ser.prefs.defaultPropertyName = True
66 self.assertEqual(u'a {\n color: green\n }', s.cssText)
67 cssutils.ser.prefs.defaultPropertyName = False
68 self.assertEqual(u'a {\n c\\olor: green\n }', s.cssText)
69
70 s = cssutils.parseString(u'a { color: red; c\olor: green; }')
71 self.assertEqual(u'a {\n c\\olor: green\n }', s.cssText)
72 cssutils.ser.prefs.defaultPropertyName = False
73 self.assertEqual(u'a {\n c\\olor: green\n }', s.cssText)
74 cssutils.ser.prefs.defaultPropertyName = True
75 self.assertEqual(u'a {\n color: green\n }', s.cssText)
76
77 self._resetprefs()
78
79
96
97
99 "CSSSerializer Preferences.lineNumbers"
100 s = cssutils.parseString('a {top: 1; left: 2}')
101 exp0 = '''a {
102 top: 1;
103 left: 2
104 }'''
105 exp1 = '''1: a {
106 2: top: 1;
107 3: left: 2
108 4: }'''
109 self.assertEqual(False, cssutils.ser.prefs.lineNumbers)
110 self.assertEqual(exp0, s.cssText)
111 cssutils.ser.prefs.lineNumbers = True
112 self.assertEqual(True, cssutils.ser.prefs.lineNumbers)
113 self.assertEqual(exp1, s.cssText)
114
115 self._resetprefs()
116
117
125
126
128 "CSSSerializer Preferences.keepAllProperties"
129 css = '''a {
130 color: pink;
131 color: red;
132 c\olor: blue;
133 c\olor: green;
134 }'''
135 s = cssutils.parseString(css)
136
137 self.assertEqual('a {\n color: green\n }', s.cssText)
138
139 cssutils.ser.prefs.keepAllProperties = True
140 self.assertEqual('a {\n color: pink;\n color: red;\n c\olor: blue;\n c\olor: green\n }', s.cssText)
141
142 self._resetprefs()
143
144
146 "CSSSerializer 'CSSImportrule.href format'"
147 r0 = cssutils.css.CSSImportRule(u'not')
148 r1 = cssutils.css.CSSImportRule(u'str', hreftype="string")
149 r2 = cssutils.css.CSSImportRule(u'uri', hreftype="uri")
150 self.assertEqual('@import url(not);', r0.cssText)
151 self.assertEqual('@import "str";', r1.cssText)
152 self.assertEqual('@import url(uri);', r2.cssText)
153
154 cssutils.ser.prefs.importHrefFormat = 'string'
155 self.assertEqual('@import "not";', r0.cssText)
156 self.assertEqual('@import "str";', r1.cssText)
157 self.assertEqual('@import "uri";', r2.cssText)
158
159 cssutils.ser.prefs.importHrefFormat = 'uri'
160 self.assertEqual('@import url(not);', r0.cssText)
161 self.assertEqual('@import url(str);', r1.cssText)
162 self.assertEqual('@import url(uri);', r2.cssText)
163
164 cssutils.ser.prefs.importHrefFormat = 'not defined'
165 self.assertEqual('@import url(not);', r0.cssText)
166 self.assertEqual('@import "str";', r1.cssText)
167 self.assertEqual('@import url(uri);', r2.cssText)
168
169 self._resetprefs()
170
171
172 if __name__ == '__main__':
173 import unittest
174 unittest.main()
175