1
1
mirror of https://github.com/wez/wezterm.git synced 2024-12-24 22:01:47 +03:00

termwiz: add test cases for parse_first_as_vec w/ OSC+ST

refs: https://github.com/markbt/streampager/issues/57
This commit is contained in:
Wez Furlong 2022-07-29 06:40:26 -07:00
parent 10121790df
commit b1c60ba258

View File

@ -354,6 +354,134 @@ mod test {
String::from_utf8(res).unwrap()
}
// <https://github.com/markbt/streampager/issues/57>
#[test]
fn osc_bel_parse_first_as_vec() {
let data = b"\x1b]8;;http://example.com\x07example\x1b]8;;\x07";
let mut p = Parser::new();
let mut offset = 0;
let mut actions = vec![];
while let Some((mut act, off)) = p.parse_first_as_vec(&data[offset..]) {
actions.append(&mut act);
offset += off;
}
k9::snapshot!(
actions,
r#"
[
OperatingSystemCommand(
SetHyperlink(
Some(
Hyperlink {
params: {},
uri: "http://example.com",
implicit: false,
},
),
),
),
Print(
'e',
),
Print(
'x',
),
Print(
'a',
),
Print(
'm',
),
Print(
'p',
),
Print(
'l',
),
Print(
'e',
),
OperatingSystemCommand(
SetHyperlink(
None,
),
),
]
"#
);
}
// <https://github.com/markbt/streampager/issues/57>
#[test]
fn osc_st_parse_first_as_vec() {
let data = b"\x1b]8;;http://example.com\x1b\\example\x1b]8;;\x1b\\";
let mut p = Parser::new();
let mut offset = 0;
let mut actions = vec![];
while let Some((mut act, off)) = p.parse_first_as_vec(&data[offset..]) {
actions.append(&mut act);
offset += off;
}
k9::snapshot!(
actions,
r#"
[
OperatingSystemCommand(
SetHyperlink(
Some(
Hyperlink {
params: {},
uri: "http://example.com",
implicit: false,
},
),
),
),
Esc(
Code(
StringTerminator,
),
),
Print(
'e',
),
Print(
'x',
),
Print(
'a',
),
Print(
'm',
),
Print(
'p',
),
Print(
'l',
),
Print(
'e',
),
OperatingSystemCommand(
SetHyperlink(
None,
),
),
Esc(
Code(
StringTerminator,
),
),
]
"#
);
}
#[test]
fn basic_parse() {
let mut p = Parser::new();