test/parser_test.rb in trac-wiki-0.3.29 vs test/parser_test.rb in trac-wiki-0.3.30

- old
+ new

@@ -70,13 +70,23 @@ "0123456789{{wide}}" * 10 when 'testoff' "off:{{$offset}}" when '/slash' "slash/slash" + when 'argcount' + "{{$#}},{{$##}}" + when 'argi' + "{{$i}}:{{!arg {{$i}}}}." + when 'forargs' + "{{!forargs i||{{$i}}:{{!arg {{$i}}}},}}" + when 'forargs2' + "{{!forargs i|2|{{$i}}:{{!arg {{$i}}}},}}" when 'unkmacro' #"UNKNOWN-MACRO:!{{!.{{$0}}}}." "UNKNOWN-MACRO:!{{!.{{$1}}}}." + when 'digesttest' + "({{$00}}:{{!digest blabla{{$00}}}})" else nil #"UNK_TEMPL(#{tname})" end end @@ -1061,24 +1071,31 @@ tc "<p>,BETA</p>\n", "{{!yset ahoj|data: [ALFA,BETA]\ndesc: malo}},{{$ahoj.data.1}}" tc "<p>,GAMA</p>\n", "{{!yset ahoj|data: [ALFA,BETA]\ndesc: malo}},{{!set ahoj.data.3|GAMA}}{{$ahoj.data.3}}" tc "<p>,2</p>\n", "{{!yset ahoj|data: [1,2]\ndesc: malo}},{{$ahoj.data.1}}" tc "<p>AHOJ,dve</p>\n", "{{ytest2 \nahoj: AHOJ\nbhoj: [ jedna, dve ]\n}}" tc "<p>,,BHOJ</p>\n", "{{!set ahoj|AHOJ}},{{!set AHOJ|BHOJ}},{{$$ahoj}}" - tc "<p>(0),(1),(2),</p>\n", "{{!for i|3|({{$i}}),}}", allow_html: true - tc "<p>(0),(1),(2),(3),</p>\n", "{{!for i|4|({{$i}}),}}", allow_html: true - tc "<p>,(ALFA),(BETA),</p>\n", "{{!yset data|[ALFA,BETA]}},{{!for i|data|({{$data.$i}}),}}" - tc "<p>,(1),(2),</p>\n", "{{!yset data|[1,2]}},{{!for i|data|({{$data.$i}}),}}" - tc "<p>,(alfa:ALFA),(beta:BETA),</p>\n", "{{!yset data|beta: BETA\nalfa: ALFA\n}},{{!for i|data|({{$i}}:{{$data.$i}}),}}" - tc "<p>,(0:1),(1:2),</p>\n", "{{!yset data|[ 1,2 ]\n}},{{!for i|data|({{$i}}:{{$data.$i}}),}}" - tc "<p>,</p>\n", "{{!yset data|[ ]\n}},{{!for i|data|({{$i}}:{{$data.$i}}),}}" tc "<p>,FALSE</p>\n", "{{!yset data|[1,2]}},{{!ifdef data.55|TRUE|FALSE}}" tc "<p>,TRUE</p>\n", "{{!yset data|[1,2]}},{{!ifdef data.1|TRUE|FALSE}}" tc "<p>,TRUE</p>\n", "{{!yset data|{a: 1, b: 2} }},{{!ifdef data.a|TRUE|FALSE}}" tc "<p>,FALSE</p>\n", "{{!yset data|{a: 1, b: 2} }},{{!ifdef data.q|TRUE|FALSE}}" end - + it 'should parse !for' do + tc "<p>(1),(2),(3),</p>\n", "{{!for i|1,3|({{$i}}),}}", allow_html: true + tc "<p>(2),(3),</p>\n", "{{!for i|2,3|({{$i}}),}}", allow_html: true + tc "<p>(3),</p>\n", "{{!for i|3,3|({{$i}}),}}", allow_html: true + tc "<p>(0),(1),(2),(3),(4),</p>\n", "{{!for i|,4|({{$i}}),}}", allow_html: true + tc "<p>,(ALFA),(BETA),</p>\n", "{{!yset data|[ALFA,BETA]}},{{!for i|data|({{$data.$i}}),}}" + tc "<p>,(1),(2),</p>\n", "{{!yset data|[1,2]}},{{!for i|data|({{$data.$i}}),}}" + tc "<p>,(alfa:ALFA),(beta:BETA),</p>\n", "{{!yset data|beta: BETA\nalfa: ALFA\n}},{{!for i|data|({{$i}}:{{$data.$i}}),}}" + tc "<p>,(0:1),(1:2),</p>\n", "{{!yset data|[ 1,2 ]\n}},{{!for i|data|({{$i}}:{{$data.$i}}),}}" + tc "<p>,</p>\n", "{{!yset data|[ ]\n}},{{!for i|data|({{$i}}:{{$data.$i}}),}}" + end + it 'should parse argi' do + tc "<p>1:one.</p>\n", "{{argi one|two|i=1}}" + tc "<p>2:two.</p>\n", "{{argi one|two|i=2}}" + end it 'should parse html' do tc "<p>alert(666)</p>\n", "<script>alert(666)</script>", allow_html: true tc "<p><b>T</b>E</p>\n", "<p><b>T</b>E</p>", allow_html: true tc "<p><span>Span</span></p>\n", "<span>Span</span>\n", allow_html: true tc "<p><strong><span>Span</span></strong></p>\n", "**<span>Span</span>**\n", allow_html: true @@ -1112,12 +1129,12 @@ tc "<p>de</p>\n", "{{!ifeq a|b|c|d\\\n e}}" tc "<p>d<strong>e</strong></p>\n", "{{!ifeq a|b|c|d**\\\ne**}}" tc "<p>d<strong>e</strong></p>\n", "{{!ifeq a|b|c|d*\\\n*e**}}" tc "<p>d<strong>e</strong></p>\n", "{{!ifeq a|b|c|d*\\\r\n*e**}}" tc "<p>e</p>\n", "{{!ifeq a|b|c|\\\r\ne}}" - tc "<p>a0a1a2</p>\n", "{{!for i|3|a\\\n{{$i}}}}" - tc "<p>a0a1a2</p>\n", "{{!for i|3|a\\\n {{$i}}}}" + tc "<p>a1a2a3</p>\n", "{{!for i|1,3|a\\\n{{$i}}}}" + tc "<p>a0a1a2a3</p>\n", "{{!for i|0,3|a\\\n {{$i}}}}" end it 'should parse offset' do tc "<p>0</p>\n", "{{$offset}}" tc "<p>12345-6</p>\n", "12345-{{$offset}}" tc "<p>žížala-7</p>\n", "žížala-{{$offset}}" @@ -1258,14 +1275,47 @@ it 'should parse at_callback ' do tc "<p>WUF</p>\n", "{{$MEOW|meow}}\n" tc "<p>meow</p>\n", "{{$UNKVAR|meow}}\n" tc "<p>cat:</p>\n", "cat:{{$UNKVAR}}\n" end + it 'should argcount ' do + tc "<p>0,0</p>\n", "{{argcount}}" + tc "<p>1,1</p>\n", "{{argcount one}}" + tc "<p>2,2</p>\n", "{{argcount one|two}}" + tc "<p>2,3</p>\n", "{{argcount one|two|blaf=haf}}" + tc "<p>0,3</p>\n", "{{argcount one=1|two=2|blaf=haf}}" + end it 'should parse data-* ' do tc "<div data-coffie=\"tea\">TEST</div>\n", "<div data-coffie=\"tea\">TEST</div>\n", allow_html: true tc "<div data-coffie-break=\"tea\">TEST</div>\n", "<div data-coffie-break=\"tea\">TEST</div>\n", allow_html: true tc "<div>TEST</div>\n", "<div data-coffie-break9=\"tea\">TEST</div>\n", allow_html: true tc "<p>&lt;div data-coffie-break=&quot;tea&quot;&gt;TEST&lt;/div&gt;</p>\n", "<div data-coffie-break=\"tea\">TEST</div>\n", allow_html: false + end + it 'should forargs' do + tc "<p>1:jedna,2:dva,3:tri,</p>\n", "{{forargs jedna|dva|tri}}", allow_html: true + tc "<p>2:dva,3:tri,</p>\n", "{{forargs2 jedna|dva|tri}}", allow_html: true + end + it 'should parse digest' do + tc "<p>wFNeS-K3n_2TKRMFQ2v4iTFOSj-uwF7P_Lt98xrZ5Ro=</p>\n", "{{!digest Hello world!}}" + tc "<p>wFNeS-K3n_2TKRMFQ2v4iTFOSj-uwF7P_Lt98xrZ5Ro=</p>\n", "{{!digest Hello world!}}" + tc "<p>wFNeS-K3n_2TKRMFQ2v4iTFOSj-uwF7P_Lt98xrZ5Ro=</p>\n", "{{!set ahoj|Hello world!}}{{!digest {{$ahoj}}}}" + tc "<p>qj7BbmrMgJ2LKBhmInYlar_S8bRBy1FXSTPz1L0RXRE=</p>\n", "{{!set ahoj|Hello world.}}{{!digest {{$ahoj}}}}" + end + it 'should parse sprintf' do + tc "<p>001</p>\n", "{{!sprintf %03i|1}}" + tc "<p>0001-3.14</p>\n", "{{!sprintf %04i-%.2f|1|3.1415}}" + tc "<p><tt> ahoj</tt></p>\n", "{{!sprintf `%7s`|ahoj}}" + tc "<p><tt>ahoj </tt></p>\n", "{{!sprintf `%-7s`|ahoj}}" + tc "<p>(sprintf error:<tt>malformed format string - %*[0-9]</tt>)</p>\n", "{{!sprintf %03|1}}" + end + it 'should parse sprintf' do + tc "<p><tt>ahoj</tt></p>\n", "{{!tt ahoj}}" + tc "<p>YWhvanRl</p>\n", "{{!base64 ahojte}}" + tc "<p>(ahojte:FuVx_SBpN3croY9zm4j14xVw19yIHsyZIzErSffwPpY=)</p>\n", "{{digesttest ahojte}}" + tc "<p>(bhojte:iwqSnWkQXpGogNtIXpDr8TYIcwJFQTKOLQgG7b9VFVg=)</p>\n", "{{digesttest bhojte}}" + tc "<p>(bhojte|ahoj=qhoj:6o2F88ZwLtQadp-8O6ArYIPcePy8_h_rg_2Fsa0EUv0=)</p>\n", "{{digesttest bhojte|ahoj=qhoj}}" + tc "<p>(bhojte|ahoj=dhoj:m8afmveEhG78gsv5Pt-gJ56idfKCR10JNPr-G72Fttc=)</p>\n", "{{digesttest bhojte|ahoj=dhoj}}" + tc "<p><tt>ah!@\#$%^&amp;*()[]oj</tt></p>\n", "{{!tt ah!@\#$%^&*()[]oj}}" end end # vim: tw=0