# Copyright (c) 2002-2005 Infrae. All rights reserved.
# See also LICENSE.txt
# $Id: test_upgrade.py,v 1.4 2005/01/19 14:28:51 faassen Exp $
import os, sys
if __name__ == '__main__':
execfile(os.path.join(sys.path[0], 'framework.py'))
from xml.dom.minidom import parseString
from Testing import ZopeTestCase
import unittest
from Products.SilvaDocument import upgrade
class Rec:
pass
class UpgradeTest(unittest.TestCase):
def setUp(self):
self.obj = Rec()
def _xml_string(self,content):
# dom to string; also ger rid of the first line, containing the '
return '\n'.join(content.toxml().split('\n')[1:])
def test_xmlupgrade(self):
dom = parseString('
foobazbladibla
')
self.obj.content = dom
u = upgrade.UpgradeDocumentXML()
u.upgrade(self.obj)
xml = self._xml_string(self.obj.content)
self.assertEquals('foobazbladibla
', xml)
dom = parseString('foobazbladiblabar
')
self.obj.content = dom
u = upgrade.UpgradeDocumentXML()
u.upgrade(self.obj)
xml = self._xml_string(self.obj.content)
self.assertEquals('foobazbladiblabar
', xml)
dom = parseString('')
self.obj.content = dom
u = upgrade.UpgradeDocumentXML()
u.upgrade(self.obj)
xml = self._xml_string(self.obj.content)
self.assertEquals('', xml)
def test_xmlupgrade2(self):
# XXX copy & paste tests ... could be done more elegant
dom = parseString('foo
bazbla
')
self.obj.content = dom
u = upgrade.UpgradeDocumentXML()
u.upgrade(self.obj)
xml = self._xml_string(self.obj.content)
self.assertEquals('foo
bazbla
', xml)
def test_xmlupgrade_table(self):
# XXX copy & paste tests ... could be done more elegant
# anyway, this test better does not fail, or the error message is pretty unreadable
dom = parseString('a paragraph containing an index
also index here
and index here
and here
|
')
self.obj.content = dom
u = upgrade.UpgradeDocumentXML()
u.upgrade(self.obj)
xml = self._xml_string(self.obj.content)
self.assertEquals('a paragraph containing an index
also index here
and index here
and here
|
', xml)
def test_suite():
suite = unittest.TestSuite()
suite.addTest(unittest.makeSuite(UpgradeTest))
return suite
def main():
unittest.TextTestRunner(verbosity=2).run(test_suite())
if __name__ == '__main__':
framework()
#else:
# # While framework.py provides its own test_suite()
# # method the testrunner utility does not.
# main()