2020-12-22 01:59:18 +08:00
// Copyright 2020 The Gitea Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
package setting
import (
"testing"
"github.com/stretchr/testify/assert"
ini "gopkg.in/ini.v1"
)
func Test_getStorageCustomType ( t * testing . T ) {
iniStr := `
[ attachment ]
STORAGE_TYPE = my_minio
MINIO_BUCKET = gitea - attachment
[ storage . my_minio ]
STORAGE_TYPE = minio
MINIO_ENDPOINT = my_minio : 9000
`
Cfg , _ = ini . Load ( [ ] byte ( iniStr ) )
sec := Cfg . Section ( "attachment" )
storageType := sec . Key ( "STORAGE_TYPE" ) . MustString ( "" )
storage := getStorage ( "attachments" , storageType , sec )
assert . EqualValues ( t , "minio" , storage . Type )
assert . EqualValues ( t , "my_minio:9000" , storage . Section . Key ( "MINIO_ENDPOINT" ) . String ( ) )
assert . EqualValues ( t , "gitea-attachment" , storage . Section . Key ( "MINIO_BUCKET" ) . String ( ) )
}
func Test_getStorageNameSectionOverridesTypeSection ( t * testing . T ) {
iniStr := `
[ attachment ]
STORAGE_TYPE = minio
[ storage . attachments ]
MINIO_BUCKET = gitea - attachment
[ storage . minio ]
MINIO_BUCKET = gitea
`
Cfg , _ = ini . Load ( [ ] byte ( iniStr ) )
sec := Cfg . Section ( "attachment" )
storageType := sec . Key ( "STORAGE_TYPE" ) . MustString ( "" )
storage := getStorage ( "attachments" , storageType , sec )
assert . EqualValues ( t , "minio" , storage . Type )
assert . EqualValues ( t , "gitea-attachment" , storage . Section . Key ( "MINIO_BUCKET" ) . String ( ) )
}
func Test_getStorageTypeSectionOverridesStorageSection ( t * testing . T ) {
iniStr := `
[ attachment ]
STORAGE_TYPE = minio
[ storage . minio ]
MINIO_BUCKET = gitea - minio
[ storage ]
MINIO_BUCKET = gitea
`
Cfg , _ = ini . Load ( [ ] byte ( iniStr ) )
sec := Cfg . Section ( "attachment" )
storageType := sec . Key ( "STORAGE_TYPE" ) . MustString ( "" )
storage := getStorage ( "attachments" , storageType , sec )
assert . EqualValues ( t , "minio" , storage . Type )
assert . EqualValues ( t , "gitea-minio" , storage . Section . Key ( "MINIO_BUCKET" ) . String ( ) )
}
func Test_getStorageSpecificOverridesStorage ( t * testing . T ) {
iniStr := `
[ attachment ]
2020-12-22 07:03:18 +08:00
STORAGE_TYPE = minio
2020-12-22 01:59:18 +08:00
MINIO_BUCKET = gitea - attachment
[ storage . attachments ]
MINIO_BUCKET = gitea
2020-12-22 07:03:18 +08:00
[ storage ]
STORAGE_TYPE = local
2020-12-22 01:59:18 +08:00
`
Cfg , _ = ini . Load ( [ ] byte ( iniStr ) )
sec := Cfg . Section ( "attachment" )
storageType := sec . Key ( "STORAGE_TYPE" ) . MustString ( "" )
storage := getStorage ( "attachments" , storageType , sec )
2020-12-22 07:03:18 +08:00
assert . EqualValues ( t , "minio" , storage . Type )
2020-12-22 01:59:18 +08:00
assert . EqualValues ( t , "gitea-attachment" , storage . Section . Key ( "MINIO_BUCKET" ) . String ( ) )
}
func Test_getStorageGetDefaults ( t * testing . T ) {
Cfg , _ = ini . Load ( [ ] byte ( "" ) )
sec := Cfg . Section ( "attachment" )
storageType := sec . Key ( "STORAGE_TYPE" ) . MustString ( "" )
storage := getStorage ( "attachments" , storageType , sec )
assert . EqualValues ( t , "gitea" , storage . Section . Key ( "MINIO_BUCKET" ) . String ( ) )
}
func Test_getStorageMultipleName ( t * testing . T ) {
iniStr := `
[ lfs ]
MINIO_BUCKET = gitea - lfs
[ attachment ]
MINIO_BUCKET = gitea - attachment
[ storage ]
MINIO_BUCKET = gitea - storage
`
Cfg , _ = ini . Load ( [ ] byte ( iniStr ) )
{
sec := Cfg . Section ( "attachment" )
storageType := sec . Key ( "STORAGE_TYPE" ) . MustString ( "" )
storage := getStorage ( "attachments" , storageType , sec )
assert . EqualValues ( t , "gitea-attachment" , storage . Section . Key ( "MINIO_BUCKET" ) . String ( ) )
}
{
sec := Cfg . Section ( "lfs" )
storageType := sec . Key ( "STORAGE_TYPE" ) . MustString ( "" )
storage := getStorage ( "lfs" , storageType , sec )
assert . EqualValues ( t , "gitea-lfs" , storage . Section . Key ( "MINIO_BUCKET" ) . String ( ) )
}
{
sec := Cfg . Section ( "avatar" )
storageType := sec . Key ( "STORAGE_TYPE" ) . MustString ( "" )
storage := getStorage ( "avatars" , storageType , sec )
assert . EqualValues ( t , "gitea-storage" , storage . Section . Key ( "MINIO_BUCKET" ) . String ( ) )
}
}
func Test_getStorageUseOtherNameAsType ( t * testing . T ) {
iniStr := `
[ attachment ]
STORAGE_TYPE = lfs
[ storage . lfs ]
MINIO_BUCKET = gitea - storage
`
Cfg , _ = ini . Load ( [ ] byte ( iniStr ) )
{
sec := Cfg . Section ( "attachment" )
storageType := sec . Key ( "STORAGE_TYPE" ) . MustString ( "" )
storage := getStorage ( "attachments" , storageType , sec )
assert . EqualValues ( t , "gitea-storage" , storage . Section . Key ( "MINIO_BUCKET" ) . String ( ) )
}
{
sec := Cfg . Section ( "lfs" )
storageType := sec . Key ( "STORAGE_TYPE" ) . MustString ( "" )
storage := getStorage ( "lfs" , storageType , sec )
assert . EqualValues ( t , "gitea-storage" , storage . Section . Key ( "MINIO_BUCKET" ) . String ( ) )
}
}
2020-12-22 07:03:18 +08:00
func Test_getStorageInheritStorageType ( t * testing . T ) {
iniStr := `
[ storage ]
STORAGE_TYPE = minio
`
Cfg , _ = ini . Load ( [ ] byte ( iniStr ) )
sec := Cfg . Section ( "attachment" )
storageType := sec . Key ( "STORAGE_TYPE" ) . MustString ( "" )
storage := getStorage ( "attachments" , storageType , sec )
assert . EqualValues ( t , "minio" , storage . Type )
}
func Test_getStorageInheritNameSectionType ( t * testing . T ) {
iniStr := `
[ storage . attachments ]
STORAGE_TYPE = minio
`
Cfg , _ = ini . Load ( [ ] byte ( iniStr ) )
sec := Cfg . Section ( "attachment" )
storageType := sec . Key ( "STORAGE_TYPE" ) . MustString ( "" )
storage := getStorage ( "attachments" , storageType , sec )
assert . EqualValues ( t , "minio" , storage . Type )
}