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_marginrule.py @ 475
History | View | Annotate | Download (3.3 KB)
1 |
"""Testcases for cssutils.css.CSSPageRule"""
|
---|---|
2 |
|
3 |
import xml.dom |
4 |
import test_cssrule |
5 |
import cssutils |
6 |
|
7 |
class MarginRuleTestCase(test_cssrule.CSSRuleTestCase): |
8 |
|
9 |
def setUp(self): |
10 |
super(MarginRuleTestCase, self).setUp() |
11 |
|
12 |
cssutils.ser.prefs.useDefaults() |
13 |
self.r = cssutils.css.MarginRule()
|
14 |
self.rRO = cssutils.css.MarginRule(readonly=True) |
15 |
self.r_type = cssutils.css.MarginRule.MARGIN_RULE
|
16 |
self.r_typeString = 'MARGIN_RULE' |
17 |
|
18 |
def tearDown(self): |
19 |
cssutils.ser.prefs.useDefaults() |
20 |
|
21 |
def test_init(self): |
22 |
"MarginRule.__init__()"
|
23 |
|
24 |
r = cssutils.css.MarginRule() |
25 |
self.assertEqual(r.margin, None) |
26 |
self.assertEqual(r.atkeyword, None) |
27 |
self.assertEqual(r._keyword, None) |
28 |
self.assertEqual(r.style.cssText, u'') |
29 |
self.assertEqual(r.cssText, u'') |
30 |
|
31 |
r = cssutils.css.MarginRule(margin=u'@TOP-left')
|
32 |
self.assertEqual(r.margin, u'@top-left') |
33 |
self.assertEqual(r.atkeyword, u'@top-left') |
34 |
self.assertEqual(r._keyword, u'@TOP-left') |
35 |
self.assertEqual(r.style.cssText, u'') |
36 |
self.assertEqual(r.cssText, u'') |
37 |
|
38 |
self.assertRaises(xml.dom.InvalidModificationErr, cssutils.css.MarginRule, u'@x') |
39 |
|
40 |
def test_InvalidModificationErr(self): |
41 |
"MarginRule.cssText InvalidModificationErr"
|
42 |
# TODO: !!!
|
43 |
# self._test_InvalidModificationErr(u'@top-left')
|
44 |
# tests = {
|
45 |
# u'@x {}': xml.dom.InvalidModificationErr,
|
46 |
# }
|
47 |
# self.do_raise_r(tests)
|
48 |
|
49 |
def test_incomplete(self): |
50 |
"MarginRule (incomplete)"
|
51 |
# must be inside @page as not valid outside
|
52 |
tests = { |
53 |
u'@page { @top-left { ': u'', # no } and no content |
54 |
u'@page { @top-left { /*1*/ ': u'', # no } and no content |
55 |
u'@page { @top-left { color: red':
|
56 |
u'@page {\n @top-left {\n color: red\n }\n }'
|
57 |
} |
58 |
self.do_equal_p(tests) # parse |
59 |
|
60 |
def test_cssText(self): |
61 |
tests = { |
62 |
u'@top-left {}': u'', |
63 |
u'@top-left { /**/ }': u'', |
64 |
u'@top-left { color: red }': u'@top-left {\n color: red\n }', |
65 |
u'@top-left{color:red;}': u'@top-left {\n color: red\n }', |
66 |
u'@top-left{color:red}': u'@top-left {\n color: red\n }', |
67 |
u'@top-left { color: red; left: 0 }': u'@top-left {\n color: red;\n left: 0\n }' |
68 |
} |
69 |
self.do_equal_r(tests)
|
70 |
|
71 |
# TODO
|
72 |
tests.update({ |
73 |
# false selector
|
74 |
# u'@top-left { color:': xml.dom.SyntaxErr, # no }
|
75 |
# u'@top-left { color': xml.dom.SyntaxErr, # no }
|
76 |
# u'@top-left {': xml.dom.SyntaxErr, # no }
|
77 |
# u'@top-left': xml.dom.SyntaxErr, # no }
|
78 |
# u'@top-left;': xml.dom.SyntaxErr, # no }
|
79 |
}) |
80 |
# self.do_raise_r(tests) # set cssText
|
81 |
|
82 |
|
83 |
def test_reprANDstr(self): |
84 |
"MarginRule.__repr__(), .__str__()"
|
85 |
margin = u'@top-left'
|
86 |
|
87 |
s = cssutils.css.MarginRule(margin=margin, style=u'left: 0')
|
88 |
|
89 |
self.assertTrue(margin in str(s)) |
90 |
|
91 |
s2 = eval(repr(s)) |
92 |
self.assertTrue(isinstance(s2, s.__class__)) |
93 |
self.assertTrue(margin == s2.margin)
|
94 |
|
95 |
if __name__ == '__main__': |
96 |
import unittest |
97 |
unittest.main() |