[Template] Expose token parser

This commit is contained in:
Kyle Fuller
2014-10-26 17:29:57 +00:00
parent d8e9d46310
commit 51410d2ce9
3 changed files with 28 additions and 1 deletions

View File

@@ -20,6 +20,12 @@ func assertFailure(result:TokenParser.Results, description:String) {
}
}
class CustomNode : Node {
func render(context:Context) -> (String?, Error?) {
return ("Hello World", nil)
}
}
class StencilTests: XCTestCase {
func testReadmeExample() {
let templateString = "There are {{ articles.count }} articles.\n" +
@@ -46,4 +52,16 @@ class StencilTests: XCTestCase {
XCTAssertEqual(result, Result.Success(string: fixture))
}
func testCustomTag() {
let templateString = "{% custom %}"
let template = Template(templateString:templateString)
template.parser.registerTag("custom") { parser, token in
return .Success(node:CustomNode())
}
let result = template.render()
XCTAssertEqual(result, Result.Success(string: "Hello World"))
}
}