varnishtest "If-Modified-Since support"

#REQUIRE_VERSION=2.3

feature ignore_unknown_macro

server s1 {
       # Response containing a "Last-Modified" field
       rxreq
       expect req.url == "/last_modified"
       txresp -nolen -hdr "Transfer-Encoding: chunked" \
               -hdr "Last-Modified: Thu, 15 Oct 2020 22:23:24 GMT"
       chunkedlen 15
       chunkedlen 15
       chunkedlen 15
       chunkedlen 0

       # Response containing a "Date" field
       rxreq
       expect req.url == "/date"
       txresp -nolen -hdr "Transfer-Encoding: chunked" \
               -hdr "Date: Thu, 22 Oct 2020 16:51:12 GMT" \
               -hdr "Cache-Control: max-age=5"
       chunkedlen 16
       chunkedlen 16
       chunkedlen 16
       chunkedlen 0

       # Response containing both a "Last-Modified" and a "Date" fields
       # Should behave the same way as if the "Date" field was not here.
       rxreq
       expect req.url == "/last_modified_and_date"
       txresp -nolen -hdr "Transfer-Encoding: chunked" \
               -hdr "Last-Modified: Thu, 15 Oct 2020 14:24:38 GMT" \
               -hdr "Date: Thu, 22 Oct 2020 16:51:12 GMT"
       chunkedlen 17
       chunkedlen 17
       chunkedlen 17
       chunkedlen 0
} -start

haproxy h1 -conf {
       global
               # WT: limit false-positives causing "HTTP header incomplete" due to
               # idle server connections being randomly used and randomly expiring
               # under us.
               tune.idle-pool.shared off

       defaults
               mode http
               ${no-htx} option http-use-htx
               timeout connect 1s
               timeout client  1s
               timeout server  1s

       frontend fe
               bind "fd@${fe}"
               default_backend test

       backend test
               http-request cache-use my_cache
               server www ${s1_addr}:${s1_port}
               http-response cache-store my_cache

               # Remove Transfer-Encoding header because of a vtest issue with
               # 304-Not-Modified responses
               http-after-response del-header transfer-encoding if { status eq 304 }

       cache my_cache
               total-max-size 3
               max-age 20
               max-object-size 3072
} -start


client c1 -connect ${h1_fe_sock} {
       txreq -url "/last_modified"
       rxresp
       expect resp.status == 200
       expect resp.bodylen == 45

       txreq -url "/date"
       rxresp
       expect resp.status == 200
       expect resp.bodylen == 48

       txreq -url "/last_modified_and_date"
       rxresp
       expect resp.status == 200
       expect resp.bodylen == 51


       # Earlier date
       # "Last-Modified" version
       txreq -url "/last_modified" \
              -hdr "If-Modified-Since: Thu, 15 Oct 2020 00:00:01 GMT"
       rxresp
       expect resp.status == 200
       expect resp.bodylen == 45
       # "Date" version
       txreq -url "/date" \
              -hdr "If-Modified-Since: Thu, 01 Oct 2020 00:00:01 GMT"
       rxresp
       expect resp.status == 200
       expect resp.bodylen == 48
       # "Last-Modified" and "Date" version
       txreq -url "/last_modified_and_date" \
              -hdr "If-Modified-Since: Thu, 15 Oct 2020 00:00:01 GMT"
       rxresp
       expect resp.status == 200
       expect resp.bodylen == 51


       # Same date
       # "Last-Modified" version
       txreq -url "/last_modified" \
              -hdr "If-Modified-Since: Thu, 15 Oct 2020 22:23:24 GMT"
       rxresp
       expect resp.status == 304
       expect resp.bodylen == 0
       # "Date" version
       txreq -url "/date" \
              -hdr "If-Modified-Since: Thu, 22 Oct 2020 16:51:12 GMT"
       rxresp
       expect resp.status == 304
       expect resp.bodylen == 0
       # "Last-Modified" and "Date" version
       txreq -url "/last_modified_and_date" \
              -hdr "If-Modified-Since: Thu, 15 Oct 2020 16:51:12 GMT"
       rxresp
       expect resp.status == 304
       expect resp.bodylen == 0


       # Later date
       # "Last-Modified" version
       txreq -url "/last_modified" \
              -hdr "If-Modified-Since: Thu, 22 Oct 2020 23:00:00 GMT"
       rxresp
       expect resp.status == 304
       expect resp.bodylen == 0
       # "Date" version
       txreq -url "/date" \
              -hdr "If-Modified-Since: Thu, 22 Oct 2020 23:00:00 GMT"
       rxresp
       expect resp.status == 304
       expect resp.bodylen == 0
       # "Last-Modified" and "Date" version
       txreq -url "/last_modified_and_date" \
              -hdr "If-Modified-Since: Thu, 22 Oct 2020 23:00:00 GMT"
       rxresp
       expect resp.status == 304
       expect resp.bodylen == 0

} -run
