summaryrefslogtreecommitdiffstats
path: root/testenv/Test-https-k.py
diff options
context:
space:
mode:
Diffstat (limited to 'testenv/Test-https-k.py')
-rwxr-xr-xtestenv/Test-https-k.py98
1 files changed, 98 insertions, 0 deletions
diff --git a/testenv/Test-https-k.py b/testenv/Test-https-k.py
new file mode 100755
index 0000000..69b5cd3
--- /dev/null
+++ b/testenv/Test-https-k.py
@@ -0,0 +1,98 @@
+#!/usr/bin/env python3
+
+import os
+import platform
+from sys import exit
+
+from test.base_test import HTTPS, SKIP_TEST
+from test.http_test import HTTPTest
+from misc.wget_file import WgetFile
+
+"""
+Test that Wget handles the --convert-links (-k) option correctly.
+
+Ensure that when downloading, Wget retains the protocol of the host URL
+if the link wasn't followed and an absolute link is to be added to the
+local file.
+"""
+
+if os.getenv('SSL_TESTS') is None:
+ exit(SKIP_TEST)
+
+############################## File Definitions ##############################
+
+index = """
+<html>
+ <head>
+ <title>Index</title>
+ </head>
+ <body>
+ <a href="sub.html">Site</a>
+ <a href="missing.xhtml">Missing</a>
+ <a href="//localhost:{{port}}/missing2.html">Missing2</a>
+ </body>
+</html>
+"""
+
+converted = """
+<html>
+ <head>
+ <title>Index</title>
+ </head>
+ <body>
+ <a href="sub.html">Site</a>
+ <a href="https://localhost:{{port}}/missing.xhtml">Missing</a>
+ <a href="https://localhost:{{port}}/missing2.html">Missing2</a>
+ </body>
+</html>
+"""
+
+site = """
+<html>
+ <head>
+ <title>Site</title>
+ </head>
+ <body>
+ Subsite
+ </body>
+</html>
+"""
+
+IndexPage = WgetFile("index.html", index)
+SubSite = WgetFile("sub.html", site)
+LocalIndexPage = WgetFile("index.html", converted)
+
+print(platform.system())
+restrict = "unix" if platform.system() in ["Linux", "Darwin"] else "windows"
+
+WGET_OPTIONS = "-k -r -nH --reject-regex '.*\\.xhtml' --no-check-certificate"
+WGET_URLS = [["index.html"]]
+
+Files = [[IndexPage, SubSite]]
+
+Servers = [HTTPS]
+
+ExpectedReturnCode = 8
+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,
+ protocols=Servers,
+).begin()
+
+exit(err)