7a04f298d2
- update to latest telegram layer - remove some references to fields in tg.Entities that don't exist in the schema - originally added here: https://github.com/beeper/td/commit/820929062a2ba0104397bc01235ab58a9cff780e - referenced here - https://github.com/mautrix/telegramgo/commit/124f0967ed195b5a380c9bd02e170ada9710dde3 - https://github.com/mautrix/telegramgo/commit/4205047aab2e0639217148b5d125bfaab668bd8e
414 lines
9.4 KiB
Go
414 lines
9.4 KiB
Go
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,
|
|
"",
|
|
},
|
|
|
|
{
|
|
"➡️ ➡️<i>➡️ ➡️</i>",
|
|
"➡️ ➡️➡️ ➡️",
|
|
entities(&tg.MessageEntityItalic{Offset: 5, Length: 5}),
|
|
false,
|
|
"",
|
|
},
|
|
{
|
|
"➡️ ➡️<em>➡️ ➡️</em>", "➡️ ➡️➡️ ➡️",
|
|
entities(&tg.MessageEntityItalic{Offset: 5, Length: 5}),
|
|
false,
|
|
"",
|
|
},
|
|
{
|
|
"➡️ ➡️<b>➡️ ➡️</b>",
|
|
"➡️ ➡️➡️ ➡️",
|
|
entities(&tg.MessageEntityBold{Offset: 5, Length: 5}),
|
|
false,
|
|
"",
|
|
},
|
|
{
|
|
"➡️ ➡️<strong>➡️ ➡️</strong>",
|
|
"➡️ ➡️➡️ ➡️",
|
|
entities(&tg.MessageEntityBold{Offset: 5, Length: 5}),
|
|
false,
|
|
"",
|
|
},
|
|
{
|
|
"➡️ ➡️<u>➡️ ➡️</u>",
|
|
"➡️ ➡️➡️ ➡️",
|
|
entities(&tg.MessageEntityUnderline{Offset: 5, Length: 5}),
|
|
false,
|
|
"",
|
|
},
|
|
{
|
|
"➡️ ➡️<ins>➡️ ➡️</ins>",
|
|
"➡️ ➡️➡️ ➡️",
|
|
entities(&tg.MessageEntityUnderline{Offset: 5, Length: 5}),
|
|
false,
|
|
"",
|
|
},
|
|
{
|
|
"➡️ ➡️<s>➡️ ➡️</s>",
|
|
"➡️ ➡️➡️ ➡️",
|
|
entities(&tg.MessageEntityStrike{Offset: 5, Length: 5}),
|
|
false,
|
|
"",
|
|
},
|
|
{
|
|
"➡️ ➡️<strike>➡️ ➡️</strike>",
|
|
"➡️ ➡️➡️ ➡️",
|
|
entities(&tg.MessageEntityStrike{Offset: 5, Length: 5}),
|
|
false,
|
|
"",
|
|
},
|
|
{
|
|
"➡️ ➡️<del>➡️ ➡️</del>",
|
|
"➡️ ➡️➡️ ➡️",
|
|
entities(&tg.MessageEntityStrike{Offset: 5, Length: 5}),
|
|
false,
|
|
"",
|
|
},
|
|
{
|
|
"➡️ ➡️<i>➡️ ➡️</i><b>➡️ ➡️</b>",
|
|
"➡️ ➡️➡️ ➡️➡️ ➡️",
|
|
entities(
|
|
&tg.MessageEntityItalic{Offset: 5, Length: 5},
|
|
&tg.MessageEntityBold{Offset: 10, Length: 5},
|
|
),
|
|
false,
|
|
"",
|
|
},
|
|
|
|
{
|
|
"🏟 🏟<i>🏟 <🏟</i>",
|
|
"🏟 🏟🏟 <🏟",
|
|
entities(&tg.MessageEntityItalic{Offset: 5, Length: 6}),
|
|
false,
|
|
"",
|
|
},
|
|
{
|
|
"🏟 🏟<i>🏟 ><b aba = caba><🏟</b></i>",
|
|
"🏟 🏟🏟 ><🏟",
|
|
entities(
|
|
&tg.MessageEntityItalic{Offset: 5, Length: 7},
|
|
&tg.MessageEntityBold{Offset: 9, Length: 3},
|
|
),
|
|
false,
|
|
"",
|
|
},
|
|
{
|
|
"🏟 🏟<<i aba = 190azAz-. >a</i>",
|
|
"🏟 🏟<a",
|
|
entities(&tg.MessageEntityItalic{Offset: 6, Length: 1}),
|
|
false,
|
|
"",
|
|
},
|
|
{
|
|
"🏟 🏟<<i aba = 190azAz-.>a</i>",
|
|
"🏟 🏟<a",
|
|
entities(&tg.MessageEntityItalic{Offset: 6, Length: 1}),
|
|
false,
|
|
"",
|
|
},
|
|
{
|
|
"🏟 🏟<<i aba = \"<>"\">a</i>",
|
|
"🏟 🏟<a",
|
|
entities(&tg.MessageEntityItalic{Offset: 6, Length: 1}),
|
|
false,
|
|
"",
|
|
},
|
|
{
|
|
"🏟 🏟<<i aba = '<>"'>a</i>",
|
|
"🏟 🏟<a",
|
|
entities(&tg.MessageEntityItalic{Offset: 6, Length: 1}),
|
|
false,
|
|
"",
|
|
},
|
|
{
|
|
"🏟 🏟<<i aba = '<>"'>a</>",
|
|
"🏟 🏟<a",
|
|
entities(&tg.MessageEntityItalic{Offset: 6, Length: 1}),
|
|
false,
|
|
"",
|
|
},
|
|
{
|
|
"🏟 🏟<<i>🏟 🏟<</>",
|
|
"🏟 🏟<🏟 🏟<",
|
|
entities(&tg.MessageEntityItalic{Offset: 6, Length: 6}),
|
|
false,
|
|
"",
|
|
},
|
|
|
|
{
|
|
"🏟 🏟<<i>a</ >",
|
|
"🏟 🏟<a",
|
|
entities(&tg.MessageEntityItalic{Offset: 6, Length: 1}),
|
|
false,
|
|
"",
|
|
},
|
|
{
|
|
"🏟 🏟<<i>a</i >",
|
|
"🏟 🏟<a",
|
|
entities(&tg.MessageEntityItalic{Offset: 6, Length: 1}),
|
|
false,
|
|
"",
|
|
},
|
|
// Empty entity.
|
|
{
|
|
"🏟 🏟<<b></b>",
|
|
"🏟 🏟<",
|
|
nil,
|
|
false,
|
|
"",
|
|
},
|
|
// Space handling.
|
|
{
|
|
"<i>\t</i>",
|
|
"\t",
|
|
entities(&tg.MessageEntityItalic{Offset: 0, Length: 1}),
|
|
false,
|
|
"",
|
|
},
|
|
{
|
|
"<i>\r</i>",
|
|
"\r",
|
|
entities(&tg.MessageEntityItalic{Offset: 0, Length: 1}),
|
|
false,
|
|
"",
|
|
},
|
|
{
|
|
"<i>\n</i>",
|
|
"\n",
|
|
entities(&tg.MessageEntityItalic{Offset: 0, Length: 1}),
|
|
false,
|
|
"",
|
|
},
|
|
{
|
|
"➡️ ➡️<span class = \"tg-spoiler\">➡️ ➡️</span><b>➡️ ➡️</b>",
|
|
"➡️ ➡️➡️ ➡️➡️ ➡️",
|
|
entities(&tg.MessageEntitySpoiler{Offset: 5, Length: 5}, &tg.MessageEntityBold{Offset: 10, Length: 5}),
|
|
false,
|
|
"",
|
|
},
|
|
{
|
|
"🏟 🏟<span class=\"tg-spoiler\">🏟 <🏟</span>",
|
|
"🏟 🏟🏟 <🏟",
|
|
entities(&tg.MessageEntitySpoiler{Offset: 5, Length: 6}),
|
|
false,
|
|
"",
|
|
},
|
|
{
|
|
"🏟 🏟<span class=\"tg-spoiler\">🏟 ><b aba = caba><🏟</b></span>",
|
|
"🏟 🏟🏟 ><🏟",
|
|
entities(&tg.MessageEntitySpoiler{Offset: 5, Length: 7}, &tg.MessageEntityBold{Offset: 9, Length: 3}),
|
|
false,
|
|
"",
|
|
},
|
|
{
|
|
"➡️ ➡️<tg-spoiler>➡️ ➡️</tg-spoiler><b>➡️ ➡️</b>",
|
|
"➡️ ➡️➡️ ➡️➡️ ➡️",
|
|
entities(&tg.MessageEntitySpoiler{Offset: 5, Length: 5}, &tg.MessageEntityBold{Offset: 10, Length: 5}),
|
|
false,
|
|
"",
|
|
},
|
|
{
|
|
"🏟 🏟<tg-spoiler>🏟 <🏟</tg-spoiler>",
|
|
"🏟 🏟🏟 <🏟",
|
|
entities(&tg.MessageEntitySpoiler{Offset: 5, Length: 6}),
|
|
false,
|
|
"",
|
|
},
|
|
{
|
|
"🏟 🏟<tg-spoiler>🏟 ><b aba = caba><🏟</b></tg-spoiler>",
|
|
"🏟 🏟🏟 ><🏟",
|
|
entities(&tg.MessageEntitySpoiler{Offset: 5, Length: 7}, &tg.MessageEntityBold{Offset: 9, Length: 3}),
|
|
false,
|
|
"",
|
|
},
|
|
{
|
|
"<a href=telegram.org>\t</a>",
|
|
"\t",
|
|
entities(&tg.MessageEntityTextURL{Offset: 0, Length: 1, URL: "http://telegram.org/"}),
|
|
false,
|
|
"",
|
|
},
|
|
{
|
|
"<a href=telegram.org>\r</a>",
|
|
"\r",
|
|
entities(&tg.MessageEntityTextURL{Offset: 0, Length: 1, URL: "http://telegram.org/"}),
|
|
false,
|
|
"",
|
|
},
|
|
{
|
|
"<a href=telegram.org>\n</a>",
|
|
"\n",
|
|
entities(&tg.MessageEntityTextURL{Offset: 0, Length: 1, URL: "http://telegram.org/"}),
|
|
false,
|
|
"",
|
|
},
|
|
{
|
|
"<code><i><b> </b></i></code><i><b><code> </code></b></i>",
|
|
" ",
|
|
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,
|
|
"",
|
|
},
|
|
{
|
|
"<i><b> </b> <code> </code></i>",
|
|
" ",
|
|
entities(
|
|
&tg.MessageEntityItalic{Offset: 0, Length: 3},
|
|
&tg.MessageEntityBold{Offset: 0, Length: 1},
|
|
&tg.MessageEntityCode{Offset: 2, Length: 1},
|
|
),
|
|
false,
|
|
"",
|
|
},
|
|
{
|
|
"<a href=telegram.org> </a>",
|
|
" ",
|
|
entities(&tg.MessageEntityTextURL{Offset: 0, Length: 1, URL: "http://telegram.org/"}),
|
|
false,
|
|
"",
|
|
},
|
|
{
|
|
"<a href =\"telegram.org\" > </a>",
|
|
" ",
|
|
entities(&tg.MessageEntityTextURL{Offset: 0, Length: 1, URL: "http://telegram.org/"}),
|
|
false,
|
|
"",
|
|
},
|
|
{
|
|
"<a href= 'telegram.org' > </a>",
|
|
" ",
|
|
entities(&tg.MessageEntityTextURL{Offset: 0, Length: 1, URL: "http://telegram.org/"}),
|
|
false,
|
|
"",
|
|
},
|
|
{
|
|
"<a href= 'telegram.org?<' > </a>",
|
|
" ",
|
|
entities(&tg.MessageEntityTextURL{Offset: 0, Length: 1, URL: "http://telegram.org/?<"}),
|
|
false,
|
|
"",
|
|
},
|
|
// URL handling
|
|
{
|
|
"<a>telegram.org </a>",
|
|
"telegram.org ",
|
|
nil,
|
|
false,
|
|
"",
|
|
},
|
|
{
|
|
"<a>telegram.org</a>", "telegram.org",
|
|
entities(&tg.MessageEntityTextURL{
|
|
Offset: 0,
|
|
Length: 12,
|
|
URL: "http://telegram.org/",
|
|
}),
|
|
false,
|
|
"",
|
|
},
|
|
{
|
|
"<a>https://telegram.org/asdsa?asdasdwe#12e3we</a>",
|
|
"https://telegram.org/asdsa?asdasdwe#12e3we",
|
|
entities(&tg.MessageEntityTextURL{
|
|
Offset: 0,
|
|
Length: 42,
|
|
URL: "https://telegram.org/asdsa?asdasdwe#12e3we",
|
|
}),
|
|
false,
|
|
"",
|
|
},
|
|
// <pre> and <code> handling
|
|
{
|
|
"🏟 🏟<<pre >🏟 🏟<</>",
|
|
"🏟 🏟<🏟 🏟<",
|
|
entities(&tg.MessageEntityPre{Offset: 6, Length: 6}),
|
|
false,
|
|
"",
|
|
},
|
|
{
|
|
"🏟 🏟<<code >🏟 🏟<</>",
|
|
"🏟 🏟<🏟 🏟<",
|
|
entities(&tg.MessageEntityCode{Offset: 6, Length: 6}),
|
|
false,
|
|
"",
|
|
},
|
|
{
|
|
"🏟 🏟<<pre><code>🏟 🏟<</code></>",
|
|
"🏟 🏟<🏟 🏟<",
|
|
entities(
|
|
&tg.MessageEntityPre{Offset: 6, Length: 6},
|
|
&tg.MessageEntityCode{Offset: 6, Length: 6},
|
|
),
|
|
false,
|
|
"",
|
|
},
|
|
{
|
|
"🏟 🏟<<pre><code class=\"language-\">🏟 🏟<</code></>",
|
|
"🏟 🏟<🏟 🏟<",
|
|
entities(
|
|
&tg.MessageEntityPre{Offset: 6, Length: 6},
|
|
&tg.MessageEntityCode{Offset: 6, Length: 6},
|
|
),
|
|
false,
|
|
"",
|
|
},
|
|
{
|
|
"🏟 🏟<<pre><code class=\"language-fift\">🏟 🏟<</></>",
|
|
"🏟 🏟<🏟 🏟<",
|
|
entities(&tg.MessageEntityPre{Offset: 6, Length: 6, Language: "fift"}),
|
|
false,
|
|
"",
|
|
},
|
|
{
|
|
"🏟 🏟<<code class=\"language-fift\"><pre>🏟 🏟<</></>",
|
|
"🏟 🏟<🏟 🏟<",
|
|
entities(&tg.MessageEntityPre{Offset: 6, Length: 6, Language: "fift"}),
|
|
false,
|
|
"",
|
|
},
|
|
{
|
|
"🏟 🏟<<pre><code class=\"language-fift\">🏟 🏟<</> </>",
|
|
"🏟 🏟<🏟 🏟< ",
|
|
entities(
|
|
&tg.MessageEntityPre{Offset: 6, Length: 7},
|
|
&tg.MessageEntityCode{Offset: 6, Length: 6},
|
|
),
|
|
false,
|
|
"",
|
|
},
|
|
{
|
|
"🏟 🏟<<pre> <code class=\"language-fift\">🏟 🏟<</></>",
|
|
"🏟 🏟< 🏟 🏟<",
|
|
entities(
|
|
&tg.MessageEntityPre{Offset: 6, Length: 7},
|
|
&tg.MessageEntityCode{Offset: 7, Length: 6},
|
|
),
|
|
false,
|
|
"",
|
|
},
|
|
}
|
|
}
|