1
2 """testcases for cssutils.CSSSerializer
3 """
4 __author__ = '$LastChangedBy: cthedot $'
5 __date__ = '$LastChangedDate: 2007-11-01 22:39:58 +0100 (Do, 01 Nov 2007) $'
6 __version__ = '$LastChangedRevision: 622 $'
7
8 import basetest
9 import cssutils
10
12 """
13 testcases for cssutils.CSSSerializer
14 """
15
16
17
19 "Preferences.useDefaults()"
20 cssutils.ser.prefs.useDefaults()
21 self.assertEqual(cssutils.ser.prefs.defaultAtKeyword, True)
22 self.assertEqual(cssutils.ser.prefs.defaultPropertyName, True)
23 self.assertEqual(cssutils.ser.prefs.importHrefFormat, None)
24 self.assertEqual(cssutils.ser.prefs.indent, 4 * u' ')
25 self.assertEqual(cssutils.ser.prefs.keepAllProperties, True)
26 self.assertEqual(cssutils.ser.prefs.keepComments, True)
27 self.assertEqual(cssutils.ser.prefs.keepEmptyRules, False)
28 self.assertEqual(cssutils.ser.prefs.lineNumbers, False)
29 self.assertEqual(cssutils.ser.prefs.lineSeparator, u'\n')
30 self.assertEqual(cssutils.ser.prefs.listItemSpacer, u' ')
31 self.assertEqual(cssutils.ser.prefs.omitLastSemicolon, True)
32 self.assertEqual(cssutils.ser.prefs.paranthesisSpacer, u' ')
33 self.assertEqual(cssutils.ser.prefs.propertyNameSpacer, u' ')
34 self.assertEqual(cssutils.ser.prefs.validOnly, False)
35 self.assertEqual(cssutils.ser.prefs.wellformedOnly, True)
36
37 self.assertEqual(cssutils.ser.prefs.removeInvalid, True)
38
40 "Preferences.useMinified()"
41 cssutils.ser.prefs.useDefaults()
42 cssutils.ser.prefs.useMinified()
43 self.assertEqual(cssutils.ser.prefs.defaultAtKeyword, True)
44 self.assertEqual(cssutils.ser.prefs.defaultPropertyName, True)
45 self.assertEqual(cssutils.ser.prefs.importHrefFormat, 'string')
46 self.assertEqual(cssutils.ser.prefs.indent, u'')
47 self.assertEqual(cssutils.ser.prefs.keepAllProperties, True)
48 self.assertEqual(cssutils.ser.prefs.keepComments, False)
49 self.assertEqual(cssutils.ser.prefs.keepEmptyRules, False)
50 self.assertEqual(cssutils.ser.prefs.lineNumbers, False)
51 self.assertEqual(cssutils.ser.prefs.lineSeparator, u'')
52 self.assertEqual(cssutils.ser.prefs.listItemSpacer, u'')
53 self.assertEqual(cssutils.ser.prefs.omitLastSemicolon, True)
54 self.assertEqual(cssutils.ser.prefs.paranthesisSpacer, u'')
55 self.assertEqual(cssutils.ser.prefs.propertyNameSpacer, u'')
56 self.assertEqual(cssutils.ser.prefs.validOnly, False)
57 self.assertEqual(cssutils.ser.prefs.wellformedOnly, True)
58
59 self.assertEqual(cssutils.ser.prefs.removeInvalid, True)
60
61 css = u'''
62 /*1*/
63 @import url(x) tv , print;
64 @media all {}
65 @media all {
66 a {}
67 }
68 @media all {
69 a { color: red; }
70 }
71 @page {}
72 a {}
73 a , b { top : 1px ;
74 font-family : arial , 'some'
75 }
76 '''
77 s = cssutils.parseString(css)
78 self.assertEqual(s.cssText,
79 u'''@import "x" tv,print;@media all{a{color:red}}a,b{top:1px;font-family:arial,'some'}'''
80 )
81
92
94 "Preferences.defaultPropertyName"
95 cssutils.ser.prefs.useDefaults()
96 cssutils.ser.prefs.keepAllProperties = False
97
98
99
100
101 s = cssutils.parseString(u'a { c\olor: green; }')
102 self.assertEqual(u'a {\n color: green\n }', s.cssText)
103 cssutils.ser.prefs.defaultPropertyName = True
104 self.assertEqual(u'a {\n color: green\n }', s.cssText)
105 cssutils.ser.prefs.defaultPropertyName = False
106 self.assertEqual(u'a {\n c\\olor: green\n }', s.cssText)
107
108 s = cssutils.parseString(u'a { color: red; c\olor: green; }')
109 self.assertEqual(u'a {\n c\\olor: green\n }', s.cssText)
110 cssutils.ser.prefs.defaultPropertyName = False
111 self.assertEqual(u'a {\n c\\olor: green\n }', s.cssText)
112 cssutils.ser.prefs.defaultPropertyName = True
113 self.assertEqual(u'a {\n color: green\n }', s.cssText)
114
140
156
158 "Preferences.keepAllProperties"
159 cssutils.ser.prefs.useDefaults()
160
161 css = '''a {
162 color: pink;
163 color: red;
164 c\olor: blue;
165 c\olor: green;
166 }'''
167 s = cssutils.parseString(css)
168
169 cssutils.ser.prefs.keepAllProperties = False
170 self.assertEqual(u'a {\n color: green\n }', s.cssText)
171
172 cssutils.ser.prefs.keepAllProperties = True
173 self.assertEqual(u'a {\n color: pink;\n color: red;\n c\olor: blue;\n c\olor: green\n }', s.cssText)
174
184
186 "Preferences.keepEmptyRules"
187
188 css = u'''a {}
189 a {
190 /*1*/
191 }
192 a {
193 color: red
194 }'''
195 s = cssutils.parseString(css)
196 cssutils.ser.prefs.useDefaults()
197 cssutils.ser.prefs.keepEmptyRules = True
198 self.assertEqual(css, s.cssText)
199 cssutils.ser.prefs.keepEmptyRules = False
200 self.assertEqual(u'a {\n /*1*/\n }\na {\n color: red\n }',
201 s.cssText)
202 cssutils.ser.prefs.keepComments = False
203 self.assertEqual(u'a {\n color: red\n }',
204 s.cssText)
205
206
207 css = u'''@media tv {
208 }
209 @media all {
210 /*1*/
211 }
212 @media print {
213 a {}
214 }
215 @media print {
216 a {
217 /*1*/
218 }
219 }
220 @media all {
221 a {
222 color: red
223 }
224 }'''
225 s = cssutils.parseString(css)
226 cssutils.ser.prefs.useDefaults()
227 cssutils.ser.prefs.keepEmptyRules = True
228
229 cssutils.ser.prefs.keepEmptyRules = False
230 self.assertEqual('''@media all {
231 /*1*/
232 }
233 @media print {
234 a {
235 /*1*/
236 }
237 }
238 @media all {
239 a {
240 color: red
241 }
242 }''', s.cssText)
243 cssutils.ser.prefs.keepComments = False
244 self.assertEqual('''@media all {
245 a {
246 color: red
247 }
248 }''', s.cssText)
249
251 "Preferences.lineNumbers"
252 cssutils.ser.prefs.useDefaults()
253
254 s = cssutils.parseString('a {top: 1; left: 2}')
255 exp0 = '''a {
256 top: 1;
257 left: 2
258 }'''
259 exp1 = '''1: a {
260 2: top: 1;
261 3: left: 2
262 4: }'''
263 self.assertEqual(False, cssutils.ser.prefs.lineNumbers)
264 self.assertEqual(exp0, s.cssText)
265 cssutils.ser.prefs.lineNumbers = True
266 self.assertEqual(True, cssutils.ser.prefs.lineNumbers)
267 self.assertEqual(exp1, s.cssText)
268
281
294
304
313
322
335
336
337
338
356
357
358 if __name__ == '__main__':
359 import unittest
360 unittest.main()
361