# Automatically generated from specification file: 'comments.json'
#
# Comment tags represent content that should never appear in the resulting
# output.
#
# The tag's content may contain any substring (including newlines) EXCEPT the
# closing delimiter.
#
# Comment tags SHOULD be treated as standalone when appropriate.
#
library(testthat)
context('Spec v1.1, comments')
test_that( "Inline", {
#"Comment blocks should be removed from the template."
template <- "12345{{! Comment Block! }}67890"
data <- list()
str <- whisker.render(template, data=data)
expect_equal(str, "1234567890", label=deparse(str), info="Comment blocks should be removed from the template.")
})
test_that( "Multiline", {
#"Multiline comments should be permitted."
template <- "12345{{!\n This is a\n multi-line comment...\n}}67890\n"
data <- list()
str <- whisker.render(template, data=data)
expect_equal(str, "1234567890\n", label=deparse(str), info="Multiline comments should be permitted.")
})
test_that( "Standalone", {
#"All standalone comment lines should be removed."
template <- "Begin.\n{{! Comment Block! }}\nEnd.\n"
data <- list()
str <- whisker.render(template, data=data)
expect_equal(str, "Begin.\nEnd.\n", label=deparse(str), info="All standalone comment lines should be removed.")
})
test_that( "Indented Standalone", {
#"All standalone comment lines should be removed."
template <- "Begin.\n {{! Indented Comment Block! }}\nEnd.\n"
data <- list()
str <- whisker.render(template, data=data)
expect_equal(str, "Begin.\nEnd.\n", label=deparse(str), info="All standalone comment lines should be removed.")
})
test_that( "Standalone Line Endings", {
#"\"\\r\\n\" should be considered a newline for standalone tags."
template <- "|\r\n{{! Standalone Comment }}\r\n|"
data <- list()
str <- whisker.render(template, data=data)
expect_equal(str, "|\r\n|", label=deparse(str), info="\"\\r\\n\" should be considered a newline for standalone tags.")
})
test_that( "Standalone Without Previous Line", {
#"Standalone tags should not require a newline to precede them."
template <- " {{! I'm Still Standalone }}\n!"
data <- list()
str <- whisker.render(template, data=data)
expect_equal(str, "!", label=deparse(str), info="Standalone tags should not require a newline to precede them.")
})
test_that( "Standalone Without Newline", {
#"Standalone tags should not require a newline to follow them."
template <- "!\n {{! I'm Still Standalone }}"
data <- list()
str <- whisker.render(template, data=data)
expect_equal(str, "!\n", label=deparse(str), info="Standalone tags should not require a newline to follow them.")
})
test_that( "Multiline Standalone", {
#"All standalone comment lines should be removed."
template <- "Begin.\n{{!\nSomething's going on here...\n}}\nEnd.\n"
data <- list()
str <- whisker.render(template, data=data)
expect_equal(str, "Begin.\nEnd.\n", label=deparse(str), info="All standalone comment lines should be removed.")
})
test_that( "Indented Multiline Standalone", {
#"All standalone comment lines should be removed."
template <- "Begin.\n {{!\n Something's going on here...\n }}\nEnd.\n"
data <- list()
str <- whisker.render(template, data=data)
expect_equal(str, "Begin.\nEnd.\n", label=deparse(str), info="All standalone comment lines should be removed.")
})
test_that( "Indented Inline", {
#"Inline comments should not strip whitespace"
template <- " 12 {{! 34 }}\n"
data <- list()
str <- whisker.render(template, data=data)
expect_equal(str, " 12 \n", label=deparse(str), info="Inline comments should not strip whitespace")
})
test_that( "Surrounding Whitespace", {
#"Comment removal should preserve surrounding whitespace."
template <- "12345 {{! Comment Block! }} 67890"
data <- list()
str <- whisker.render(template, data=data)
expect_equal(str, "12345 67890", label=deparse(str), info="Comment removal should preserve surrounding whitespace.")
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.