@ -5,12 +5,15 @@
package models
import (
"encoding/json"
"io/ioutil"
"os"
"path/filepath"
"strings"
"testing"
"code.gitea.io/gitea/modules/setting"
"xorm.io/xorm/schemas"
"github.com/stretchr/testify/assert"
)
@ -32,3 +35,46 @@ func TestDumpDatabase(t *testing.T) {
assert . NoError ( t , DumpDatabase ( filepath . Join ( dir , dbType + ".sql" ) , dbType ) )
}
}
type TestSource struct {
Provider string
ClientID string
ClientSecret string
OpenIDConnectAutoDiscoveryURL string
IconURL string
}
// FromDB fills up a LDAPConfig from serialized format.
func ( source * TestSource ) FromDB ( bs [ ] byte ) error {
return json . Unmarshal ( bs , & source )
}
// ToDB exports a LDAPConfig to a serialized format.
func ( source * TestSource ) ToDB ( ) ( [ ] byte , error ) {
return json . Marshal ( source )
}
func TestDumpLoginSource ( t * testing . T ) {
assert . NoError ( t , PrepareTestDatabase ( ) )
loginSourceSchema , err := x . TableInfo ( new ( LoginSource ) )
assert . NoError ( t , err )
RegisterLoginTypeConfig ( LoginOAuth2 , new ( TestSource ) )
CreateLoginSource ( & LoginSource {
Type : LoginOAuth2 ,
Name : "TestSource" ,
IsActive : false ,
Cfg : & TestSource {
Provider : "ConvertibleSourceName" ,
ClientID : "42" ,
} ,
} )
sb := new ( strings . Builder )
x . DumpTables ( [ ] * schemas . Table { loginSourceSchema } , sb )
assert . Contains ( t , sb . String ( ) , ` "Provider":"ConvertibleSourceName" ` )
}