mirror of
				https://github.com/caddyserver/caddy.git
				synced 2025-10-26 08:12:43 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			41 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package integration
 | |
| 
 | |
| import (
 | |
| 	"testing"
 | |
| 
 | |
| 	"github.com/caddyserver/caddy/v2/caddytest"
 | |
| )
 | |
| 
 | |
| func TestIntercept(t *testing.T) {
 | |
| 	tester := caddytest.NewTester(t)
 | |
| 	tester.InitServer(`{
 | |
| 			skip_install_trust
 | |
| 			admin localhost:2999
 | |
| 			http_port     9080
 | |
| 			https_port    9443
 | |
| 			grace_period  1ns
 | |
| 		}
 | |
| 	
 | |
| 		localhost:9080 {
 | |
| 			respond /intercept "I'm a teapot" 408
 | |
| 			header /intercept To-Intercept ok
 | |
| 			respond /no-intercept "I'm not a teapot"
 | |
| 
 | |
| 			intercept {
 | |
| 				@teapot status 408
 | |
| 				handle_response @teapot {
 | |
| 					header /intercept intercepted {resp.header.To-Intercept}
 | |
| 					respond /intercept "I'm a combined coffee/tea pot that is temporarily out of coffee" 503
 | |
| 				}
 | |
| 			}	
 | |
| 		}
 | |
| 		`, "caddyfile")
 | |
| 
 | |
| 	r, _ := tester.AssertGetResponse("http://localhost:9080/intercept", 503, "I'm a combined coffee/tea pot that is temporarily out of coffee")
 | |
| 	if r.Header.Get("intercepted") != "ok" {
 | |
| 		t.Fatalf(`header "intercepted" value is not "ok": %s`, r.Header.Get("intercepted"))
 | |
| 	}
 | |
| 
 | |
| 	tester.AssertGetResponse("http://localhost:9080/no-intercept", 200, "I'm not a teapot")
 | |
| }
 |