package html
import "go.mau.fi/mautrix-telegram/pkg/gotd/tg"
func tdlibHTMLTests() []htmlTestCase {
entities := func(e ...tg.MessageEntityClass) func(msg string) []tg.MessageEntityClass {
return func(msg string) []tg.MessageEntityClass {
return e
}
}
return []htmlTestCase{
{"", "", nil, false, ""},
{"➡️ ➡️", "➡️ ➡️", nil, false, ""},
{
"<>&"«»",
"<>&\"«»",
nil,
false,
"",
},
{
"➡️ ➡️➡️ ➡️",
"➡️ ➡️➡️ ➡️",
entities(&tg.MessageEntityItalic{Offset: 5, Length: 5}),
false,
"",
},
{
"➡️ ➡️➡️ ➡️", "➡️ ➡️➡️ ➡️",
entities(&tg.MessageEntityItalic{Offset: 5, Length: 5}),
false,
"",
},
{
"➡️ ➡️➡️ ➡️",
"➡️ ➡️➡️ ➡️",
entities(&tg.MessageEntityBold{Offset: 5, Length: 5}),
false,
"",
},
{
"➡️ ➡️➡️ ➡️",
"➡️ ➡️➡️ ➡️",
entities(&tg.MessageEntityBold{Offset: 5, Length: 5}),
false,
"",
},
{
"➡️ ➡️➡️ ➡️",
"➡️ ➡️➡️ ➡️",
entities(&tg.MessageEntityUnderline{Offset: 5, Length: 5}),
false,
"",
},
{
"➡️ ➡️➡️ ➡️",
"➡️ ➡️➡️ ➡️",
entities(&tg.MessageEntityUnderline{Offset: 5, Length: 5}),
false,
"",
},
{
"➡️ ➡️➡️ ➡️",
"➡️ ➡️➡️ ➡️",
entities(&tg.MessageEntityStrike{Offset: 5, Length: 5}),
false,
"",
},
{
"➡️ ➡️➡️ ➡️",
"➡️ ➡️➡️ ➡️",
entities(&tg.MessageEntityStrike{Offset: 5, Length: 5}),
false,
"",
},
{
"➡️ ➡️➡️ ➡️",
"➡️ ➡️➡️ ➡️",
entities(&tg.MessageEntityStrike{Offset: 5, Length: 5}),
false,
"",
},
{
"➡️ ➡️➡️ ➡️➡️ ➡️",
"➡️ ➡️➡️ ➡️➡️ ➡️",
entities(
&tg.MessageEntityItalic{Offset: 5, Length: 5},
&tg.MessageEntityBold{Offset: 10, Length: 5},
),
false,
"",
},
{
"🏟 🏟🏟 <🏟",
"🏟 🏟🏟 <🏟",
entities(&tg.MessageEntityItalic{Offset: 5, Length: 6}),
false,
"",
},
{
"🏟 🏟🏟 ><🏟",
"🏟 🏟🏟 ><🏟",
entities(
&tg.MessageEntityItalic{Offset: 5, Length: 7},
&tg.MessageEntityBold{Offset: 9, Length: 3},
),
false,
"",
},
{
"🏟 🏟<a",
"🏟 🏟a",
"🏟 🏟a",
"🏟 🏟a",
"🏟 🏟a>",
"🏟 🏟🏟 🏟<>",
"🏟 🏟<🏟 🏟<",
entities(&tg.MessageEntityItalic{Offset: 6, Length: 6}),
false,
"",
},
{
"🏟 🏟<a >",
"🏟 🏟a",
"🏟 🏟",
"🏟 🏟<",
nil,
false,
"",
},
// Space handling.
{
"\t",
"\t",
entities(&tg.MessageEntityItalic{Offset: 0, Length: 1}),
false,
"",
},
{
"\r",
"\r",
entities(&tg.MessageEntityItalic{Offset: 0, Length: 1}),
false,
"",
},
{
"\n",
"\n",
entities(&tg.MessageEntityItalic{Offset: 0, Length: 1}),
false,
"",
},
{
"➡️ ➡️➡️ ➡️➡️ ➡️",
"➡️ ➡️➡️ ➡️➡️ ➡️",
entities(&tg.MessageEntitySpoiler{Offset: 5, Length: 5}, &tg.MessageEntityBold{Offset: 10, Length: 5}),
false,
"",
},
{
"🏟 🏟🏟 <🏟",
"🏟 🏟🏟 <🏟",
entities(&tg.MessageEntitySpoiler{Offset: 5, Length: 6}),
false,
"",
},
{
"🏟 🏟🏟 ><🏟",
"🏟 🏟🏟 ><🏟",
entities(&tg.MessageEntitySpoiler{Offset: 5, Length: 7}, &tg.MessageEntityBold{Offset: 9, Length: 3}),
false,
"",
},
{
"➡️ ➡️ ",
" ",
entities(
&tg.MessageEntityCode{Offset: 0, Length: 1},
&tg.MessageEntityBold{Offset: 0, Length: 1},
&tg.MessageEntityItalic{Offset: 0, Length: 1},
&tg.MessageEntityCode{Offset: 1, Length: 1},
&tg.MessageEntityBold{Offset: 1, Length: 1},
&tg.MessageEntityItalic{Offset: 1, Length: 1}),
false,
"",
},
{
" ",
" ",
entities(
&tg.MessageEntityItalic{Offset: 0, Length: 3},
&tg.MessageEntityBold{Offset: 0, Length: 1},
&tg.MessageEntityCode{Offset: 2, Length: 1},
),
false,
"",
},
{
" ",
" ",
entities(&tg.MessageEntityTextURL{Offset: 0, Length: 1, URL: "http://telegram.org/"}),
false,
"",
},
{
" ",
" ",
entities(&tg.MessageEntityTextURL{Offset: 0, Length: 1, URL: "http://telegram.org/"}),
false,
"",
},
{
" ",
" ",
entities(&tg.MessageEntityTextURL{Offset: 0, Length: 1, URL: "http://telegram.org/"}),
false,
"",
},
{
" ",
" ",
entities(&tg.MessageEntityTextURL{Offset: 0, Length: 1, URL: "http://telegram.org/?<"}),
false,
"",
},
// URL handling
{
"telegram.org ",
"telegram.org ",
nil,
false,
"",
},
{
"telegram.org", "telegram.org",
entities(&tg.MessageEntityTextURL{
Offset: 0,
Length: 12,
URL: "http://telegram.org/",
}),
false,
"",
},
{
"https://telegram.org/asdsa?asdasdwe#12e3we",
"https://telegram.org/asdsa?asdasdwe#12e3we",
entities(&tg.MessageEntityTextURL{
Offset: 0,
Length: 42,
URL: "https://telegram.org/asdsa?asdasdwe#12e3we",
}),
false,
"",
},
//
and handling
{
"🏟 🏟<🏟 🏟<>",
"🏟 🏟<🏟 🏟<",
entities(&tg.MessageEntityPre{Offset: 6, Length: 6}),
false,
"",
},
{
"🏟 🏟<🏟 🏟<>",
"🏟 🏟<🏟 🏟<",
entities(&tg.MessageEntityCode{Offset: 6, Length: 6}),
false,
"",
},
{
"🏟 🏟<🏟 🏟<>",
"🏟 🏟<🏟 🏟<",
entities(
&tg.MessageEntityPre{Offset: 6, Length: 6},
&tg.MessageEntityCode{Offset: 6, Length: 6},
),
false,
"",
},
{
"🏟 🏟<🏟 🏟<>",
"🏟 🏟<🏟 🏟<",
entities(
&tg.MessageEntityPre{Offset: 6, Length: 6},
&tg.MessageEntityCode{Offset: 6, Length: 6},
),
false,
"",
},
{
"🏟 🏟<🏟 🏟<>>",
"🏟 🏟<🏟 🏟<",
entities(&tg.MessageEntityPre{Offset: 6, Length: 6, Language: "fift"}),
false,
"",
},
{
"🏟 🏟<🏟 🏟<>>",
"🏟 🏟<🏟 🏟<",
entities(&tg.MessageEntityPre{Offset: 6, Length: 6, Language: "fift"}),
false,
"",
},
{
"🏟 🏟<🏟 🏟<> >",
"🏟 🏟<🏟 🏟< ",
entities(
&tg.MessageEntityPre{Offset: 6, Length: 7},
&tg.MessageEntityCode{Offset: 6, Length: 6},
),
false,
"",
},
{
"🏟 🏟< 🏟 🏟<>>",
"🏟 🏟< 🏟 🏟<",
entities(
&tg.MessageEntityPre{Offset: 6, Length: 7},
&tg.MessageEntityCode{Offset: 7, Length: 6},
),
false,
"",
},
}
}