############################################################################## # # Copyright (c) 2001, 2002 Zope Corporation and Contributors. # All Rights Reserved. # # This software is subject to the provisions of the Zope Public License, # Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS # FOR A PARTICULAR PURPOSE. # ############################################################################## """Functional tests for the unique id utility. $Id: ftests.py 30951 2005-06-29 21:48:07Z benji_york $ """ import unittest import re from transaction import commit from zope.app import zapi from zope.app.testing import ztapi, setup from zope.app.testing.functional import BrowserTestCase class TestIntIds(BrowserTestCase): def setUp(self): from zope.app.intid import IntIds from zope.app.intid.interfaces import IIntIds BrowserTestCase.setUp(self) self.basepath = '/++etc++site/default' root = self.getRootFolder() sm = zapi.traverse(root, '/++etc++site') setup.addUtility(sm, 'intid', IIntIds, IntIds()) commit() type_name = 'BrowserAdd__zope.app.intid.IntIds' response = self.publish( self.basepath + '/contents.html', basic='mgr:mgrpw', form={'type_name': type_name, 'new_value': 'mgr' }) # root = self.getRootFolder() # default = zapi.traverse(root, '/++etc++site/default') # rm = default.getRegistrationManager() # registration = UtilityRegistration( # 'cwm', IIntIds, zapi.traverse(self.basepath+'/intid')) # pd_id = rm.addRegistration(registration) # zapi.traverse(rm, pd_id).status = ActiveStatus def test(self): response = self.publish(self.basepath + '/intid/@@index.html', basic='mgr:mgrpw') self.assertEquals(response.getStatus(), 200) # The utility registers in itself when it is being added self.assert_(response.getBody().find('1 objects') > 0) self.assert_('/++etc++site' not in response.getBody()) response = self.publish(self.basepath + '/intid/@@populate', basic='mgr:mgrpw') self.assertEquals(response.getStatus(), 302) response = self.publish(self.basepath + '/intid/@@index.html?testing=1', basic='mgr:mgrpw') self.assertEquals(response.getStatus(), 200) body = response.getBody() self.assert_('3 objects' in body) self.assert_('/++etc++site' in body) self.checkForBrokenLinks(body, response.getPath(), basic='mgr:mgrpw') def test_suite(): suite = unittest.TestSuite() suite.addTest(unittest.makeSuite(TestIntIds)) return suite if __name__ == '__main__': unittest.main()