[tor-commits] [ooni-probe/master] Simplify the HTTP header field manipulation test to only perform GET requests

art at torproject.org art at torproject.org
Fri Jan 10 10:46:55 UTC 2014


commit 6525ff5dd5882b9de5a1364e09c1e63c5d77c489
Author: Arturo Filastò <art at fuffa.org>
Date:   Fri Jan 10 11:45:47 2014 +0100

    Simplify the HTTP header field manipulation test to only perform GET requests
---
 .../manipulation/http_header_field_manipulation.py |   40 +++++---------------
 1 file changed, 9 insertions(+), 31 deletions(-)

diff --git a/ooni/nettests/manipulation/http_header_field_manipulation.py b/ooni/nettests/manipulation/http_header_field_manipulation.py
index 3fdcc5f..93beb25 100644
--- a/ooni/nettests/manipulation/http_header_field_manipulation.py
+++ b/ooni/nettests/manipulation/http_header_field_manipulation.py
@@ -44,7 +44,7 @@ class HTTPHeaderFieldManipulation(httpt.HTTPTest):
     name = "HTTP Header Field Manipulation"
     description = "Checks if the HTTP request the server sees is the same as the one that the client has created."
     author = "Arturo Filastò"
-    version = "0.1.3"
+    version = "0.1.4"
 
     randomizeUA = False
     usageOptions = UsageOptions
@@ -100,6 +100,9 @@ class HTTPHeaderFieldManipulation(httpt.HTTPTest):
         *  **total** when the response is not a json object and therefore we were not
         able to reach the ooniprobe test backend
 
+        *  **request_line_capitalization** when the HTTP Request line (e.x. GET /
+        HTTP/1.1) does not match the capitalization we set.
+
         *  **header_field_number** when the number of headers we sent does not match
         with the ones the backend received
 
@@ -113,6 +116,7 @@ class HTTPHeaderFieldManipulation(httpt.HTTPTest):
 
         self.report['tampering'] = {
             'total': False,
+            'request_line_capitalization': False,
             'header_name_capitalization': False,
             'header_field_value': False,
             'header_field_number': False
@@ -132,6 +136,9 @@ class HTTPHeaderFieldManipulation(httpt.HTTPTest):
             self.report['tampering']['total'] = True
             return
 
+        if request_request_line != response_request_line:
+            self.report['tampering']['request_line_capitalization'] = True
+
         request_headers = TrueHeaders(self.request_headers)
         diff = request_headers.getDiff(TrueHeaders(response_headers_dict),
                 ignore=['Connection'])
@@ -141,42 +148,13 @@ class HTTPHeaderFieldManipulation(httpt.HTTPTest):
             self.report['tampering']['header_field_name'] = False
         self.report['tampering']['header_name_diff'] = list(diff)
         log.msg("    total: %(total)s" % self.report['tampering'])
+        log.msg("    request_line_capitalization: %(request_line_capitalization)s" % self.report['tampering'])
         log.msg("    header_name_capitalization: %(header_name_capitalization)s" % self.report['tampering'])
         log.msg("    header_field_value: %(header_field_value)s" % self.report['tampering'])
         log.msg("    header_field_number: %(header_field_number)s" % self.report['tampering'])
 
-    def test_get(self):
-        self.request_method = "GET"
-        self.request_headers = self.get_random_caps_headers()
-        return self.doRequest(self.url, self.request_method,
-                headers=self.request_headers)
-
     def test_get_random_capitalization(self):
         self.request_method = random_capitalization("GET")
         self.request_headers = self.get_random_caps_headers()
         return self.doRequest(self.url, self.request_method,
                 headers=self.request_headers)
-
-    def test_post(self):
-        self.request_method = "POST"
-        self.request_headers = self.get_headers()
-        return self.doRequest(self.url, self.request_method,
-                headers=self.request_headers)
-
-    def test_post_random_capitalization(self):
-        self.request_method = random_capitalization("POST")
-        self.request_headers = self.get_random_caps_headers()
-        return self.doRequest(self.url, self.request_method,
-                headers=self.request_headers)
-
-    def test_put(self):
-        self.request_method = "PUT"
-        self.request_headers = self.get_headers()
-        return self.doRequest(self.url, self.request_method,
-                headers=self.request_headers)
-
-    def test_put_random_capitalization(self):
-        self.request_method = random_capitalization("PUT")
-        self.request_headers = self.get_random_caps_headers()
-        return self.doRequest(self.url, self.request_method,
-                headers=self.request_headers)



More information about the tor-commits mailing list