mirror of
				https://git.haproxy.org/git/haproxy.git/
				synced 2025-10-31 16:41:01 +01:00 
			
		
		
		
	This new script tests set-path/replace-path and set-pathq/replace-pathq rules. It also tests path and pathq sample fetches. This patch should be backported to 2.2 if corresponding keywords are also backported.
		
			
				
	
	
		
			65 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| varnishtest "path vs pathq tests"
 | |
| #REQUIRE_VERSION=2.2
 | |
| 
 | |
| # This config tests various http request rules (set/replace) manipulating the
 | |
| # path, with or without the query-string. It also test path and pathq sample
 | |
| # fetches.
 | |
| 
 | |
| feature ignore_unknown_macro
 | |
| 
 | |
| server s1 {
 | |
|     rxreq
 | |
|     expect req.url          == /regtest/foo/fe/req1/bar?param1=val1¶m2=val2
 | |
|     expect req.http.x-path  == /req1
 | |
|     expect req.http.x-pathq == /req1?param1=val1¶m2=val2
 | |
|     expect req.http.x-query == param1=val1¶m2=val2
 | |
|     expect req.http.x-url   == /req1?param1=val1¶m2=val2
 | |
|     txresp
 | |
| 
 | |
|     rxreq
 | |
|     expect req.url          == http://127.0.0.1/regtest/foo/fe/req2/bar?param1=val1¶m2=val2
 | |
|     expect req.http.x-path  == /req2
 | |
|     expect req.http.x-pathq == /req2?param1=val1¶m2=val2
 | |
|     expect req.http.x-query == param1=val1¶m2=val2
 | |
|     expect req.http.x-url   == http://127.0.0.1/req2?param1=val1¶m2=val2
 | |
|     txresp
 | |
| } -start
 | |
| 
 | |
| haproxy h1 -conf {
 | |
|     defaults
 | |
|         mode http
 | |
|         timeout connect 1s
 | |
|         timeout client  1s
 | |
|         timeout server  1s
 | |
| 
 | |
|     frontend fe
 | |
|         bind "fd@${fe}"
 | |
| 
 | |
|         http-request add-header x-path  %[path]
 | |
|         http-request add-header x-pathq %[pathq]
 | |
|         http-request add-header x-query %[query]
 | |
|         http-request add-header x-url   %[url]
 | |
| 
 | |
|         http-request set-path /fe%[path]
 | |
|         http-request replace-path (.*) /foo\1
 | |
|         http-request replace-path (.*) \1/bar
 | |
| 	http-request set-pathq %[path]?app=regtest&%[query]
 | |
| 	http-request replace-pathq /([^?]*)\?app=([^&]*)&?(.*) /\2/\1?\3
 | |
| 
 | |
|         default_backend be
 | |
| 
 | |
|     backend be
 | |
|         server s1 ${s1_addr}:${s1_port}
 | |
| 
 | |
| } -start
 | |
| 
 | |
| client c1 -connect ${h1_fe_sock} {
 | |
|     txreq -req GET -url /req1?param1=val1¶m2=val2
 | |
|     rxresp
 | |
|     expect resp.status == 200
 | |
| 
 | |
|     txreq -req GET -url http://127.0.0.1/req2?param1=val1¶m2=val2
 | |
|     rxresp
 | |
|     expect resp.status == 200
 | |
| } -run
 |