summaryrefslogtreecommitdiffstats
path: root/tests/scene/test_code_edit.h
diff options
context:
space:
mode:
Diffstat (limited to 'tests/scene/test_code_edit.h')
-rw-r--r--tests/scene/test_code_edit.h137
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);
}