mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 21:28:11 +09:00 
			
		
		
		
	Add test to ensure that dumping of login sources remains correct (#16847)
#16831 has occurred because of a missed regression. This PR adds a simple test to try to prevent this occuring again. Signed-off-by: Andrew Thornton <art27@cantab.net>
This commit is contained in:
		| @@ -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"`) | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user