@ -1,6 +1,6 @@
/ *
XOWA: the XOWA Offline Wiki Application
Copyright ( C ) 2012 - 20 17 gnosygnu @gmail.com
Copyright ( C ) 2012 - 20 20 gnosygnu @gmail.com
XOWA is licensed under the terms of the General Public License ( GPL ) Version 3 ,
or alternatively under the terms of the Apache License Version 2.0 .
@ -13,175 +13,202 @@ The terms of each license can be found in the source code repository:
GPLv3 License : https : //github.com/gnosygnu/xowa/blob/master/LICENSE-GPLv3.txt
Apache License : https : //github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
* /
package gplx.xowa.xtns.syntax_highlights ; import gplx.* ; import gplx.xowa.* ; import gplx.xowa.xtns.* ;
import org.junit.* ;
public class Synh_xtn_nde_tst {
private final Xop_fxt fxt = new Xop_fxt ( ) ;
@Test public void Basic ( ) {
fxt . Test_parse_page_all_str ( "<syntaxHighlight>abc</syntaxHighlight>" , "<div class=\"mw-highlight\"><pre style=\"overflow:auto\">abc</pre></div>" ) ;
}
@Test public void Text ( ) {
fxt . Test_parse_page_all_str ( "<syntaxHighlight lang=\"text\">abc</syntaxHighlight>" , "<div class=\"mw-highlight\"><pre style=\"overflow:auto\" class=\"prettyprint lang-text\">abc</pre></div>" ) ;
}
@Test public void Style_pre ( ) {
fxt . Test_parse_page_all_str ( "<syntaxHighlight style=\"color:red;\">abc</syntaxHighlight>" , "<div class=\"mw-highlight\" style=\"color:red;\"><pre style=\"overflow:auto\">abc</pre></div>" ) ;
}
@Test public void Style_code ( ) {
fxt . Test_parse_page_all_str ( "<syntaxHighlight lang=\"text\" style=\"color:red;\">abc</syntaxHighlight>" , "<div class=\"mw-highlight\" style=\"color:red;\"><pre style=\"overflow:auto\" class=\"prettyprint lang-text\">abc</pre></div>" ) ;
}
@Test public void Trim_ws ( ) {
fxt . Test_parse_page_all_str ( String_ . Concat_lines_nl
( "<syntaxHighlight>"
, "abc"
, "</syntaxHighlight>"
) , String_ . Concat_lines_nl
( "<div class=\"mw-highlight\"><pre style=\"overflow:auto\">"
, "abc"
, "</pre></div>"
) ) ;
}
@Test public void Line ( ) {
fxt . Test_parse_page_all_str ( String_ . Concat_lines_nl
( "<syntaxHighlight line>"
, "a"
, "b"
, "</syntaxHighlight>"
) , String_ . Concat_lines_nl
( "<div class=\"mw-highlight\"><pre style=\"overflow:auto\">"
, "<span style=\"-moz-user-select:none;\">1 </span><span>a</span>"
, "<span style=\"-moz-user-select:none;\">2 </span><span>b</span>"
, "</pre></div>"
) ) ;
}
@Test public void Start ( ) {
fxt . Test_parse_page_all_str ( String_ . Concat_lines_nl
( "<syntaxHighlight line start=3>"
, "a"
, "b"
, "</syntaxHighlight>"
) , String_ . Concat_lines_nl
( "<div class=\"mw-highlight\"><pre style=\"overflow:auto\">"
, "<span style=\"-moz-user-select:none;\">3 </span><span>a</span>"
, "<span style=\"-moz-user-select:none;\">4 </span><span>b</span>"
, "</pre></div>"
) ) ;
}
@Test public void Highlight ( ) {
fxt . Test_parse_page_all_str ( String_ . Concat_lines_nl
( "<syntaxHighlight line highlight='1,3'>"
, "a"
, "b"
, "c"
, "</syntaxHighlight>"
) , String_ . Concat_lines_nl
( "<div class=\"mw-highlight\"><pre style=\"overflow:auto\">"
, "<span style=\"-moz-user-select:none;\">1 </span><span style=\"background-color: #FFFFCC;\">a</span>"
, "<span style=\"-moz-user-select:none;\">2 </span><span>b</span>"
, "<span style=\"-moz-user-select:none;\">3 </span><span style=\"background-color: #FFFFCC;\">c</span>"
, "</pre></div>"
) ) ;
}
@Test public void Highlight_wo_line_arg ( ) {
fxt . Test_parse_page_all_str ( String_ . Concat_lines_nl
( "<syntaxHighlight highlight='1,3'>"
, "a"
, "b"
, "c"
, "</syntaxHighlight>"
) , String_ . Concat_lines_nl
( "<div class=\"mw-highlight\"><pre style=\"overflow:auto\">"
, "<span style=\"background-color: #FFFFCC;\">a</span>"
, "<span>b</span>"
, "<span style=\"background-color: #FFFFCC;\">c</span>"
, "</pre></div>"
) ) ;
}
@Test public void Enclose_none ( ) {
fxt . Test_parse_page_all_str ( String_ . Concat_lines_nl
( "<syntaxHighlight enclose=none style='color:red'>"
, "a"
, "b"
, "c"
, "</syntaxHighlight>"
) , String_ . Concat_lines_nl
( "<code class=\"mw-highlight\" style=\"color:red\">"
, "a"
, "b"
, "c"
, "</code>"
) ) ;
}
@Test public void Line_padded ( ) {
fxt . Test_parse_page_all_str ( String_ . Concat_lines_nl
( "<syntaxHighlight line start=9>"
, "a"
, "b"
, "</syntaxHighlight>"
) , String_ . Concat_lines_nl
( "<div class=\"mw-highlight\"><pre style=\"overflow:auto\">"
, "<span style=\"-moz-user-select:none;\"> 9 </span><span>a</span>"
, "<span style=\"-moz-user-select:none;\">10 </span><span>b</span>"
, "</pre></div>"
) ) ;
}
@Test public void EndTag_has_ws ( ) { // PURPOSE: </syntaxhighlight > not being closed correctly; PAGE:en.w:Mergesort; updated; DATE:2014-06-24
fxt . Init_para_y_ ( ) ;
fxt . Test_parse_page_wiki_str ( String_ . Concat_lines_nl_skip_last
( "a"
, "<syntaxhighlight>"
, "b"
, "</syntaxhighlight >"
, "c"
, "<syntaxhighlight>"
, "d"
, "</syntaxhighlight>"
) , String_ . Concat_lines_nl_skip_last
( "<p>a"
, "</p>"
, "<div class=\"mw-highlight\"><pre style=\"overflow:auto\">"
, "b"
, "</pre></div>"
, ""
, "<p>c"
, "</p>"
, "<div class=\"mw-highlight\"><pre style=\"overflow:auto\">"
, "d"
, "</pre></div>"
, ""
) ) ;
fxt . Init_para_n_ ( ) ;
}
@Test public void Trim_ws_from_end_tab ( ) { // PURPOSE: trim ws between "abc" and "</syntaxhighlight"; PAGE:en.w:Comment_(computer_programming); DATE:2014-06-23
fxt . Test_parse_page_all_str ( String_ . Concat_lines_nl
( "<syntaxHighlight>"
, "abc"
, " </syntaxHighlight>" // trim ws here
) , String_ . Concat_lines_nl
( "<div class=\"mw-highlight\"><pre style=\"overflow:auto\">"
, "abc"
, "</pre></div>"
) ) ;
}
@Test public void Pre ( ) { // PURPOSE: handle pre; PAGE:en.w:Comment_(computer_programming); DATE:2014-06-23
fxt . Init_para_y_ ( ) ;
fxt . Test_parse_page_all_str ( String_ . Concat_lines_nl
( "a"
, ""
, " <syntaxHighlight>"
, " b"
, " </syntaxHighlight>" // trim ws here
, ""
, "c"
) , String_ . Concat_lines_nl
( "<p>a"
, "</p>"
, " <div class=\"mw-highlight\"><pre style=\"overflow:auto\">"
, " b"
, "</pre></div>"
, ""
, "<p>c"
, "</p>"
) ) ;
fxt . Init_para_n_ ( ) ;
}
}
package gplx.xowa.xtns.syntax_highlights ;
import gplx.String_ ;
import gplx.xowa.Xop_fxt ;
import org.junit.Test ;
public class Synh_xtn_nde_tst {
private final Xop_fxt fxt = new Xop_fxt ( ) ;
@Test public void Basic ( ) {
fxt . Test_parse_page_all_str ( "<syntaxHighlight>abc</syntaxHighlight>" , "<div class=\"mw-highlight\"><pre style=\"overflow:auto\">abc</pre></div>" ) ;
}
@Test public void Text ( ) {
fxt . Test_parse_page_all_str ( "<syntaxHighlight lang=\"text\">abc</syntaxHighlight>" , "<div class=\"mw-highlight\"><pre style=\"overflow:auto\" class=\"prettyprint lang-text\">abc</pre></div>" ) ;
}
@Test public void Style_pre ( ) {
fxt . Test_parse_page_all_str ( "<syntaxHighlight style=\"color:red;\">abc</syntaxHighlight>" , "<div class=\"mw-highlight\" style=\"color:red;\"><pre style=\"overflow:auto\">abc</pre></div>" ) ;
}
@Test public void Style_code ( ) {
fxt . Test_parse_page_all_str ( "<syntaxHighlight lang=\"text\" style=\"color:red;\">abc</syntaxHighlight>" , "<div class=\"mw-highlight\" style=\"color:red;\"><pre style=\"overflow:auto\" class=\"prettyprint lang-text\">abc</pre></div>" ) ;
}
@Test public void Trim_ws ( ) {
fxt . Test_parse_page_all_str ( String_ . Concat_lines_nl
( "<syntaxHighlight>"
, "abc"
, "</syntaxHighlight>"
) , String_ . Concat_lines_nl
( "<div class=\"mw-highlight\"><pre style=\"overflow:auto\">"
, "abc"
, "</pre></div>"
) ) ;
}
@Test public void Line ( ) {
fxt . Test_parse_page_all_str ( String_ . Concat_lines_nl
( "<syntaxHighlight line>"
, "a"
, "b"
, "</syntaxHighlight>"
) , String_ . Concat_lines_nl
( "<div class=\"mw-highlight\"><pre style=\"overflow:auto\">"
, "<span style=\"-moz-user-select:none;\">1 </span><span>a</span>"
, "<span style=\"-moz-user-select:none;\">2 </span><span>b</span>"
, "</pre></div>"
) ) ;
}
@Test public void Start ( ) {
fxt . Test_parse_page_all_str ( String_ . Concat_lines_nl
( "<syntaxHighlight line start=3>"
, "a"
, "b"
, "</syntaxHighlight>"
) , String_ . Concat_lines_nl
( "<div class=\"mw-highlight\"><pre style=\"overflow:auto\">"
, "<span style=\"-moz-user-select:none;\">3 </span><span>a</span>"
, "<span style=\"-moz-user-select:none;\">4 </span><span>b</span>"
, "</pre></div>"
) ) ;
}
@Test public void Highlight ( ) {
fxt . Test_parse_page_all_str ( String_ . Concat_lines_nl
( "<syntaxHighlight line highlight='1,3'>"
, "a"
, "b"
, "c"
, "</syntaxHighlight>"
) , String_ . Concat_lines_nl
( "<div class=\"mw-highlight\"><pre style=\"overflow:auto\">"
, "<span style=\"-moz-user-select:none;\">1 </span><span style=\"background-color: #FFFFCC;\">a</span>"
, "<span style=\"-moz-user-select:none;\">2 </span><span>b</span>"
, "<span style=\"-moz-user-select:none;\">3 </span><span style=\"background-color: #FFFFCC;\">c</span>"
, "</pre></div>"
) ) ;
}
@Test public void Highlight_wo_line_arg ( ) {
fxt . Test_parse_page_all_str ( String_ . Concat_lines_nl
( "<syntaxHighlight highlight='1,3'>"
, "a"
, "b"
, "c"
, "</syntaxHighlight>"
) , String_ . Concat_lines_nl
( "<div class=\"mw-highlight\"><pre style=\"overflow:auto\">"
, "<span style=\"background-color: #FFFFCC;\">a</span>"
, "<span>b</span>"
, "<span style=\"background-color: #FFFFCC;\">c</span>"
, "</pre></div>"
) ) ;
}
@Test public void Enclose_none ( ) {
fxt . Test_parse_page_all_str ( String_ . Concat_lines_nl
( "<syntaxHighlight enclose=none style='color:red'>"
, "a"
, "b"
, "c"
, "</syntaxHighlight>"
) , String_ . Concat_lines_nl
( "<code class=\"mw-highlight\" style=\"color:red\">"
, "a"
, "b"
, "c"
, "</code>"
) ) ;
}
@Test public void Line_padded ( ) {
fxt . Test_parse_page_all_str ( String_ . Concat_lines_nl
( "<syntaxHighlight line start=9>"
, "a"
, "b"
, "</syntaxHighlight>"
) , String_ . Concat_lines_nl
( "<div class=\"mw-highlight\"><pre style=\"overflow:auto\">"
, "<span style=\"-moz-user-select:none;\"> 9 </span><span>a</span>"
, "<span style=\"-moz-user-select:none;\">10 </span><span>b</span>"
, "</pre></div>"
) ) ;
}
@Test public void EndTag_has_ws ( ) { // PURPOSE: </syntaxhighlight > not being closed correctly; PAGE:en.w:Mergesort; updated; DATE:2014-06-24
fxt . Init_para_y_ ( ) ;
fxt . Test_parse_page_wiki_str ( String_ . Concat_lines_nl_skip_last
( "a"
, "<syntaxhighlight>"
, "b"
, "</syntaxhighlight >"
, "c"
, "<syntaxhighlight>"
, "d"
, "</syntaxhighlight>"
) , String_ . Concat_lines_nl_skip_last
( "<p>a"
, "</p>"
, "<div class=\"mw-highlight\"><pre style=\"overflow:auto\">"
, "b"
, "</pre></div>"
, ""
, "<p>c"
, "</p>"
, "<div class=\"mw-highlight\"><pre style=\"overflow:auto\">"
, "d"
, "</pre></div>"
, ""
) ) ;
fxt . Init_para_n_ ( ) ;
}
@Test public void Trim_ws_from_end_tab ( ) { // PURPOSE: trim ws between "abc" and "</syntaxhighlight"; PAGE:en.w:Comment_(computer_programming); DATE:2014-06-23
fxt . Test_parse_page_all_str ( String_ . Concat_lines_nl
( "<syntaxHighlight>"
, "abc"
, " </syntaxHighlight>" // trim ws here
) , String_ . Concat_lines_nl
( "<div class=\"mw-highlight\"><pre style=\"overflow:auto\">"
, "abc"
, "</pre></div>"
) ) ;
}
@Test public void Pre ( ) { // PURPOSE: handle pre; PAGE:en.w:Comment_(computer_programming); DATE:2014-06-23
fxt . Init_para_y_ ( ) ;
fxt . Test_parse_page_all_str ( String_ . Concat_lines_nl
( "a"
, ""
, " <syntaxHighlight>"
, " b"
, " </syntaxHighlight>" // trim ws here
, ""
, "c"
) , String_ . Concat_lines_nl
( "<p>a"
, "</p>"
, " <div class=\"mw-highlight\"><pre style=\"overflow:auto\">"
, " b"
, "</pre></div>"
, ""
, "<p>c"
, "</p>"
) ) ;
fxt . Init_para_n_ ( ) ;
}
@Test public void Inline ( ) {
// 2020-08-27|ISSUE#:794|inline should be enclose=none
fxt . Init_para_y_ ( ) ;
fxt . Test_parse_page_all_str ( String_ . Concat_lines_nl
( "a"
, ""
, " <syntaxHighlight inline>"
, " b"
, " </syntaxHighlight>" // trim ws here
, ""
, "c"
) , String_ . Concat_lines_nl
( "<p>a"
, "</p>"
, " <code class=\"mw-highlight\">" // fails with <div class="mw-highlight"><pre style="overflow:auto">
, " b"
, "</code>"
, ""
, "<p>c"
, "</p>"
) ) ;
fxt . Init_para_n_ ( ) ;
}
}