,,title
,,tagline
,,(Time.now)
,,# overview
,,entries{
[- ,,(title.upcase)
]
}
,,entries{
,,title
,,recent?{[New]}
,,body
}
,,title -- ,,tagline. ,,(Time.now.strftime("%d%b%Y").downcase)
EOF
assert_equal template.expand(Blog.new), <chris blogs
a blog by christian neukirchen
Mon Sep 13 19:29:04 CEST 2004
head
[New]
some
another
again
chris blogs -- a blog by christian neukirchen. 13sep2004
EOF
end
def test_indent
template = Tangerine.new <text\'alright\'
last
EOF
end
class MyTaglib
def resolve(tag)
"#{tag}=,,#{tag}"
end
end
def test_taglib
template = Tangerine.new(",,quux ,,@quux ,,bar ,,@bar", MyTaglib.new)
assert_equal template.expand(TestHelper.new), "QUUUX quux=QUUUX BAR bar=BAR"
template = Tangerine.new(",,@quux{,,reverse} ,,@bar", MyTaglib.new)
assert_equal template.expand(TestHelper.new), "XUUUQ=xuuq bar=BAR"
template = Tangerine.new(" ,,|@quux{,,reverse} ,,@bar", MyTaglib.new)
assert_equal template.expand(TestHelper.new), " XUUUQ=xuuq bar=BAR"
template = Tangerine.new(" ,,|@multiline{,,to_s} ,,@bar", MyTaglib.new)
assert_equal template.expand(TestHelper.new), " multiline=hack\n me! bar=BAR"
assert_raises(RuntimeError, 'Tag not resolvable: foo') {
template = Tangerine.new(",,@notaglib")
}
end
def test_filelib
filelib = Tangerine::FileLib.new("test-data", "test-data/subdir")
assert_raises(RuntimeError, 'Tag not resolvable: foo') {
template = Tangerine.new(",,@foo", filelib)
}
template = Tangerine.new(",,quux ,,@quux ,,bar ,,@bar", filelib)
assert_equal template.expand(TestHelper.new), "QUUUX Quux! BAR Bar!"
end
def test_block_newline
template = Tangerine.new(",,quux{,,reverse} ,,quux")
assert_equal template.expand(TestHelper.new), "XUUUQ QUUUX"
template = Tangerine.new(",,quux{,,reverse}\n,,quux")
assert_equal template.expand(TestHelper.new), "XUUUQ\nQUUUX"
template = Tangerine.new(",,quux{,,reverse} ,,quux")
assert_equal template.expand(TestHelper.new), "XUUUQ QUUUX"
template = Tangerine.new(",,quux{,,reverse}\n\n,,quux")
assert_equal template.expand(TestHelper.new), "XUUUQ\n\nQUUUX"
end
def test_comma_escaping
template = Tangerine.new("quux")
assert_equal template.expand(TestHelper.new), "quux"
template = Tangerine.new(",quux")
assert_equal template.expand(TestHelper.new), ",quux"
template = Tangerine.new(",,quux")
assert_equal template.expand(TestHelper.new), "QUUUX"
template = Tangerine.new(",,,quux")
assert_equal template.expand(TestHelper.new), ",,quux"
template = Tangerine.new(",,,,quux")
assert_equal template.expand(TestHelper.new), ",,,quux"
template = Tangerine.new(",,,,,quux")
assert_equal template.expand(TestHelper.new), ",,,,quux"
end
def test_rfc822
template = Tangerine::RFC822.new <