(t *testing.T)
| 552 | } |
| 553 | |
| 554 | func 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", |
nothing calls this directly
no test coverage detected
searching dependent graphs…