// Copyright 2017 The Gitea Authors. All rights reserved. // SPDX-License-Identifier: MIT package test import ( "net/http" "net/http/httptest" "os" "path/filepath" "runtime" "strings" "code.gitea.io/gitea/modules/json" "code.gitea.io/gitea/modules/util" ) // RedirectURL returns the redirect URL of a http response. // It also works for JSONRedirect: `{"redirect": "..."}` // FIXME: it should separate the logic of checking from header and JSON body func RedirectURL(resp http.ResponseWriter) string { loc := resp.Header().Get("Location") if loc != "" { return loc } if r, ok := resp.(*httptest.ResponseRecorder); ok { m := map[string]any{} err := json.Unmarshal(r.Body.Bytes(), &m) if err == nil { if loc, ok := m["redirect"].(string); ok { return loc } } } return "" } func ParseJSONError(buf []byte) (ret struct { ErrorMessage string `json:"errorMessage"` RenderFormat string `json:"renderFormat"` }, ) { _ = json.Unmarshal(buf, &ret) return ret } func IsNormalPageCompleted(s string) bool { return strings.Contains(s, `