|
@@ -31,7 +31,7 @@ func TestVersionMiddleware(t *testing.T) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-func TestVersionMiddlewareWithErrors(t *testing.T) {
|
|
|
+func TestVersionMiddlewareVersionTooOld(t *testing.T) {
|
|
|
handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
|
|
|
if httputils.VersionFromContext(ctx) == "" {
|
|
|
t.Fatal("Expected version, got empty string")
|
|
@@ -55,3 +55,28 @@ func TestVersionMiddlewareWithErrors(t *testing.T) {
|
|
|
t.Fatalf("Expected too old client error, got %v", err)
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+func TestVersionMiddlewareVersionTooNew(t *testing.T) {
|
|
|
+ handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
|
|
|
+ if httputils.VersionFromContext(ctx) == "" {
|
|
|
+ t.Fatal("Expected version, got empty string")
|
|
|
+ }
|
|
|
+ return nil
|
|
|
+ }
|
|
|
+
|
|
|
+ defaultVersion := "1.10.0"
|
|
|
+ minVersion := "1.2.0"
|
|
|
+ m := NewVersionMiddleware(defaultVersion, defaultVersion, minVersion)
|
|
|
+ h := m.WrapHandler(handler)
|
|
|
+
|
|
|
+ req, _ := http.NewRequest("GET", "/containers/json", nil)
|
|
|
+ resp := httptest.NewRecorder()
|
|
|
+ ctx := context.Background()
|
|
|
+
|
|
|
+ vars := map[string]string{"version": "9999.9999"}
|
|
|
+ err := h(ctx, resp, req, vars)
|
|
|
+
|
|
|
+ if !strings.Contains(err.Error(), "client version 9999.9999 is too new. Maximum supported API version is 1.10.0") {
|
|
|
+ t.Fatalf("Expected too new client error, got %v", err)
|
|
|
+ }
|
|
|
+}
|