[Product-Developers] Re: How to deal with different url structure in testbrowser? (no VirtualHostBase)
Martin Aspeli
optilude+lists at gmail.com
Wed Dec 30 01:39:41 UTC 2009
René Pijlman wrote:
> Is there a way to have the test runner use VirtualHostBase, and get urls
> that are the same as with interactive use through Apache and
> VirtualHostBase?
>
> Or is the custom solution to write the tests as if using Zope directly,
> without Apache and VirtualHostBase?
Yes, and yes. :-)
Virtual hosting is done by Zope, when it sees a "magic" URL. So you
could construct your testbrowser URLs like
http://nohost/VirtualHostBase/http/nohost:80/plone/VirtualHostRoot/<whatever>
This is exactly what a rewrite rule in Apache does. Zope would then see
this and generate its URLs (e.g. via absolute_url()) as
http://nohost/<whatever>
That said, if your code *assumes* a certain kind of virtual hosting,
it's probably broken. In general, you can never be sure about how
virtual hosting is being used. You should use things like absolute_url()
or request.physicalPathToURL() to generate URLs that adequately take
virtual hosting into account.
Martin
--
Author of `Professional Plone Development`, a book for developers who
want to work with Plone. See http://martinaspeli.net/plone-book
More information about the Product-Developers
mailing list