Package cssutils :: Package tests :: Module test_serialize
[hide private]
[frames] | no frames]

Source Code for Module cssutils.tests.test_serialize

  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   
11 -class CSSSerializerTestCase(basetest.BaseTestCase):
12 """ 13 testcases for cssutils.CSSSerializer 14 """ 15 ## def test_init(self): 16 ## "CSSSerializer.__init__()" 17 18
19 - def _resetprefs(self):
21 22
23 - def test_preferences(self):
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
46 - def test_defaultAtKeyword(self):
47 "CSSSerializer Preferences.defaultAtKeyword" 48 s = cssutils.parseString('@im\port "x";') 49 self.assertEqual('@import "x";', s.cssText) 50 cssutils.ser.prefs.defaultAtKeyword = True 51 self.assertEqual('@import "x";', s.cssText) 52 cssutils.ser.prefs.defaultAtKeyword = False 53 self.assertEqual('@im\\port "x";', s.cssText) 54 55 self._resetprefs()
56 57
58 - def test_defaultPropertyName(self):
59 "CSSSerializer Preferences.defaultPropertyName" 60 # does not actually work as once the name is set it is used also if used with 61 # a backslash in it later... 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
80 - def test_indent(self):
81 "CSSSerializer Preferences.ident" 82 s = cssutils.parseString('a { left: 0 }') 83 exp4 = '''a { 84 left: 0 85 }''' 86 exp1 = '''a { 87 left: 0 88 }''' 89 self.assertEqual(exp4, s.cssText) 90 cssutils.ser.prefs.indent = ' ' 91 self.assertEqual(exp1, s.cssText) 92 cssutils.ser.prefs.indent = ' ' 93 self.assertEqual(exp4, s.cssText) 94 95 self._resetprefs()
96 97
98 - def test_lineNumbers(self):
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
118 - def test_keepComments(self):
119 "CSSSerializer Preferences.keepComments" 120 s = cssutils.parseString('/*1*/ a { /*2*/ }') 121 cssutils.ser.prefs.keepComments = False 122 self.assertEqual('a {}', s.cssText) 123 124 self._resetprefs()
125 126
127 - def test_keepAllProperties(self):
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 # keep only last 137 self.assertEqual('a {\n color: green\n }', s.cssText) 138 # keep all 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
145 - def test_CSSImportRule(self):
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