summaryrefslogtreecommitdiffstats
path: root/testenv/Test-k.py
diff options
context:
space:
mode:
Diffstat (limited to 'testenv/Test-k.py')
-rwxr-xr-xtestenv/Test-k.py85
1 files changed, 85 insertions, 0 deletions
diff --git a/testenv/Test-k.py b/testenv/Test-k.py
new file mode 100755
index 0000000..342887c
--- /dev/null
+++ b/testenv/Test-k.py
@@ -0,0 +1,85 @@
+#!/usr/bin/env python3
+
+import platform
+from sys import exit
+from test.http_test import HTTPTest
+
+from misc.wget_file import WgetFile
+
+"""
+Test that Wget handles the --convert-links (-k) option correctly.
+
+Also tests that the --restrict-file-names option works as expected by using a
+filename with restricted characters and ensuring that it uses the correct
+characterset based on the current OS
+"""
+
+############################## File Definitions ##############################
+index = """
+<html>
+ <head>
+ <title>Index</title>
+ </head>
+ <body>
+ <a href="site;sub:.html">Site</a>
+ </body>
+</html>
+"""
+
+converted = """
+<html>
+ <head>
+ <title>Index</title>
+ </head>
+ <body>
+ <a href="./site%3Bsub:.html">Site</a>
+ </body>
+</html>
+"""
+
+site = """
+<html>
+ <head>
+ <title>Site</title>
+ </head>
+ <body>
+ Subsite
+ </body>
+</html>
+"""
+
+IndexPage = WgetFile("index.html", index)
+SubSite = WgetFile("site;sub:.html", site)
+LocalIndexPage = WgetFile("index.html", converted)
+
+print(platform.system())
+restrict = "unix" if platform.system() in ["Linux", "Darwin"] else "windows"
+
+WGET_OPTIONS = f"-k -r -nH --restrict-file-names={restrict}"
+WGET_URLS = [["index.html"]]
+
+Files = [[IndexPage, SubSite]]
+
+ExpectedReturnCode = 0
+ExpectedDownloadedFiles = [LocalIndexPage, SubSite]
+
+########################### 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(
+ pre_hook=pre_test,
+ test_params=test_options,
+ post_hook=post_test,
+).begin()
+
+exit(err)