| Index: lib/src/prism/tests/languages/haml/tag_feature.test
|
| diff --git a/lib/src/prism/tests/languages/haml/tag_feature.test b/lib/src/prism/tests/languages/haml/tag_feature.test
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..e5927d04a9d918e23ab0f8c6bb81ba8547cf7db3
|
| --- /dev/null
|
| +++ b/lib/src/prism/tests/languages/haml/tag_feature.test
|
| @@ -0,0 +1,161 @@
|
| +%one
|
| + %two
|
| +
|
| +%div#things
|
| +%div.articles
|
| +%div.article.title
|
| +
|
| +%script{:type => "text/javascript",
|
| + :src => "javascripts/script_#{42}"}
|
| +
|
| +%div{:id => [@item.type, @item.number]}
|
| +
|
| +%a(title=@title href=href)
|
| +%input(selected)
|
| +
|
| +%html{html_attrs('fr-fr')}
|
| +
|
| +%div[@user, :greeting]
|
| + %bar[290]/
|
| +
|
| +%div#Article.article.entry{:id => @article.number}
|
| +
|
| +#collection
|
| + .item
|
| +
|
| +%br/
|
| +%blockquote<
|
| +%img>
|
| +
|
| +----------------------------------------------------
|
| +
|
| +[
|
| + ["tag", ["%one"]],
|
| + ["tag", ["%two"]],
|
| +
|
| + ["tag", ["%div#things"]],
|
| + ["tag", ["%div.articles"]],
|
| + ["tag", ["%div.article.title"]],
|
| +
|
| + ["tag", [
|
| + "%script",
|
| + ["attributes", [
|
| + ["punctuation", "{"],
|
| + ["symbol", ":type"],
|
| + ["operator", "="], ["operator", ">"],
|
| + ["string", ["\"text/javascript\""]],
|
| + ["punctuation", ","],
|
| + ["symbol", ":src"],
|
| + ["operator", "="], ["operator", ">"],
|
| + ["string", [
|
| + "\"javascripts/script_",
|
| + ["interpolation", [
|
| + ["delimiter", "#{"],
|
| + ["number", "42"],
|
| + ["delimiter", "}"]
|
| + ]],
|
| + "\""
|
| + ]],
|
| + ["punctuation", "}"]
|
| + ]]
|
| + ]],
|
| +
|
| + ["tag", [
|
| + "%div",
|
| + ["attributes", [
|
| + ["punctuation", "{"],
|
| + ["symbol", ":id"],
|
| + ["operator", "="], ["operator", ">"],
|
| + ["punctuation", "["],
|
| + ["variable", "@item"],
|
| + ["punctuation", "."],
|
| + "type",
|
| + ["punctuation", ","],
|
| + ["variable", "@item"],
|
| + ["punctuation", "."],
|
| + "number",
|
| + ["punctuation", "]"],
|
| + ["punctuation", "}"]
|
| + ]]
|
| + ]],
|
| +
|
| + ["tag", [
|
| + "%a",
|
| + ["attributes", [
|
| + ["punctuation", "("],
|
| + ["attr-name", "title"],
|
| + ["punctuation", "="],
|
| + ["attr-value", "@title"],
|
| + ["attr-name", "href"],
|
| + ["punctuation", "="],
|
| + ["attr-value", "href"],
|
| + ["punctuation", ")"]
|
| + ]]
|
| + ]],
|
| + ["tag", [
|
| + "%input",
|
| + ["attributes", [
|
| + ["punctuation", "("],
|
| + ["attr-name", "selected"],
|
| + ["punctuation", ")"]
|
| + ]]
|
| + ]],
|
| +
|
| + ["tag", [
|
| + "%html",
|
| + ["attributes", [
|
| + ["punctuation", "{"],
|
| + ["function", "html_attrs"],
|
| + ["punctuation", "("],
|
| + ["string", ["'fr-fr'"]],
|
| + ["punctuation", ")"],
|
| + ["punctuation", "}"]
|
| + ]]
|
| + ]],
|
| +
|
| + ["tag", [
|
| + "%div",
|
| + ["attributes", [
|
| + ["punctuation", "["],
|
| + ["variable", "@user"],
|
| + ["punctuation", ","],
|
| + ["symbol", ":greeting"],
|
| + ["punctuation", "]"]
|
| + ]]
|
| + ]],
|
| + ["tag", [
|
| + "%bar",
|
| + ["attributes", [
|
| + ["punctuation", "["],
|
| + ["number", "290"],
|
| + ["punctuation", "]"]
|
| + ]],
|
| + "/"
|
| + ]],
|
| +
|
| + ["tag", [
|
| + "%div#Article.article.entry",
|
| + ["attributes", [
|
| + ["punctuation", "{"],
|
| + ["symbol", ":id"],
|
| + ["operator", "="], ["operator", ">"],
|
| + ["variable", "@article"],
|
| + ["punctuation", "."],
|
| + "number",
|
| + ["punctuation", "}"]
|
| + ]]
|
| + ]],
|
| +
|
| + ["tag", ["#collection"]],
|
| + ["tag", [".item"]],
|
| +
|
| + ["tag", ["%br/"]],
|
| + ["tag", ["%blockquote", ["punctuation", "<"]]],
|
| + ["tag", ["%img", ["punctuation", ">"]]]
|
| +]
|
| +
|
| +----------------------------------------------------
|
| +
|
| +Checks for tags: basic element names, attributes, html-style attributes,
|
| +attribute methods, boolean attributes, class and id shortcuts,
|
| +implicit div elements, empty tags and whitespace removal.
|
|
|