From ec0f642d5d3ec636b158b5fb0125f3a28ff9bf37 Mon Sep 17 00:00:00 2001 From: Frédéric Guillot Date: Sat, 25 Nov 2017 12:44:32 -0800 Subject: Add integration tests for users --- model/theme.go | 13 +++++++++++++ model/user.go | 8 ++++++++ 2 files changed, 21 insertions(+) (limited to 'model') diff --git a/model/theme.go b/model/theme.go index bcbb23a..c9bbc05 100644 --- a/model/theme.go +++ b/model/theme.go @@ -4,6 +4,8 @@ package model +import "github.com/miniflux/miniflux2/errors" + // GetThemes returns the list of available themes. func GetThemes() map[string]string { return map[string]string{ @@ -11,3 +13,14 @@ func GetThemes() map[string]string { "black": "Black", } } + +// ValidateTheme validates theme value. +func ValidateTheme(theme string) error { + for key := range GetThemes() { + if key == theme { + return nil + } + } + + return errors.NewLocalizedError("Invalid theme.") +} diff --git a/model/user.go b/model/user.go index 7d5d52b..0fd5044 100644 --- a/model/user.go +++ b/model/user.go @@ -27,6 +27,7 @@ func NewUser() *User { return &User{Extra: make(map[string]string)} } +// ValidateUserCreation validates new user. func (u User) ValidateUserCreation() error { if err := u.ValidateUserLogin(); err != nil { return err @@ -39,6 +40,7 @@ func (u User) ValidateUserCreation() error { return nil } +// ValidateUserModification validates user for modification. func (u User) ValidateUserModification() error { if u.Username == "" { return errors.New("The username is mandatory") @@ -48,9 +50,14 @@ func (u User) ValidateUserModification() error { return err } + if err := ValidateTheme(u.Theme); err != nil { + return err + } + return nil } +// ValidateUserLogin validates user credential requirements. func (u User) ValidateUserLogin() error { if u.Username == "" { return errors.New("The username is mandatory") @@ -63,6 +70,7 @@ func (u User) ValidateUserLogin() error { return nil } +// ValidatePassword validates user password requirements. func (u User) ValidatePassword() error { if u.Password != "" && len(u.Password) < 6 { return errors.New("The password must have at least 6 characters") -- cgit v1.2.3