@@ -37,6 +37,7 @@ import qualified Data.Text as T
3737import qualified Data.Text.Encoding as T
3838import qualified Network.HTTP.Client as L
3939import qualified Network.HTTP.Types as Y
40+import qualified Network.HTTP.Types.Header as Y
4041
4142spec :: Spec
4243spec = do
@@ -238,6 +239,12 @@ spec = do
238239 (oAuth2Bearer token0 <> oAuth2Bearer token1)
239240 lookup "Authorization" (L.requestHeaders request) `shouldBe`
240241 pure ("Bearer " <> token0)
242+ describe "ProxyAuthorization" $ do
243+ it "sets Authorization header to correct value" $
244+ property $ \username password -> do
245+ request <- req_ GET url NoReqBody (basicProxyAuth username password)
246+ lookup "Proxy-Authorization" (L.requestHeaders request) `shouldBe`
247+ pure (basicProxyAuthHeader username password)
241248 describe "oAuth2Token" $ do
242249 it "sets Authorization header to correct value" $
243250 property $ \token -> do
@@ -447,3 +454,11 @@ basicAuthHeader :: ByteString -> ByteString -> ByteString
447454basicAuthHeader username password =
448455 fromJust . lookup Y.hAuthorization . L.requestHeaders $
449456 L.applyBasicAuth username password L.defaultRequest
457+
458+-- | Get "Proxy-Authorization" basic proxy auth header given username and
459+-- password.
460+
461+basicProxyAuthHeader :: ByteString -> ByteString -> ByteString
462+basicProxyAuthHeader username password =
463+ fromJust . lookup Y.hProxyAuthorization . L.requestHeaders $
464+ L.applyBasicProxyAuth username password L.defaultRequest