chore: refresh gramsrv public release
This commit is contained in:
parent
75cebe8dbf
commit
70b6820474
1274 changed files with 378751 additions and 59919 deletions
51
internal/domain/media_category_test.go
Normal file
51
internal/domain/media_category_test.go
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
package domain
|
||||
|
||||
import (
|
||||
"reflect"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestClassifyMediaCategories(t *testing.T) {
|
||||
doc := func(attrs ...DocumentAttribute) *MessageMedia {
|
||||
return &MessageMedia{Kind: MessageMediaKindDocument, Document: &Document{Attributes: attrs}}
|
||||
}
|
||||
urlEnt := []MessageEntity{{Type: MessageEntityURL}}
|
||||
textURLEnt := []MessageEntity{{Type: MessageEntityTextURL}}
|
||||
emailEnt := []MessageEntity{{Type: MessageEntityEmail}}
|
||||
|
||||
cases := []struct {
|
||||
name string
|
||||
media *MessageMedia
|
||||
entities []MessageEntity
|
||||
want []MediaCategory
|
||||
}{
|
||||
{"nil media no entities", nil, nil, []MediaCategory{}},
|
||||
{"photo", &MessageMedia{Kind: MessageMediaKindPhoto, Photo: &Photo{}}, nil, []MediaCategory{MediaCategoryPhoto}},
|
||||
{"poll", &MessageMedia{Kind: MessageMediaKindPoll}, nil, []MediaCategory{MediaCategoryPoll}},
|
||||
{"video", doc(DocumentAttribute{Kind: DocAttrVideo}), nil, []MediaCategory{MediaCategoryVideo}},
|
||||
{"round video note", doc(DocumentAttribute{Kind: DocAttrVideo, RoundMessage: true}), nil, []MediaCategory{MediaCategoryRoundVideo}},
|
||||
{"gif animation", doc(DocumentAttribute{Kind: DocAttrAnimated}), nil, []MediaCategory{MediaCategoryGif}},
|
||||
{"music", doc(DocumentAttribute{Kind: DocAttrAudio}), nil, []MediaCategory{MediaCategoryMusic}},
|
||||
{"voice", doc(DocumentAttribute{Kind: DocAttrAudio, Voice: true}), nil, []MediaCategory{MediaCategoryVoice}},
|
||||
{"generic file", doc(DocumentAttribute{Kind: DocAttrFilename, FileName: "x.pdf"}), nil, []MediaCategory{MediaCategoryFile}},
|
||||
{"sticker excluded", doc(DocumentAttribute{Kind: DocAttrSticker}), nil, []MediaCategory{}},
|
||||
{"animated sticker excluded", doc(DocumentAttribute{Kind: DocAttrSticker}, DocumentAttribute{Kind: DocAttrAnimated}), nil, []MediaCategory{}},
|
||||
{"photo with url", &MessageMedia{Kind: MessageMediaKindPhoto, Photo: &Photo{}}, urlEnt, []MediaCategory{MediaCategoryPhoto, MediaCategoryURL}},
|
||||
{"text-only url", nil, urlEnt, []MediaCategory{MediaCategoryURL}},
|
||||
{"text-only text_url", nil, textURLEnt, []MediaCategory{MediaCategoryURL}},
|
||||
{"text-only email", nil, emailEnt, []MediaCategory{MediaCategoryURL}},
|
||||
{"webpage media", &MessageMedia{Kind: MessageMediaKindWebPage, WebPage: &MessageWebPage{State: MessageWebPageStateDone, ID: 1, URL: "https://example.test"}}, nil, []MediaCategory{MediaCategoryURL}},
|
||||
{"webpage media with url entity deduped", &MessageMedia{Kind: MessageMediaKindWebPage, WebPage: &MessageWebPage{State: MessageWebPageStateDone, ID: 1, URL: "https://example.test"}}, urlEnt, []MediaCategory{MediaCategoryURL}},
|
||||
{"file with link", doc(DocumentAttribute{Kind: DocAttrFilename}), urlEnt, []MediaCategory{MediaCategoryFile, MediaCategoryURL}},
|
||||
{"geo not indexed", &MessageMedia{Kind: MessageMediaKindGeo}, nil, []MediaCategory{}},
|
||||
{"contact not indexed", &MessageMedia{Kind: MessageMediaKindContact}, nil, []MediaCategory{}},
|
||||
}
|
||||
for _, tc := range cases {
|
||||
t.Run(tc.name, func(t *testing.T) {
|
||||
got := ClassifyMediaCategories(tc.media, tc.entities)
|
||||
if !reflect.DeepEqual(got, tc.want) {
|
||||
t.Fatalf("ClassifyMediaCategories = %v, want %v", got, tc.want)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue