Example #1
0
    def test_media(self):
        "CSSImportRule.media"
        self.r.href = 'x' # @import url(x)

        # media is readonly
        self.assertRaises(AttributeError, self.r.__setattr__, 'media', None)

        # but not static
        self.r.media.mediaText = 'print'
        self.assertEqual(u'@import url(x) print;', self.r.cssText)
        self.r.media.appendMedium('tv')
        self.assertEqual(u'@import url(x) print, tv;', self.r.cssText)

        # for generated rule
        r = cssutils.css.CSSImportRule(href='x')
        self.assertRaisesMsg(xml.dom.InvalidModificationErr, 
                             basetest.msg3x('''MediaList: Ignoring new medium cssutils.stylesheets.MediaQuery(mediaText=u'tv') as already specified "all" (set ``mediaText`` instead).'''), 
                             r.media.appendMedium, 'tv')
        self.assertEqual(u'@import url(x);', r.cssText)
        self.assertRaisesMsg(xml.dom.InvalidModificationErr, 
                             basetest.msg3x('''MediaList: Ignoring new medium cssutils.stylesheets.MediaQuery(mediaText=u'tv') as already specified "all" (set ``mediaText`` instead).'''), 
                             r.media.appendMedium, 'tv')
        self.assertEqual(u'@import url(x);', r.cssText)
        r.media.mediaText = 'tv' 
        self.assertEqual(u'@import url(x) tv;', r.cssText)
        r.media.appendMedium('print') # all + tv = all!
        self.assertEqual(u'@import url(x) tv, print;', r.cssText)

        # for parsed rule without initial media
        s = cssutils.parseString('@import url(x);')
        r = s.cssRules[0]
        
        self.assertRaisesMsg(xml.dom.InvalidModificationErr, 
                             basetest.msg3x('''MediaList: Ignoring new medium cssutils.stylesheets.MediaQuery(mediaText=u'tv') as already specified "all" (set ``mediaText`` instead).'''), 
                             r.media.appendMedium, 'tv')        
        self.assertEqual(u'@import url(x);', r.cssText)
        self.assertRaisesMsg(xml.dom.InvalidModificationErr, 
                             basetest.msg3x('''MediaList: Ignoring new medium cssutils.stylesheets.MediaQuery(mediaText=u'tv') as already specified "all" (set ``mediaText`` instead).'''), 
                             r.media.appendMedium, 'tv')
        self.assertEqual(u'@import url(x);', r.cssText)
        r.media.mediaText = 'tv' 
        self.assertEqual(u'@import url(x) tv;', r.cssText)
        r.media.appendMedium('print') # all + tv = all!
        self.assertEqual(u'@import url(x) tv, print;', r.cssText)
Example #2
0
 def test_append2All(self):
     "MediaList all"
     ml = cssutils.stylesheets.MediaList()
     ml.appendMedium(u'all')
     self.assertRaisesMsg(xml.dom.InvalidModificationErr, 
                          basetest.msg3x('''MediaList: Ignoring new medium cssutils.stylesheets.MediaQuery(mediaText=u'print') as already specified "all" (set ``mediaText`` instead).'''), 
                          ml.appendMedium, 'print')
     
     sheet = cssutils.parseString('@media all, print { /**/ }')
     self.assertEqual(u'@media all {\n    /**/\n    }'.encode(), sheet.cssText)
Example #3
0
    def test_handheld(self):
        "MediaList handheld"
        ml = cssutils.stylesheets.MediaList()

        ml.mediaText = u' handheld , all  '
        self.assertEqual(2, ml.length)
        self.assertEqual(u'all, handheld', ml.mediaText)
        
        self.assertRaisesMsg(xml.dom.InvalidModificationErr, 
                             basetest.msg3x('''MediaList: Ignoring new medium cssutils.stylesheets.MediaQuery(mediaText=u'tv') as already specified "all" (set ``mediaText`` instead).'''), 
                             ml._setMediaText, u' handheld , all  , tv ')
Example #4
0
    def test_append2All(self):
        "MediaList all"
        ml = cssutils.stylesheets.MediaList()
        ml.appendMedium(u'all')
        self.assertRaisesMsg(
            xml.dom.InvalidModificationErr,
            basetest.msg3x(
                '''MediaList: Ignoring new medium cssutils.stylesheets.MediaQuery(mediaText=u'print') as already specified "all" (set ``mediaText`` instead).'''
            ), ml.appendMedium, 'print')

        sheet = cssutils.parseString('@media all, print { /**/ }')
        self.assertEqual(u'@media all {\n    /**/\n    }'.encode(),
                         sheet.cssText)
Example #5
0
    def test_handheld(self):
        "MediaList handheld"
        ml = cssutils.stylesheets.MediaList()

        ml.mediaText = u' handheld , all  '
        self.assertEqual(2, ml.length)
        self.assertEqual(u'all, handheld', ml.mediaText)

        self.assertRaisesMsg(
            xml.dom.InvalidModificationErr,
            basetest.msg3x(
                '''MediaList: Ignoring new medium cssutils.stylesheets.MediaQuery(mediaText=u'tv') as already specified "all" (set ``mediaText`` instead).'''
            ), ml._setMediaText, u' handheld , all  , tv ')
Example #6
0
    def test_appendAll(self):
        "MediaList.append() 2"
        ml = cssutils.stylesheets.MediaList()
        ml.appendMedium(u'print')
        ml.appendMedium(u'tv')
        self.assertEqual(2, ml.length)
        self.assertEqual(u'print, tv', ml.mediaText)

        ml.appendMedium(u'all')
        self.assertEqual(1, ml.length)
        self.assertEqual(u'all', ml.mediaText)

        self.assertRaisesMsg(xml.dom.InvalidModificationErr, 
                             basetest.msg3x('''MediaList: Ignoring new medium cssutils.stylesheets.MediaQuery(mediaText=u'tv') as already specified "all" (set ``mediaText`` instead).'''), 
                             ml.appendMedium, 'tv')
        self.assertEqual(1, ml.length)
        self.assertEqual(u'all', ml.mediaText)

        self.assertRaises(xml.dom.SyntaxErr, ml.appendMedium, u'test')
Example #7
0
    def test_set(self):
        "MediaList.mediaText 1"
        ml = cssutils.stylesheets.MediaList()

        self.assertEqual(0, ml.length)
        self.assertEqual(u'all', ml.mediaText)

        ml.mediaText = u' print   , screen '
        self.assertEqual(2, ml.length)
        self.assertEqual(u'print, screen', ml.mediaText)
        
        self.assertRaisesMsg(xml.dom.InvalidModificationErr, 
                             basetest.msg3x('''MediaList: Ignoring new medium cssutils.stylesheets.MediaQuery(mediaText=u'tv') as already specified "all" (set ``mediaText`` instead).'''), 
                             ml._setMediaText, u' print , all  , tv ')
        
        self.assertEqual(u'all', ml.mediaText)
        self.assertEqual(1, ml.length)

        self.assertRaises(xml.dom.InvalidCharacterErr,
                          ml.appendMedium, u'test')
Example #8
0
    def test_appendAll(self):
        "MediaList.append() 2"
        ml = cssutils.stylesheets.MediaList()
        ml.appendMedium(u'print')
        ml.appendMedium(u'tv')
        self.assertEqual(2, ml.length)
        self.assertEqual(u'print, tv', ml.mediaText)

        ml.appendMedium(u'all')
        self.assertEqual(1, ml.length)
        self.assertEqual(u'all', ml.mediaText)

        self.assertRaisesMsg(
            xml.dom.InvalidModificationErr,
            basetest.msg3x(
                '''MediaList: Ignoring new medium cssutils.stylesheets.MediaQuery(mediaText=u'tv') as already specified "all" (set ``mediaText`` instead).'''
            ), ml.appendMedium, 'tv')
        self.assertEqual(1, ml.length)
        self.assertEqual(u'all', ml.mediaText)

        self.assertRaises(xml.dom.SyntaxErr, ml.appendMedium, u'test')
Example #9
0
    def test_set(self):
        "MediaList.mediaText 1"
        ml = cssutils.stylesheets.MediaList()

        self.assertEqual(0, ml.length)
        self.assertEqual(u'all', ml.mediaText)

        ml.mediaText = u' print   , screen '
        self.assertEqual(2, ml.length)
        self.assertEqual(u'print, screen', ml.mediaText)

        self.assertRaisesMsg(
            xml.dom.InvalidModificationErr,
            basetest.msg3x(
                '''MediaList: Ignoring new medium cssutils.stylesheets.MediaQuery(mediaText=u'tv') as already specified "all" (set ``mediaText`` instead).'''
            ), ml._setMediaText, u' print , all  , tv ')

        self.assertEqual(u'all', ml.mediaText)
        self.assertEqual(1, ml.length)

        self.assertRaises(xml.dom.InvalidCharacterErr, ml.appendMedium,
                          u'test')