From 89cb4acb99593b6a85a9cc75e7623a3b1de82737 Mon Sep 17 00:00:00 2001 From: Daniel Hofstetter Date: Sat, 9 Dec 2023 17:05:36 +0100 Subject: ls: encode path when using --hyperlink --- tests/by-util/test_ls.rs | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'tests/by-util/test_ls.rs') diff --git a/tests/by-util/test_ls.rs b/tests/by-util/test_ls.rs index c9f43028c..76cb0d216 100644 --- a/tests/by-util/test_ls.rs +++ b/tests/by-util/test_ls.rs @@ -3904,6 +3904,38 @@ fn test_ls_hyperlink() { .stdout_is(format!("{file}\n")); } +// spell-checker: disable +#[test] +fn test_ls_hyperlink_encode_link() { + let (at, mut ucmd) = at_and_ucmd!(); + + #[cfg(not(target_os = "windows"))] + { + at.touch("back\\slash"); + at.touch("ques?tion"); + } + at.touch("encoded%3Fquestion"); + at.touch("sp ace"); + + let result = ucmd.arg("--hyperlink").succeeds(); + #[cfg(not(target_os = "windows"))] + { + assert!(result + .stdout_str() + .contains("back%5cslash\x07back\\slash\x1b]8;;\x07")); + assert!(result + .stdout_str() + .contains("ques%3ftion\x07ques?tion\x1b]8;;\x07")); + } + assert!(result + .stdout_str() + .contains("encoded%253Fquestion\x07encoded%3Fquestion\x1b]8;;\x07")); + assert!(result + .stdout_str() + .contains("sp%20ace\x07sp ace\x1b]8;;\x07")); +} +// spell-checker: enable + #[test] fn test_ls_color_do_not_reset() { let scene: TestScenario = TestScenario::new(util_name!()); -- cgit v1.2.3