2014-07-03 15:58:46 +00:00
|
|
|
(ns puppetlabs.http.client.async-ssl-config-test
|
|
|
|
(:require [clojure.test :refer :all]
|
|
|
|
[clojure.java.io :refer [resource]]
|
|
|
|
[puppetlabs.certificate-authority.core :as ssl]
|
|
|
|
[puppetlabs.http.client.async :as http]
|
|
|
|
[schema.test :as schema-test])
|
|
|
|
(:import [javax.net.ssl SSLContext]))
|
|
|
|
|
|
|
|
(use-fixtures :once schema-test/validate-schemas)
|
|
|
|
|
|
|
|
(deftest ssl-config-with-files
|
|
|
|
(let [opts {:ssl-cert (resource "ssl/cert.pem")
|
|
|
|
:ssl-key (resource "ssl/key.pem")
|
|
|
|
:ssl-ca-cert (resource "ssl/ca.pem")}
|
2014-10-18 06:35:05 +00:00
|
|
|
configured-opts (http/configure-ssl-ctxt opts)]
|
2014-07-03 15:58:46 +00:00
|
|
|
|
2014-10-18 06:35:05 +00:00
|
|
|
(testing "configure-ssl-ctxt sets up an SSLContext when given cert, key, ca-cert"
|
2014-07-03 15:58:46 +00:00
|
|
|
(is (instance? SSLContext (:ssl-context configured-opts))))
|
|
|
|
|
|
|
|
(testing "removes ssl-cert, ssl-key, ssl-ca-cert"
|
|
|
|
(is (not (:ssl-cert configured-opts)))
|
|
|
|
(is (not (:ssl-key configured-opts)))
|
|
|
|
(is (not (:ssl-ca-cert configured-opts))))))
|
|
|
|
|
|
|
|
(deftest ssl-config-with-ca-file
|
|
|
|
(let [opts {:ssl-ca-cert (resource "ssl/ca.pem")}
|
2014-10-18 06:35:05 +00:00
|
|
|
configured-opts (http/configure-ssl-ctxt opts)]
|
2014-07-03 15:58:46 +00:00
|
|
|
|
2014-10-18 06:35:05 +00:00
|
|
|
(testing "configure-ssl-ctxt sets up an SSLContext when given ca-cert"
|
2014-07-03 15:58:46 +00:00
|
|
|
(is (instance? SSLContext (:ssl-context configured-opts))))
|
|
|
|
|
|
|
|
(testing "removes ssl-ca-cert"
|
|
|
|
(is (not (:ssl-ca-cert configured-opts))))))
|
|
|
|
|
|
|
|
(deftest ssl-config-without-ssl-params
|
2014-10-18 06:35:05 +00:00
|
|
|
(let [configured-opts (http/configure-ssl-ctxt {})]
|
2014-07-03 15:58:46 +00:00
|
|
|
|
2014-10-18 06:35:05 +00:00
|
|
|
(testing "configure-ssl-ctxt does nothing when given no ssl parameters"
|
2014-07-03 15:58:46 +00:00
|
|
|
(is (= {} configured-opts)))))
|
|
|
|
|
|
|
|
(deftest ssl-config-with-context
|
|
|
|
(let [opts {:ssl-context (ssl/pems->ssl-context
|
|
|
|
(resource "ssl/cert.pem")
|
|
|
|
(resource "ssl/key.pem")
|
|
|
|
(resource "ssl/ca.pem"))}
|
2014-10-18 06:35:05 +00:00
|
|
|
configured-opts (http/configure-ssl-ctxt opts)]
|
2014-07-03 15:58:46 +00:00
|
|
|
|
2014-10-18 06:35:05 +00:00
|
|
|
(testing "configure-ssl-ctxt uses an existing ssl context"
|
2014-07-03 15:58:46 +00:00
|
|
|
(is (instance? SSLContext (:ssl-context configured-opts))))))
|