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_medialist.py @ 475
History | View | Annotate | Download (7.09 KB)
1 |
# -*- coding: iso-8859-1 -*-
|
---|---|
2 |
"""Testcases for cssutils.stylesheets.MediaList"""
|
3 |
|
4 |
import xml.dom |
5 |
import basetest |
6 |
import cssutils.stylesheets |
7 |
|
8 |
class MediaListTestCase(basetest.BaseTestCase): |
9 |
|
10 |
def setUp(self): |
11 |
super(MediaListTestCase, self).setUp() |
12 |
self.r = cssutils.stylesheets.MediaList()
|
13 |
|
14 |
def test_set(self): |
15 |
"MediaList.mediaText 1"
|
16 |
ml = cssutils.stylesheets.MediaList() |
17 |
|
18 |
self.assertEqual(0, ml.length) |
19 |
self.assertEqual(u'all', ml.mediaText) |
20 |
|
21 |
ml.mediaText = u' print , screen '
|
22 |
self.assertEqual(2, ml.length) |
23 |
self.assertEqual(u'print, screen', ml.mediaText) |
24 |
|
25 |
#self.assertRaisesMsg(xml.dom.InvalidModificationErr,
|
26 |
# basetest.msg3x('''MediaList: Ignoring new medium cssutils.stylesheets.MediaQuery(mediaText=u'tv') as already specified "all" (set ``mediaText`` instead).'''),
|
27 |
# ml._setMediaText, u' print , all , tv ')
|
28 |
#
|
29 |
#self.assertEqual(u'all', ml.mediaText)
|
30 |
#self.assertEqual(1, ml.length)
|
31 |
|
32 |
self.assertRaises(xml.dom.SyntaxErr,
|
33 |
ml.appendMedium, u'test')
|
34 |
|
35 |
def test_appendMedium(self): |
36 |
"MediaList.appendMedium() 1"
|
37 |
ml = cssutils.stylesheets.MediaList() |
38 |
|
39 |
ml.appendMedium(u'print')
|
40 |
self.assertEqual(1, ml.length) |
41 |
self.assertEqual(u'print', ml.mediaText) |
42 |
|
43 |
ml.appendMedium(u'screen')
|
44 |
self.assertEqual(2, ml.length) |
45 |
self.assertEqual(u'print, screen', ml.mediaText) |
46 |
|
47 |
# automatic del and append!
|
48 |
ml.appendMedium(u'print')
|
49 |
self.assertEqual(2, ml.length) |
50 |
self.assertEqual(u'screen, print', ml.mediaText) |
51 |
|
52 |
# automatic del and append!
|
53 |
ml.appendMedium(u'SCREEN')
|
54 |
self.assertEqual(2, ml.length) |
55 |
self.assertEqual(u'print, SCREEN', ml.mediaText) |
56 |
|
57 |
# append invalid MediaQuery
|
58 |
mq = cssutils.stylesheets.MediaQuery() |
59 |
ml.appendMedium(mq) |
60 |
self.assertEqual(2, ml.length) |
61 |
self.assertEqual(u'print, SCREEN', ml.mediaText) |
62 |
|
63 |
# append()
|
64 |
mq = cssutils.stylesheets.MediaQuery('tv')
|
65 |
ml.append(mq) |
66 |
self.assertEqual(3, ml.length) |
67 |
self.assertEqual(u'print, SCREEN, tv', ml.mediaText) |
68 |
|
69 |
# __setitem__
|
70 |
self.assertRaises(IndexError, ml.__setitem__, 10, 'all') |
71 |
ml[0] = 'handheld' |
72 |
self.assertEqual(3, ml.length) |
73 |
self.assertEqual(u'handheld, SCREEN, tv', ml.mediaText) |
74 |
|
75 |
def test_appendAll(self): |
76 |
"MediaList.append() 2"
|
77 |
ml = cssutils.stylesheets.MediaList() |
78 |
ml.appendMedium(u'print')
|
79 |
ml.appendMedium(u'tv')
|
80 |
self.assertEqual(2, ml.length) |
81 |
self.assertEqual(u'print, tv', ml.mediaText) |
82 |
|
83 |
ml.appendMedium(u'all')
|
84 |
self.assertEqual(1, ml.length) |
85 |
self.assertEqual(u'all', ml.mediaText) |
86 |
|
87 |
self.assertRaisesMsg(xml.dom.InvalidModificationErr,
|
88 |
basetest.msg3x('''MediaList: Ignoring new medium cssutils.stylesheets.MediaQuery(mediaText=u'tv') as already specified "all" (set ``mediaText`` instead).'''),
|
89 |
ml.appendMedium, 'tv')
|
90 |
self.assertEqual(1, ml.length) |
91 |
self.assertEqual(u'all', ml.mediaText) |
92 |
|
93 |
self.assertRaises(xml.dom.SyntaxErr, ml.appendMedium, u'test') |
94 |
|
95 |
def test_append2All(self): |
96 |
"MediaList all"
|
97 |
ml = cssutils.stylesheets.MediaList() |
98 |
ml.appendMedium(u'all')
|
99 |
self.assertRaisesMsg(xml.dom.InvalidModificationErr,
|
100 |
basetest.msg3x('''MediaList: Ignoring new medium cssutils.stylesheets.MediaQuery(mediaText=u'print') as already specified "all" (set ``mediaText`` instead).'''),
|
101 |
ml.appendMedium, 'print')
|
102 |
|
103 |
sheet = cssutils.parseString('@media all, print { /**/ }')
|
104 |
self.assertEqual(u'@media all {\n /**/\n }'.encode(), sheet.cssText) |
105 |
|
106 |
def test_delete(self): |
107 |
"MediaList.deleteMedium()"
|
108 |
ml = cssutils.stylesheets.MediaList() |
109 |
|
110 |
self.assertRaises(xml.dom.NotFoundErr, ml.deleteMedium, u'all') |
111 |
self.assertRaises(xml.dom.NotFoundErr, ml.deleteMedium, u'test') |
112 |
|
113 |
ml.appendMedium(u'print')
|
114 |
ml.deleteMedium(u'print')
|
115 |
ml.appendMedium(u'tV')
|
116 |
ml.deleteMedium(u'Tv')
|
117 |
self.assertEqual(0, ml.length) |
118 |
self.assertEqual(u'all', ml.mediaText) |
119 |
|
120 |
def test_item(self): |
121 |
"MediaList.item()"
|
122 |
ml = cssutils.stylesheets.MediaList() |
123 |
ml.appendMedium(u'print')
|
124 |
ml.appendMedium(u'screen')
|
125 |
|
126 |
self.assertEqual(u'print', ml.item(0)) |
127 |
self.assertEqual(u'screen', ml.item(1)) |
128 |
self.assertEqual(None, ml.item(2)) |
129 |
|
130 |
# REMOVED special case!
|
131 |
#def test_handheld(self):
|
132 |
# "MediaList handheld"
|
133 |
# ml = cssutils.stylesheets.MediaList()
|
134 |
|
135 |
# ml.mediaText = u' handheld , all '
|
136 |
# self.assertEqual(2, ml.length)
|
137 |
# self.assertEqual(u'handheld, all', ml.mediaText)
|
138 |
|
139 |
# self.assertRaisesMsg(xml.dom.InvalidModificationErr,
|
140 |
# basetest.msg3x('''MediaList: Ignoring new medium cssutils.stylesheets.MediaQuery(mediaText=u'handheld') as already specified "all" (set ``mediaText`` instead).'''),
|
141 |
# ml._setMediaText, u' handheld , all , tv ')
|
142 |
|
143 |
def test_mediaText(self): |
144 |
"MediaList.mediaText 2"
|
145 |
tests = { |
146 |
u'ALL': u'ALL', |
147 |
u'Tv': u'Tv', |
148 |
u'all': None, |
149 |
u'all, handheld': u'all', |
150 |
u'tv': None, |
151 |
u'tv, handheld, print': None, |
152 |
u'tv and (color), handheld and (width: 1px) and (color)': None, |
153 |
} |
154 |
self.do_equal_r(tests, att='mediaText') |
155 |
|
156 |
tests = { |
157 |
u'': xml.dom.SyntaxErr,
|
158 |
u'UNKNOWN': xml.dom.SyntaxErr,
|
159 |
u'a,b': xml.dom.SyntaxErr,
|
160 |
u'a and (color)': xml.dom.SyntaxErr,
|
161 |
u'not': xml.dom.SyntaxErr, # known but need media |
162 |
u'only': xml.dom.SyntaxErr, # known but need media |
163 |
u'not tv,': xml.dom.SyntaxErr, # known but need media |
164 |
u'all;': xml.dom.SyntaxErr,
|
165 |
u'all, and(color)': xml.dom.SyntaxErr,
|
166 |
u'all,': xml.dom.SyntaxErr,
|
167 |
u'all, ': xml.dom.SyntaxErr,
|
168 |
u'all ,': xml.dom.SyntaxErr,
|
169 |
u'all, /*1*/': xml.dom.SyntaxErr,
|
170 |
u'all and (color),': xml.dom.SyntaxErr,
|
171 |
u'all tv, print': xml.dom.SyntaxErr,
|
172 |
} |
173 |
self.do_raise_r(tests, att='_setMediaText') |
174 |
|
175 |
def test_comments(self): |
176 |
"MediaList.mediaText comments"
|
177 |
tests = { |
178 |
u'/*1*/ tv /*2*/, /*3*/ handheld /*4*/, print':
|
179 |
u'/*1*/ tv /*2*/ /*3*/, handheld /*4*/, print',
|
180 |
} |
181 |
self.do_equal_r(tests, att='mediaText') |
182 |
|
183 |
def test_reprANDstr(self): |
184 |
"MediaList.__repr__(), .__str__()"
|
185 |
mediaText='tv, print'
|
186 |
|
187 |
s = cssutils.stylesheets.MediaList(mediaText=mediaText) |
188 |
|
189 |
self.assertTrue(mediaText in str(s)) |
190 |
|
191 |
s2 = eval(repr(s)) |
192 |
self.assertTrue(isinstance(s2, s.__class__)) |
193 |
self.assertTrue(mediaText == s2.mediaText)
|
194 |
|
195 |
|
196 |
if __name__ == '__main__': |
197 |
import unittest |
198 |
unittest.main() |