Commit 03ad5201 authored by Andreas Jung's avatar Andreas Jung

- Collector 2077: fixed problem with ACTUAL_URL and SiteRoot

parent 01bea740
......@@ -29,6 +29,8 @@ Zope Changes
- Collector #2122: fixed missing is_proxying_match definition
in ZServer/HTTPServer
- Collector 2077: fixed problem with ACTUAL_URL and SiteRoot
Zope 2.10.0 beta 1 (2006/05/30)
......
......@@ -117,10 +117,13 @@ class SiteRoot(Traverser, Implicit):
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'''
......
"""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')
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment