blob: 6c20637d326bed5d5bec77db2f91bc04e15a20a1 [file] [log] [blame]
package caveats
import (
"net/http"
"time"
)
type mockCaveatSelector struct {
state string
}
// NewMockCaveatSelector returns a CaveatSelector that always returns a default set
// of caveats: [exprity caveat with a 1h expiry, revocation caveat, and a method caveat
// for methods "methodA" and "methodB"] and the additional extension: "test-extension"
// This selector is only meant to be used during testing.
func NewMockCaveatSelector() CaveatSelector {
return &mockCaveatSelector{}
}
func (s *mockCaveatSelector) Render(_, state, redirectURL string, w http.ResponseWriter, r *http.Request) error {
s.state = state
http.Redirect(w, r, redirectURL, http.StatusFound)
return nil
}
func (s *mockCaveatSelector) ParseSelections(r *http.Request) (caveats []CaveatInfo, state string, additionalExtension string, err error) {
caveats = []CaveatInfo{
CaveatInfo{"Revocation", []interface{}{}},
CaveatInfo{"Expiry", []interface{}{time.Now().Add(time.Hour)}},
CaveatInfo{"Method", []interface{}{"methodA", "methodB"}},
}
state = s.state
additionalExtension = "test-extension"
return
}