1 """testcases for cssutils.CSSSerializer
2 """
3 __author__ = '$LastChangedBy: cthedot $'
4 __date__ = '$LastChangedDate: 2007-08-26 14:32:27 +0200 (So, 26 Aug 2007) $'
5 __version__ = '$LastChangedRevision: 276 $'
6
7 import basetest
8 import cssutils
9
11 """
12 testcases for cssutils.CSSSerializer
13 """
14
15
16
19
21 "Preferences"
22 self._resetprefs()
23 self.assertEqual(cssutils.ser.prefs.defaultAtKeyword, True)
24 self.assertEqual(cssutils.ser.prefs.defaultPropertyName, True)
25 self.assertEqual(cssutils.ser.prefs.importHrefFormat, None)
26 self.assertEqual(cssutils.ser.prefs.indent, 4 * u' ')
27 self.assertEqual(cssutils.ser.prefs.keepAllProperties, False)
28 self.assertEqual(cssutils.ser.prefs.keepComments, True)
29 self.assertEqual(cssutils.ser.prefs.lineNumbers, False)
30 self.assertEqual(cssutils.ser.prefs.lineSeparator, u'\n')
31 self.assertEqual(cssutils.ser.prefs.omitLastSemicolon, True)
32 self.assertEqual(cssutils.ser.prefs.removeInvalid, True)
33
44
46 "CSSSerializer Preferences.defaultPropertyName"
47
48
49
50 s = cssutils.parseString(u'a { c\olor: green; }')
51 self.assertEqual(u'a {\n color: green\n }', s.cssText)
52 cssutils.ser.prefs.defaultPropertyName = True
53 self.assertEqual(u'a {\n color: green\n }', s.cssText)
54 cssutils.ser.prefs.defaultPropertyName = False
55 self.assertEqual(u'a {\n c\\olor: green\n }', s.cssText)
56
57 s = cssutils.parseString(u'a { color: red; c\olor: green; }')
58 self.assertEqual(u'a {\n c\\olor: green\n }', s.cssText)
59 cssutils.ser.prefs.defaultPropertyName = False
60 self.assertEqual(u'a {\n c\\olor: green\n }', s.cssText)
61 cssutils.ser.prefs.defaultPropertyName = True
62 self.assertEqual(u'a {\n color: green\n }', s.cssText)
63
64 self._resetprefs()
65
91
93 "CSSSerializer Preferences.ident"
94 s = cssutils.parseString(u'a { left: 0 }')
95 exp4 = u'''a {
96 left: 0
97 }'''
98 exp1 = u'''a {
99 left: 0
100 }'''
101 self.assertEqual(exp4, s.cssText)
102 cssutils.ser.prefs.indent = ' '
103 self.assertEqual(exp1, s.cssText)
104 cssutils.ser.prefs.indent = ' '
105 self.assertEqual(exp4, s.cssText)
106
107 self._resetprefs()
108
110 "CSSSerializer Preferences.lineNumbers"
111 s = cssutils.parseString('a {top: 1; left: 2}')
112 exp0 = '''a {
113 top: 1;
114 left: 2
115 }'''
116 exp1 = '''1: a {
117 2: top: 1;
118 3: left: 2
119 4: }'''
120 self.assertEqual(False, cssutils.ser.prefs.lineNumbers)
121 self.assertEqual(exp0, s.cssText)
122 cssutils.ser.prefs.lineNumbers = True
123 self.assertEqual(True, cssutils.ser.prefs.lineNumbers)
124 self.assertEqual(exp1, s.cssText)
125
126 self._resetprefs()
127
129 "CSSSerializer Preferences.lineSeparator"
130 s = cssutils.parseString('a { x:1;y:2}')
131 self.assertEqual('a {\n x: 1;\n y: 2\n }', s.cssText)
132
133 cssutils.ser.prefs.lineSeparator = u''
134 self.assertEqual('a {x: 1;y: 2 }', s.cssText)
135
136 cssutils.ser.prefs.lineSeparator = u'XXX'
137 self.assertEqual('a {XXX x: 1;XXX y: 2XXX }', s.cssText)
138
139 self._resetprefs()
140
148
150 "CSSSerializer Preferences.keepAllProperties"
151 css = '''a {
152 color: pink;
153 color: red;
154 c\olor: blue;
155 c\olor: green;
156 }'''
157 s = cssutils.parseString(css)
158
159 self.assertEqual(u'a {\n color: green\n }', s.cssText)
160
161 cssutils.ser.prefs.keepAllProperties = True
162 self.assertEqual(u'a {\n color: pink;\n color: red;\n c\olor: blue;\n c\olor: green\n }', s.cssText)
163
164 self._resetprefs()
165
185
186
187 if __name__ == '__main__':
188 import unittest
189 unittest.main()
190