haproxy/reg-tests/converter/add_item.vtc
Nikola Sale 0dbf03871f MINOR: sample: converter: Add add_item convertor
This new converter is similar to the concat converter and can be used to
build new variables made of a succession of other variables but the main
difference is that it does the checks if adding a delimiter makes sense as
wouldn't be the case if e.g the current input sample is empty. That
situation would require 2 separate rules using concat converter where the
first rule would have to check if the current sample string is empty before
adding a delimiter. This resolves GitHub Issue #1621.
2022-04-04 07:30:58 +02:00

51 lines
1.3 KiB
Plaintext

varnishtest "be2dec converter Test"
feature cmd "$HAPROXY_PROGRAM -cc 'version_atleast(2.6-dev0)'"
feature ignore_unknown_macro
server s1 {
rxreq
txresp
} -repeat 3 -start
haproxy h1 -conf {
defaults
mode http
timeout connect "${HAPROXY_TEST_TIMEOUT-5s}"
timeout client "${HAPROXY_TEST_TIMEOUT-5s}"
timeout server "${HAPROXY_TEST_TIMEOUT-5s}"
frontend fe
bind "fd@${fe}"
#### requests
http-request set-var(txn.input) req.hdr(input)
http-request set-var(txn.var) str("var_content")
http-response set-header add_item-1 "%[var(txn.input),add_item(',',txn.var,_suff_)]"
http-response set-header add_item-2 "%[var(txn.input),add_item(',',txn.var)]"
http-response set-header add_item-3 "%[var(txn.input),add_item(',',,_suff_)]"
default_backend be
backend be
server s1 ${s1_addr}:${s1_port}
} -start
client c1 -connect ${h1_fe_sock} {
txreq -url "/" \
-hdr "input:"
rxresp
expect resp.status == 200
expect resp.http.add_item-1 == "var_content_suff_"
expect resp.http.add_item-2 == "var_content"
expect resp.http.add_item-3 == "_suff_"
txreq -url "/" \
-hdr "input: input_string"
rxresp
expect resp.status == 200
expect resp.http.add_item-1 == "input_string,var_content_suff_"
expect resp.http.add_item-2 == "input_string,var_content"
expect resp.http.add_item-3 == "input_string,_suff_"
} -run