1
0
зеркало из https://github.com/glebtv/tui-textarea.git synced 2026-08-28 11:36:17 +03:00

test TextArea::undo after insert_str and delete_str

Этот коммит содержится в:
rhysd
2023-11-02 21:08:21 +09:00
родитель b324ccd9fd
Коммит 9db8a3d31a
2 изменённых файлов: 17 добавлений и 1 удалений

Просмотреть файл

@@ -763,7 +763,14 @@ impl<'a> TextArea<'a> {
}
self.yank = deleted.join("\n"); // TODO
self.push_history(EditKind::DeleteChunk(deleted, first_start), self.cursor);
let edit = if deleted.len() == 1 {
EditKind::DeleteStr(deleted.remove(0), first_start)
} else {
EditKind::DeleteChunk(deleted, first_start)
};
self.push_history(edit, self.cursor);
true
}

Просмотреть файл

@@ -387,6 +387,11 @@ fn test_insert_str_multiple_lines() {
assert!(t.insert_str(input), "{:?}", test);
assert_eq!(t.cursor(), after_pos, "{:?}", test);
assert_eq!(t.lines(), expected, "{:?}", test);
assert!(t.undo(), "undo: {:?}", test);
assert_eq!(t.lines(), before, "content after undo: {:?}", test);
let before_pos = (row as _, col as _);
assert_eq!(t.cursor(), before_pos, "cursor after undo: {:?}", test);
}
}
@@ -701,5 +706,9 @@ fn test_delete_str_delete_multiple_lines() {
assert_eq!(t.cursor(), (row, col), "cursor position: {:?}", test);
assert_eq!(t.lines(), after, "text buffer content: {:?}", test);
assert_eq!(t.yank_text(), deleted, "yanked text: {:?}", test);
assert!(t.undo(), "undo: {:?}", test);
assert_eq!(t.lines(), before, "content after undo: {:?}", test);
assert_eq!(t.cursor(), (row, col), "cursor after undo: {:?}", test);
}
}