func TestOAuth(t *testing.T) { mockSettings := helpers.Settings{} mockSettings.TokenContext = context.TODO() for _, test := range oauthTests { // Initialize a new session store. store := MockSessionStore{} store.ResetSessionData(test.SessionData, "") mockSettings.Sessions = store // Setup a test route on the API router (which is guarded by OAuth) response, request := NewTestRequest("GET", "/v2/test", nil) router := controllers.InitRouter(&mockSettings) secureRouter := router.Subrouter(controllers.SecureContext{}, "/") apiRouter := secureRouter.Subrouter(controllers.APIContext{}, "/v2") apiRouter.Middleware((*controllers.APIContext).OAuth) apiRouter.Get("/test", func(c *controllers.APIContext, rw web.ResponseWriter, r *web.Request) { fmt.Fprintf(rw, "test") }) // Make the request and check. router.ServeHTTP(response, request) if strings.TrimSpace(response.Body.String()) != test.ExpectedResponse { t.Errorf("Test %s did not meet expected value. Expected %s. Found %s.\n", test.TestName, test.ExpectedResponse, response.Body.String()) } } }
func TestPing(t *testing.T) { response, request := NewTestRequest("GET", "/ping") router := controllers.InitRouter(nil) router.ServeHTTP(response, request) if response.Body.String() != "{\"status\": \"alive\"}" { t.Errorf("Expected alive. Found %s\n", response.Body.String()) } }
func TestInitRouter(t *testing.T) { for _, test := range initRouterTests { router := controllers.InitRouter((test.settings)) if (router == nil) != test.returnValueNil { t.Errorf("Test %s did not return correct router value. Expected %t, Actual %t\n", test.testName, test.returnValueNil, (router == nil)) } } }
// CreateRouterWithMockSession will create a settings with the appropriate envVars and load the mock session with the session data. func CreateRouterWithMockSession(sessionData map[string]interface{}, envVars helpers.EnvVars) (*web.Router, *MockSessionStore) { // Initialize settings. settings := helpers.Settings{} settings.InitSettings(envVars) // Initialize a new session store. store := MockSessionStore{} store.ResetSessionData(sessionData, "") // Override the session store. settings.Sessions = store // Create the router. router := controllers.InitRouter(&settings) return router, &store }