From 4a214bc9a367c6da4df97be32eb2ab9527820d61 Mon Sep 17 00:00:00 2001 From: Yousong Zhou Date: Fri, 30 Jan 2015 21:13:31 +0800 Subject: [PATCH] testenv: add test case Test--convert-links--content-on-error.py. * testenv/Makefile.am: Register the new test. * testenv/Test--convert-links--content-on-error.py: Add test case for the combination of --convert-links and --content-on-error.py. --- testenv/Makefile.am | 45 +++++------ .../Test--convert-links--content-on-error.py | 79 +++++++++++++++++++ 2 files changed, 102 insertions(+), 22 deletions(-) create mode 100755 testenv/Test--convert-links--content-on-error.py diff --git a/testenv/Makefile.am b/testenv/Makefile.am index 39ea76ce..ec7d1991 100644 --- a/testenv/Makefile.am +++ b/testenv/Makefile.am @@ -30,28 +30,29 @@ AUTOMAKE_OPTIONS = parallel-tests AM_TESTS_ENVIRONMENT = export WGETRC=/dev/null; MAKE_CHECK=True; export MAKE_CHECK;\ export PYTHONPATH=$$PYTHONPATH:$(srcdir); export VALGRIND_TESTS="@VALGRIND_TESTS@"; if HAVE_PYTHON3 - TESTS = Test-auth-basic-fail.py \ - Test-auth-basic.py \ - Test-auth-both.py \ - Test-auth-digest.py \ - Test-auth-no-challenge.py \ - Test-auth-no-challenge-url.py \ - Test-auth-retcode.py \ - Test-auth-with-content-disposition.py \ - Test-c-full.py \ - Test-Content-disposition-2.py \ - Test-Content-disposition.py \ - Test-cookie-401.py \ - Test-cookie-domain-mismatch.py \ - Test-cookie-expires.py \ - Test-cookie.py \ - Test-Head.py \ - Test--https.py \ - Test--https-crl.py \ - Test-O.py \ - Test-Post.py \ - Test-504.py \ - Test--spider-r.py \ + TESTS = Test-auth-basic-fail.py \ + Test-auth-basic.py \ + Test-auth-both.py \ + Test-auth-digest.py \ + Test-auth-no-challenge.py \ + Test-auth-no-challenge-url.py \ + Test-auth-retcode.py \ + Test-auth-with-content-disposition.py \ + Test-c-full.py \ + Test-Content-disposition-2.py \ + Test-Content-disposition.py \ + Test--convert-links--content-on-error.py \ + Test-cookie-401.py \ + Test-cookie-domain-mismatch.py \ + Test-cookie-expires.py \ + Test-cookie.py \ + Test-Head.py \ + Test--https.py \ + Test--https-crl.py \ + Test-O.py \ + Test-Post.py \ + Test-504.py \ + Test--spider-r.py \ Test-redirect-crash.py # added test cases expected to fail here and under TESTS diff --git a/testenv/Test--convert-links--content-on-error.py b/testenv/Test--convert-links--content-on-error.py new file mode 100755 index 00000000..bfa9d9b4 --- /dev/null +++ b/testenv/Test--convert-links--content-on-error.py @@ -0,0 +1,79 @@ +#!/usr/bin/env python3 +from sys import exit +from test.http_test import HTTPTest +from misc.wget_file import WgetFile + +""" + This test ensures that Wget link conversion works also on HTTP error pages. +""" +TEST_NAME = "Test--convert-links--content-on-error" +############# File Definitions ############################################### +a_x_FileContent = """ + + + + + + + + + + +""" +a_x_LocalFileContent = """ + + + + + + + + + + +""" + +error_FileContent = '404 page content' +error_FileRules = { + 'Response': 404 , + 'SendHeader': { + 'Content-Length': len(error_FileContent), + 'Content-Type': 'text/plain', + } +} + +a_x_File = WgetFile ("a/x.html", a_x_FileContent) +robots_File = WgetFile ("robots.txt", '') +error_File = WgetFile ("b/y.html", error_FileContent, rules=error_FileRules) + +B_File = WgetFile ("a/x.html", a_x_LocalFileContent) + +WGET_OPTIONS = "--no-host-directories -r -l2 --convert-links --content-on-error" +WGET_URLS = [["a/x.html"]] + +Files = [[a_x_File, robots_File, error_File]] + +ExpectedReturnCode = 8 +ExpectedDownloadedFiles = [B_File, robots_File, error_File] + +################ 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)