Make tests significantly more sexy

This commit is contained in:
Chris Wong 2015-01-14 13:48:48 +13:00
parent e3752b72e6
commit 4bd68641e1

View file

@ -5,7 +5,7 @@ extern crate maud;
#[plugin] #[no_link] extern crate maud_macros; #[plugin] #[no_link] extern crate maud_macros;
#[test] #[test]
fn it_works() { fn literals() {
let s = html!("du\tcks" -23 3.14 '\n' "geese").render(); let s = html!("du\tcks" -23 3.14 '\n' "geese").render();
assert_eq!(s, "du\tcks-233.14\ngeese"); assert_eq!(s, "du\tcks-233.14\ngeese");
} }
@ -16,34 +16,86 @@ fn escaping() {
assert_eq!(s, "<flim&flam>"); assert_eq!(s, "<flim&flam>");
} }
#[test]
fn semicolons() {
let s = html! {
"one";
"two";
"three";
;;;;;;;;;;;;;;;;;;;;;;;;
"four";
}.render();
assert_eq!(s, "onetwothreefour");
}
#[test] #[test]
fn blocks() { fn blocks() {
let s = html! { let s = html! {
"hello" "hello"
{ {
" ducks"; " ducks" " geese"
" geese";
} }
" swans" " swans"
}.render(); }.render();
assert_eq!(s, "hello ducks geese swans"); assert_eq!(s, "hello ducks geese swans");
} }
mod splice { mod elements {
#[test] #[test]
fn literal() { fn simple() {
let s = html! {
p { b { "pickle" } "barrel" i { "kumquat" } }
}.render();
assert_eq!(s, "<p><b>pickle</b>barrel<i>kumquat</i></p>");
}
#[test]
fn nesting() {
let s = html!(html body div p sup "butts").render();
assert_eq!(s, "<html><body><div><p><sup>butts</sup></p></div></body></html>");
}
#[test]
fn empty() {
let s = html!("pinkie" br/ "pie").render();
assert_eq!(s, "pinkie<br>pie");
}
#[test]
fn attributes() {
let s = html! {
link rel="stylesheet" href="styles.css"/
section id="midriff" {
p class="hotpink" "Hello!"
}
}.render();
assert_eq!(s, concat!(
r#"<link rel="stylesheet" href="styles.css">"#,
r#"<section id="midriff"><p class="hotpink">Hello!</p></section>"#));
}
#[test]
fn empty_attributes() {
let s = html! { div readonly=! input type="checkbox" checked=! / }.render();
assert_eq!(s, r#"<div readonly><input type="checkbox" checked></div>"#);
}
}
mod splices {
#[test]
fn literals() {
let s = html! { $"<pinkie>" }.render(); let s = html! { $"<pinkie>" }.render();
assert_eq!(s, "&lt;pinkie&gt;"); assert_eq!(s, "&lt;pinkie&gt;");
} }
#[test] #[test]
fn raw_literal() { fn raw_literals() {
let s = html! { $$"<pinkie>" }.render(); let s = html! { $$"<pinkie>" }.render();
assert_eq!(s, "<pinkie>"); assert_eq!(s, "<pinkie>");
} }
#[test] #[test]
fn block() { fn blocks() {
let s = html! { let s = html! {
${ ${
let mut result = 1i32; let mut result = 1i32;
@ -68,7 +120,7 @@ mod splice {
// for why this is commented out // for why this is commented out
/* /*
#[test] #[test]
fn closure() { fn closures() {
let best_pony = "Pinkie Pie"; let best_pony = "Pinkie Pie";
let s = html! { $best_pony }.render(); let s = html! { $best_pony }.render();
assert_eq!(s, "Pinkie Pie"); assert_eq!(s, "Pinkie Pie");