Log message for revision 68567: - Collector 2077: fixed problem with ACTUAL_URL and SiteRoot
Changed: U Zope/branches/2.9/doc/CHANGES.txt U Zope/branches/2.9/lib/python/Products/SiteAccess/SiteRoot.py A Zope/branches/2.9/lib/python/Products/SiteAccess/tests/testSiteRoot.py -=- Modified: Zope/branches/2.9/doc/CHANGES.txt =================================================================== --- Zope/branches/2.9/doc/CHANGES.txt 2006-06-10 13:50:18 UTC (rev 68566) +++ Zope/branches/2.9/doc/CHANGES.txt 2006-06-10 13:51:22 UTC (rev 68567) @@ -23,6 +23,9 @@ - Collector #2116: sequence.sort() did not work properly locale related comparison methods + - Collector 2077: fixed problem with ACTUAL_URL and SiteRoot + + Zope 2.9.3 (2006/05/13) Bugs fixed Modified: Zope/branches/2.9/lib/python/Products/SiteAccess/SiteRoot.py =================================================================== --- Zope/branches/2.9/lib/python/Products/SiteAccess/SiteRoot.py 2006-06-10 13:50:18 UTC (rev 68566) +++ Zope/branches/2.9/lib/python/Products/SiteAccess/SiteRoot.py 2006-06-10 13:51:22 UTC (rev 68567) @@ -117,10 +117,13 @@ if srd[i] is None: srd[i] = request.environ.get(srp, None) if srd[0] is not None: + request['ACTUAL_URL'] = request['ACTUAL_URL'].replace(request['SERVER_URL'], srd[0]) request['SERVER_URL'] = srd[0] request._resetURLS() if srd[1] is not None: + old = request['URL'] request.setVirtualRoot(srd[1]) + request['ACTUAL_URL'] = request['ACTUAL_URL'].replace(old, request['URL']) def get_size(self): '''Make FTP happy''' Added: Zope/branches/2.9/lib/python/Products/SiteAccess/tests/testSiteRoot.py =================================================================== --- Zope/branches/2.9/lib/python/Products/SiteAccess/tests/testSiteRoot.py 2006-06-10 13:50:18 UTC (rev 68566) +++ Zope/branches/2.9/lib/python/Products/SiteAccess/tests/testSiteRoot.py 2006-06-10 13:51:22 UTC (rev 68567) @@ -0,0 +1,50 @@ +"""SiteRoot regression tests. + +These tests verify that the request URL headers, in particular ACTUAL_URL, are +set correctly when a SiteRoot is used. + +See http://www.zope.org/Collectors/Zope/2077 + +""" + +from Testing.makerequest import makerequest + +import Zope2 +Zope2.startup() + +import transaction + +import unittest + +class SiteRootRegressions(unittest.TestCase): + + def setUp(self): + transaction.begin() + self.app = makerequest(Zope2.app()) + try: + self.app.manage_addFolder('folder') + self.app.folder.manage_addProduct['SiteAccess'].manage_addSiteRoot(title = 'SiteRoot', base = 'http://test_base', path = '/test_path') + self.app.REQUEST.set('PARENTS', [self.app]) + self.app.REQUEST.traverse('/folder') + + except: + self.tearDown() + + def tearDown(self): + transaction.abort() + self.app._p_jar.close() + + def testRequest(self): + self.assertEqual(self.app.REQUEST['SERVER_URL'], 'http://test_base') + self.assertEqual(self.app.REQUEST['URL'], 'http://test_base/test_path/index_html') + self.assertEqual(self.app.REQUEST['ACTUAL_URL'], 'http://test_base/test_path') + def testAbsoluteUrl(self): + self.assertEqual(self.app.folder.absolute_url(), 'http://test_base/test_path') + +def test_suite(): + suite = unittest.TestSuite() + suite.addTest(unittest.makeSuite(SiteRootRegressions)) + return suite + +if __name__ == '__main__': + unittest.main(defaultTest='test_suite') _______________________________________________ Zope-Checkins maillist - Zope-Checkins@zope.org http://mail.zope.org/mailman/listinfo/zope-checkins