test/parser_test.rb in trac-wiki-0.3.14 vs test/parser_test.rb in trac-wiki-0.3.15
- old
+ new
@@ -8,11 +8,11 @@
options[:macro_commands] = { '!print' => proc { |env| env.arg(0) + '! ' },
}
options[:template_handler] = self.method(:template_handler)
parser = TracWiki.parser(options)
- parser.to_html(wiki).should.equal html
+ html.should.equal parser.to_html(wiki)
end
def env(wiki, var, val,options = {})
options[:macro_commands] = { '!print' => proc { |env| env.arg(0) + '! ' }, }
options[:template_handler] = self.method(:template_handler)
parser = TracWiki.parser(options)
@@ -30,10 +30,14 @@
end
def template_handler(tname, env)
case tname
+ when 'testmacpos2'
+ "{{testmacpos}}"
+ when 'testmacpos'
+ "{{!macpos}}"
when 'ifeqtest'
"{{!ifeq {{$1}}|{{$2}}|TRUE|FALSE}}"
when 'vartest2'
"{{vartest {{$1}}|{{$dva}}|p={{$p}}|{{$3 |tridef}}}}"
when 'ytest'
@@ -947,29 +951,34 @@
tc "<h1>h1</h1>" , "{{# comment }}\n\n\n= h1 =\n"
tc "<h1>h1</h1>" , "{{# comment }}\n\n\n= h1 =\n{{# Comment2}}\n"
tc "<h1>h1</h1>" , "{{# co{{HUU}}mment }}\n\n\n= h1 =\n{{# Comment2}}\n"
- tc "<p>UMACRO(macr|ahoj )</p>\n" , "{{macr\nahoj\n}}"
- tc "<p>ahoj UMACRO(macr|UMACRO(o|))</p>\n" , "ahoj {{macr{{o}}}}"
- tc "<p>ahoj UMACRO(macro|)</p>\n" , "ahoj {{macro}}"
- tc "<p>ahoj {{%macrUMACRO(o|)}}</p>\n" , "ahoj {{%macr{{o}}}}"
- tc "<p>ahoj UMACRO(macr|UMACRO(mac|<strong>o</strong>))</p>\n" , "ahoj {{macr{{mac **o**}}}}"
+ tc "<p>UNKNOWN-MACRO(macr)</p>\n" , "{{macr\nahoj\n}}"
+ tc "<p>ahoj UNKNOWN-MACRO(macr)</p>\n" , "ahoj {{macr{{o}}}}"
+ tc "<p>ahoj UNKNOWN-MACRO(macro)</p>\n" , "ahoj {{macro}}"
+ tc "<p>ahoj {{%macrUNKNOWN-MACRO(o)}}</p>\n" , "ahoj {{%macr{{o}}}}"
+ tc "<p>ahoj UNKNOWN-MACRO(macr)</p>\n" , "ahoj {{macr{{mac **o**}}}}"
tc "<p>ahoj ahoj</p>\n" , "ahoj {{$mac|ahoj}}"
end
it 'should do temlate' do
tc "<p>1WEST</p>\n", "1{{west}}"
tc "<p>2WEST</p>\n", "2{{test}}"
# macro errors:
tc "<p>TOO_DEEP_RECURSION(<tt>{{deep}}</tt>)3</p>\n", "{{deep}}3"
tc "<p>TOO_LONG_EXPANSION_OF_MACRO(wide)QUIT</p>\n", "{{wide}}3"
- tc "<p>UMACRO(unknown|)3</p>\n", "{{unknown}}3"
+ tc "<p>UNKNOWN-MACRO(unknown)3</p>\n", "{{unknown}}3"
end
it 'should do temlate with args' do
+ tc "<p>jedna::VARTESTPARAM,dve:,p:DVE,arg::VARTESTPARAM|p=DVE</p>\n", "{{vartest::VARTESTPARAM|p=DVE}}"
+ tc "<p>jedna::VARTESTPARAM,dve:,p:DVE,arg::VARTESTPARAM|p=DVE</p>\n", "{{vartest|:VARTESTPARAM|p=DVE}}"
tc "<p>jedna:VARTESTPARAM,dve:,p:DVE,arg:VARTESTPARAM|p=DVE</p>\n", "{{vartest VARTESTPARAM|p=DVE}}"
+ tc "<p>jedna:VARTESTPARAM,dve:,p:DVE,arg:VARTESTPARAM|p=DVE</p>\n", "{{vartest:VARTESTPARAM|p=DVE}}"
+ tc "<p>jedna:VARTESTPARAM,dve:,p:DVE,arg:VARTESTPARAM|p=DVE</p>\n", "{{vartest :VARTESTPARAM|p=DVE}}"
+ tc "<p>jedna:VARTESTPARAM,dve:,p:DVE,arg:VARTESTPARAM|p=DVE</p>\n", "{{vartest |VARTESTPARAM|p=DVE}}"
tc "<p>jedna:VARTESTPARAM,dve:TRI,p:DVE,arg:VARTESTPARAM|p=DVE|TRI</p>\n", "{{vartest VARTESTPARAM|p=DVE|TRI}}"
tc "<p>jedna:VARTESTPARAM,dve:TRI,p:DVE,arg:VARTESTPARAM|TRI|p=DVE|tridef</p>\n", "{{vartest2 VARTESTPARAM|p=DVE|dva=TRI}}"
tc "<p>ahoj |</p>\n", "ahoj {{!}}"
tc "<p>jedna:be||not to be,dve:,p:,arg:be||not to be</p>\n", "{{vartest be{{!}}{{!}}not to be}}"
end
@@ -1090,31 +1099,17 @@
tc "<p>A:off:2</p>\n", "A:{{#echo {{testoff}}}}"
end
it 'should parse offset and template' do
tc "<p>ahoj ahoj,19</p>\n" , "ahoj {{$mac|ahoj}},{{$offset}}"
+ tc "<p>ahoj ahoj,19</p>\n" , "ahoj {{$mac:ahoj}},{{$offset}}"
tc "<p>ahoj line one line two ,12</p>\n" , "ahoj {{nl}},{{$offset}}"
tc "<ul><li>line one</li>\n<li>line two,8</li>\n</ul>\n" , "{{nl2}},{{$offset}}"
tc "<ul><li>line one</li>\n<li>line two 8</li>\n</ul>\n" , "{{nl2}} {{$offset}}"
# in the future:
#tc "<p>ble * line one</p>\n<ul><li>line two 8</li>\n</ul>\n" , "ble {{nl2}} {{$offset}}"
end
- it 'should parse macro len' do
- tc "<p>11</p>\n" , "{{$maclen}}"
- tc "<p>17</p>\n" , "{{$maclen|12345}}"
- tc "<p>18</p>\n" , "{{$maclen| 12345}}"
- tc "<p>19</p>\n" , "{{$maclen | 12345}}"
- tc "<p>18</p>\n" , "{{$maclen |12345}}"
- tc "<p>18</p>\n" , "{{$maclen |12345}}"
- tc "<p>15</p>\n" , "{{$maclen|kuk}}"
- tc "<p>15</p>\n" , "{{$maclen|123}}"
- tc "<p>18</p>\n" , "{{$maclen|žížala}}"
- tc "<p>37</p>\n" , "{{$maclen|{{$maclen}}{{!echo ahoj}}}}"
- tc "<p><strong>37</strong></p>\n" , "**{{$maclen|{{$maclen}}{{!echo ahoj}}}}**"
- tc "<p>28</p>\n" , "{{$maclen|a=e|b=c|d={{$e}}}}"
- tc "<p>maclen:14</p>\n" , "{{maclentest}}"
- end
it 'should parse macro slash' do
tc "<p>slash/slash</p>\n" , "{{/slash}}"
end
it 'should parse lineno' do
tc "<p>1</p>\n" , "{{$lineno}}"
@@ -1151,8 +1146,60 @@
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
+ it 'should parse macro len' do
+ tc "<p>11</p>\n" , "{{$maclen}}"
+ tc "<p>17</p>\n" , "{{$maclen|12345}}"
+ tc "<p>18</p>\n" , "{{$maclen| 12345}}"
+ tc "<p>19</p>\n" , "{{$maclen | 12345}}"
+ tc "<p>18</p>\n" , "{{$maclen |12345}}"
+ tc "<p>18</p>\n" , "{{$maclen |12345}}"
+ tc "<p>15</p>\n" , "{{$maclen|kuk}}"
+ tc "<p>15</p>\n" , "{{$maclen|123}}"
+ tc "<p>18</p>\n" , "{{$maclen|žížala}}"
+ tc "<p>37</p>\n" , "{{$maclen|{{$maclen}}{{!echo ahoj}}}}"
+ tc "<p><strong>37</strong></p>\n" , "**{{$maclen|{{$maclen}}{{!echo ahoj}}}}**"
+ tc "<p>28</p>\n" , "{{$maclen|a=e|b=c|d={{$e}}}}"
+ tc "<p>maclen:14</p>\n" , "{{maclentest}}"
+ end
+ it 'should parse macro eoffset' do
+ tc "<p>16</p>\n" , "{{$eoffset 123}}"
+ tc "<p>12</p>\n" , "{{$eoffset}}"
+ tc "<p>ABC15</p>\n" , "ABC{{$eoffset}}"
+ tc "<p>A B C13</p>\n" , "A\nB\nC{{$eoffset}}"
+ tc "<p>A B C18</p>\n" , "A\nB\nC{{$eoffset ahoj}}"
+ tc "<p>A B C18</p>\n" , "A\nB\nC{{$eoffset ahoj}}\n"
+ tc "<p>A B 17</p>\n" , "A\nB\n{{$eoffset ahoj}}\n"
+ tc "<p>A B 6</p>\n" , "A\nB\n{{$eoffset|\nahoj}}\n"
+ tc "<p>A B 6</p>\n" , "A\nB\n{{$eoffset \nahoj}}\n"
+ tc "<p>A B 6</p>\n" , "A\nB\n{{$eoffset \n tak to teda\nahoj}}\n"
+ tc "<p>A B 6BBB</p>\n" , "A\nB\n{{$eoffset \n tak to teda\nahoj}}BBB\n"
+ tc "<p>A B 7</p>\n" , "A\nB\n{{$eoffset \t\t\n\t\n\r\f \n\tahoj}}\n"
+ tc "<p>A B 6</p>\n" , "A\nB\n{{$elineno \t\t\n\t\n\r\f \n\tahoj}}\n"
+ tc "<p>A B 6</p>\n" , "A\nB\n{{$elineno \t\t\n\t\n\r\r\r\f \n\tahoj}}\n"
+ tc "<p>A B 7</p>\n" , "A\nB\n{{$elineno \t\t\n\t\n\r\r\r\f\n \n\tahoj}}\n"
+ tc "<p>A B 3</p>\n" , "A\nB\n{{$elineno}}\n"
+ tc "<p>A B 4</p>\n" , "A\nB\n{{$elineno\nbla}}\n"
+ end
+ it 'should parse {{!macpos}}' do
+ tc "<p>1.0-1.14</p>\n", "{{testmacpos}}"
+ tc "<p>2.0-2.14</p>\n", "\n{{testmacpos}}\n"
+ tc "<p>1.0-1.30</p>\n", "{{testmacpos alsdkfjlsadjfk }}"
+ tc "<p>1.0-2.10</p>\n", "{{testmacpos\n12345678}}"
+ tc "<p>Ahoj 2.0-3.10</p>\n", "Ahoj\n{{testmacpos\n12345678}}"
+ tc "<p>1.0-1.15</p>\n", "{{testmacpos2}}"
+ tc "<p>2.0-2.15</p>\n", "\n{{testmacpos2}}\n"
+ tc "<p>1.0-1.31</p>\n", "{{testmacpos2 alsdkfjlsadjfk }}"
+ tc "<p>1.0-2.10</p>\n", "{{testmacpos2\n12345678}}"
+ tc "<p>Ahoj 2.0-3.10</p>\n", "Ahoj\n{{testmacpos2\n12345678}}"
+ end
+ it 'should expand html attrs' do
+ tc "<div class=\"1\">TEST</div>\n", "<div class=\"{{$lineno}}\">TEST</div></p>\n", allow_html: true
+ tc "<div class=\"A1B1\">TEST</div>\n", "<div class=\"A{{$lineno}}B{{$lineno}}\">TEST</div></p>\n", allow_html: true
+ tc "<div class=\"AHOJ\">TEST</div>\n", "{{!set ahoj|AHOJ}}<div class=\"{{$ahoj}}\">TEST</div></p>\n", allow_html: true
+ tc "<div class=\"**AHOJ**\">TEST</div>\n", "{{!set ahoj|AHOJ}}<div class=\"**{{$ahoj}}**\">TEST</div></p>\n", allow_html: true
end
end
# vim: tw=0