summaryrefslogtreecommitdiffstats
path: root/reg-tests/sample_fetches/cook.vtc
blob: b0f547215ed01aaf84f858225eae7eb4ec7ac1a3 (plain)
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
varnishtest "cook sample fetch Test"

feature ignore_unknown_macro

# TEST - 1
# Cookie from request
server s1 {
    rxreq
    txresp
} -start

haproxy h1 -conf {
    defaults
        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 {
    defaults
        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 {
    defaults
        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 {
    defaults
        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