diff options
Diffstat (limited to 'tests/scene/test_code_edit.h')
-rw-r--r-- | tests/scene/test_code_edit.h | 137 |
1 files changed, 137 insertions, 0 deletions
diff --git a/tests/scene/test_code_edit.h b/tests/scene/test_code_edit.h index c5407d4bcd..9b8ad32e32 100644 --- a/tests/scene/test_code_edit.h +++ b/tests/scene/test_code_edit.h @@ -2314,6 +2314,143 @@ TEST_CASE("[SceneTree][CodeEdit] indent") { } } + SUBCASE("[CodeEdit] convert indent to tabs") { + code_edit->set_indent_size(4); + code_edit->set_indent_using_spaces(false); + + // Only line. + code_edit->insert_text_at_caret(" test"); + code_edit->set_caret_line(0); + code_edit->set_caret_column(8); + code_edit->select(0, 8, 0, 9); + code_edit->convert_indent(); + CHECK(code_edit->get_line(0) == "\t\ttest"); + CHECK(code_edit->get_caret_column() == 2); + CHECK(code_edit->get_selection_from_column() == 2); + CHECK(code_edit->get_selection_to_column() == 3); + + // First line. + code_edit->set_text(""); + code_edit->insert_text_at_caret(" test\n"); + code_edit->set_caret_line(0); + code_edit->set_caret_column(8); + code_edit->select(0, 8, 0, 9); + code_edit->convert_indent(); + CHECK(code_edit->get_line(0) == "\t\ttest"); + CHECK(code_edit->get_caret_column() == 2); + CHECK(code_edit->get_selection_from_column() == 2); + CHECK(code_edit->get_selection_to_column() == 3); + + // Middle line. + code_edit->set_text(""); + code_edit->insert_text_at_caret("\n test\n"); + code_edit->set_caret_line(1); + code_edit->set_caret_column(8); + code_edit->select(1, 8, 1, 9); + code_edit->convert_indent(); + CHECK(code_edit->get_line(1) == "\t\ttest"); + CHECK(code_edit->get_caret_column() == 2); + CHECK(code_edit->get_selection_from_column() == 2); + CHECK(code_edit->get_selection_to_column() == 3); + + // End line. + code_edit->set_text(""); + code_edit->insert_text_at_caret("\n test"); + code_edit->set_caret_line(1); + code_edit->set_caret_column(8); + code_edit->select(1, 8, 1, 9); + code_edit->convert_indent(); + CHECK(code_edit->get_line(1) == "\t\ttest"); + CHECK(code_edit->get_caret_column() == 2); + CHECK(code_edit->get_selection_from_column() == 2); + CHECK(code_edit->get_selection_to_column() == 3); + + // Within provided range. + code_edit->set_text(""); + code_edit->insert_text_at_caret(" test\n test\n"); + code_edit->set_caret_line(1); + code_edit->set_caret_column(8); + code_edit->select(1, 8, 1, 9); + code_edit->convert_indent(1, 1); + CHECK(code_edit->get_line(0) == " test"); + CHECK(code_edit->get_line(1) == "\t\ttest"); + CHECK(code_edit->get_caret_column() == 2); + CHECK(code_edit->get_selection_from_column() == 2); + CHECK(code_edit->get_selection_to_column() == 3); + } + + SUBCASE("[CodeEdit] convert indent to spaces") { + code_edit->set_indent_size(4); + code_edit->set_indent_using_spaces(true); + + // Only line. + code_edit->insert_text_at_caret("\t\ttest"); + code_edit->set_caret_line(0); + code_edit->set_caret_column(2); + code_edit->select(0, 2, 0, 3); + code_edit->convert_indent(); + CHECK(code_edit->get_line(0) == " test"); + CHECK(code_edit->get_caret_column() == 8); + CHECK(code_edit->get_selection_from_column() == 8); + CHECK(code_edit->get_selection_to_column() == 9); + + // First line. + code_edit->set_text(""); + code_edit->insert_text_at_caret("\t\ttest\n"); + code_edit->set_caret_line(0); + code_edit->set_caret_column(2); + code_edit->select(0, 2, 0, 3); + code_edit->convert_indent(); + CHECK(code_edit->get_line(0) == " test"); + CHECK(code_edit->get_caret_column() == 8); + CHECK(code_edit->get_selection_from_column() == 8); + CHECK(code_edit->get_selection_to_column() == 9); + + // Middle line. + code_edit->set_text(""); + code_edit->insert_text_at_caret("\n\t\ttest\n"); + code_edit->set_caret_line(1); + code_edit->set_caret_column(2); + code_edit->select(1, 2, 1, 3); + code_edit->convert_indent(); + CHECK(code_edit->get_line(1) == " test"); + CHECK(code_edit->get_caret_column() == 8); + CHECK(code_edit->get_selection_from_column() == 8); + CHECK(code_edit->get_selection_to_column() == 9); + + // End line. + code_edit->set_text(""); + code_edit->insert_text_at_caret("\n\t\ttest"); + code_edit->set_caret_line(1); + code_edit->set_caret_column(2); + code_edit->select(1, 2, 1, 3); + code_edit->convert_indent(); + CHECK(code_edit->get_line(1) == " test"); + CHECK(code_edit->get_caret_column() == 8); + CHECK(code_edit->get_selection_from_column() == 8); + CHECK(code_edit->get_selection_to_column() == 9); + + // Within provided range. + code_edit->set_text(""); + code_edit->insert_text_at_caret("\ttest\n\t\ttest\n"); + code_edit->set_caret_line(1); + code_edit->set_caret_column(2); + code_edit->select(1, 2, 1, 3); + code_edit->convert_indent(1, 1); + CHECK(code_edit->get_line(0) == "\ttest"); + CHECK(code_edit->get_line(1) == " test"); + CHECK(code_edit->get_caret_column() == 8); + CHECK(code_edit->get_selection_from_column() == 8); + CHECK(code_edit->get_selection_to_column() == 9); + + // Outside of range. + ERR_PRINT_OFF; + code_edit->convert_indent(0, 4); + code_edit->convert_indent(4, 5); + code_edit->convert_indent(4, 1); + ERR_PRINT_ON; + } + memdelete(code_edit); } |