diff --git a/testenv/Makefile.am b/testenv/Makefile.am index 8f1b5f4a..c16a6c62 100644 --- a/testenv/Makefile.am +++ b/testenv/Makefile.am @@ -63,6 +63,7 @@ if HAVE_PYTHON3 Test-Post.py \ Test-504.py \ Test--spider-r.py \ + Test--rejected-log.py \ Test-redirect-crash.py \ Test-reserved-chars.py \ Test-condget.py \ diff --git a/testenv/Test--rejected-log.py b/testenv/Test--rejected-log.py new file mode 100755 index 00000000..ef727947 --- /dev/null +++ b/testenv/Test--rejected-log.py @@ -0,0 +1,104 @@ +#!/usr/bin/env python3 +from sys import exit +from test.http_test import HTTPTest +from misc.wget_file import WgetFile + +""" + This test executed Wget in recursive mode with a rejected log outputted. +""" +TEST_NAME = "Rejected Log" +############# File Definitions ############################################### +mainpage = """ + +
++ Recurse to a second page. +
+ + +""" + +secondpage = """ + + ++ Recurse to a third page. + Try the blacklisted main page. +
+ + +""" + +thirdpage = """ + + ++ Try a hidden dummy file. + Try to leave to another domain. +
+ + +""" + +robots = """ +User-agent: * +Disallow: /dummy.txt +""" + +log = """\ +REASON U_URL U_SCHEME U_HOST U_PORT U_PATH U_PARAMS U_QUERY U_FRAGMENT P_URL P_SCHEME P_HOST P_PORT P_PATH P_PARAMS P_QUERY P_FRAGMENT +BLACKLIST http%3A//127.0.0.1%3A{{port}}/index.html SCHEME_HTTP 127.0.0.1 {{port}} index.html http%3A//127.0.0.1%3A{{port}}/secondpage.html SCHEME_HTTP 127.0.0.1 {{port}} secondpage.html +ROBOTS http%3A//127.0.0.1%3A{{port}}/dummy.txt SCHEME_HTTP 127.0.0.1 {{port}} dummy.txt http%3A//127.0.0.1%3A{{port}}/thirdpage.html SCHEME_HTTP 127.0.0.1 {{port}} thirdpage.html +SPANNEDHOST http%3A//no.such.domain/ SCHEME_HTTP no.such.domain 80 http%3A//127.0.0.1%3A{{port}}/thirdpage.html SCHEME_HTTP 127.0.0.1 {{port}} thirdpage.html +""" + +dummyfile = "Don't care." + + +index_html = WgetFile ("index.html", mainpage) +secondpage_html = WgetFile ("secondpage.html", secondpage) +thirdpage_html = WgetFile ("thirdpage.html", thirdpage) +robots_txt = WgetFile ("robots.txt", robots) +dummy_txt = WgetFile ("dummy.txt", dummyfile) +log_csv = WgetFile ("log.csv", log) + +WGET_OPTIONS = "-nd -r --rejected-log log.csv" +WGET_URLS = [["index.html"]] + +Files = [[index_html, secondpage_html, thirdpage_html, robots_txt, dummy_txt]] + +ExpectedReturnCode = 0 +ExpectedDownloadedFiles = [index_html, secondpage_html, thirdpage_html, robots_txt, log_csv] +# TODO: fix long line +# TODO: check names + +################ Pre and Post Test Hooks ##################################### +pre_test = { + "ServerFiles" : Files +} +test_options = { + "WgetCommands" : WGET_OPTIONS, + "Urls" : WGET_URLS +} +post_test = { + "ExpectedFiles" : ExpectedDownloadedFiles, + "ExpectedRetcode" : ExpectedReturnCode +} + +err = HTTPTest ( + name=TEST_NAME, + pre_hook=pre_test, + test_params=test_options, + post_hook=post_test +).begin () + +exit (err) diff --git a/tests/Makefile.am b/tests/Makefile.am index fae34d0f..5d387aab 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -127,7 +127,6 @@ PX_TESTS = \ Test--start-pos.px \ Test--start-pos--continue.px \ Test--httpsonly-r.px \ - Test--rejected-log.px \ Test-204.px EXTRA_DIST = FTPServer.pm FTPTest.pm HTTPServer.pm HTTPTest.pm \ diff --git a/tests/Test--rejected-log.px b/tests/Test--rejected-log.px deleted file mode 100755 index 588d9c65..00000000 --- a/tests/Test--rejected-log.px +++ /dev/null @@ -1,138 +0,0 @@ -#!/usr/bin/env perl - -use strict; -use warnings; - -use HTTPTest; - - -############################################################################### - -my $mainpage = <- Recurse to a second page. -
- -