summaryrefslogtreecommitdiff
path: root/src/parse/resolve.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/parse/resolve.rs')
-rw-r--r--src/parse/resolve.rs32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/parse/resolve.rs b/src/parse/resolve.rs
index 719e13e2..e908f22e 100644
--- a/src/parse/resolve.rs
+++ b/src/parse/resolve.rs
@@ -160,6 +160,38 @@ mod tests {
}
#[test]
+ fn test_resolve_raw() {
+ fn test(
+ raw: &str,
+ backticks: usize,
+ lang: Option<&str>,
+ lines: &[&str],
+ inline: bool,
+ ) {
+ assert_eq!(resolve_raw(raw, backticks), NodeRaw {
+ lang: lang.map(|id| Ident(id.into())),
+ lines: lines.iter().map(ToString::to_string).collect(),
+ inline,
+ });
+ }
+
+ // Just one backtick.
+ test("py", 1, None, &["py"], true);
+ test("1\n2", 1, None, &["1", "2"], true);
+ test("1\r\n2", 1, None, &["1", "2"], true);
+
+ // More than one backtick with lang tag.
+ test("js alert()", 2, Some("js"), &["alert()"], true);
+ test("py quit(\n\n) ", 3, Some("py"), &["quit(", "", ")"], false);
+ test("♥", 2, None, &[], true);
+
+ // Trimming of whitespace (tested more thoroughly in separate test).
+ test(" a", 2, None, &["a"], true);
+ test(" a", 2, None, &[" a"], true);
+ test(" \na", 2, None, &["a"], false);
+ }
+
+ #[test]
fn test_trim_raw() {
fn test(text: &str, expected: Vec<&str>) {
assert_eq!(trim_and_split_raw(text).0, expected);