diff options
author | Aldo Cortesi <aldo@corte.si> | 2013-01-17 17:47:35 -0800 |
---|---|---|
committer | Aldo Cortesi <aldo@corte.si> | 2013-01-17 17:47:35 -0800 |
commit | 8c6f1dd36b955c5fa2e60e8f7f63568269fbab96 (patch) | |
tree | e7ea377fddb090d7db41a2c418745ddc593361c6 /test | |
parent | 280dd94198931bcd819848a70d68f6f5d9f3270b (diff) | |
parent | 6212b69fb4f137db0c72bb8f3126f530c3f0daee (diff) | |
download | mitmproxy-8c6f1dd36b955c5fa2e60e8f7f63568269fbab96.tar.gz mitmproxy-8c6f1dd36b955c5fa2e60e8f7f63568269fbab96.tar.bz2 mitmproxy-8c6f1dd36b955c5fa2e60e8f7f63568269fbab96.zip |
Merge pull request #93 from rouli/master
More precise timestamps
Diffstat (limited to 'test')
-rw-r--r-- | test/test_server.py | 44 |
1 files changed, 43 insertions, 1 deletions
diff --git a/test/test_server.py b/test/test_server.py index 38d33d90..ee6873c7 100644 --- a/test/test_server.py +++ b/test/test_server.py @@ -1,5 +1,6 @@ from netlib import tcp -import tutils +from time import sleep +import tutils, socket """ Note that the choice of response code in these tests matters more than you @@ -74,3 +75,44 @@ class TestProxy(tutils.HTTPProxTest): assert l.request.client_conn.address assert "host" in l.request.headers assert l.response.code == 304 + + 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") + assert f.status_code == 304 + + response = self.master.state.view[0].response + assert 2 <= response.timestamp_end - response.timestamp_start <= 2.2 + + def test_request_timestamps(self): + # test that we notice at least 2 sec 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) + sleep(2.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 2 <= request.timestamp_end - request.timestamp_start <= 2.2 + + def test_request_timestamps_not_affected_by_client_time(self): + # test that don't include user wait time in request's timestamps + + f = self.pathod("304:b@10k") + assert f.status_code == 304 + sleep(1) + f = self.pathod("304:b@10k") + assert f.status_code == 304 + + request = self.master.state.view[0].request + assert request.timestamp_end - request.timestamp_start <= 0.1 + + request = self.master.state.view[1].request + assert request.timestamp_end - request.timestamp_start <= 0.1 |