mirror of
https://github.com/metosin/reitit.git
synced 2025-12-17 00:11:11 +00:00
Merge pull request #162 from dancek/work-with-multiple-trailing-slashes
Support stripping multiple slashes
This commit is contained in:
commit
1af3beda6a
2 changed files with 11 additions and 3 deletions
|
|
@ -131,7 +131,7 @@
|
|||
(let [uri (:uri request)]
|
||||
(if (str/ends-with? uri "/")
|
||||
(if (not= method :add)
|
||||
(maybe-redirect request (subs uri 0 (-> uri count dec))))
|
||||
(maybe-redirect request (str/replace-first uri #"/+$" "")))
|
||||
(if (not= method :strip)
|
||||
(maybe-redirect request (str uri "/"))))))]
|
||||
(fn
|
||||
|
|
|
|||
|
|
@ -281,7 +281,11 @@
|
|||
|
||||
(testing "strips slashes"
|
||||
(is (= 301 (:status (app {:request-method :get, :uri "/slash-less/"}))))
|
||||
(is (= 308 (:status (app {:request-method :post, :uri "/slash-less/"})))))))
|
||||
(is (= 308 (:status (app {:request-method :post, :uri "/slash-less/"})))))
|
||||
|
||||
(testing "strips multiple slashes"
|
||||
(is (= 301 (:status (app {:request-method :get, :uri "/slash-less/////"}))))
|
||||
(is (= 308 (:status (app {:request-method :post, :uri "/slash-less//"})))))))
|
||||
|
||||
(testing "without option (equivalent to using :method :both)"
|
||||
(let [app (ring/ring-handler
|
||||
|
|
@ -300,7 +304,11 @@
|
|||
|
||||
(testing "strips slashes"
|
||||
(is (= 301 (:status (app {:request-method :get, :uri "/slash-less/"}))))
|
||||
(is (= 308 (:status (app {:request-method :post, :uri "/slash-less/"})))))))))
|
||||
(is (= 308 (:status (app {:request-method :post, :uri "/slash-less/"})))))
|
||||
|
||||
(testing "strips multiple slashes"
|
||||
(is (= 301 (:status (app {:request-method :get, :uri "/slash-less/////"}))))
|
||||
(is (= 308 (:status (app {:request-method :post, :uri "/slash-less//"})))))))))
|
||||
|
||||
(deftest async-ring-test
|
||||
(let [promise #(let [value (atom ::nil)]
|
||||
|
|
|
|||
Loading…
Reference in a new issue