MCPcopy
hub / github.com/oauth2-proxy/oauth2-proxy / NewProcessCookieTest

Function NewProcessCookieTest

oauthproxy_test.go:860–900  ·  view source on GitHub ↗
(opts ProcessCookieTestOpts, modifiers ...OptionsModifier)

Source from the content-addressed store, hash-verified

858type OptionsModifier func(*options.Options)
859
860func NewProcessCookieTest(opts ProcessCookieTestOpts, modifiers ...OptionsModifier) (*ProcessCookieTest, error) {
861 var pcTest ProcessCookieTest
862
863 pcTest.opts = baseTestOptions()
864 for _, modifier := range modifiers {
865 modifier(pcTest.opts)
866 }
867 // First, set the CookieRefresh option so proxy.AesCipher is created,
868 // needed to encrypt the access_token.
869 pcTest.opts.Cookie.Refresh = time.Hour
870 err := validation.Validate(pcTest.opts)
871 if err != nil {
872 return nil, err
873 }
874
875 pcTest.proxy, err = NewOAuthProxy(pcTest.opts, func(email string) bool {
876 return pcTest.validateUser
877 })
878 if err != nil {
879 return nil, err
880 }
881 testProvider := &TestProvider{
882 ProviderData: &providers.ProviderData{},
883 ValidToken: opts.providerValidateCookieResponse,
884 }
885
886 groups := pcTest.opts.Providers[0].AllowedGroups
887 testProvider.ProviderData.AllowedGroups = make(map[string]struct{}, len(groups))
888 for _, group := range groups {
889 testProvider.ProviderData.AllowedGroups[group] = struct{}{}
890 }
891 pcTest.proxy.provider = testProvider
892
893 // Now, zero-out proxy.CookieRefresh for the cases that don't involve
894 // access_token validation.
895 pcTest.proxy.CookieOptions.Refresh = time.Duration(0)
896 pcTest.rw = httptest.NewRecorder()
897 pcTest.req, _ = http.NewRequest(http.MethodGet, "/", strings.NewReader(""))
898 pcTest.validateUser = true
899 return &pcTest, nil
900}
901
902func NewProcessCookieTestWithDefaults() (*ProcessCookieTest, error) {
903 return NewProcessCookieTest(ProcessCookieTestOpts{

Calls 3

ValidateFunction · 0.92
baseTestOptionsFunction · 0.85
NewOAuthProxyFunction · 0.85

Tested by

no test coverage detected