mirror of
https://github.com/acepanel/panel.git
synced 2026-02-04 16:10:59 +08:00
46 lines
1.3 KiB
Go
46 lines
1.3 KiB
Go
package captcha
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/goravel/framework/testing/mock"
|
|
testifymock "github.com/stretchr/testify/mock"
|
|
"github.com/stretchr/testify/suite"
|
|
)
|
|
|
|
type CaptchaTestSuite struct {
|
|
suite.Suite
|
|
captcha *Captcha
|
|
}
|
|
|
|
func TestCaptchaTestSuite(t *testing.T) {
|
|
facade := mock.Factory()
|
|
mockConfig := facade.Config()
|
|
mockConfig.On("GetString", "app.name").Return("HaoZiPanel").Once()
|
|
mockConfig.On("GetInt", "captcha.height").Return(80).Once()
|
|
mockConfig.On("GetInt", "captcha.width").Return(240).Once()
|
|
mockConfig.On("GetInt", "captcha.length").Return(4).Once()
|
|
mockConfig.On("Get", "captcha.maxskew").Return(0.7).Once()
|
|
mockConfig.On("GetInt", "captcha.dotcount").Return(80).Once()
|
|
mockConfig.On("GetInt", "captcha.expire_time").Return(5).Once()
|
|
mockConfig.On("GetInt", "captcha.debug_expire_time").Return(10).Once()
|
|
mockConfig.On("GetBool", "app.debug").Return(true).Once()
|
|
mockCache := facade.Cache()
|
|
mockCache.On("Put", testifymock.Anything, testifymock.Anything, time.Minute*time.Duration(10)).Return(nil).Once()
|
|
|
|
suite.Run(t, &CaptchaTestSuite{
|
|
captcha: NewCaptcha(),
|
|
})
|
|
|
|
mockConfig.AssertExpectations(t)
|
|
}
|
|
|
|
func (s *CaptchaTestSuite) TestGenerateCaptcha() {
|
|
id, base64, err := s.captcha.GenerateCaptcha()
|
|
|
|
s.NotEmpty(id)
|
|
s.NotEmpty(base64)
|
|
s.Nil(err)
|
|
}
|