vtest "Test for balance URI"
feature ignore_unknown_macro
#REQUIRE_VERSION=2.3

server s1 {
    rxreq
    txresp -hdr "Server: s1" -body "s1"
} -repeat 5 -start

server s2 {
    rxreq
    txresp -hdr "Server: s2" -body "s2"
} -repeat 5 -start

server s3 {
    rxreq
    txresp -hdr "Server: s3" -body "s3"
} -repeat 5 -start

server s4 {
    rxreq
    txresp -hdr "Server: s4" -body "s4"
} -repeat 5 -start

haproxy h1 -arg "-L A" -conf {
    defaults
        mode http
        timeout server "${HAPROXY_TEST_TIMEOUT-5s}"
        timeout connect "${HAPROXY_TEST_TIMEOUT-5s}"
        timeout client "${HAPROXY_TEST_TIMEOUT-5s}"

    listen px
        bind "fd@${px}"
        bind "fd@${pxh2}" proto h2
        balance uri path-only
        server srv1 ${s1_addr}:${s1_port}
        server srv2 ${s2_addr}:${s2_port}
        server srv3 ${s3_addr}:${s3_port}
        server srv4 ${s4_addr}:${s4_port}
} -start

client c1 -connect ${h1_px_sock} {
    txreq -url "http://127.0.0.1/url1"
    rxresp
    expect resp.status == 200
    expect resp.http.Server ~ s2
} -run

client c2 -connect ${h1_px_sock} {
    txreq -url "/url1?ignore=this-arg"
    rxresp
    expect resp.status == 200
    expect resp.http.Server ~ s2
} -run

client c3 -connect ${h1_px_sock} {
    txreq -url "http://127.0.0.1/url2"
    rxresp
    expect resp.status == 200
    expect resp.http.Server ~ s3
} -run

client c4 -connect ${h1_px_sock} {
    txreq -url "/url3"
    rxresp
    expect resp.status == 200
    expect resp.http.Server ~ s4
} -run

client c5 -connect ${h1_px_sock} {
    txreq -url "/url4"
    rxresp
    expect resp.status == 200
    expect resp.http.Server ~ s1
} -run

client c6h2 -connect ${h1_pxh2_sock} {
	txpri
	stream 0 {
		txsettings
		rxsettings
		txsettings -ack
		rxsettings
		expect settings.ack == true
	} -run

	stream 1 {
		txreq \
		  -req "GET" \
		  -scheme "https" \
		  -url "/url1"
		rxhdrs
		expect resp.status == 200
		rxdata -all
		expect resp.body == "s2"
	} -run
} -run
