Introduce variable filters

This commit is contained in:
Kyle Fuller
2015-10-22 09:47:45 -07:00
parent 7d5d226017
commit 16da9ac034
8 changed files with 191 additions and 19 deletions

View File

@@ -0,0 +1,23 @@
import XCTest
import Stencil
class FilterTests: XCTestCase {
func testCapitalizeFilter() {
let template = Template(templateString: "{{ name|capitalize }}")
let result = try? template.render(Context(dictionary: ["name": "kyle"]))
XCTAssertEqual(result, "Kyle")
}
func testUppercaseFilter() {
let template = Template(templateString: "{{ name|uppercase }}")
let result = try? template.render(Context(dictionary: ["name": "kyle"]))
XCTAssertEqual(result, "KYLE")
}
func testLowercaseFilter() {
let template = Template(templateString: "{{ name|lowercase }}")
let result = try? template.render(Context(dictionary: ["name": "Kyle"]))
XCTAssertEqual(result, "kyle")
}
}

View File

@@ -17,13 +17,14 @@ class TokenParserTests: XCTestCase {
func testParsingVariableToken() {
let parser = TokenParser(tokens: [
Token.Variable(value: "name")
])
Token.Variable(value: "'name'")
])
assertSuccess(try parser.parse()) { nodes in
let node = nodes.first as! VariableNode
XCTAssertEqual(nodes.count, 1)
XCTAssertEqual(node.variable, Variable("name"))
let result = try? node.render(Context())
XCTAssertEqual(result, "name")
}
}