From 98272d2c8de7602f0bf393538047d40102f0b351 Mon Sep 17 00:00:00 2001 From: Jookia <166291@gmail.com> Date: Fri, 7 Aug 2015 07:58:30 +1000 Subject: [PATCH] Rewrite the --rejected-log test using the new framework. * tests/Test--rejected-log.px: Remove old test. * testenv/Test--rejected-log.py: Create new test. --- testenv/Makefile.am | 1 + testenv/Test--rejected-log.py | 104 +++++++++++++++++++++++++ tests/Makefile.am | 1 - tests/Test--rejected-log.px | 138 ---------------------------------- 4 files changed, 105 insertions(+), 139 deletions(-) create mode 100755 testenv/Test--rejected-log.py delete mode 100755 tests/Test--rejected-log.px 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 = """ + + + Main Page + + +

+ Recurse to a second page. +

+ + +""" + +secondpage = """ + + + Second Page + + +

+ Recurse to a third page. + Try the blacklisted main page. +

+ + +""" + +thirdpage = """ + + + Third Page + + +

+ 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 = < - - Main Page - - -

- Recurse to a second page. -

- - -EOF - -my $secondpage = < - - Second Page - - -

- Recurse to a third page. - Try the blacklisted main page. -

- - -EOF - -my $thirdpage = < - - Third Page - - -

- Try a hidden dummy file. - Try to leave to another domain. -

- - -EOF - -my $robots = < { - code => "200", - msg => "Dontcare", - headers => { - "Content-type" => "text/html", - }, - content => $mainpage, - }, - '/secondpage.html' => { - code => "200", - msg => "Dontcare", - headers => { - "Content-type" => "text/html", - }, - content => $secondpage, - }, - '/thirdpage.html' => { - code => "200", - msg => "Dontcare", - headers => { - "Content-type" => "text/html", - }, - content => $thirdpage, - }, - '/dummy.txt' => { - code => "200", - msg => "Dontcare", - headers => { - "Content-type" => "text/plain", - }, - content => "", - }, - '/robots.txt' => { - code => "200", - msg => "Dontcare", - headers => { - "Content-type" => "text/plain", - }, - content => $robots - }, -); - -my $cmdline = $WgetTest::WGETPATH . " -nd -r --rejected-log log.csv http://localhost:{{port}}/index.html"; - -my $expected_error_code = 0; - -my %expected_downloaded_files = ( - "index.html" => { - content => $mainpage, - }, - "secondpage.html" => { - content => $secondpage, - }, - "thirdpage.html" => { - content => $thirdpage, - }, - "robots.txt" => { - content => $robots, - }, - "log.csv" => { - content => $log, - }, -); - -############################################################################### - -my $the_test = HTTPTest->new (input => \%urls, - cmdline => $cmdline, - errcode => $expected_error_code, - output => \%expected_downloaded_files); -exit $the_test->run(); - -# vim: et ts=4 sw=4