diff options
Diffstat (limited to 'testenv/Test-pinnedpubkey-hash-https.py')
-rwxr-xr-x | testenv/Test-pinnedpubkey-hash-https.py | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/testenv/Test-pinnedpubkey-hash-https.py b/testenv/Test-pinnedpubkey-hash-https.py new file mode 100755 index 0000000..5cdc987 --- /dev/null +++ b/testenv/Test-pinnedpubkey-hash-https.py @@ -0,0 +1,60 @@ +#!/usr/bin/env python3 +from sys import exit +from test.http_test import HTTPTest +from test.base_test import HTTPS, SKIP_TEST +from misc.wget_file import WgetFile +import os + +""" + This test ensures that Wget can download files from HTTPS Servers +""" +if os.getenv('SSL_TESTS') is None: + exit (SKIP_TEST) + +############# File Definitions ############################################### +File1 = "Would you like some Tea?" +File2 = "With lemon or cream?" +File3 = "Sure you're joking Mr. Feynman" + +A_File = WgetFile ("File1", File1) +B_File = WgetFile ("File2", File2) +C_File = WgetFile ("File3", File3) + +CERTDIR = os.path.abspath(os.path.join(os.getenv('srcdir', '.'), 'certs')) +CAFILE = CERTDIR + '/ca-cert.pem' +KEYFILE = CERTDIR + '/server-pubkey-sha256.base64' +with open(KEYFILE, 'r') as f: + KEY = f.read().replace('\n', '') +WGET_OPTIONS = "--pinnedpubkey=sha256//" + KEY + " --ca-certificate=" + CAFILE +WGET_URLS = [["File1", "File2"]] + +Files = [[A_File, B_File]] +Existing_Files = [C_File] + +Servers = [HTTPS] + +ExpectedReturnCode = 0 +ExpectedDownloadedFiles = [A_File, B_File, C_File] + +################ Pre and Post Test Hooks ##################################### +pre_test = { + "ServerFiles" : Files, + "LocalFiles" : Existing_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) |