summaryrefslogtreecommitdiff
path: root/internal/typeutils/util_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/typeutils/util_test.go')
-rw-r--r--internal/typeutils/util_test.go114
1 files changed, 114 insertions, 0 deletions
diff --git a/internal/typeutils/util_test.go b/internal/typeutils/util_test.go
index e6610574b..0f852d399 100644
--- a/internal/typeutils/util_test.go
+++ b/internal/typeutils/util_test.go
@@ -18,7 +18,12 @@
package typeutils
import (
+ "context"
"testing"
+
+ "github.com/superseriousbusiness/gotosocial/internal/config"
+ "github.com/superseriousbusiness/gotosocial/internal/gtsmodel"
+ "github.com/superseriousbusiness/gotosocial/internal/language"
)
func TestMisskeyReportContentURLs1(t *testing.T) {
@@ -44,3 +49,112 @@ misskey-formatted`
t.Fatalf("wanted 0 urls, got %d", l)
}
}
+
+func TestContentToContentLanguage(t *testing.T) {
+ type testcase struct {
+ content gtsmodel.Content
+ instanceLanguages language.Languages
+ expectedContent string
+ expectedLang string
+ }
+
+ ctx, cncl := context.WithCancel(context.Background())
+ defer cncl()
+
+ for i, testcase := range []testcase{
+ {
+ content: gtsmodel.Content{
+ Content: "hello world",
+ ContentMap: nil,
+ },
+ expectedContent: "hello world",
+ expectedLang: "",
+ },
+ {
+ content: gtsmodel.Content{
+ Content: "",
+ ContentMap: map[string]string{
+ "en": "hello world",
+ },
+ },
+ expectedContent: "hello world",
+ expectedLang: "en",
+ },
+ {
+ content: gtsmodel.Content{
+ Content: "bonjour le monde",
+ ContentMap: map[string]string{
+ "en": "hello world",
+ "fr": "bonjour le monde",
+ },
+ },
+ expectedContent: "bonjour le monde",
+ expectedLang: "fr",
+ },
+ {
+ content: gtsmodel.Content{
+ Content: "bonjour le monde",
+ ContentMap: map[string]string{
+ "en": "hello world",
+ },
+ },
+ expectedContent: "bonjour le monde",
+ expectedLang: "",
+ },
+ {
+ content: gtsmodel.Content{
+ Content: "",
+ ContentMap: map[string]string{
+ "en": "hello world",
+ "ru": "Привет, мир!",
+ "nl": "hallo wereld!",
+ "ca": "Hola món!",
+ },
+ },
+ instanceLanguages: language.Languages{
+ {TagStr: "en"},
+ {TagStr: "ca"},
+ },
+ expectedContent: "hello world",
+ expectedLang: "en",
+ },
+ {
+ content: gtsmodel.Content{
+ Content: "",
+ ContentMap: map[string]string{
+ "en": "hello world",
+ "ru": "Привет, мир!",
+ "nl": "hallo wereld!",
+ "ca": "Hola món!",
+ },
+ },
+ instanceLanguages: language.Languages{
+ {TagStr: "ca"},
+ {TagStr: "en"},
+ },
+ expectedContent: "Hola món!",
+ expectedLang: "ca",
+ },
+ } {
+ langs, err := language.InitLangs(testcase.instanceLanguages.TagStrs())
+ if err != nil {
+ t.Fatal(err)
+ }
+ config.SetInstanceLanguages(langs)
+
+ content, language := ContentToContentLanguage(ctx, testcase.content)
+ if content != testcase.expectedContent {
+ t.Errorf(
+ "test %d expected content '%s' got '%s'",
+ i, testcase.expectedContent, content,
+ )
+ }
+
+ if language != testcase.expectedLang {
+ t.Errorf(
+ "test %d expected language '%s' got '%s'",
+ i, testcase.expectedLang, language,
+ )
+ }
+ }
+}