1 """Testcases for cssutils.css.selectorlist.SelectorList."""
2 __author__ = '$LastChangedBy: cthedot $'
3 __date__ = '$LastChangedDate: 2007-11-25 18:04:08 +0100 (So, 25 Nov 2007) $'
4 __version__ = '$LastChangedRevision: 693 $'
5
6 import xml.dom
7 import basetest
8 from cssutils.css.selectorlist import SelectorList
9
11
14
27
29 "SelectorList.appendSelector() and .length"
30 s = SelectorList()
31 s.appendSelector('a')
32 self.assertEqual(1, s.length)
33
34 self.assertRaises(xml.dom.InvalidModificationErr,
35 s.appendSelector, 'b,')
36 self.assertEqual(1, s.length)
37
38 self.assertEqual(u'a', s.selectorText)
39
40 s.append('b')
41 self.assertEqual(2, s.length)
42 self.assertEqual(u'a, b', s.selectorText)
43
44 s.append('a')
45 self.assertEqual(2, s.length)
46 self.assertEqual(u'b, a', s.selectorText)
47
48
49 self.assertRaises(IndexError, s.__setitem__, 4, 'x')
50 s[1] = 'c'
51 self.assertEqual(2, s.length)
52 self.assertEqual(u'b, c', s.selectorText)
53
54
55
56
57
58
59
61 "SelectorList.selectorText"
62 s = SelectorList()
63 s.selectorText = u'a, b'
64 self.assertEqual(u'a, b', s.selectorText)
65 self.assertRaises(xml.dom.SyntaxErr, s._setSelectorText, u',')
66
67 self.assertEqual(u'a, b', s.selectorText)
68
69 tests = {
70 u'*': None,
71 u'/*1*/*': None,
72 u'/*1*/*, a': None,
73 u'a, b': None,
74 u'a ,b': u'a, b',
75 u'a , b': u'a, b',
76 u'a, b, c': u'a, b, c',
77 u'#a, x#a, .b, x.b': u'#a, x#a, .b, x.b',
78 }
79
80 self.do_equal_r(tests, att='selectorText')
81
82 tests = {
83 u'': xml.dom.SyntaxErr,
84 u' ': xml.dom.SyntaxErr,
85 u',': xml.dom.SyntaxErr,
86 u'a,': xml.dom.SyntaxErr,
87 u',a': xml.dom.SyntaxErr,
88 u'/* 1 */,a': xml.dom.SyntaxErr,
89 }
90
91 self.do_raise_r(tests, att='_setSelectorText')
92
93
94 if __name__ == '__main__':
95 import unittest
96 unittest.main()
97