On 04/20/2015 04:59 PM, Tim Ruehsen wrote:
Hi Ander,

sorry to answer so late. I was waiting for the mentioned test case... ;-)

Indeed, I had scheduled it for Monday (yesterday) in my messy mental agenda :D
So here it goes. My apologies if you had expected it earlier.

--
Regards,
- AJ
>From a0d3d234edf23d454722cae2805acd987bf20554 Mon Sep 17 00:00:00 2001
From: Ander Juaristi <[email protected]>
Date: Mon, 20 Apr 2015 23:16:18 +0200
Subject: [PATCH 2/3] Added test to make sure that Wget does not convert
 reserved characters in URLs when following redirections.

* testenv/Test-reserved-chars.py: New file.
---
 testenv/Test-reserved-chars.py | 59 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 59 insertions(+)
 create mode 100755 testenv/Test-reserved-chars.py

diff --git a/testenv/Test-reserved-chars.py b/testenv/Test-reserved-chars.py
new file mode 100755
index 0000000..5ef366a
--- /dev/null
+++ b/testenv/Test-reserved-chars.py
@@ -0,0 +1,59 @@
+#!/usr/bin/env python3
+from sys import exit
+from os import environ # to set LC_ALL
+from test.http_test import HTTPTest
+from misc.wget_file import WgetFile
+
+"""
+This test ensures that Wget keeps reserved characters in URLs in non-UTF-8 charsets.
+"""
+# This bug only happened with ASCII charset,
+# so we need to set LC_ALL="C" in order to reproduce it.
+environ["LC_ALL"] = "C"
+
+TEST_NAME = "URLs with reserved characters"
+######### File Definitions #########
+RequestList = [
+	[
+		"HEAD /base.html",
+		"GET /base.html",
+		"GET /robots.txt",
+		"HEAD /a%2Bb.html",
+		"GET /a%2Bb.html"
+	]
+]
+A_File_Name = "base.html"
+B_File_Name = "a%2Bb.html"
+A_File = WgetFile (A_File_Name, "<a href=\"a%2Bb.html\">")
+B_File = WgetFile (B_File_Name, "this is file B")
+
+WGET_OPTIONS = " --spider -r"
+WGET_URLS = [[A_File_Name]]
+
+Files = [[A_File, B_File]]
+
+ExpectedReturnCode = 0
+ExpectedDownloadedFiles = []
+
+######### Pre and Post Test Hooks #########
+pre_test = {
+    "ServerFiles"   : Files
+}
+test_options = {
+    "WgetCommands"      : WGET_OPTIONS,
+    "Urls"              : WGET_URLS
+}
+post_test = {
+    "ExpectedFiles"     : ExpectedDownloadedFiles,
+    "ExpectedRetcode"   : ExpectedReturnCode,
+    "FilesCrawled"      : RequestList
+}
+
+err = HTTPTest (
+                name=TEST_NAME,
+                pre_hook=pre_test,
+                test_params=test_options,
+                post_hook=post_test
+).begin ()
+
+exit (err)
-- 
1.9.1

Reply via email to