Test URL escaping in directory listing.

This commit is contained in:
Emil Mikulic 2011-04-16 19:27:06 +10:00
parent b7038c8329
commit 897e85a46e

View File

@ -3,6 +3,9 @@ import unittest
import socket
import signal
import re
import os
WWWROOT = "tmp.httpd.tests"
class Conn:
def __init__(self):
@ -11,7 +14,7 @@ class Conn:
self.s.connect(("0.0.0.0", self.port))
# connect throws socket.error on connection refused
def get(self, url, http_ver=None, endl="\n",
def get(self, url, http_ver="1.0", endl="\n",
req_hdrs={"User-Agent": "test.py"}):
req = "GET "+url
if http_ver is not None:
@ -66,6 +69,17 @@ class TestCases(unittest.TestCase):
"You requested an invalid URL: %s\n"%path,
'Generated by darkhttpd')
def test_dirlist_escape(self):
fn = WWWROOT+"/escape#this"
open(fn, "w").write("x"*12345)
try:
resp = Conn().get("/")
finally:
os.unlink(fn)
status, hdrs, body = parse(resp)
self.assertEquals(ord("#"), 0x23)
self.assertContains(body, "escape%23this", "12345")
def nerf(s):
return re.sub("[^a-zA-Z0-9]", "_", s)