Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/cherrypy/test/test_proxy.py
diff options
context:
space:
mode:
Diffstat (limited to 'cherrypy/test/test_proxy.py')
-rwxr-xr-xcherrypy/test/test_proxy.py129
1 files changed, 0 insertions, 129 deletions
diff --git a/cherrypy/test/test_proxy.py b/cherrypy/test/test_proxy.py
deleted file mode 100755
index 2fbb619..0000000
--- a/cherrypy/test/test_proxy.py
+++ /dev/null
@@ -1,129 +0,0 @@
-import cherrypy
-from cherrypy.test import helper
-
-script_names = ["", "/path/to/myapp"]
-
-
-class ProxyTest(helper.CPWebCase):
-
- def setup_server():
-
- # Set up site
- cherrypy.config.update({
- 'tools.proxy.on': True,
- 'tools.proxy.base': 'www.mydomain.test',
- })
-
- # Set up application
-
- class Root:
-
- def __init__(self, sn):
- # Calculate a URL outside of any requests.
- self.thisnewpage = cherrypy.url("/this/new/page", script_name=sn)
-
- def pageurl(self):
- return self.thisnewpage
- pageurl.exposed = True
-
- def index(self):
- raise cherrypy.HTTPRedirect('dummy')
- index.exposed = True
-
- def remoteip(self):
- return cherrypy.request.remote.ip
- remoteip.exposed = True
-
- def xhost(self):
- raise cherrypy.HTTPRedirect('blah')
- xhost.exposed = True
- xhost._cp_config = {'tools.proxy.local': 'X-Host',
- 'tools.trailing_slash.extra': True,
- }
-
- def base(self):
- return cherrypy.request.base
- base.exposed = True
-
- def ssl(self):
- return cherrypy.request.base
- ssl.exposed = True
- ssl._cp_config = {'tools.proxy.scheme': 'X-Forwarded-Ssl'}
-
- def newurl(self):
- return ("Browse to <a href='%s'>this page</a>."
- % cherrypy.url("/this/new/page"))
- newurl.exposed = True
-
- for sn in script_names:
- cherrypy.tree.mount(Root(sn), sn)
- setup_server = staticmethod(setup_server)
-
- def testProxy(self):
- self.getPage("/")
- self.assertHeader('Location',
- "%s://www.mydomain.test%s/dummy" %
- (self.scheme, self.prefix()))
-
- # Test X-Forwarded-Host (Apache 1.3.33+ and Apache 2)
- self.getPage("/", headers=[('X-Forwarded-Host', 'http://www.example.test')])
- self.assertHeader('Location', "http://www.example.test/dummy")
- self.getPage("/", headers=[('X-Forwarded-Host', 'www.example.test')])
- self.assertHeader('Location', "%s://www.example.test/dummy" % self.scheme)
- # Test multiple X-Forwarded-Host headers
- self.getPage("/", headers=[
- ('X-Forwarded-Host', 'http://www.example.test, www.cherrypy.test'),
- ])
- self.assertHeader('Location', "http://www.example.test/dummy")
-
- # Test X-Forwarded-For (Apache2)
- self.getPage("/remoteip",
- headers=[('X-Forwarded-For', '192.168.0.20')])
- self.assertBody("192.168.0.20")
- self.getPage("/remoteip",
- headers=[('X-Forwarded-For', '67.15.36.43, 192.168.0.20')])
- self.assertBody("192.168.0.20")
-
- # Test X-Host (lighttpd; see https://trac.lighttpd.net/trac/ticket/418)
- self.getPage("/xhost", headers=[('X-Host', 'www.example.test')])
- self.assertHeader('Location', "%s://www.example.test/blah" % self.scheme)
-
- # Test X-Forwarded-Proto (lighttpd)
- self.getPage("/base", headers=[('X-Forwarded-Proto', 'https')])
- self.assertBody("https://www.mydomain.test")
-
- # Test X-Forwarded-Ssl (webfaction?)
- self.getPage("/ssl", headers=[('X-Forwarded-Ssl', 'on')])
- self.assertBody("https://www.mydomain.test")
-
- # Test cherrypy.url()
- for sn in script_names:
- # Test the value inside requests
- self.getPage(sn + "/newurl")
- self.assertBody("Browse to <a href='%s://www.mydomain.test" % self.scheme
- + sn + "/this/new/page'>this page</a>.")
- self.getPage(sn + "/newurl", headers=[('X-Forwarded-Host',
- 'http://www.example.test')])
- self.assertBody("Browse to <a href='http://www.example.test"
- + sn + "/this/new/page'>this page</a>.")
-
- # Test the value outside requests
- port = ""
- if self.scheme == "http" and self.PORT != 80:
- port = ":%s" % self.PORT
- elif self.scheme == "https" and self.PORT != 443:
- port = ":%s" % self.PORT
- host = self.HOST
- if host in ('0.0.0.0', '::'):
- import socket
- host = socket.gethostname()
- expected = ("%s://%s%s%s/this/new/page"
- % (self.scheme, host, port, sn))
- self.getPage(sn + "/pageurl")
- self.assertBody(expected)
-
- # Test trailing slash (see http://www.cherrypy.org/ticket/562).
- self.getPage("/xhost/", headers=[('X-Host', 'www.example.test')])
- self.assertHeader('Location', "%s://www.example.test/xhost"
- % self.scheme)
-