gvsig-scripting / org.gvsig.scripting / trunk / org.gvsig.scripting / org.gvsig.scripting.app / org.gvsig.scripting.app.mainplugin / src / main / resources-plugin / scripting / lib / cssutils / tests / test_cssvariablesrule.py @ 475
History | View | Annotate | Download (5.44 KB)
1 |
"""Testcases for cssutils.css.CSSPageRule"""
|
---|---|
2 |
__version__ = '$Id: test_csspagerule.py 1869 2009-10-17 19:37:40Z cthedot $'
|
3 |
|
4 |
import xml.dom |
5 |
import test_cssrule |
6 |
import cssutils |
7 |
|
8 |
class CSSVariablesRuleTestCase(test_cssrule.CSSRuleTestCase): |
9 |
|
10 |
def setUp(self): |
11 |
super(CSSVariablesRuleTestCase, self).setUp() |
12 |
self.r = cssutils.css.CSSVariablesRule()
|
13 |
self.rRO = cssutils.css.CSSVariablesRule(readonly=True) |
14 |
self.r_type = cssutils.css.CSSPageRule.VARIABLES_RULE
|
15 |
self.r_typeString = 'VARIABLES_RULE' |
16 |
|
17 |
cssutils.ser.prefs.resolveVariables = False
|
18 |
|
19 |
def test_init(self): |
20 |
"CSSVariablesRule.__init__()"
|
21 |
super(CSSVariablesRuleTestCase, self).test_init() |
22 |
|
23 |
r = cssutils.css.CSSVariablesRule() |
24 |
self.assertEqual(cssutils.css.CSSVariablesDeclaration,
|
25 |
type(r.variables))
|
26 |
self.assertEqual(r, r.variables.parentRule)
|
27 |
|
28 |
# until any variables
|
29 |
self.assertEqual(u'', r.cssText) |
30 |
|
31 |
# only possible to set @... similar name
|
32 |
self.assertRaises(xml.dom.InvalidModificationErr,
|
33 |
self.r._setAtkeyword, 'x') |
34 |
|
35 |
def test_InvalidModificationErr(self): |
36 |
"CSSVariablesRule.cssText InvalidModificationErr"
|
37 |
self._test_InvalidModificationErr(u'@variables') |
38 |
tests = { |
39 |
u'@var {}': xml.dom.InvalidModificationErr,
|
40 |
} |
41 |
self.do_raise_r(tests)
|
42 |
|
43 |
def test_incomplete(self): |
44 |
"CSSVariablesRule (incomplete)"
|
45 |
tests = { |
46 |
u'@variables { ':
|
47 |
u'', # no } and no content |
48 |
u'@variables { x: red':
|
49 |
u'@variables {\n x: red\n }', # no } |
50 |
} |
51 |
self.do_equal_p(tests) # parse |
52 |
|
53 |
def test_cssText(self): |
54 |
"CSSVariablesRule"
|
55 |
EXP = u'@variables {\n margin: 0\n }'
|
56 |
tests = { |
57 |
u'@variables {}': u'', |
58 |
u'@variables {margin:0;}': EXP,
|
59 |
u'@variables {margin:0}': EXP,
|
60 |
u'@VaRIables { margin : 0 ; }': EXP,
|
61 |
u'@\\VaRIables { margin : 0 }': EXP,
|
62 |
|
63 |
u'@variables {a:1;b:2}':
|
64 |
u'@variables {\n a: 1;\n b: 2\n }',
|
65 |
|
66 |
# comments
|
67 |
u'@variables /*1*/ {margin:0;}':
|
68 |
u'@variables /*1*/ {\n margin: 0\n }',
|
69 |
u'@variables/*1*/{margin:0;}':
|
70 |
u'@variables /*1*/ {\n margin: 0\n }',
|
71 |
} |
72 |
self.do_equal_r(tests)
|
73 |
self.do_equal_p(tests)
|
74 |
|
75 |
def test_media(self): |
76 |
"CSSVariablesRule.media"
|
77 |
r = cssutils.css.CSSVariablesRule() |
78 |
self.assertRaises(AttributeError, r.__getattribute__, 'media') |
79 |
self.assertRaises(AttributeError, r.__setattr__, 'media', '?') |
80 |
|
81 |
def test_variables(self): |
82 |
"CSSVariablesRule.variables"
|
83 |
r = cssutils.css.CSSVariablesRule( |
84 |
variables=cssutils.css.CSSVariablesDeclaration('x: 1'))
|
85 |
self.assertEqual(r, r.variables.parentRule)
|
86 |
|
87 |
# cssText
|
88 |
r = cssutils.css.CSSVariablesRule() |
89 |
r.cssText = u'@variables { x: 1 }'
|
90 |
vars1 = r.variables |
91 |
self.assertEqual(r, r.variables.parentRule)
|
92 |
self.assertEqual(vars1, r.variables)
|
93 |
self.assertEqual(r.variables.cssText, u'x: 1') |
94 |
self.assertEqual(r.cssText, u'@variables {\n x: 1\n }') |
95 |
|
96 |
r.cssText = u'@variables {y:2}'
|
97 |
self.assertEqual(r, r.variables.parentRule)
|
98 |
self.assertNotEqual(vars1, r.variables)
|
99 |
self.assertEqual(r.variables.cssText, u'y: 2') |
100 |
self.assertEqual(r.cssText, u'@variables {\n y: 2\n }') |
101 |
|
102 |
vars2 = r.variables |
103 |
|
104 |
# fail
|
105 |
try:
|
106 |
r.cssText = u'@variables {$:1}'
|
107 |
except xml.dom.DOMException, e:
|
108 |
pass
|
109 |
|
110 |
self.assertEqual(vars2, r.variables)
|
111 |
self.assertEqual(r.variables.cssText, u'y: 2') |
112 |
self.assertEqual(r.cssText, u'@variables {\n y: 2\n }') |
113 |
|
114 |
# var decl
|
115 |
vars3 = cssutils.css.CSSVariablesDeclaration('z: 3')
|
116 |
r.variables = vars3 |
117 |
|
118 |
self.assertEqual(r, r.variables.parentRule)
|
119 |
self.assertEqual(vars3, r.variables)
|
120 |
self.assertEqual(r.variables.cssText, u'z: 3') |
121 |
self.assertEqual(r.cssText, u'@variables {\n z: 3\n }') |
122 |
|
123 |
# string
|
124 |
r.variables = 'a: x'
|
125 |
self.assertNotEqual(vars3, r.variables)
|
126 |
self.assertEqual(r, r.variables.parentRule)
|
127 |
self.assertEqual(r.variables.cssText, u'a: x') |
128 |
self.assertEqual(r.cssText, u'@variables {\n a: x\n }') |
129 |
vars4 = r.variables |
130 |
|
131 |
# string fail
|
132 |
try:
|
133 |
r.variables = '$: x'
|
134 |
except xml.dom.DOMException, e:
|
135 |
pass
|
136 |
self.assertEqual(vars4, r.variables)
|
137 |
self.assertEqual(r, r.variables.parentRule)
|
138 |
self.assertEqual(r.variables.cssText, u'a: x') |
139 |
self.assertEqual(r.cssText, u'@variables {\n a: x\n }') |
140 |
|
141 |
|
142 |
def test_reprANDstr(self): |
143 |
"CSSVariablesRule.__repr__(), .__str__()"
|
144 |
r = cssutils.css.CSSVariablesRule() |
145 |
r.cssText = '@variables { xxx: 1 }'
|
146 |
self.assertTrue('xxx' in str(r)) |
147 |
|
148 |
r2 = eval(repr(r)) |
149 |
self.assertTrue(isinstance(r2, r.__class__)) |
150 |
self.assertTrue(r.cssText == r2.cssText)
|
151 |
|
152 |
|
153 |
if __name__ == '__main__': |
154 |
import unittest |
155 |
unittest.main() |