aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorLibravatar Titus Wormer <tituswormer@gmail.com>2022-06-21 12:06:51 +0200
committerLibravatar Titus Wormer <tituswormer@gmail.com>2022-06-21 12:06:51 +0200
commitf99d131ec3ab60956344d001bcd40244343c241b (patch)
treeac798f9a6a1ab73021cdd5a5303e20424d37172e /tests
parent182467c1d393dee2081ff80f1c049cb145f23123 (diff)
downloadmarkdown-rs-f99d131ec3ab60956344d001bcd40244343c241b.tar.gz
markdown-rs-f99d131ec3ab60956344d001bcd40244343c241b.tar.bz2
markdown-rs-f99d131ec3ab60956344d001bcd40244343c241b.zip
Add support for inferring line ending, configurable
* Rename `CompileOptions` to `Options` * Add support for an optional default line ending style * Add support for inferring the used line ending style
Diffstat (limited to 'tests')
-rw-r--r--tests/autolink.rs5
-rw-r--r--tests/character_escape.rs5
-rw-r--r--tests/character_reference.rs5
-rw-r--r--tests/code_text.rs5
-rw-r--r--tests/definition.rs5
-rw-r--r--tests/html_flow.rs5
-rw-r--r--tests/html_text.rs5
-rw-r--r--tests/misc_dangerous_html.rs5
-rw-r--r--tests/misc_default_line_ending.rs56
-rw-r--r--tests/misc_line_ending.rs161
-rw-r--r--tests/misc_tabs.rs5
11 files changed, 244 insertions, 18 deletions
diff --git a/tests/autolink.rs b/tests/autolink.rs
index 51873ed..3882264 100644
--- a/tests/autolink.rs
+++ b/tests/autolink.rs
@@ -1,9 +1,10 @@
extern crate micromark;
-use micromark::{micromark, micromark_with_options, CompileOptions};
+use micromark::{micromark, micromark_with_options, Options};
-const DANGER: &CompileOptions = &CompileOptions {
+const DANGER: &Options = &Options {
allow_dangerous_html: true,
allow_dangerous_protocol: true,
+ default_line_ending: None,
};
#[test]
diff --git a/tests/character_escape.rs b/tests/character_escape.rs
index ba94ab3..e4f23d2 100644
--- a/tests/character_escape.rs
+++ b/tests/character_escape.rs
@@ -1,9 +1,10 @@
extern crate micromark;
-use micromark::{micromark, micromark_with_options, CompileOptions};
+use micromark::{micromark, micromark_with_options, Options};
-const DANGER: &CompileOptions = &CompileOptions {
+const DANGER: &Options = &Options {
allow_dangerous_html: true,
allow_dangerous_protocol: true,
+ default_line_ending: None,
};
#[test]
diff --git a/tests/character_reference.rs b/tests/character_reference.rs
index f2337ab..136ce17 100644
--- a/tests/character_reference.rs
+++ b/tests/character_reference.rs
@@ -1,9 +1,10 @@
extern crate micromark;
-use micromark::{micromark, micromark_with_options, CompileOptions};
+use micromark::{micromark, micromark_with_options, Options};
-const DANGER: &CompileOptions = &CompileOptions {
+const DANGER: &Options = &Options {
allow_dangerous_html: true,
allow_dangerous_protocol: true,
+ default_line_ending: None,
};
#[test]
diff --git a/tests/code_text.rs b/tests/code_text.rs
index bab6dd6..054d8e2 100644
--- a/tests/code_text.rs
+++ b/tests/code_text.rs
@@ -1,9 +1,10 @@
extern crate micromark;
-use micromark::{micromark, micromark_with_options, CompileOptions};
+use micromark::{micromark, micromark_with_options, Options};
-const DANGER: &CompileOptions = &CompileOptions {
+const DANGER: &Options = &Options {
allow_dangerous_html: true,
allow_dangerous_protocol: false,
+ default_line_ending: None,
};
#[test]
diff --git a/tests/definition.rs b/tests/definition.rs
index c15e44b..a8e8164 100644
--- a/tests/definition.rs
+++ b/tests/definition.rs
@@ -1,9 +1,10 @@
extern crate micromark;
-use micromark::{micromark, micromark_with_options, CompileOptions};
+use micromark::{micromark, micromark_with_options, Options};
-const DANGER: &CompileOptions = &CompileOptions {
+const DANGER: &Options = &Options {
allow_dangerous_html: true,
allow_dangerous_protocol: true,
+ default_line_ending: None,
};
#[test]
diff --git a/tests/html_flow.rs b/tests/html_flow.rs
index 53105a6..d942642 100644
--- a/tests/html_flow.rs
+++ b/tests/html_flow.rs
@@ -1,9 +1,10 @@
extern crate micromark;
-use micromark::{micromark, micromark_with_options, CompileOptions};
+use micromark::{micromark, micromark_with_options, Options};
-const DANGER: &CompileOptions = &CompileOptions {
+const DANGER: &Options = &Options {
allow_dangerous_html: true,
allow_dangerous_protocol: false,
+ default_line_ending: None,
};
#[test]
diff --git a/tests/html_text.rs b/tests/html_text.rs
index 1f85ac4..e70a4da 100644
--- a/tests/html_text.rs
+++ b/tests/html_text.rs
@@ -1,9 +1,10 @@
extern crate micromark;
-use micromark::{micromark, micromark_with_options, CompileOptions};
+use micromark::{micromark, micromark_with_options, Options};
-const DANGER: &CompileOptions = &CompileOptions {
+const DANGER: &Options = &Options {
allow_dangerous_html: true,
allow_dangerous_protocol: false,
+ default_line_ending: None,
};
#[test]
diff --git a/tests/misc_dangerous_html.rs b/tests/misc_dangerous_html.rs
index 7a0b49a..76031c1 100644
--- a/tests/misc_dangerous_html.rs
+++ b/tests/misc_dangerous_html.rs
@@ -1,9 +1,10 @@
extern crate micromark;
-use micromark::{micromark, micromark_with_options, CompileOptions};
+use micromark::{micromark, micromark_with_options, Options};
-const DANGER: &CompileOptions = &CompileOptions {
+const DANGER: &Options = &Options {
allow_dangerous_html: true,
allow_dangerous_protocol: true,
+ default_line_ending: None,
};
#[test]
diff --git a/tests/misc_default_line_ending.rs b/tests/misc_default_line_ending.rs
new file mode 100644
index 0000000..fb4e1df
--- /dev/null
+++ b/tests/misc_default_line_ending.rs
@@ -0,0 +1,56 @@
+extern crate micromark;
+// use micromark::{micromark, micromark_with_options, Options};
+
+#[test]
+fn default_line_ending() {
+ // To do: blockquote.
+ // assert_eq!(
+ // micromark("> a"),
+ // "<blockquote>\n<p>a</p>\n</blockquote>",
+ // "should use `\\n` default"
+ // );
+
+ // assert_eq!(
+ // micromark("> a\n"),
+ // "<blockquote>\n<p>a</p>\n</blockquote>\n",
+ // "should infer the first line ending (1)"
+ // );
+
+ // assert_eq!(
+ // micromark("> a\r"),
+ // "<blockquote>\r<p>a</p>\r</blockquote>\r",
+ // "should infer the first line ending (2)"
+ // );
+
+ // assert_eq!(
+ // micromark("> a\r\n"),
+ // "<blockquote>\r\n<p>a</p>\r\n</blockquote>\r\n",
+ // "should infer the first line ending (3)"
+ // );
+
+ // assert_eq!(
+ // micromark_with_options(
+ // "> a",
+ // &Options {
+ // // default_line_ending: "\r",
+ // allow_dangerous_html: false,
+ // allow_dangerous_protocol: false
+ // }
+ // ),
+ // "<blockquote>\r<p>a</p>\r</blockquote>",
+ // "should support the given line ending"
+ // );
+
+ // assert_eq!(
+ // micromark_with_options(
+ // "> a\n",
+ // &Options {
+ // // default_line_ending: "\r",
+ // allow_dangerous_html: false,
+ // allow_dangerous_protocol: false
+ // }
+ // ),
+ // "<blockquote>\r<p>a</p>\r</blockquote>\n",
+ // "should support the given line ending, even if line endings exist"
+ // );
+}
diff --git a/tests/misc_line_ending.rs b/tests/misc_line_ending.rs
new file mode 100644
index 0000000..195ddaa
--- /dev/null
+++ b/tests/misc_line_ending.rs
@@ -0,0 +1,161 @@
+extern crate micromark;
+use micromark::{micromark, micromark_with_options, Options};
+
+const DANGER: &Options = &Options {
+ allow_dangerous_html: true,
+ allow_dangerous_protocol: true,
+ default_line_ending: None,
+};
+
+#[test]
+fn line_ending() {
+ assert_eq!(
+ micromark("a\nb"),
+ "<p>a\nb</p>",
+ "should support a line feed for a line ending inside a paragraph"
+ );
+
+ assert_eq!(
+ micromark("a\rb"),
+ "<p>a\rb</p>",
+ "should support a carriage return for a line ending inside a paragraph"
+ );
+
+ assert_eq!(
+ micromark("a\r\nb"),
+ "<p>a\r\nb</p>",
+ "should support a carriage return + line feed for a line ending inside a paragraph"
+ );
+
+ assert_eq!(
+ micromark("\ta\n\tb"),
+ "<pre><code>a\nb\n</code></pre>",
+ "should support a line feed in indented code (and prefer it)"
+ );
+
+ assert_eq!(
+ micromark("\ta\r\tb"),
+ "<pre><code>a\rb\r</code></pre>",
+ "should support a carriage return in indented code (and prefer it)"
+ );
+
+ assert_eq!(
+ micromark("\ta\r\n\tb"),
+ "<pre><code>a\r\nb\r\n</code></pre>",
+ "should support a carriage return + line feed in indented code (and prefer it)"
+ );
+
+ assert_eq!(
+ micromark("***\n### Heading"),
+ "<hr />\n<h3>Heading</h3>",
+ "should support a line feed between flow"
+ );
+
+ assert_eq!(
+ micromark("***\r### Heading"),
+ "<hr />\r<h3>Heading</h3>",
+ "should support a carriage return between flow"
+ );
+
+ assert_eq!(
+ micromark("***\r\n### Heading"),
+ "<hr />\r\n<h3>Heading</h3>",
+ "should support a carriage return + line feed between flow"
+ );
+
+ assert_eq!(
+ micromark("***\n\n\n### Heading\n"),
+ "<hr />\n<h3>Heading</h3>\n",
+ "should support several line feeds between flow"
+ );
+
+ assert_eq!(
+ micromark("***\r\r\r### Heading\r"),
+ "<hr />\r<h3>Heading</h3>\r",
+ "should support several carriage returns between flow"
+ );
+
+ assert_eq!(
+ micromark("***\r\n\r\n\r\n### Heading\r\n"),
+ "<hr />\r\n<h3>Heading</h3>\r\n",
+ "should support several carriage return + line feeds between flow"
+ );
+
+ assert_eq!(
+ micromark("```x\n\n\ny\n\n\n```\n\n\n"),
+ "<pre><code class=\"language-x\">\n\ny\n\n\n</code></pre>\n",
+ "should support several line feeds in fenced code"
+ );
+
+ assert_eq!(
+ micromark("```x\r\r\ry\r\r\r```\r\r\r"),
+ "<pre><code class=\"language-x\">\r\ry\r\r\r</code></pre>\r",
+ "should support several carriage returns in fenced code"
+ );
+
+ assert_eq!(
+ micromark("```x\r\n\r\n\r\ny\r\n\r\n\r\n```\r\n\r\n\r\n"),
+ "<pre><code class=\"language-x\">\r\n\r\ny\r\n\r\n\r\n</code></pre>\r\n",
+ "should support several carriage return + line feeds in fenced code"
+ );
+
+ assert_eq!(
+ micromark("A\r\nB\r\n-\r\nC"),
+ "<h2>A\r\nB</h2>\r\n<p>C</p>",
+ "should support a carriage return + line feed in content"
+ );
+
+ assert_eq!(
+ micromark_with_options("<div\n", DANGER),
+ "<div\n",
+ "should support a line feed after html"
+ );
+
+ assert_eq!(
+ micromark_with_options("<div\r", DANGER),
+ "<div\r",
+ "should support a carriage return after html"
+ );
+
+ assert_eq!(
+ micromark_with_options("<div\r\n", DANGER),
+ "<div\r\n",
+ "should support a carriage return + line feed after html"
+ );
+
+ assert_eq!(
+ micromark_with_options("<div>\n\nx", DANGER),
+ "<div>\n<p>x</p>",
+ "should support a blank line w/ line feeds after html"
+ );
+
+ assert_eq!(
+ micromark_with_options("<div>\r\rx", DANGER),
+ "<div>\r<p>x</p>",
+ "should support a blank line w/ carriage returns after html"
+ );
+
+ assert_eq!(
+ micromark_with_options("<div>\r\n\r\nx", DANGER),
+ "<div>\r\n<p>x</p>",
+ "should support a blank line w/ carriage return + line feeds after html"
+ );
+
+ assert_eq!(
+ micromark_with_options("<div>\nx", DANGER),
+ "<div>\nx",
+ "should support a non-blank line w/ line feed in html"
+ );
+
+ assert_eq!(
+ micromark_with_options("<div>\rx", DANGER),
+ "<div>\rx",
+ "should support a non-blank line w/ carriage return in html"
+ );
+
+ assert_eq!(
+ micromark_with_options("<div>\r\nx", DANGER),
+ "<div>\r\nx",
+ "should support a non-blank line w/ carriage return + line feed in html"
+ );
+}
diff --git a/tests/misc_tabs.rs b/tests/misc_tabs.rs
index 46588e7..e9a0b72 100644
--- a/tests/misc_tabs.rs
+++ b/tests/misc_tabs.rs
@@ -1,9 +1,10 @@
extern crate micromark;
-use micromark::{micromark, micromark_with_options, CompileOptions};
+use micromark::{micromark, micromark_with_options, Options};
-const DANGER: &CompileOptions = &CompileOptions {
+const DANGER: &Options = &Options {
allow_dangerous_html: true,
allow_dangerous_protocol: true,
+ default_line_ending: None,
};
#[test]