server_test.go 957 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package server
  2. import (
  3. "net/http"
  4. "net/http/httptest"
  5. "strings"
  6. "testing"
  7. "github.com/docker/docker/api/server/httputils"
  8. "golang.org/x/net/context"
  9. )
  10. func TestMiddlewares(t *testing.T) {
  11. cfg := &Config{
  12. Version: "0.1omega2",
  13. }
  14. srv := &Server{
  15. cfg: cfg,
  16. }
  17. req, _ := http.NewRequest("GET", "/containers/json", nil)
  18. resp := httptest.NewRecorder()
  19. ctx := context.Background()
  20. localHandler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
  21. if httputils.VersionFromContext(ctx) == "" {
  22. t.Fatalf("Expected version, got empty string")
  23. }
  24. if sv := w.Header().Get("Server"); !strings.Contains(sv, "Docker/0.1omega2") {
  25. t.Fatalf("Expected server version in the header `Docker/0.1omega2`, got %s", sv)
  26. }
  27. return nil
  28. }
  29. handlerFunc := srv.handleWithGlobalMiddlewares(localHandler)
  30. if err := handlerFunc(ctx, resp, req, map[string]string{}); err != nil {
  31. t.Fatal(err)
  32. }
  33. }