2022-08-01 06:36:58 +08:00
// Copyright 2017 The Gitea Authors. All rights reserved.
// Copyright 2014 The Gogs Authors. All rights reserved.
2022-11-27 13:20:29 -05:00
// SPDX-License-Identifier: MIT
2022-08-01 06:36:58 +08:00
package repo
import (
"reflect"
"testing"
)
func Test_localizedExtensions ( t * testing . T ) {
tests := [ ] struct {
name string
ext string
languageCode string
wantLocalizedExts [ ] string
} {
{
name : "empty language" ,
ext : ".md" ,
wantLocalizedExts : [ ] string { ".md" } ,
} ,
{
name : "No region - lowercase" ,
languageCode : "en" ,
ext : ".csv" ,
wantLocalizedExts : [ ] string { ".en.csv" , ".csv" } ,
} ,
{
name : "No region - uppercase" ,
languageCode : "FR" ,
ext : ".txt" ,
wantLocalizedExts : [ ] string { ".fr.txt" , ".txt" } ,
} ,
{
name : "With region - lowercase" ,
languageCode : "en-us" ,
ext : ".md" ,
2022-10-24 14:12:15 +08:00
wantLocalizedExts : [ ] string { ".en-us.md" , ".en_us.md" , ".en.md" , "_en.md" , ".md" } ,
2022-08-01 06:36:58 +08:00
} ,
{
name : "With region - uppercase" ,
languageCode : "en-CA" ,
ext : ".MD" ,
2022-10-24 14:12:15 +08:00
wantLocalizedExts : [ ] string { ".en-ca.MD" , ".en_ca.MD" , ".en.MD" , "_en.MD" , ".MD" } ,
2022-08-01 06:36:58 +08:00
} ,
{
name : "With region - all uppercase" ,
languageCode : "ZH-TW" ,
ext : ".md" ,
2022-10-24 14:12:15 +08:00
wantLocalizedExts : [ ] string { ".zh-tw.md" , ".zh_tw.md" , ".zh.md" , "_zh.md" , ".md" } ,
2022-08-01 06:36:58 +08:00
} ,
}
for _ , tt := range tests {
t . Run ( tt . name , func ( t * testing . T ) {
if gotLocalizedExts := localizedExtensions ( tt . ext , tt . languageCode ) ; ! reflect . DeepEqual ( gotLocalizedExts , tt . wantLocalizedExts ) {
t . Errorf ( "localizedExtensions() = %v, want %v" , gotLocalizedExts , tt . wantLocalizedExts )
}
} )
}
}