aboutsummaryrefslogtreecommitdiffstats
path: root/tests/osc.rs
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2019-11-12 15:37:31 -0500
committerJesse Luehrs <doy@tozt.net>2019-11-12 15:40:48 -0500
commite85e57949df612e22463c06fc31fb0b7957ea3c7 (patch)
tree02543dc13dd61c70be68a71a4f43aea4a5a9f30c /tests/osc.rs
parent89654c576119ba958a57e9c557d974b657d7c986 (diff)
downloadvt100-rust-e85e57949df612e22463c06fc31fb0b7957ea3c7.tar.gz
vt100-rust-e85e57949df612e22463c06fc31fb0b7957ea3c7.zip
split formatted calculations into multiple methods
different applications want to be able to apply different things, so this gives more control
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]