Package cssutils :: Package tests :: Module test_cssnamespacerule
[hide private]
[frames] | no frames]

Source Code for Module cssutils.tests.test_cssnamespacerule

  1  """testcases for cssutils.css.CSSImportRule""" 
  2  __author__ = '$LastChangedBy: cthedot $' 
  3  __date__ = '$LastChangedDate: 2007-10-20 20:08:06 +0200 (Sa, 20 Okt 2007) $' 
  4  __version__ = '$LastChangedRevision: 547 $' 
  5   
  6  import xml.dom 
  7  import test_cssrule 
  8  import cssutils 
  9   
10 -class CSSNamespaceRuleTestCase(test_cssrule.CSSRuleTestCase):
11
12 - def setUp(self):
13 super(CSSNamespaceRuleTestCase, self).setUp() 14 self.r = cssutils.css.CSSNamespaceRule() 15 self.rRO = cssutils.css.CSSNamespaceRule(readonly=True) 16 self.r_type = cssutils.css.CSSRule.NAMESPACE_RULE 17 self.r_typeString = 'NAMESPACE_RULE'
18
19 - def test_init(self):
20 "CSSNamespaceRule.__init__()" 21 super(CSSNamespaceRuleTestCase, self).test_init() 22 23 self.assertEqual(None, self.r.namespaceURI) 24 self.assertEqual(u'', self.r.prefix) 25 self.assertEqual(u'', self.r.cssText)
26
28 "CSSNamespaceRule.cssText InvalidModificationErr" 29 self._test_InvalidModificationErr(u'@namespace')
30
31 - def test_incomplete(self):
32 "CSSNamespaceRule (incomplete)" 33 tests = { 34 u'@namespace "uri': u'@namespace "uri";', 35 u"@namespace url(x": u'@namespace "x";', 36 u"@namespace url('x": u'@namespace "x";', 37 u'@namespace url("x;': u'@namespace "x;";', 38 u'@namespace url( "x;': u'@namespace "x;";', 39 u'@namespace url("x ': u'@namespace "x ";', 40 u'@namespace url(x ': u'@namespace "x";', 41 } 42 self.do_equal_p(tests) # parse 43 tests = { 44 u'@namespace "uri': xml.dom.SyntaxErr, 45 u"@namespace url(x": xml.dom.SyntaxErr, 46 u"@namespace url('x": xml.dom.SyntaxErr, 47 u'@namespace url("x;': xml.dom.SyntaxErr, 48 u'@namespace url( "x;': xml.dom.SyntaxErr, 49 u'@namespace url("x ': xml.dom.SyntaxErr, 50 u'@namespace url(x ': xml.dom.SyntaxErr 51 } 52 self.do_raise_r(tests) # set cssText
53
54 - def test_initparameter(self):
55 "CSSNamespaceRule.__init__(namespaceURI=None, prefix=u'')" 56 r = cssutils.css.CSSNamespaceRule(u'uri', u'prefix') 57 self.assertEqual(u'uri', r.namespaceURI) 58 self.assertEqual(u'prefix', r.prefix) 59 self.assertEqual(u'@namespace prefix "uri";', r.cssText) 60 61 r = cssutils.css.CSSNamespaceRule(u'uri') 62 self.assertEqual(u'uri', r.namespaceURI) 63 self.assertEqual(u'', r.prefix) 64 self.assertEqual(u'@namespace "uri";', r.cssText)
65
66 - def test_namespaceURI(self):
67 "CSSNamespaceRule.namespaceURI" 68 # set 69 self.r.namespaceURI = 'x' 70 self.assertEqual('x' , self.r.namespaceURI) 71 self.assertEqual(u'@namespace "x";', self.r.cssText) 72 # deprecated: 73 self.assertEqual('x' , self.r.uri) 74 75 self.r.namespaceURI = '"' # weird but legal 76 self.assertEqual(u'@namespace "\\"";', self.r.cssText)
77
78 - def test_prefix(self):
79 "CSSNamespaceRule.prefix" 80 r = cssutils.css.CSSNamespaceRule() 81 # set 82 r.prefix = 'p' 83 self.assertEqual('p' , r.prefix) 84 self.assertEqual(u'', r.cssText) 85 r.namespaceURI = 'u' 86 self.assertEqual('p' , r.prefix) 87 self.assertEqual(u'@namespace p "u";', r.cssText)
88
89 - def test_cssText(self):
90 "CSSNamespaceRule.cssText" 91 tests = { 92 u'@namespace p "u";': None, 93 u"@namespace p 'u';": u'@namespace p "u";', 94 95 u'@\\namespace p "u";': u'@namespace p "u";', 96 u'@NAMESPACE p "u";': u'@namespace p "u";', 97 98 u'@namespace p "u" ;': u'@namespace p "u";', 99 u'@namespace p"u";': u'@namespace p "u";', 100 u'@namespace p "u";': u'@namespace p "u";', 101 102 u'@namespace/*1*/p/*2*/"u"/*3*/;': u'@namespace/*1*/ p/*2*/ "u"/*3*/;', 103 104 # deprecated 105 u'@namespace p url(u);': u'@namespace p "u";', 106 u'@namespace p url(\'u\');': u'@namespace p "u";', 107 u'@namespace p url(\"u\");': u'@namespace p "u";', 108 u'@namespace p url( \"u\" );': u'@namespace p "u";', 109 } 110 self.do_equal_p(tests) 111 self.do_equal_r(tests) 112 113 tests = { 114 u'@namespace;': xml.dom.SyntaxErr, # nothing 115 u'@namespace p;': xml.dom.SyntaxErr, # no namespaceURI 116 u'@namespace "u" p;': xml.dom.SyntaxErr, # order 117 } 118 self.do_raise_p(tests) # parse 119 tests.update({ 120 u'@namespace p url(x)': xml.dom.SyntaxErr, # missing ; 121 u'@namespace p "u"': xml.dom.SyntaxErr, # missing ; 122 }) 123 self.do_raise_r(tests) # set cssText
124
125 - def test_reprANDstr(self):
126 "CSSNamespaceRule.__repr__(), .__str__()" 127 namespaceURI=u'http://example.com' 128 prefix=u'ex' 129 130 s = cssutils.css.CSSNamespaceRule(namespaceURI=namespaceURI, prefix=prefix) 131 132 self.assert_(namespaceURI in str(s)) 133 self.assert_(prefix in str(s)) 134 135 s2 = eval(repr(s)) 136 self.assert_(isinstance(s2, s.__class__)) 137 self.assert_(namespaceURI == s2.namespaceURI) 138 self.assert_(prefix == s2.prefix)
139 140 141 if __name__ == '__main__': 142 import unittest 143 unittest.main() 144