use crate::repl::tests::{TestResult, fail_test, run_test};
#[test]
fn commandline_test_get_empty() -> TestResult {
run_test("commandline", "")
}
#[test]
fn commandline_test_append() -> TestResult {
run_test(
"commandline edit --replace '0👩❤️👩2'\n\
commandline set-cursor 2\n\
commandline edit --append 'ab'\n\
print (commandline)\n\
commandline get-cursor",
"0👩❤️👩2ab\n\
2",
)
}
#[test]
fn commandline_test_insert() -> TestResult {
run_test(
"commandline edit --replace '0👩❤️👩2'\n\
commandline set-cursor 2\n\
commandline edit --insert 'ab'\n\
print (commandline)\n\
commandline get-cursor",
"0👩❤️👩ab2\n\
4",
)
}
#[test]
fn commandline_test_replace() -> TestResult {
run_test(
"commandline edit --replace '0👩❤️👩2'\n\
commandline edit --replace 'ab'\n\
print (commandline)\n\
commandline get-cursor",
"ab\n\
2",
)
}
#[test]
fn commandline_test_cursor() -> TestResult {
run_test(
"commandline edit --replace '0👩❤️👩2'\n\
commandline set-cursor 1\n\
commandline edit --insert 'x'\n\
commandline",
"0x👩❤️👩2",
)?;
run_test(
"commandline edit --replace '0👩❤️👩2'\n\
commandline set-cursor 2\n\
commandline edit --insert 'x'\n\
commandline",
"0👩❤️👩x2",
)
}
#[test]
fn commandline_test_cursor_show_pos_begin() -> TestResult {
run_test(
"commandline edit --replace '0👩❤️👩'\n\
commandline set-cursor 0\n\
commandline get-cursor",
"0",
)
}
#[test]
fn commandline_test_cursor_show_pos_end() -> TestResult {
run_test(
"commandline edit --replace '0👩❤️👩'\n\
commandline set-cursor 2\n\
commandline get-cursor",
"2",
)
}
#[test]
fn commandline_test_cursor_show_pos_mid() -> TestResult {
run_test(
"commandline edit --replace '0👩❤️👩2'\n\
commandline set-cursor 1\n\
commandline get-cursor",
"1",
)?;
run_test(
"commandline edit --replace '0👩❤️👩2'\n\
commandline set-cursor 2\n\
commandline get-cursor",
"2",
)
}
#[test]
fn commandline_test_cursor_too_small() -> TestResult {
run_test(
"commandline edit --replace '123456'\n\
commandline set-cursor -1\n\
commandline edit --insert '0'\n\
commandline",
"0123456",
)
}
#[test]
fn commandline_test_cursor_too_large() -> TestResult {
run_test(
"commandline edit --replace '123456'\n\
commandline set-cursor 10\n\
commandline edit --insert '0'\n\
commandline",
"1234560",
)
}
#[test]
fn commandline_test_cursor_invalid() -> TestResult {
fail_test(
"commandline edit --replace '123456'\n\
commandline set-cursor 'abc'",
"expected int",
)
}
#[test]
fn commandline_test_cursor_end() -> TestResult {
run_test(
"commandline edit --insert '🤔🤔'; commandline set-cursor --end; commandline get-cursor",
"2", )
}
#[test]
fn commandline_test_cursor_type() -> TestResult {
run_test("commandline get-cursor | describe", "int")
}
#[test]
fn commandline_test_accepted_command() -> TestResult {
run_test(
"commandline edit --accept \"print accepted\"\n | commandline",
"print accepted",
)
}