Example #1
0
    def test_find(self):
        find_id = random.randint(1, 499)
        url = URL("http://w3af.org/a/b/foobar.php?foo=123")
        tag_value = rand_alnum(10)
        for i in xrange(0, 500):
            request = HTTPRequest(url, data="a=1")
            code = 200
            if i == find_id:
                code = 302

            hdr = Headers([("Content-Type", "text/html")])
            res = HTTPResponse(code, "<html>", hdr, url, url)
            h1 = HistoryItem()
            h1.request = request
            res.set_id(i)
            h1.response = res
            if i == find_id:
                h1.toggle_mark()
                h1.update_tag(tag_value)
            h1.save()
        h2 = HistoryItem()
        self.assertEqual(len(h2.find([("tag", "%" + tag_value + "%", "like")])), 1)
        self.assertEqual(len(h2.find([("code", 302, "=")])), 1)
        self.assertEqual(len(h2.find([("mark", 1, "=")])), 1)
        self.assertEqual(len(h2.find([("has_qs", 1, "=")])), 500)
        self.assertEqual(len(h2.find([("has_qs", 1, "=")], result_limit=10)), 10)
        results = h2.find([("has_qs", 1, "=")], result_limit=1, orderData=[("id", "desc")])
        self.assertEqual(results[0].id, 499)
        search_data = []
        search_data.append(("id", find_id + 1, "<"))
        search_data.append(("id", find_id - 1, ">"))
        self.assertEqual(len(h2.find(search_data)), 1)
Example #2
0
    def test_clear(self):

        url = URL("http://w3af.com/a/b/c.php")
        request = HTTPRequest(url, data="a=1")
        hdr = Headers([("Content-Type", "text/html")])
        res = HTTPResponse(200, "<html>", hdr, url, url)

        h1 = HistoryItem()
        h1.request = request
        res.set_id(1)
        h1.response = res
        h1.save()

        table_name = h1.get_table_name()
        db = get_default_temp_db_instance()

        self.assertTrue(db.table_exists(table_name))

        clear_result = h1.clear()

        self.assertTrue(clear_result)
        self.assertFalse(os.path.exists(h1._session_dir), "%s exists." % h1._session_dir)

        # Changed the meaning of clear a little bit... now it simply removes
        # all rows from the table, not the table itself
        self.assertTrue(db.table_exists(table_name))
Example #3
0
    def test_clear_clear(self):

        url = URL("http://w3af.com/a/b/c.php")
        request = HTTPRequest(url, data="a=1")
        hdr = Headers([("Content-Type", "text/html")])
        res = HTTPResponse(200, "<html>", hdr, url, url)

        h1 = HistoryItem()
        h1.request = request
        res.set_id(1)
        h1.response = res
        h1.save()

        h1.clear()
        h1.clear()
Example #4
0
 def test_save_load(self):
     i = random.randint(1, 499)
     url = URL("http://w3af.com/a/b/c.php")
     request = HTTPRequest(url, data="a=1")
     hdr = Headers([("Content-Type", "text/html")])
     res = HTTPResponse(200, "<html>", hdr, url, url)
     h1 = HistoryItem()
     h1.request = request
     res.set_id(i)
     h1.response = res
     h1.save()
     h2 = HistoryItem()
     h2.load(i)
     self.assertEqual(h1.request, h2.request)
     self.assertEqual(h1.response.body, h2.response.body)
Example #5
0
    def test_tag(self):
        tag_id = random.randint(501, 999)
        tag_value = rand_alnum(10)
        url = URL("http://w3af.org/a/b/c.php")

        for i in xrange(501, 1000):
            request = HTTPRequest(url, data="a=1")
            hdr = Headers([("Content-Type", "text/html")])
            res = HTTPResponse(200, "<html>", hdr, url, url)
            h1 = HistoryItem()
            h1.request = request
            res.set_id(i)
            h1.response = res
            if i == tag_id:
                h1.update_tag(tag_value)
            h1.save()

        h2 = HistoryItem()
        h2.load(tag_id)
        self.assertEqual(h2.tag, tag_value)
Example #6
0
    def test_delete(self):
        i = random.randint(1, 499)

        url = URL("http://w3af.com/a/b/c.php")
        request = HTTPRequest(url, data="a=1")
        hdr = Headers([("Content-Type", "text/html")])
        res = HTTPResponse(200, "<html>", hdr, url, url)
        res.set_id(i)

        h1 = HistoryItem()
        h1.request = request
        h1.response = res
        h1.save()

        fname = h1._get_fname_for_id(i)
        self.assertTrue(os.path.exists(fname))

        h1.delete(i)

        self.assertRaises(DBException, h1.read, i)
        self.assertFalse(os.path.exists(fname))
Example #7
0
    def test_mark(self):
        mark_id = 3
        url = URL("http://w3af.org/a/b/c.php")

        for i in xrange(0, 500):
            request = HTTPRequest(url, data="a=1")
            hdr = Headers([("Content-Type", "text/html")])
            res = HTTPResponse(200, "<html>", hdr, url, url)
            h1 = HistoryItem()
            h1.request = request
            res.set_id(i)
            h1.response = res
            if i == mark_id:
                h1.toggle_mark()
            h1.save()

        h2 = HistoryItem()
        h2.load(mark_id)
        self.assertTrue(h2.mark)

        h3 = HistoryItem()
        h3.load(mark_id - 1)
        self.assertFalse(h3.mark)