Ejemplo n.º 1
0
 def __reconstruct_http(self, raw_url):
     url = URL(raw_url)
     req = HTTP_Request(method="GET", url=raw_url)
     req.add_resource(url)
     resp = HTTP_Response(
         request=req,
         status=self.reconstruct_http_code[raw_url],
         headers=eval(self.reconstruct_http_headers[raw_url]),
         data=self.reconstruct_http_data[raw_url],
     )
     self.reconstructed_http[raw_url] = resp.identity
     del self.reconstruct_http_code[raw_url]
     del self.reconstruct_http_headers[raw_url]
     del self.reconstruct_http_data[raw_url]
     return url, req, resp
Ejemplo n.º 2
0
 def __reconstruct_http(self, raw_url):
     url = URL(raw_url)
     req = HTTP_Request(
         method = "GET",
         url    = raw_url,
     )
     req.add_resource(url)
     resp = HTTP_Response(
         request = req,
         status  = self.reconstruct_http_code[raw_url],
         headers = eval(self.reconstruct_http_headers[raw_url]),
         data    = self.reconstruct_http_data[raw_url],
     )
     self.reconstructed_http[raw_url] = resp.identity
     del self.reconstruct_http_code[raw_url]
     del self.reconstruct_http_headers[raw_url]
     del self.reconstruct_http_data[raw_url]
     return url, req, resp
Ejemplo n.º 3
0
def test_http_response():
    with PluginTester():

        # Run test cases.
        for title, kwargs in cases_http_response:
            print "Testing %s..." % title
            request = HTTP_Request("http://www.example.com/index.html")
            kw_1 = kwargs.copy()
            kw_2 = {"raw_response": kw_1.pop("raw_response")}
            kw_3 = kw_1.copy()
            kw_3["headers"] = HTTP_Headers(kw_3.pop("raw_headers"))
            for kw in (kw_1, kw_2, kw_3):
                response = HTTP_Response(request, **kw)
                assert response.identity in request.links
                assert request.identity in response.links
                assert str(response.headers) == kwargs["raw_headers"]
                for key, value in kwargs.iteritems():
                    if key == "raw_response" and "broken" in title:
                        continue
                    try:
                        assert getattr(response, key) == value
                    except AssertionError:
                        print "  key == %r" % key
                        print "  value == %r" % value
                        print "  getattr(response, key) == %r" % getattr(
                            response, key)
                        raise

        # Test HTTP 0.9.
        print "Testing HTTP 0.9 response..."
        request = HTTP_Request("http://www.example.com/index.html",
                               version="0.9")
        response = HTTP_Response(request, data="hola manola")
        assert response.raw_response == "hola manola"
        assert response.raw_headers == None
        assert response.headers == None
        assert response.status == "200"
        assert response.reason == "OK"
        assert response.protocol == "HTTP"
        assert response.version == "0.9"
Ejemplo n.º 4
0
def test_http_request():
    with PluginTester():

        print "Testing a simple GET request..."
        request = HTTP_Request("http://www.example.com/index.html")
        assert request.method == "GET"
        assert request.url == "http://www.example.com/index.html"
        assert isinstance(request.parsed_url, ParsedURL)
        assert request.protocol == "HTTP"
        assert request.version == "1.1"
        assert isinstance(request.headers, HTTP_Headers)
        assert request.post_data == None
        assert request.request_uri == "/index.html"
        assert request.hostname == "www.example.com"
        assert request.user_agent == "Mozilla/5.0 (compatible, GoLismero/2.0 The Web Knife; +https://github.com/golismero/golismero)"
        assert request.accept_language == "en-US"
        assert request.accept == "*/*"
        assert request.referer == None
        assert request.cookie == None
        assert request.content_type == None
        assert request.content_length == None

        print "Testing a simple POST request..."
        request = HTTP_Request("http://www.example.com/form.php",
                               post_data="hola=manola")
        assert request.method == "POST"
        assert request.url == "http://www.example.com/form.php"
        assert isinstance(request.parsed_url, ParsedURL)
        assert request.protocol == "HTTP"
        assert request.version == "1.1"
        assert isinstance(request.headers, HTTP_Headers)
        assert request.post_data == "hola=manola"
        assert request.request_uri == "/form.php"
        assert request.hostname == "www.example.com"
        assert request.user_agent == "Mozilla/5.0 (compatible, GoLismero/2.0 The Web Knife; +https://github.com/golismero/golismero)"
        assert request.accept_language == "en-US"
        assert request.accept == "*/*"
        assert request.referer == None
        assert request.cookie == None
        assert request.content_type == "application/x-www-form-urlencoded"
        assert request.content_length == len("hola=manola")

        print "Testing a custom GET request (1)..."
        t_headers = (("Cookie", "lala=pepe"), ("Referer",
                                               "http://www.example.com/"))
        request = HTTP_Request("http://www.example.com/index.html",
                               headers=t_headers,
                               version="1.0")
        assert request.method == "GET"
        assert request.url == "http://www.example.com/index.html"
        assert isinstance(request.parsed_url, ParsedURL)
        assert request.protocol == "HTTP"
        assert request.version == "1.0"
        assert request.headers.to_tuple() == t_headers
        assert request.post_data == None
        assert request.request_uri == "/index.html"
        assert request.hostname == None
        assert request.user_agent == None
        assert request.accept_language == None
        assert request.accept == None
        assert request.referer == "http://www.example.com/"
        assert request.cookie == "lala=pepe"
        assert request.content_type == None
        assert request.content_length == None

        print "Testing a custom GET request (2)..."
        d_headers = {
            "Cookie": "lala=pepe",
            "Referer": "http://www.example.com/"
        }
        request = HTTP_Request("http://www.example.com/index.html",
                               headers=d_headers,
                               version="1.0")
        assert request.method == "GET"
        assert request.url == "http://www.example.com/index.html"
        assert isinstance(request.parsed_url, ParsedURL)
        assert request.protocol == "HTTP"
        assert request.version == "1.0"
        assert request.headers.to_tuple() == tuple(sorted(d_headers.items()))
        assert request.post_data == None
        assert request.request_uri == "/index.html"
        assert request.hostname == None
        assert request.user_agent == None
        assert request.accept_language == None
        assert request.accept == None
        assert request.referer == "http://www.example.com/"
        assert request.cookie == "lala=pepe"
        assert request.content_type == None
        assert request.content_length == None

        print "Testing a custom GET request (3)..."
        o_headers = HTTP_Headers.from_items(t_headers)
        request = HTTP_Request("http://www.example.com/form.php?hola=manola",
                               headers=o_headers,
                               version="1.0")
        assert request.method == "GET"
        assert request.url == "http://www.example.com/form.php?hola=manola"
        assert isinstance(request.parsed_url, ParsedURL)
        assert request.protocol == "HTTP"
        assert request.version == "1.0"
        assert request.headers is o_headers
        assert request.post_data == None
        assert request.request_uri == "/form.php?hola=manola"
        assert request.hostname == None
        assert request.user_agent == None
        assert request.accept_language == None
        assert request.accept == None
        assert request.referer == "http://www.example.com/"
        assert request.cookie == "lala=pepe"
        assert request.content_type == None
        assert request.content_length == None

        print "Testing a custom POST request..."
        request = HTTP_Request("http://www.example.com/form.php",
                               post_data="hola=manola",
                               headers=t_headers,
                               version="1.0")
        assert request.method == "POST"
        assert request.url == "http://www.example.com/form.php"
        assert isinstance(request.parsed_url, ParsedURL)
        assert request.protocol == "HTTP"
        assert request.version == "1.0"
        assert request.headers.to_tuple() == t_headers
        assert request.post_data == "hola=manola"
        assert request.request_uri == "/form.php"
        assert request.hostname == None
        assert request.user_agent == None
        assert request.accept_language == None
        assert request.accept == None
        assert request.referer == "http://www.example.com/"
        assert request.cookie == "lala=pepe"
        assert request.content_type == None
        assert request.content_length == None