mirror of
https://github.com/caddyserver/caddy.git
synced 2024-12-23 22:27:38 -05:00
Add ability to set custom values.
This commit is contained in:
parent
73327e784d
commit
7dadcd5834
2 changed files with 46 additions and 0 deletions
|
@ -16,6 +16,7 @@ import (
|
|||
// NewReplacer to get one of these.
|
||||
type Replacer interface {
|
||||
Replace(string) string
|
||||
Set(key, value string)
|
||||
}
|
||||
|
||||
type replacer struct {
|
||||
|
@ -117,6 +118,11 @@ func (r replacer) Replace(s string) string {
|
|||
return s
|
||||
}
|
||||
|
||||
// Set sets key to value in the replacements map.
|
||||
func (r replacer) Set(key, value string) {
|
||||
r.replacements["{"+key+"}"] = value
|
||||
}
|
||||
|
||||
const (
|
||||
timeFormat = "02/Jan/2006:15:04:05 -0700"
|
||||
headerReplacer = "{>"
|
||||
|
|
|
@ -69,3 +69,43 @@ func TestReplace(t *testing.T) {
|
|||
}
|
||||
|
||||
}
|
||||
|
||||
func TestSet(t *testing.T) {
|
||||
w := httptest.NewRecorder()
|
||||
recordRequest := NewResponseRecorder(w)
|
||||
userJSON := `{"username": "dennis"}`
|
||||
|
||||
reader := strings.NewReader(userJSON) //Convert string to reader
|
||||
|
||||
request, err := http.NewRequest("POST", "http://caddyserver.com", reader) //Create request with JSON body
|
||||
if err != nil {
|
||||
t.Fatalf("Request Formation Failed \n")
|
||||
}
|
||||
replaceValues := NewReplacer(request, recordRequest, "")
|
||||
|
||||
replaceValues.Set("host", "getcaddy.com")
|
||||
replaceValues.Set("method", "GET")
|
||||
replaceValues.Set("status", "201")
|
||||
replaceValues.Set("variable", "value")
|
||||
|
||||
switch v := replaceValues.(type) {
|
||||
case replacer:
|
||||
|
||||
if v.Replace("This host is {host}") != "This host is getcaddy.com" {
|
||||
t.Errorf("Expected host replacement failed")
|
||||
}
|
||||
if v.Replace("This request method is {method}") != "This request method is GET" {
|
||||
t.Errorf("Expected method replacement failed")
|
||||
}
|
||||
if v.Replace("The response status is {status}") != "The response status is 201" {
|
||||
t.Errorf("Expected status replacement failed")
|
||||
}
|
||||
if v.Replace("The value of variable is {variable}") != "The value of variable is value" {
|
||||
t.Errorf("Expected status replacement failed")
|
||||
}
|
||||
|
||||
default:
|
||||
t.Fatalf("Return Value from New Replacer expected pass type assertion into a replacer type \n")
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue