Statistics
| Revision:

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()