68 lignes
1,7 Kio
Go
68 lignes
1,7 Kio
Go
package categories
|
|
|
|
import (
|
|
"path"
|
|
"strings"
|
|
|
|
"testing"
|
|
|
|
"reflect"
|
|
|
|
"github.com/NyaaPantsu/nyaa/config"
|
|
)
|
|
|
|
// run before config/parse.go:init()
|
|
var _ = func() (_ struct{}) {
|
|
config.Configpaths[1] = path.Join("..", "..", config.Configpaths[1])
|
|
config.Configpaths[0] = path.Join("..", "..", config.Configpaths[0])
|
|
config.Reload()
|
|
return
|
|
}()
|
|
|
|
func TestGetCategories(t *testing.T) {
|
|
cats := make(map[string]string)
|
|
|
|
for _, v := range All() {
|
|
cats[v.ID] = v.Name
|
|
}
|
|
if len(cats) == 0 {
|
|
t.Skip("Couldn't load categories to test Categories")
|
|
}
|
|
|
|
if !reflect.DeepEqual(cats, config.Get().Torrents.CleanCategories) && !reflect.DeepEqual(cats, config.Get().Torrents.SukebeiCategories) {
|
|
t.Error("Categories doesn't correspond to the configured ones")
|
|
}
|
|
}
|
|
|
|
func TestCategoryExists(t *testing.T) {
|
|
if Exists("k") {
|
|
t.Error("Category that shouldn't exist return true")
|
|
}
|
|
}
|
|
|
|
func TestGetCategoriesSelect(t *testing.T) {
|
|
cats := GetSelect(true, false)
|
|
for _, value := range cats {
|
|
split := strings.Split(value.ID, "_")
|
|
if len(split) != 2 {
|
|
t.Errorf("The category %s doesn't have only one underscore", value.Name)
|
|
}
|
|
if split[1] != "" {
|
|
t.Errorf("The function doesn't filter out child categories, expected '', got %s", split[1])
|
|
}
|
|
}
|
|
cats = GetSelect(false, true)
|
|
for _, value := range cats {
|
|
split := strings.Split(value.ID, "_")
|
|
if len(split) != 2 {
|
|
t.Errorf("The category %s doesn't have only one underscore", value.Name)
|
|
}
|
|
if split[1] == "" {
|
|
t.Error("The function doesn't filter out parent categories, expected a string, got nothing")
|
|
}
|
|
}
|
|
cats = GetSelect(true, true)
|
|
if len(cats) != len(All()) {
|
|
t.Errorf("Same amount of categories isn't return when no filter applied")
|
|
}
|
|
}
|