@@ -37,6 +37,7 @@ import qualified Data.Text as T
37import qualified Data.Text.Encoding as T
37import qualified Data.Text.Encoding as T
38import qualified Network.HTTP.Client as L
38import qualified Network.HTTP.Client as L
39import qualified Network.HTTP.Types as Y
39import qualified Network.HTTP.Types as Y
40+import qualified Network.HTTP.Types.Header as Y
41spec :: Spec
42spec :: Spec
@@ -238,6 +239,12 @@ spec = do
238 (oAuth2Bearer token0 <> oAuth2Bearer token1)
239 (oAuth2Bearer token0 <> oAuth2Bearer token1)
239 lookup "Authorization" (L.requestHeaders request) `shouldBe`
240 lookup "Authorization" (L.requestHeaders request) `shouldBe`
240 pure ("Bearer " <> token0)
241 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)
241 describe "oAuth2Token" $ do
248 describe "oAuth2Token" $ do
242 it "sets Authorization header to correct value" $
249 it "sets Authorization header to correct value" $
243 property $ \token -> do
250 property $ \token -> do
@@ -447,3 +454,11 @@ basicAuthHeader :: ByteString -> ByteString -> ByteString
447basicAuthHeader username password =
454basicAuthHeader username password =
448 fromJust . lookup Y.hAuthorization . L.requestHeaders $
455 fromJust . lookup Y.hAuthorization . L.requestHeaders $
449 L.applyBasicAuth username password L.defaultRequest
456 L.applyBasicAuth username password L.defaultRequest
458+-- | Get "Proxy-Authorization" basic proxy auth header given username and
461+basicProxyAuthHeader :: ByteString -> ByteString -> ByteString
462+basicProxyAuthHeader username password =
463+ fromJust . lookup Y.hProxyAuthorization . L.requestHeaders $
464+ L.applyBasicProxyAuth username password L.defaultRequest