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_scripts_csscombine.py @ 475

History | View | Annotate | Download (2.81 KB)

1
"""Testcases for cssutils.scripts.csscombine"""
2

    
3
from cssutils.script import csscombine
4
import basetest
5
import cssutils
6
import os
7

    
8
class CSSCombine(basetest.BaseTestCase):
9

    
10
    C = '@namespace s2"uri";s2|sheet-1{top:1px}s2|sheet-2{top:2px}proxy{top:3px}' 
11

    
12
    def setUp(self):
13
        self._saved = cssutils.log.raiseExceptions
14
    
15
    def tearDown(self):
16
        cssutils.log.raiseExceptions = self._saved
17

    
18
    def test_combine(self):
19
        "scripts.csscombine()"
20
              
21
        # path, SHOULD be keyword argument!
22
        csspath = os.path.join(os.path.dirname(__file__), '..', '..', '..',
23
                               'sheets', 'csscombine-proxy.css')
24
        combined = csscombine(csspath)
25
        self.assertEqual(combined, self.C.encode())
26
        combined = csscombine(path=csspath, targetencoding='ascii')
27
        self.assertEqual(combined, ('@charset "ascii";' + self.C).encode())
28

    
29
        # url
30
        cssurl = cssutils.helper.path2url(csspath)
31
        combined = csscombine(url=cssurl)
32
        self.assertEqual(combined, self.C.encode())
33
        combined = csscombine(url=cssurl, targetencoding='ascii')
34
        self.assertEqual(combined, ('@charset "ascii";' + self.C).encode())
35

    
36
        # cssText
37
        # TODO: really need binary or can handle str too?
38
        f = open(csspath, mode="rb")
39
        cssText=f.read()
40
        f.close()
41
        combined = csscombine(cssText=cssText, href=cssurl)
42
        self.assertEqual(combined, self.C.encode())
43
        combined = csscombine(cssText=cssText, href=cssurl, 
44
                              targetencoding='ascii')
45
        self.assertEqual(combined, ('@charset "ascii";' + self.C).encode())
46
 
47
    def test_combine_resolveVariables(self):
48
        "scripts.csscombine(minify=..., resolveVariables=...)"
49
        # no actual imports but checking if minify and resolveVariables work
50
        cssText = '''
51
        @variables {
52
            c: #0f0;
53
        }
54
        a {
55
            color: var(c);
56
        }
57
        '''
58
        # default minify
59
        self.assertEqual(csscombine(cssText=cssText,
60
                                    resolveVariables=False),
61
                         '@variables{c:#0f0}a{color:var(c)}'.encode())
62
        self.assertEqual(csscombine(cssText=cssText),
63
                         'a{color:#0f0}'.encode())
64

    
65
        # no minify
66
        self.assertEqual(csscombine(cssText=cssText, 
67
                                    minify=False,
68
                                    resolveVariables=False),
69
                         '@variables {\n    c: #0f0\n    }\na {\n    color: var(c)\n    }'.encode())
70
        self.assertEqual(csscombine(cssText=cssText, minify=False),
71
                         'a {\n    color: #0f0\n    }'.encode())
72
        
73

    
74
if __name__ == '__main__':
75
    import unittest
76
    unittest.main()