aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@nullcube.com>2013-01-29 10:41:45 +1300
committerAldo Cortesi <aldo@nullcube.com>2013-01-29 10:41:45 +1300
commit53792a5a28df80552fdbedee3b88f204d94ad9ce (patch)
treec5a694d60f0d90a623fa39eb27cb18e1a80053e4
parent6f157d936f89a50927849611bdff3f1e8e1bb43b (diff)
downloadmitmproxy-53792a5a28df80552fdbedee3b88f204d94ad9ce.tar.gz
mitmproxy-53792a5a28df80552fdbedee3b88f204d94ad9ce.tar.bz2
mitmproxy-53792a5a28df80552fdbedee3b88f204d94ad9ce.zip
Beef up unit tests for HAR utility functions - flow.py coverage now 100%.
-rw-r--r--test/test_flow.py28
-rw-r--r--test/test_server.py10
2 files changed, 26 insertions, 12 deletions
diff --git a/test/test_flow.py b/test/test_flow.py
index ed3a988f..da5b095e 100644
--- a/test/test_flow.py
+++ b/test/test_flow.py
@@ -892,6 +892,22 @@ class TestRequest:
assert not r.headers["content-encoding"]
assert r.content == "falafel"
+ def test_get_decoded_content(self):
+ r = tutils.treq()
+ r.content = None
+ r.headers["content-encoding"] = ["identity"]
+ assert r.get_decoded_content() == None
+
+ r.content = "falafel"
+ r.encode("gzip")
+ assert r.get_decoded_content() == "falafel"
+
+ def test_get_cookies_none(self):
+ h = flow.ODictCaseless()
+ c = flow.ClientConnect(("addr", 2222))
+ r = flow.Request(c, (1, 1), "host", 22, "https", "GET", "/", h, "content")
+ assert r.get_cookies() == None
+
def test_get_cookies_single(self):
h = flow.ODictCaseless()
h["Cookie"] = ["cookiename=cookievalue"]
@@ -936,6 +952,8 @@ class TestRequest:
r = flow.Request(c, (1, 1), "host", 22, "https", "GET", "/", h, "content")
result = r.get_transmitted_size()
assert result==len("content")
+ r.content = None
+ assert r.get_transmitted_size() == 0
def test_get_content_type(self):
h = flow.ODictCaseless()
@@ -1045,12 +1063,10 @@ class TestResponse:
result = r.get_header_size()
assert result==49
- def test_get_transmitted_size(self):
- r = tutils.tresp()
- r.headers["content-encoding"] = ["identity"]
- r.content = "falafel"
- result = r.get_transmitted_size()
- assert result==len("falafel")
+ def test_get_cookies_none(self):
+ h = flow.ODictCaseless()
+ resp = flow.Response(None, (1, 1), 200, "OK", h, "content", None)
+ assert not resp.get_cookies()
def test_get_cookies_simple(self):
h = flow.ODictCaseless()
diff --git a/test/test_server.py b/test/test_server.py
index f0000af4..0a2f142e 100644
--- a/test/test_server.py
+++ b/test/test_server.py
@@ -98,28 +98,26 @@ class TestProxy(tutils.HTTPProxTest):
def test_response_timestamps(self):
# test that we notice at least 2 sec delay between timestamps
# in response object
- f = self.pathod("304:b@1k:p50,2")
+ f = self.pathod("304:b@1k:p50,1")
assert f.status_code == 304
response = self.master.state.view[0].response
- assert 2 <= response.timestamp_end - response.timestamp_start <= 2.2
+ assert 1 <= response.timestamp_end - response.timestamp_start <= 1.2
def test_request_timestamps(self):
- # test that we notice at least 2 sec delay between timestamps
- # in request object
+ # test that we notice a delay between timestamps in request object
connection = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
connection.connect(("127.0.0.1", self.proxy.port))
# call pathod server, wait a second to complete the request
connection.send("GET http://localhost:%d/p/304:b@1k HTTP/1.1\r\n"%self.server.port)
- time.sleep(0.1)
connection.send("\r\n");
connection.recv(50000)
connection.close()
request, response = self.master.state.view[0].request, self.master.state.view[0].response
assert response.code == 304 # sanity test for our low level request
- assert 0 <= request.timestamp_end - request.timestamp_start <= 0.2
+ assert request.timestamp_end - request.timestamp_start > 0
def test_request_timestamps_not_affected_by_client_time(self):
# test that don't include user wait time in request's timestamps