1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164
|
varnishtest "cook sample fetch Test"
feature ignore_unknown_macro
# TEST - 1
# Cookie from request
server s1 {
rxreq
txresp
} -start
haproxy h1 -conf {
global
.if feature(THREAD)
thread-groups 1
.endif
defaults
timeout client 30s
timeout server 30s
timeout connect 30s
mode http
frontend fe
bind "fd@${fe}"
http-request set-var(txn.count) req.cook_cnt()
http-request set-var(txn.val) req.cook_val()
http-request set-var(txn.val_cook2) req.cook_val(cook2)
http-request set-var(txn.cook_names) req.cook_names
http-response set-header count %[var(txn.count)]
http-response set-header val %[var(txn.val)]
http-response set-header val_cook2 %[var(txn.val_cook2)]
http-response set-header cook_names %[var(txn.cook_names)]
default_backend be
backend be
server srv1 ${s1_addr}:${s1_port}
} -start
client c1 -connect ${h1_fe_sock} {
txreq -url "/" \
-hdr "cookie: cook1=0; cook2=123; cook3=22"
rxresp
expect resp.status == 200
expect resp.http.count == "3"
expect resp.http.val == "0"
expect resp.http.val_cook2 == "123"
expect resp.http.cook_names == "cook1,cook2,cook3"
} -run
# TEST - 2
# Set-Cookie from response
server s2 {
rxreq
txresp -hdr "Set-Cookie: cook1=0; cook2=123; cook3=22"
} -start
haproxy h2 -conf {
global
.if feature(THREAD)
thread-groups 1
.endif
defaults
timeout client 30s
timeout server 30s
timeout connect 30s
mode http
frontend fe
bind "fd@${fe}"
http-response set-var(txn.cook_names) res.cook_names
http-response set-header cook_names %[var(txn.cook_names)]
default_backend be
backend be
server srv2 ${s2_addr}:${s2_port}
} -start
client c2 -connect ${h2_fe_sock} {
txreq -url "/"
rxresp
expect resp.status == 200
expect resp.http.cook_names == "cook1"
} -run
# TEST - 3
# Multiple Cookie headers from request
server s3 {
rxreq
txresp
} -start
haproxy h3 -conf {
global
.if feature(THREAD)
thread-groups 1
.endif
defaults
timeout client 30s
timeout server 30s
timeout connect 30s
mode http
frontend fe
bind "fd@${fe}"
http-request set-var(txn.cook_names) req.cook_names
http-response set-header cook_names %[var(txn.cook_names)]
default_backend be
backend be
server srv3 ${s3_addr}:${s3_port}
} -start
client c3 -connect ${h3_fe_sock} {
txreq -url "/" \
-hdr "cookie: cook1=0; cook2=123; cook3=22" \
-hdr "cookie: cook4=1; cook5=2; cook6=3"
rxresp
expect resp.status == 200
expect resp.http.cook_names == "cook1,cook2,cook3,cook4,cook5,cook6"
} -run
# TEST - 4
# Multiple Set-Cookie headers from response
server s4 {
rxreq
txresp -hdr "Set-Cookie: cook1=0; cook2=123; cook3=22" \
-hdr "Set-Cookie: cook4=1; cook5=2; cook6=3"
} -start
haproxy h4 -conf {
global
.if feature(THREAD)
thread-groups 1
.endif
defaults
timeout client 30s
timeout server 30s
timeout connect 30s
mode http
frontend fe
bind "fd@${fe}"
http-response set-var(txn.cook_names) res.cook_names
http-response set-header cook_names %[var(txn.cook_names)]
default_backend be
backend be
server srv4 ${s4_addr}:${s4_port}
} -start
client c4 -connect ${h4_fe_sock} {
txreq -url "/"
rxresp
expect resp.status == 200
expect resp.http.cook_names == "cook1,cook4"
} -run
|