(TK-103) Restored redirect-test-async tests
This commit restores several of the `rediret-test-async` tests, using a client to make the requests since the client-less single-request async APIs are no longer available.
This commit is contained in:
parent
91f679a795
commit
137ae4bd48
1 changed files with 67 additions and 17 deletions
|
@ -145,7 +145,6 @@
|
||||||
(.deref response)))))))
|
(.deref response)))))))
|
||||||
(finally
|
(finally
|
||||||
(.close client)))))
|
(.close client)))))
|
||||||
|
|
||||||
(testing "URL Query Parameters work with the clojure client"
|
(testing "URL Query Parameters work with the clojure client"
|
||||||
(with-open [client (async/create-client {})]
|
(with-open [client (async/create-client {})]
|
||||||
(let [opts {:method :get
|
(let [opts {:method :get
|
||||||
|
@ -155,7 +154,6 @@
|
||||||
response (common/get client "http://localhost:8080/params" opts)]
|
response (common/get client "http://localhost:8080/params" opts)]
|
||||||
(is (= 200 (:status @response)))
|
(is (= 200 (:status @response)))
|
||||||
(is (= queryparams (read-string (:body @response)))))))
|
(is (= queryparams (read-string (:body @response)))))))
|
||||||
|
|
||||||
(testing "URL Query Parameters can be set directly in the URL"
|
(testing "URL Query Parameters can be set directly in the URL"
|
||||||
(with-open [client (async/create-client {})]
|
(with-open [client (async/create-client {})]
|
||||||
(let [response (common/get client
|
(let [response (common/get client
|
||||||
|
@ -163,7 +161,6 @@
|
||||||
{:as :text})]
|
{:as :text})]
|
||||||
(is (= 200 (:status @response)))
|
(is (= 200 (:status @response)))
|
||||||
(is (= (str {"paramone" "one"}) (:body @response))))))
|
(is (= (str {"paramone" "one"}) (:body @response))))))
|
||||||
|
|
||||||
(testing (str "URL Query Parameters set in URL are overwritten if params "
|
(testing (str "URL Query Parameters set in URL are overwritten if params "
|
||||||
"are also specified in options map")
|
"are also specified in options map")
|
||||||
(with-open [client (async/create-client {})]
|
(with-open [client (async/create-client {})]
|
||||||
|
@ -178,22 +175,75 @@
|
||||||
(testutils/with-app-with-config app
|
(testutils/with-app-with-config app
|
||||||
[jetty9/jetty9-service redirect-web-service]
|
[jetty9/jetty9-service redirect-web-service]
|
||||||
{:webserver {:port 8080}}
|
{:webserver {:port 8080}}
|
||||||
|
(testing (str "redirects on POST not followed by persistent Java client "
|
||||||
|
"when forceRedirects option not set to true")
|
||||||
|
(let [client (Async/createClient (ClientOptions.))]
|
||||||
|
(try
|
||||||
|
(let [request-options (RequestOptions.
|
||||||
|
(URI. "http://localhost:8080/hello"))
|
||||||
|
response (.post client request-options)]
|
||||||
|
(is (= 302 (.getStatus (.deref response)))))
|
||||||
|
(finally
|
||||||
|
(.close client)))))
|
||||||
|
(testing "redirects on POST followed by Java client when option is set"
|
||||||
|
(let [client (Async/createClient (.. (ClientOptions.)
|
||||||
|
(setForceRedirects true)))]
|
||||||
|
(try
|
||||||
|
(let [request-options (RequestOptions.
|
||||||
|
(URI. "http://localhost:8080/hello"))
|
||||||
|
response (.post client request-options)]
|
||||||
|
(is (= 200 (.getStatus (.deref response))))
|
||||||
|
(is (= "Hello, World!" (slurp (.getBody (.deref response))))))
|
||||||
|
(finally
|
||||||
|
(.close client)))))
|
||||||
|
(testing "redirects not followed by Java client when :follow-redirects is false"
|
||||||
|
(let [client (Async/createClient (.. (ClientOptions.)
|
||||||
|
(setFollowRedirects false)))]
|
||||||
|
(try
|
||||||
|
(let [request-options (RequestOptions.
|
||||||
|
(URI. "http://localhost:8080/hello"))
|
||||||
|
response (.get client request-options)]
|
||||||
|
(is (= 302 (.getStatus (.deref response)))))
|
||||||
|
(finally
|
||||||
|
(.close client)))))
|
||||||
|
(testing ":follow-redirects overrides :force-redirects for Java client"
|
||||||
|
(let [client (Async/createClient (.. (ClientOptions.)
|
||||||
|
(setFollowRedirects false)
|
||||||
|
(setForceRedirects true)))]
|
||||||
|
(try
|
||||||
|
(let [request-options (RequestOptions.
|
||||||
|
(URI. "http://localhost:8080/hello"))
|
||||||
|
response (.get client request-options)]
|
||||||
|
(is (= 302 (.getStatus (.deref response)))))
|
||||||
|
(finally
|
||||||
|
(.close client)))))
|
||||||
|
(testing (str "redirects on POST not followed by clojure client "
|
||||||
|
"when :force-redirects is not set to true")
|
||||||
|
(with-open [client (async/create-client {:force-redirects false})]
|
||||||
|
(let [opts {:method :post
|
||||||
|
:url "http://localhost:8080/hello"
|
||||||
|
:as :text}
|
||||||
|
response (common/post client "http://localhost:8080/hello" opts)]
|
||||||
|
(is (= 302 (:status @response))))))
|
||||||
(testing (str "redirects on POST followed by persistent clojure client "
|
(testing (str "redirects on POST followed by persistent clojure client "
|
||||||
"when option is set")
|
"when option is set")
|
||||||
(let [client (async/create-client {:force-redirects true})
|
(with-open [client (async/create-client {:force-redirects true})]
|
||||||
response (common/post client "http://localhost:8080/hello" {:as :text})]
|
(let [response (common/post client
|
||||||
|
"http://localhost:8080/hello"
|
||||||
|
{:as :text})]
|
||||||
(is (= 200 (:status @response)))
|
(is (= 200 (:status @response)))
|
||||||
(is (= "Hello, World!" (:body @response)))
|
(is (= "Hello, World!" (:body @response))))))
|
||||||
(common/close client)))
|
|
||||||
(testing (str "persistent clojure client does not follow redirects when "
|
(testing (str "persistent clojure client does not follow redirects when "
|
||||||
":follow-redirects is set to false")
|
":follow-redirects is set to false")
|
||||||
(let [client (async/create-client {:follow-redirects false})
|
(with-open [client (async/create-client {:follow-redirects false})]
|
||||||
response (common/get client "http://localhost:8080/hello" {:as :text})]
|
(let [response (common/get client
|
||||||
(is (= 302 (:status @response)))
|
"http://localhost:8080/hello"
|
||||||
(common/close client)))
|
{:as :text})]
|
||||||
|
(is (= 302 (:status @response))))))
|
||||||
(testing ":follow-redirects overrides :force-redirects with persistent clj client"
|
(testing ":follow-redirects overrides :force-redirects with persistent clj client"
|
||||||
(let [client (async/create-client {:follow-redirects false
|
(with-open [client (async/create-client {:follow-redirects false
|
||||||
:force-redirects true})
|
:force-redirects true})]
|
||||||
response (common/get client "http://localhost:8080/hello" {:as :text})]
|
(let [response (common/get client
|
||||||
(is (= 302 (:status @response)))
|
"http://localhost:8080/hello"
|
||||||
(common/close client))))))
|
{:as :text})]
|
||||||
|
(is (= 302 (:status @response)))))))))
|
||||||
|
|
Loading…
Reference in a new issue