test/parser_test.rb in trac-wiki-0.3.12 vs test/parser_test.rb in trac-wiki-0.3.13
- old
+ new
@@ -17,11 +17,21 @@
options[:template_handler] = self.method(:template_handler)
parser = TracWiki.parser(options)
parser.to_html(wiki)
parser.env.at(var).should.equal val
end
+ def used_templates(wiki, used_templates, options={})
+ options[:macro_commands] = { '!print' => proc { |env| env.arg(0) + '! ' }, }
+ options[:template_handler] = self.method(:template_handler)
+ parser = TracWiki.parser(options)
+ parser.to_html(wiki)
+ parser.used_templates.sort.map do |key,value|
+ "#{key}:#{value}"
+ end.join(',').should.equal used_templates
+ end
+
def template_handler(tname, env)
case tname
when 'ifeqtest'
"{{!ifeq {{$1}}|{{$2}}|TRUE|FALSE}}"
when 'vartest2'
@@ -34,10 +44,12 @@
"nula:{{$0}},a:{{$a}}"
when 'varnulanula'
"nulanula:{{$00}},a:{{$a}}"
when 'vartest'
"jedna:{{$1}},dve:{{$2}},p:{{$p}},arg:{{$00}}"
+ when 'testundef'
+ "{{westundef}}"
when 'test'
"{{west}}"
when 'west'
"WEST"
when 'deep'
@@ -1130,11 +1142,16 @@
tc "<p>nula:TE|XT,a:AHOJ</p>\n" , "{{varnula TE|a=AHOJ|XT}}"
tc "<p>nulanula:TE|a=AHOJ|XT,a:AHOJ</p>\n" , "{{varnulanula TE|a=AHOJ|XT}}"
end
it 'should parse env' do
env '{{!set b|ahoj}}', 'b', 'ahoj'
-# env '{{!set *|ahoj}}', '*', 'ahoj'
-# env '{{!set *|{}|}}', '*', '{}'
-# tc "<p>a</p>\n" , "{{!set qq|a}}{{$qq}}"
+ env '{{!set *|ahoj}}', '*', 'ahoj'
+ env '{{!set *|{}|}}', '*', '{}'
+ tc "<p>a</p>\n" , "{{!set qq|a}}{{$qq}}"
+ end
+ it 'should know used templates' do
+ used_templates "{{varnula}}", "varnula:true"
+ used_templates "{{test}}", "test:true,west:true"
+ used_templates "{{testundef}}", "testundef:true,westundef:false"
end
end
# vim: tw=0