mirror of
https://github.com/gotify/server.git
synced 2026-05-07 22:06:38 +08:00
77 lines
2.1 KiB
Go
77 lines
2.1 KiB
Go
package auth
|
|
|
|
import (
|
|
"net/http/httptest"
|
|
"testing"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
"github.com/gotify/server/v2/mode"
|
|
"github.com/gotify/server/v2/model"
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/suite"
|
|
)
|
|
|
|
func TestUtilSuite(t *testing.T) {
|
|
suite.Run(t, new(UtilSuite))
|
|
}
|
|
|
|
type UtilSuite struct {
|
|
suite.Suite
|
|
}
|
|
|
|
func (s *UtilSuite) BeforeTest(suiteName, testName string) {
|
|
mode.Set(mode.TestDev)
|
|
}
|
|
|
|
func (s *UtilSuite) Test_getUserID() {
|
|
s.expectUserID(func(ctx *gin.Context) { RegisterUser(ctx, &model.User{ID: 2}) }, 2)
|
|
s.expectUserID(func(ctx *gin.Context) { RegisterClient(ctx, &model.Client{UserID: 5}) }, 5)
|
|
s.expectUserID(func(ctx *gin.Context) { RegisterApplication(ctx, &model.Application{UserID: 7}) }, 7)
|
|
|
|
assert.Panics(s.T(), func() {
|
|
s.expectUserID(func(ctx *gin.Context) {}, 0)
|
|
})
|
|
|
|
s.expectTryUserID(func(ctx *gin.Context) {}, nil)
|
|
}
|
|
|
|
func (s *UtilSuite) Test_GetApplication() {
|
|
app := &model.Application{Token: "atoken"}
|
|
ctx, _ := gin.CreateTestContext(httptest.NewRecorder())
|
|
RegisterApplication(ctx, app)
|
|
assert.Same(s.T(), app, GetApplication(ctx))
|
|
|
|
ctx, _ = gin.CreateTestContext(httptest.NewRecorder())
|
|
RegisterUser(ctx, &model.User{ID: 1})
|
|
assert.Nil(s.T(), GetApplication(ctx))
|
|
|
|
ctx, _ = gin.CreateTestContext(httptest.NewRecorder())
|
|
assert.Nil(s.T(), GetApplication(ctx))
|
|
}
|
|
|
|
func (s *UtilSuite) Test_GetClient() {
|
|
client := &model.Client{Token: "ctoken"}
|
|
ctx, _ := gin.CreateTestContext(httptest.NewRecorder())
|
|
RegisterClient(ctx, client)
|
|
assert.Same(s.T(), client, GetClient(ctx))
|
|
|
|
ctx, _ = gin.CreateTestContext(httptest.NewRecorder())
|
|
RegisterUser(ctx, &model.User{ID: 1})
|
|
assert.Nil(s.T(), GetClient(ctx))
|
|
|
|
ctx, _ = gin.CreateTestContext(httptest.NewRecorder())
|
|
assert.Nil(s.T(), GetClient(ctx))
|
|
}
|
|
|
|
func (s *UtilSuite) expectUserID(register func(*gin.Context), expectedID uint) {
|
|
ctx, _ := gin.CreateTestContext(httptest.NewRecorder())
|
|
register(ctx)
|
|
assert.Equal(s.T(), expectedID, GetUserID(ctx))
|
|
}
|
|
|
|
func (s *UtilSuite) expectTryUserID(register func(*gin.Context), expectedID *uint) {
|
|
ctx, _ := gin.CreateTestContext(httptest.NewRecorder())
|
|
register(ctx)
|
|
assert.Equal(s.T(), expectedID, TryGetUserID(ctx))
|
|
}
|