mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-29 10:57:44 +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 | package models | ||||||
|  |  | ||||||
| import ( | import ( | ||||||
|  | 	"encoding/json" | ||||||
| 	"io/ioutil" | 	"io/ioutil" | ||||||
| 	"os" | 	"os" | ||||||
| 	"path/filepath" | 	"path/filepath" | ||||||
|  | 	"strings" | ||||||
| 	"testing" | 	"testing" | ||||||
|  |  | ||||||
| 	"code.gitea.io/gitea/modules/setting" | 	"code.gitea.io/gitea/modules/setting" | ||||||
|  | 	"xorm.io/xorm/schemas" | ||||||
|  |  | ||||||
| 	"github.com/stretchr/testify/assert" | 	"github.com/stretchr/testify/assert" | ||||||
| ) | ) | ||||||
| @@ -32,3 +35,46 @@ func TestDumpDatabase(t *testing.T) { | |||||||
| 		assert.NoError(t, DumpDatabase(filepath.Join(dir, dbType+".sql"), dbType)) | 		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