aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/renderer/html.rs2
-rw-r--r--src/renderer/html_tests.rs245
2 files changed, 245 insertions, 2 deletions
diff --git a/src/renderer/html.rs b/src/renderer/html.rs
index 68b471c..b3ee343 100644
--- a/src/renderer/html.rs
+++ b/src/renderer/html.rs
@@ -227,7 +227,7 @@ impl HTMLRender for String {
impl HTMLRender for e::Reference {
fn render_html<W>(&self, stream: &mut W) -> Result<(), Error> where W: Write {
let extra = self.extra();
- write!(stream, "<a class=\"reference external\"")?;
+ write!(stream, "<a")?;
if let Some(ref target) = extra.refuri {
write!(stream, " href=\"{}\"", escape_html(target.as_str()))?;
}
diff --git a/src/renderer/html_tests.rs b/src/renderer/html_tests.rs
index a91dd80..c12890a 100644
--- a/src/renderer/html_tests.rs
+++ b/src/renderer/html_tests.rs
@@ -12,4 +12,247 @@ fn check_renders_to(rst: &str, expected: &str) {
assert_eq!(result.as_str().trim(), expected);
}
-include!(concat!(env!("OUT_DIR"), "/html_tests.rs"));
+#[test]
+fn test_simple_string() {
+ check_renders_to(
+ "Simple String",
+ "<p>Simple String</p>",
+ );
+}
+
+#[test]
+fn test_simple_string_with_markup() {
+ check_renders_to(
+ "Simple String with *markup*",
+ "<p>Simple String with <em>markup</em></p>",
+ );
+}
+
+#[test]
+fn test_check_inline_literal() {
+ check_renders_to(
+ "Simple String with an even simpler ``inline literal``",
+ "<p>Simple String with an even simpler <code>inline literal</code></p>",
+ );
+}
+
+#[test]
+fn test_reference_anonymous() {
+ check_renders_to("\
+A simple `anonymous reference`__
+
+__ http://www.test.com/test_url
+", "\
+<p>A simple <a href=\"http://www.test.com/test_url\">anonymous reference</a></p>\
+");
+}
+
+#[test]
+fn test_two_paragraphs() {
+ check_renders_to(
+ "One paragraph.\n\nTwo paragraphs.",
+ "<p>One paragraph.</p>\n<p>Two paragraphs.</p>",
+ );
+}
+
+#[test]
+fn test_named_reference() {
+ check_renders_to("\
+A simple `named reference`_ with stuff in between the
+reference and the target.
+
+.. _`named reference`: http://www.test.com/test_url
+", "\
+<p>A simple <a href=\"http://www.test.com/test_url\">named reference</a> with stuff in between the
+reference and the target.</p>\
+");
+}
+
+/*
+#[test]
+fn test_section_hierarchy() {
+ check_renders_to("\
++++++
+Title
++++++
+
+Subtitle
+========
+
+Some stuff
+
+Section
+-------
+
+Some more stuff
+
+Another Section
+...............
+
+And even more stuff
+", "\
+<p>Some stuff</p>
+<section id=\"section\">
+<h1>Section</h1>
+<p>Some more stuff</p>
+<section id=\"another-section\">
+<h2>Another Section</h2>
+<p>And even more stuff</p>
+</section>
+</section>\
+");
+}
+
+#[test]
+fn test_docinfo_title() {
+ check_renders_to("\
++++++
+Title
++++++
+
+:author: me
+
+Some stuff
+", "\
+<main id=\"title\">
+<h1 class=\"title\">Title</h1>
+<dl class=\"docinfo simple\">
+<dt class=\"author\">Author</dt>
+<dd class=\"author\"><p>me</p></dd>
+</dl>
+<p>Some stuff</p>
+</main>\
+");
+}
+*/
+
+#[test]
+fn test_section_hierarchy() {
+ check_renders_to("\
++++++
+Title
++++++
+
+Not A Subtitle
+==============
+
+Some stuff
+
+Section
+-------
+
+Some more stuff
+
+Another Section
+...............
+
+And even more stuff
+", "\
+<section id=\"title\">
+<h1>Title</h1>
+<section id=\"not-a-subtitle\">
+<h2>Not A Subtitle</h2>
+<p>Some stuff</p>
+<section id=\"section\">
+<h3>Section</h3>
+<p>Some more stuff</p>
+<section id=\"another-section\">
+<h4>Another Section</h4>
+<p>And even more stuff</p>
+</section>
+</section>
+</section>
+</section>\
+");
+}
+
+#[test]
+fn test_bullet_list() {
+ check_renders_to("\
+* bullet
+* list
+", "\
+<ul>
+<li><p>bullet</p></li>
+<li><p>list</p></li>
+</ul>\
+");
+}
+
+#[test]
+fn test_table() {
+ check_renders_to("\
+.. table::
+ :align: right
+
+ +-----+-----+
+ | 1 | 2 |
+ +-----+-----+
+ | 3 | 4 |
+ +-----+-----+
+", "\
+<table class=\"align-right\">
+<colgroup>
+<col style=\"width: 50%%\" />
+<col style=\"width: 50%%\" />
+</colgroup>
+<tbody>
+<tr><td><p>1</p></td>
+<td><p>2</p></td>
+</tr>
+<tr><td><p>3</p></td>
+<td><p>4</p></td>
+</tr>
+</tbody>
+</table>\
+");
+}
+
+#[test]
+fn test_field_list() {
+ check_renders_to("\
+Not a docinfo.
+
+:This: .. _target:
+
+ is
+:a:
+:simple:
+:field: list
+", "\
+<p>Not a docinfo.</p>
+<dl class=\"field-list\">
+<dt>This</dt>
+<dd><p id=\"target\">is</p>
+</dd>
+<dt>a</dt>
+<dd><p></p></dd>
+<dt>simple</dt>
+<dd><p></p></dd>
+<dt>field</dt>
+<dd><p>list</p>
+</dd>
+</dl>\
+");
+}
+
+#[test]
+fn test_field_list_long() {
+ check_renders_to("\
+Not a docinfo.
+
+:This is: a
+:simple field list with loooong field: names
+", "\
+<p>Not a docinfo.</p>
+<dl class=\"field-list\">
+<dt>This is</dt>
+<dd><p>a</p>
+</dd>
+<dt>simple field list with loooong field</dt>
+<dd><p>names</p>
+</dd>
+</dl>\
+");
+}
+