1
2 """
3 testcases for cssutils.util
4 """
5 __author__ = '$LastChangedBy: cthedot $'
6 __date__ = '$LastChangedDate: 2007-06-13 20:38:01 +0200 (Mi, 13 Jun 2007) $'
7 __version__ = '0.9.2a2, $LastChangedRevision: 56 $'
8
9 import sys
10 import xml.dom
11
12 import basetest
13
14 from cssutils.token import Token
15 from cssutils.util import Base
16
17
19
21 "util.Base._tokensupto()"
22
23
24 b = Base()
25
26
27 tests = [
28 (1, u'a[{1}]({2}) { } NOT', u'a[{1}]({2}) { }', False),
29 (1, u'a[{1}]({2}) { } NOT', u'a[{1}]func({2}) { }', True),
30 (2, u'a[{1}]({2}) { NOT', u'a[{1}]({2}) {', False),
31 (2, u'a[{1}]({2}) { NOT', u'a[{1}]func({2}) {', True),
32 (4, u'a[(2)1] { }2 : a;', u'a[(2)1] { }2 :', False),
33 (4, u'a[(2)1] { }2 : a;', u'a[func(2)1] { }2 :', True),
34 (5, u'a{;{;}[;](;)}[;{;}[;](;)](;{;}[;](;)) 1; NOT',
35 u'a{;{;}[;](;)}[;{;}[;](;)](;{;}[;](;)) 1;', False),
36 (5, u'a{;{;}[;](;)}[;{;}[;](;)](;{;}[;](;)) 1; NOT',
37 u'a{;{;}[;]func(;)}[;{;}[;]func(;)]func(;{;}[;]func(;)) 1;', True),
38 (7, u'a{[1]}([3])[{[1]}[2]([3])] NOT',
39 u'a{[1]}([3])[{[1]}[2]([3])]', False),
40 (7, u'a{[1]}([3])[{[1]}[2]([3])] NOT',
41 u'a{[1]}func([3])[{[1]}[2]func([3])]', True),
42 (8, u'a[()]{()}([()]{()}()) NOT',
43 u'a[()]{()}([()]{()}())', False),
44 (8, u'a[()]{()}([()]{()}()) NOT',
45 u'a[func()]{func()}func([func()]{func()}func())', True)
46 ]
47
48 for callid, values, exp, paransasfunc in tests:
49
50 def maketokens(valuelist):
51
52 return [Token(value=v) for v in valuelist]
53
54 tokens = maketokens(list(values))
55 if paransasfunc:
56 for i, t in enumerate(tokens):
57 if u'(' == t.value:
58 tokens[i].value = u'func('
59 tokens[i].type = Token.FUNCTION
60
61 if 1 == callid:
62 restokens, i = b._tokensupto(tokens)
63 elif 2 == callid:
64 restokens, i = b._tokensupto(
65 tokens, blockstartonly=True)
66 elif 4 == callid:
67 restokens, i = b._tokensupto(
68 tokens, propertynameendonly=True)
69 elif 5 == callid:
70 restokens, i = b._tokensupto(
71 tokens, propertyvalueendonly=True)
72 elif 8 == callid:
73 restokens, i = b._tokensupto(
74 tokens, funcendonly=True)
75 elif 7 == callid:
76 restokens, i = b._tokensupto(
77 tokens, selectorattendonly=True)
78
79
80 res = u''.join([t.value for t in restokens])
81
82 self.assertEqual(True, (lambda x: i > 1)(i))
83 self.assertEqual(exp, res)
84
85
86
87 if __name__ == '__main__':
88 import unittest
89 unittest.main()
90