blob: 3303760d45725b4ff72d706de645a2cbe48a80db [file] [log] [blame]
varnishtest "normalize-uri tests"
#REQUIRE_VERSION=2.4
# This reg-test tests the http-request normalize-uri action.
feature ignore_unknown_macro
server s1 {
rxreq
txresp
} -repeat 10 -start
haproxy h1 -conf {
defaults
mode http
timeout connect 1s
timeout client 1s
timeout server 1s
frontend fe_merge_slashes
bind "fd@${fe_merge_slashes}"
http-request set-var(txn.before) url
http-request normalize-uri merge-slashes
http-request set-var(txn.after) url
http-response add-header before %[var(txn.before)]
http-response add-header after %[var(txn.after)]
default_backend be
backend be
server s1 ${s1_addr}:${s1_port}
} -start
client c1 -connect ${h1_fe_merge_slashes_sock} {
txreq -url "/foo/bar"
rxresp
expect resp.http.before == "/foo/bar"
expect resp.http.after == "/foo/bar"
txreq -url "/foo//bar"
rxresp
expect resp.http.before == "/foo//bar"
expect resp.http.after == "/foo/bar"
txreq -url "/foo///bar"
rxresp
expect resp.http.before == "/foo///bar"
expect resp.http.after == "/foo/bar"
txreq -url "///foo///bar"
rxresp
expect resp.http.before == "///foo///bar"
expect resp.http.after == "/foo/bar"
txreq -url "///foo/bar"
rxresp
expect resp.http.before == "///foo/bar"
expect resp.http.after == "/foo/bar"
txreq -url "///foo///bar///"
rxresp
expect resp.http.before == "///foo///bar///"
expect resp.http.after == "/foo/bar/"
txreq -url "///"
rxresp
expect resp.http.before == "///"
expect resp.http.after == "/"
txreq -url "/foo?bar=///"
rxresp
expect resp.http.before == "/foo?bar=///"
expect resp.http.after == "/foo?bar=///"
txreq -url "//foo?bar=///"
rxresp
expect resp.http.before == "//foo?bar=///"
expect resp.http.after == "/foo?bar=///"
txreq -req OPTIONS -url "*"
rxresp
expect resp.http.before == "*"
expect resp.http.after == "*"
} -run