diff --git a/tests/scene/test_rich_text_label.cpp b/tests/scene/test_rich_text_label.cpp index 8daf0f5eb5bd..b94cfb5e1d64 100644 --- a/tests/scene/test_rich_text_label.cpp +++ b/tests/scene/test_rich_text_label.cpp @@ -137,6 +137,67 @@ TEST_CASE("[SceneTree][RichTextLabel] Sizing with fit content") { memdelete(test_label); } +// RichTextLabel +RichTextLabel *make_label(SceneTree *tree) { + RichTextLabel *label = memnew(RichTextLabel); + tree->get_root()->add_child(label); + label->set_use_bbcode(true); + return label; +} + +TEST_CASE("[SceneTree][RichTextLabel] append_text simple case") { + RichTextLabel *label = make_label(SceneTree::get_singleton()); + + label->append_text("Hello, World!"); + CHECK(label->get_parsed_text() == "Hello, World!"); + + memdelete(label); +} + +TEST_CASE("[SceneTree][RichTextLabel] append_text brackets") { + RichTextLabel *label = make_label(SceneTree::get_singleton()); + + label->set_text("[lb]test"); + label->append_text("[rb]"); + CHECK(label->get_parsed_text() == "[test]"); + + memdelete(label); +} + +TEST_CASE("[SceneTree][RichTextLabel] append_text with unordered list") { + RichTextLabel *label = make_label(SceneTree::get_singleton()); + + label->append_text("[ul]item 1[/ul]"); + CHECK(label->get_parsed_text() == "\titem 1\n"); + + label->set_text(""); + label->append_text("[ul]\n[/ul]"); + // Should not add extra newlines for empty list items. + CHECK(label->get_parsed_text() == "\t\n"); + + memdelete(label); +} + +TEST_CASE("[SceneTree][RichTextLabel] append_text mismatched brackets") { + RichTextLabel *label = make_label(SceneTree::get_singleton()); + + label->set_text("[b]test"); + label->append_text("[/i]"); + CHECK(label->get_parsed_text() == "test[/i]"); + + memdelete(label); +} + +TEST_CASE("[SceneTree][RichTextLabel] append_text brackets with incorrect case") { + RichTextLabel *label = make_label(SceneTree::get_singleton()); + + label->set_text("[b]test"); + label->append_text("[/B]"); + CHECK(label->get_parsed_text() == "test[/B]"); + + memdelete(label); +} + } // namespace TestRichTextLabel #endif // ADVANCED_GUI_DISABLED