diff --git a/testenv/Makefile.am b/testenv/Makefile.am
index 7a5fdbea..498755cb 100644
--- a/testenv/Makefile.am
+++ b/testenv/Makefile.am
@@ -44,7 +44,7 @@ DEFAULT_TESTS = \
Test-condget.py \
Test-Content-disposition-2.py \
Test-Content-disposition.py \
- test_css_url.py \
+ test_css_url.py \
Test--convert-links--content-on-error.py \
Test-cookie-401.py \
Test-cookie-domain-mismatch.py \
@@ -52,8 +52,10 @@ DEFAULT_TESTS = \
Test-cookie.py \
Test-Head.py \
Test-hsts.py \
+ Test-https-k.py \
Test--https.py \
Test--https-crl.py \
+ Test-k.py \
Test-missing-scheme-retval.py \
Test-O.py \
Test-pinnedpubkey-der-https.py \
diff --git a/testenv/Test-https-k.py b/testenv/Test-https-k.py
new file mode 100755
index 00000000..69b5cd36
--- /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 = """
+
+
+ Index
+
+
+ Site
+ Missing
+ Missing2
+
+
+"""
+
+converted = """
+
+
+ Index
+
+
+ Site
+ Missing
+ Missing2
+
+
+"""
+
+site = """
+
+
+ Site
+
+
+ Subsite
+
+
+"""
+
+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)
diff --git a/testenv/Test-k.py b/testenv/Test-k.py
new file mode 100755
index 00000000..342887c0
--- /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 = """
+
+
+ Index
+
+
+ Site
+
+
+"""
+
+converted = """
+
+
+ Index
+
+
+ Site
+
+
+"""
+
+site = """
+
+
+ Site
+
+
+ Subsite
+
+
+"""
+
+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)