2019-04-25 04:52:08 +07:00
package validator
import (
"testing"
2019-12-24 09:14:52 +07:00
"github.com/authelia/authelia/internal/configuration/schema"
2019-04-25 04:52:08 +07:00
"github.com/stretchr/testify/assert"
)
func newDefaultSessionConfig ( ) schema . SessionConfiguration {
config := schema . SessionConfiguration { }
config . Secret = "a_secret"
config . Domain = "example.com"
return config
}
func TestShouldSetDefaultSessionName ( t * testing . T ) {
validator := schema . NewStructValidator ( )
config := newDefaultSessionConfig ( )
ValidateSession ( & config , validator )
assert . Len ( t , validator . Errors ( ) , 0 )
assert . Equal ( t , "authelia_session" , config . Name )
}
2020-03-28 13:10:39 +07:00
func TestShouldRaiseErrorWhenRedisIsUsedAndPasswordNotSet ( t * testing . T ) {
2019-04-25 04:52:08 +07:00
validator := schema . NewStructValidator ( )
config := newDefaultSessionConfig ( )
config . Secret = ""
ValidateSession ( & config , validator )
2020-03-28 13:10:39 +07:00
assert . Len ( t , validator . Errors ( ) , 0 )
validator . Clear ( )
// Set redis config because password must be set only when redis is used.
config . Redis = & schema . RedisSessionConfiguration { }
ValidateSession ( & config , validator )
2019-04-25 04:52:08 +07:00
assert . Len ( t , validator . Errors ( ) , 1 )
assert . EqualError ( t , validator . Errors ( ) [ 0 ] , "Set secret of the session object" )
}
func TestShouldRaiseErrorWhenDomainNotSet ( t * testing . T ) {
validator := schema . NewStructValidator ( )
config := newDefaultSessionConfig ( )
config . Domain = ""
ValidateSession ( & config , validator )
assert . Len ( t , validator . Errors ( ) , 1 )
assert . EqualError ( t , validator . Errors ( ) [ 0 ] , "Set domain of the session object" )
}
2020-04-04 06:11:33 +07:00
func TestShouldRaiseErrorWhenBadInactivityAndExpirationSet ( t * testing . T ) {
validator := schema . NewStructValidator ( )
config := newDefaultSessionConfig ( )
config . Inactivity = - 1
config . Expiration = - 1
ValidateSession ( & config , validator )
assert . Len ( t , validator . Errors ( ) , 2 )
assert . EqualError ( t , validator . Errors ( ) [ 0 ] , "Set expiration of the session above 0" )
assert . EqualError ( t , validator . Errors ( ) [ 1 ] , "Set inactivity of the session to 0 or above" )
}
func TestShouldRaiseErrorWhenBadRememberMeDurationSet ( t * testing . T ) {
validator := schema . NewStructValidator ( )
config := newDefaultSessionConfig ( )
config . RememberMeDuration = "1 year"
ValidateSession ( & config , validator )
assert . Len ( t , validator . Errors ( ) , 1 )
assert . EqualError ( t , validator . Errors ( ) [ 0 ] , "Error occurred parsing remember_me_duration string: could not convert the input string of 1 year into a duration" )
}
func TestShouldSetDefaultRememberMeDuration ( t * testing . T ) {
validator := schema . NewStructValidator ( )
config := newDefaultSessionConfig ( )
ValidateSession ( & config , validator )
assert . Len ( t , validator . Errors ( ) , 0 )
assert . Equal ( t , config . RememberMeDuration , schema . DefaultSessionConfiguration . RememberMeDuration )
}