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.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, "", }, { "\t", "\t", entities(&tg.MessageEntityTextURL{Offset: 0, Length: 1, URL: "http://telegram.org/"}), false, "", }, { "\r", "\r", entities(&tg.MessageEntityTextURL{Offset: 0, Length: 1, URL: "http://telegram.org/"}), false, "", }, { "\n", "\n", entities(&tg.MessageEntityTextURL{Offset: 0, Length: 1, URL: "http://telegram.org/"}), 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,
			"",
		},
	}
}