# -*- coding: iso-8859-1 -*- """ MoinMoin - MoinMoin.widget.html Tests @copyright: 2003-2004 by Jürgen Hermann @license: GNU GPL, see COPYING for details. """ import unittest from MoinMoin.widget import html from MoinMoin import wikiutil class HTMLWidgetsTestCase(unittest.TestCase): """widget.html: testing html widgets""" def testCreate(self): """widget.html: creating html widgets TO DO: add tests for all elements by HTML 4 spec. """ tests = ( # description, call, expected ('Create text', html.Text('
&'), '<br> &'), ('Create raw html', html.Raw('
&'), '
&'), ('Create br', html.BR(), '
'), ('Create hr', html.HR(), '
'), ('Create p', html.P(), '

'), ) for description, obj, expected in tests: result = unicode(obj) self.assertEqual(result, expected, ('%(description)s: expected "%(expected)s" ' 'but got "%(result)s"') % locals()) def testInvalidAttributes(self): """widegt.html: invalid attributes raises exception TO DO: add tests for all elements by HTML 4 spec. """ self.assertRaises(AttributeError, html.BR, name='foo') def testCompositeElements(self): """widget.html: append to and extend composite element""" html._SORT_ATTRS = 1 element = html.P() actions = ( # action, data, expected (element.append, html.Text('Text & '), '

Text &

'), (element.append, html.Text('more text. '), '

Text & more text.

'), (element.extend, (html.Text('And then '), html.Text('some.')), '

Text & more text. And then some.

'), ) for action, data, expected in actions: action(data) result = unicode(element) self.assertEqual(result, expected, 'Expected "%(expected)s" but got "%(result)s"' % locals())