>From 552cc72fd0957420c7354f3619799aef38788c5e Mon Sep 17 00:00:00 2001 From: "Dale R. Worley" Date: Tue, 23 Aug 2016 18:09:16 -0400 Subject: [PATCH 3/4] Add tests for recursion and redirection. --- testenv/Makefile.am | 3 +++ testenv/Test-recursive-basic.py | 57 +++++++++++++++++++++++++++++++++++++++ testenv/Test-recursive-include.py | 56 ++++++++++++++++++++++++++++++++++++++ testenv/Test-redirect.py | 57 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 173 insertions(+) create mode 100755 testenv/Test-recursive-basic.py create mode 100755 testenv/Test-recursive-include.py create mode 100755 testenv/Test-redirect.py diff --git a/testenv/Makefile.am b/testenv/Makefile.am index faf86a9..deef18e 100644 --- a/testenv/Makefile.am +++ b/testenv/Makefile.am @@ -73,6 +73,9 @@ if HAVE_PYTHON3 Test-pinnedpubkey-pem-fail-https.py \ Test-pinnedpubkey-pem-https.py \ Test-Post.py \ + Test-recursive-basic.py \ + Test-recursive-include.py \ + Test-redirect.py \ Test-redirect-crash.py \ Test--rejected-log.py \ Test-reserved-chars.py \ diff --git a/testenv/Test-recursive-basic.py b/testenv/Test-recursive-basic.py new file mode 100755 index 0000000..f425ea2 --- /dev/null +++ b/testenv/Test-recursive-basic.py @@ -0,0 +1,57 @@ +#!/usr/bin/env python3 +from sys import exit +from test.http_test import HTTPTest +from test.base_test import HTTP, HTTPS +from misc.wget_file import WgetFile + +""" + Basic test of --recursive. +""" +############# File Definitions ############################################### +File1 = """ +text +text +""" +File2 = "With lemon or cream?" +File3 = "Surely you're joking Mr. Feynman" + +File1_File = WgetFile ("a/File1.html", File1) +File2_File = WgetFile ("a/File2.html", File2) +File3_File = WgetFile ("b/File3.html", File3) + +WGET_OPTIONS = "--recursive --no-host-directories" +WGET_URLS = [["a/File1.html"]] + +Servers = [HTTP] + +Files = [[File1_File, File2_File, File3_File]] +Existing_Files = [] + +ExpectedReturnCode = 0 +ExpectedDownloadedFiles = [File1_File, File2_File, File3_File] +Request_List = [["GET /a/File1.html", + "GET /a/File2.html", + "GET /b/File3.html"]] + +################ Pre and Post Test Hooks ##################################### +pre_test = { + "ServerFiles" : Files, + "LocalFiles" : Existing_Files +} +test_options = { + "WgetCommands" : WGET_OPTIONS, + "Urls" : WGET_URLS +} +post_test = { + "ExpectedFiles" : ExpectedDownloadedFiles, + "ExpectedRetcode" : ExpectedReturnCode +} + +err = HTTPTest ( + pre_hook=pre_test, + test_params=test_options, + post_hook=post_test, + protocols=Servers +).begin () + +exit (err) diff --git a/testenv/Test-recursive-include.py b/testenv/Test-recursive-include.py new file mode 100755 index 0000000..1fe33cd --- /dev/null +++ b/testenv/Test-recursive-include.py @@ -0,0 +1,56 @@ +#!/usr/bin/env python3 +from sys import exit +from test.http_test import HTTPTest +from test.base_test import HTTP, HTTPS +from misc.wget_file import WgetFile + +""" + Basic test of --recursive. +""" +############# File Definitions ############################################### +File1 = """ +text +text +""" +File2 = "With lemon or cream?" +File3 = "Surely you're joking Mr. Feynman" + +File1_File = WgetFile ("a/File1.html", File1) +File2_File = WgetFile ("a/File2.html", File2) +File3_File = WgetFile ("b/File3.html", File3) + +WGET_OPTIONS = "--recursive --no-host-directories --include-directories=a" +WGET_URLS = [["a/File1.html"]] + +Servers = [HTTP] + +Files = [[File1_File, File2_File, File3_File]] +Existing_Files = [] + +ExpectedReturnCode = 0 +ExpectedDownloadedFiles = [File1_File, File2_File] +Request_List = [["GET /a/File1.html", + "GET /a/File2.html"]] + +################ Pre and Post Test Hooks ##################################### +pre_test = { + "ServerFiles" : Files, + "LocalFiles" : Existing_Files +} +test_options = { + "WgetCommands" : WGET_OPTIONS, + "Urls" : WGET_URLS +} +post_test = { + "ExpectedFiles" : ExpectedDownloadedFiles, + "ExpectedRetcode" : ExpectedReturnCode +} + +err = HTTPTest ( + pre_hook=pre_test, + test_params=test_options, + post_hook=post_test, + protocols=Servers +).begin () + +exit (err) diff --git a/testenv/Test-redirect.py b/testenv/Test-redirect.py new file mode 100755 index 0000000..02adf52 --- /dev/null +++ b/testenv/Test-redirect.py @@ -0,0 +1,57 @@ +#!/usr/bin/env python3 +from sys import exit +from test.http_test import HTTPTest +from test.base_test import HTTP, HTTPS +from misc.wget_file import WgetFile + +""" + This is a Prototype Test File. + Ideally this File should be copied and edited to write new tests. +""" +############# File Definitions ############################################### +File2 = "Would you like some Tea?" + +File1_rules = { + "Response" : 301, + "SendHeader" : {"Location" : "/File2.txt"} +} + +# /File1.txt is only a redirect, and so has no file content. +File1_File = WgetFile ("File1.txt", "", rules=File1_rules) +# File1_Retrieved is what will be retrieved for URL /File1.txt. +File1_Retrieved = WgetFile ("File1.txt", File2) +File2_File = WgetFile ("File2.txt", File2) + +WGET_OPTIONS = "" +WGET_URLS = [["File1.txt"]] + +Servers = [HTTP] + +Files = [[File1_File, File2_File]] +Existing_Files = [] + +ExpectedReturnCode = 0 +ExpectedDownloadedFiles = [File1_Retrieved] + +################ Pre and Post Test Hooks ##################################### +pre_test = { + "ServerFiles" : Files, + "LocalFiles" : Existing_Files +} +test_options = { + "WgetCommands" : WGET_OPTIONS, + "Urls" : WGET_URLS +} +post_test = { + "ExpectedFiles" : ExpectedDownloadedFiles, + "ExpectedRetcode" : ExpectedReturnCode +} + +err = HTTPTest ( + pre_hook=pre_test, + test_params=test_options, + post_hook=post_test, + protocols=Servers +).begin () + +exit (err) -- 2.10.0.rc0.17.gd63263a