2014-03-12 00:59:07 +00:00
|
|
|
(ns puppetlabs.http.client.async-test
|
2014-03-11 00:24:22 +00:00
|
|
|
(:require [clojure.test :refer :all]
|
|
|
|
[clojure.java.io :refer [resource]]
|
2014-04-06 00:52:58 +00:00
|
|
|
[puppetlabs.certificate-authority.core :as ssl]
|
2014-03-12 00:59:07 +00:00
|
|
|
[puppetlabs.http.client.async :as http])
|
2014-03-11 00:24:22 +00:00
|
|
|
(:import [javax.net.ssl SSLEngine]))
|
|
|
|
|
|
|
|
(deftest ssl-config-with-files
|
|
|
|
(let [req {:url "http://localhost"
|
|
|
|
:method :get
|
2014-03-29 00:33:27 +00:00
|
|
|
:ssl-cert (resource "ssl/cert.pem")
|
|
|
|
:ssl-key (resource "ssl/key.pem")
|
|
|
|
:ssl-ca-cert (resource "ssl/ca.pem")}
|
2014-03-11 00:24:22 +00:00
|
|
|
configured-req (http/configure-ssl req)]
|
|
|
|
|
|
|
|
(testing "configure-ssl sets up an SSLEngine when given cert, key, ca-cert"
|
|
|
|
(is (instance? SSLEngine (:sslengine configured-req))))
|
|
|
|
|
|
|
|
(testing "removes ssl-cert, ssl-key, ssl-ca-cert"
|
|
|
|
(is (not (:ssl-cert configured-req)))
|
|
|
|
(is (not (:ssl-key configured-req)))
|
|
|
|
(is (not (:ssl-ca-cert configured-req))))))
|
|
|
|
|
2014-04-06 03:04:03 +00:00
|
|
|
(deftest ssl-config-with-ca-file
|
2014-04-11 20:56:09 +00:00
|
|
|
(let [req {:ssl-ca-cert (resource "ssl/ca.pem")}
|
2014-04-06 03:04:03 +00:00
|
|
|
configured-req (http/configure-ssl req)]
|
|
|
|
|
|
|
|
(testing "configure-ssl sets up an SSLEngine when given ca-cert"
|
|
|
|
(is (instance? SSLEngine (:sslengine configured-req))))
|
|
|
|
|
|
|
|
(testing "removes ssl-ca-cert"
|
|
|
|
(is (not (:ssl-ca-cert configured-req))))))
|
|
|
|
|
2014-03-12 00:19:37 +00:00
|
|
|
(deftest ssl-config-without-ssl-params
|
2014-03-11 00:24:22 +00:00
|
|
|
(let [req {:url "http://localhost"
|
|
|
|
:method :get}
|
|
|
|
configured-req (http/configure-ssl req)]
|
|
|
|
|
2014-03-12 00:19:37 +00:00
|
|
|
(testing "configure-ssl does nothing when given no ssl parameters"
|
|
|
|
(is (= req configured-req)))))
|
|
|
|
|
|
|
|
(deftest ssl-config-with-context
|
|
|
|
(let [req {:url "http://localhost"
|
|
|
|
:method :get
|
2014-04-06 00:52:58 +00:00
|
|
|
:ssl-context (ssl/pems->ssl-context
|
2014-03-29 00:33:27 +00:00
|
|
|
(resource "ssl/cert.pem")
|
|
|
|
(resource "ssl/key.pem")
|
|
|
|
(resource "ssl/ca.pem"))}
|
2014-03-12 00:19:37 +00:00
|
|
|
configured-req (http/configure-ssl req)]
|
|
|
|
|
|
|
|
(testing "configure-ssl uses an existing ssl context"
|
|
|
|
(is (instance? SSLEngine (:sslengine configured-req))))))
|
|
|
|
|
|
|
|
(deftest ssl-config-with-sslengine
|
|
|
|
(let [req {:url "http://localhost"
|
|
|
|
:method :get
|
2014-03-29 00:33:27 +00:00
|
|
|
:ssl-cert (resource "ssl/cert.pem")
|
|
|
|
:ssl-key (resource "ssl/key.pem")
|
|
|
|
:ssl-ca-cert (resource "ssl/ca.pem")
|
2014-03-12 00:19:37 +00:00
|
|
|
:sslengine "thing"}
|
|
|
|
configured-req (http/configure-ssl req)]
|
|
|
|
(testing "configure-ssl does nothing when :sslengine is given"
|
2014-03-11 00:24:22 +00:00
|
|
|
(is (= req configured-req)))))
|