MCPcopy Create free account
hub / github.com/zalando/skipper / TestGetRoundtripForDynamicBackend

Function TestGetRoundtripForDynamicBackend

proxy/proxy_test.go:554–620  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

552}
553
554func TestGetRoundtripForDynamicBackend(t *testing.T) {
555 payload := []byte("Hello World!")
556
557 s := startTestServer(payload, 0, func(r *http.Request) {
558 if th, ok := r.Header["X-Test-Header"]; !ok || th[0] != "test value" {
559 t.Error("wrong request header")
560 }
561 })
562
563 defer s.Close()
564
565 fr := make(filters.Registry)
566 fr.Register(builtin.NewSetDynamicBackendHost())
567 fr.Register(builtin.NewSetDynamicBackendScheme())
568 fr.Register(builtin.NewSetDynamicBackendUrl())
569
570 w := httptest.NewRecorder()
571
572 bu, _ := url.ParseRequestURI(s.URL)
573 doc := fmt.Sprintf(
574 `dynamic: Method("GET") -> setDynamicBackendScheme(%q) ->setDynamicBackendHost(%q) -> <dynamic>;`+
575 `dynamic2: Method("POST") -> setDynamicBackendUrl(%q) -> <dynamic>;`+
576 `dynamic3: Path("/defaults") -> <dynamic>;`, bu.Scheme, bu.Host, s.URL)
577
578 tp, err := newTestProxyWithFilters(fr, doc, FlagsNone)
579 if err != nil {
580 t.Error(err)
581 return
582 }
583
584 defer tp.close()
585
586 u1, _ := url.ParseRequestURI("https://example1.com")
587 r1 := &http.Request{
588 URL: u1,
589 Method: "GET",
590 Header: http.Header{"X-Test-Header": []string{"test value"}}}
591 tp.proxy.ServeHTTP(w, r1)
592
593 if w.Code != http.StatusOK {
594 t.Error("wrong status", w.Code)
595 }
596
597 u2, _ := url.ParseRequestURI("https://example2.com")
598 r2 := &http.Request{
599 URL: u2,
600 Method: "POST",
601 Header: http.Header{"X-Test-Header": []string{"test value"}}}
602 tp.proxy.ServeHTTP(w, r2)
603
604 if w.Code != http.StatusOK {
605 t.Error("wrong status", w.Code)
606 }
607
608 u3 := &url.URL{Path: "/defaults"}
609 r3 := &http.Request{
610 URL: u3,
611 Method: "HEAD",

Callers

nothing calls this directly

Calls 10

NewSetDynamicBackendHostFunction · 0.92
NewSetDynamicBackendUrlFunction · 0.92
newTestProxyWithFiltersFunction · 0.85
RegisterMethod · 0.80
startTestServerFunction · 0.70
ErrorMethod · 0.65
CloseMethod · 0.65
closeMethod · 0.45
ServeHTTPMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…