| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 | use crate::old_document::script::{EditorScript::*, *};use flowy_revision_persistence::RevisionState;use lib_ot::core::{count_utf16_code_units, Interval};#[tokio::test]async fn text_block_sync_current_rev_id_check() {  let scripts = vec![    InsertText("1", 0),    AssertCurrentRevId(1),    InsertText("2", 1),    AssertCurrentRevId(2),    InsertText("3", 2),    AssertCurrentRevId(3),    AssertNextSyncRevId(None),    AssertJson(r#"[{"insert":"123\n"}]"#),  ];  DeltaDocumentEditorTest::new()    .await    .run_scripts(scripts)    .await;}#[tokio::test]async fn text_block_sync_state_check() {  let scripts = vec![    InsertText("1", 0),    InsertText("2", 1),    InsertText("3", 2),    AssertRevisionState(1, RevisionState::Ack),    AssertRevisionState(2, RevisionState::Ack),    AssertRevisionState(3, RevisionState::Ack),    AssertJson(r#"[{"insert":"123\n"}]"#),  ];  DeltaDocumentEditorTest::new()    .await    .run_scripts(scripts)    .await;}#[tokio::test]async fn text_block_sync_insert_test() {  let scripts = vec![    InsertText("1", 0),    InsertText("2", 1),    InsertText("3", 2),    AssertJson(r#"[{"insert":"123\n"}]"#),    AssertNextSyncRevId(None),  ];  DeltaDocumentEditorTest::new()    .await    .run_scripts(scripts)    .await;}#[tokio::test]async fn text_block_sync_insert_in_chinese() {  let s = "好".to_owned();  let offset = count_utf16_code_units(&s);  let scripts = vec![    InsertText("你", 0),    InsertText("好", offset),    AssertJson(r#"[{"insert":"你好\n"}]"#),  ];  DeltaDocumentEditorTest::new()    .await    .run_scripts(scripts)    .await;}#[tokio::test]async fn text_block_sync_insert_with_emoji() {  let s = "😁".to_owned();  let offset = count_utf16_code_units(&s);  let scripts = vec![    InsertText("😁", 0),    InsertText("☺️", offset),    AssertJson(r#"[{"insert":"😁☺️\n"}]"#),  ];  DeltaDocumentEditorTest::new()    .await    .run_scripts(scripts)    .await;}#[tokio::test]async fn text_block_sync_delete_in_english() {  let scripts = vec![    InsertText("1", 0),    InsertText("2", 1),    InsertText("3", 2),    Delete(Interval::new(0, 2)),    AssertJson(r#"[{"insert":"3\n"}]"#),  ];  DeltaDocumentEditorTest::new()    .await    .run_scripts(scripts)    .await;}#[tokio::test]async fn text_block_sync_delete_in_chinese() {  let s = "好".to_owned();  let offset = count_utf16_code_units(&s);  let scripts = vec![    InsertText("你", 0),    InsertText("好", offset),    Delete(Interval::new(0, offset)),    AssertJson(r#"[{"insert":"好\n"}]"#),  ];  DeltaDocumentEditorTest::new()    .await    .run_scripts(scripts)    .await;}#[tokio::test]async fn text_block_sync_replace_test() {  let scripts = vec![    InsertText("1", 0),    InsertText("2", 1),    InsertText("3", 2),    Replace(Interval::new(0, 3), "abc"),    AssertJson(r#"[{"insert":"abc\n"}]"#),  ];  DeltaDocumentEditorTest::new()    .await    .run_scripts(scripts)    .await;}
 |