aboutsummaryrefslogtreecommitdiffstats
path: root/tests/osc.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/osc.rs')
-rw-r--r--tests/osc.rs77
1 files changed, 77 insertions, 0 deletions
diff --git a/tests/osc.rs b/tests/osc.rs
index f9bcc67..7fd7e82 100644
--- a/tests/osc.rs
+++ b/tests/osc.rs
@@ -5,12 +5,26 @@ fn title() {
let mut parser = vt100::Parser::default();
assert_eq!(parser.screen().title(), "");
assert_eq!(parser.screen().icon_name(), "");
+
+ let screen = parser.screen().clone();
parser.process(b"\x1b]2;it's a title\x07");
assert_eq!(parser.screen().title(), "it's a title");
assert_eq!(parser.screen().icon_name(), "");
+ assert_eq!(
+ parser.screen().title_formatted(),
+ &b"\x1b]2;it's a title\x07"[..]
+ );
+ assert_eq!(
+ parser.screen().title_diff(&screen),
+ &b"\x1b]2;it's a title\x07"[..]
+ );
+
+ let screen = parser.screen().clone();
parser.process(b"\x1b]2;\x07");
assert_eq!(parser.screen().title(), "");
assert_eq!(parser.screen().icon_name(), "");
+ assert_eq!(parser.screen().title_formatted(), &b""[..]);
+ assert_eq!(parser.screen().title_diff(&screen), &b"\x1b]0;\x07"[..]);
}
#[test]
@@ -18,12 +32,26 @@ fn icon_name() {
let mut parser = vt100::Parser::default();
assert_eq!(parser.screen().title(), "");
assert_eq!(parser.screen().icon_name(), "");
+
+ let screen = parser.screen().clone();
parser.process(b"\x1b]1;it's an icon name\x07");
assert_eq!(parser.screen().title(), "");
assert_eq!(parser.screen().icon_name(), "it's an icon name");
+ assert_eq!(
+ parser.screen().title_formatted(),
+ &b"\x1b]1;it's an icon name\x07"[..]
+ );
+ assert_eq!(
+ parser.screen().title_diff(&screen),
+ &b"\x1b]1;it's an icon name\x07"[..]
+ );
+
+ let screen = parser.screen().clone();
parser.process(b"\x1b]1;\x07");
assert_eq!(parser.screen().title(), "");
assert_eq!(parser.screen().icon_name(), "");
+ assert_eq!(parser.screen().title_formatted(), &b""[..]);
+ assert_eq!(parser.screen().title_diff(&screen), &b"\x1b]0;\x07"[..]);
}
#[test]
@@ -31,12 +59,61 @@ fn title_icon_name() {
let mut parser = vt100::Parser::default();
assert_eq!(parser.screen().title(), "");
assert_eq!(parser.screen().icon_name(), "");
+
+ let screen = parser.screen().clone();
parser.process(b"\x1b]0;it's both\x07");
assert_eq!(parser.screen().title(), "it's both");
assert_eq!(parser.screen().icon_name(), "it's both");
+ assert_eq!(
+ parser.screen().title_formatted(),
+ &b"\x1b]0;it's both\x07"[..]
+ );
+ assert_eq!(
+ parser.screen().title_diff(&screen),
+ &b"\x1b]0;it's both\x07"[..]
+ );
+
+ let screen = parser.screen().clone();
parser.process(b"\x1b]0;\x07");
assert_eq!(parser.screen().title(), "");
assert_eq!(parser.screen().icon_name(), "");
+ assert_eq!(parser.screen().title_formatted(), &b""[..]);
+ assert_eq!(parser.screen().title_diff(&screen), &b"\x1b]0;\x07"[..]);
+
+ let screen = parser.screen().clone();
+ parser.process(b"\x1b]2;it's a title\x07\x1b]1;it's an icon name\x07");
+ assert_eq!(parser.screen().title(), "it's a title");
+ assert_eq!(parser.screen().icon_name(), "it's an icon name");
+ assert_eq!(
+ parser.screen().title_formatted(),
+ &b"\x1b]1;it's an icon name\x07\x1b]2;it's a title\x07"[..]
+ );
+ assert_eq!(
+ parser.screen().title_diff(&screen),
+ &b"\x1b]1;it's an icon name\x07\x1b]2;it's a title\x07"[..]
+ );
+
+ let screen = parser.screen().clone();
+ parser.process(b"\x1b]1;it's a title\x07");
+ assert_eq!(
+ parser.screen().title_formatted(),
+ &b"\x1b]0;it's a title\x07"[..]
+ );
+ assert_eq!(
+ parser.screen().title_diff(&screen),
+ &b"\x1b]0;it's a title\x07"[..]
+ );
+
+ let screen = parser.screen().clone();
+ parser.process(b"\x1b]1;it's an icon name\x07");
+ assert_eq!(
+ parser.screen().title_formatted(),
+ &b"\x1b]1;it's an icon name\x07\x1b]2;it's a title\x07"[..]
+ );
+ assert_eq!(
+ parser.screen().title_diff(&screen),
+ &b"\x1b]1;it's an icon name\x07"[..]
+ );
}
#[test]