undo_redo_test.rs 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. pub mod helper;
  2. use crate::helper::{TestOp::*, *};
  3. #[test]
  4. fn delta_undo_insert() {
  5. let ops = vec![Insert(0, "123", 0), Undo(0), AssertOpsJson(0, r#"[]"#)];
  6. OpTester::new().run_script(ops);
  7. }
  8. #[test]
  9. fn delta_undo_insert2() {
  10. let ops = vec![
  11. Insert(0, "123", 0),
  12. Insert(0, "456", 0),
  13. Undo(0),
  14. AssertOpsJson(0, r#"[{"insert":"123\n"}]"#),
  15. Undo(0),
  16. AssertOpsJson(0, r#"[{"insert":"\n"}]"#),
  17. ];
  18. OpTester::new().run_script(ops);
  19. }
  20. #[test]
  21. fn delta_redo_insert() {
  22. let ops = vec![
  23. Insert(0, "123", 0),
  24. AssertOpsJson(0, r#"[{"insert":"123\n"}]"#),
  25. Undo(0),
  26. AssertOpsJson(0, r#"[{"insert":"\n"}]"#),
  27. Redo(0),
  28. AssertOpsJson(0, r#"[{"insert":"123\n"}]"#),
  29. ];
  30. OpTester::new().run_script(ops);
  31. }
  32. #[test]
  33. fn delta_redo_insert2() {
  34. let ops = vec![
  35. Insert(0, "123", 0),
  36. Insert(0, "456", 3),
  37. AssertStr(0, "123456\n"),
  38. AssertOpsJson(0, r#"[{"insert":"123456\n"}]"#),
  39. Undo(0),
  40. AssertOpsJson(0, r#"[{"insert":"123\n"}]"#),
  41. Redo(0),
  42. AssertOpsJson(0, r#"[{"insert":"123456\n"}]"#),
  43. Undo(0),
  44. AssertOpsJson(0, r#"[{"insert":"123\n"}]"#),
  45. ];
  46. OpTester::new().run_script(ops);
  47. }