Pages: Treat empty-string as null for fromsection and tosection [#650]

staging
gnosygnu 4 years ago
parent 898701131d
commit 2dee585fc1

@ -36,23 +36,25 @@ public class Pp_pages_nde implements Xox_xnde, Mwh_atr_itm_owner1 {
private Xoae_app app; private Xowe_wiki wiki; private Xop_ctx ctx; private Gfo_usr_dlg usr_dlg;
private byte[] src; private Xop_xnde_tkn xnde_tkn;
private Xoa_ttl cur_page_ttl;
public void Xatr__set(Xowe_wiki wiki, byte[] src, Mwh_atr_itm xatr, Object xatr_id_obj) {
if (xatr_id_obj == null) return;
Byte_obj_val xatr_id = (Byte_obj_val)xatr_id_obj;
byte[] val_bry = xatr.Val_as_bry();
switch (xatr_id.Val()) {
case Xatr_index_ttl: index_ttl_bry = xatr.Val_as_bry(); break;
case Xatr_bgn_page: bgn_page_bry = xatr.Val_as_bry(); break;
case Xatr_end_page: end_page_bry = xatr.Val_as_bry(); break;
case Xatr_bgn_sect: bgn_sect_bry = xatr.Val_as_bry(); break;
case Xatr_end_sect: end_sect_bry = xatr.Val_as_bry(); break;
case Xatr_include: include = xatr.Val_as_bry(); break;
case Xatr_exclude: exclude = xatr.Val_as_bry(); break;
case Xatr_step: step_bry = xatr.Val_as_bry(); break;
case Xatr_onlysection: onlysection = xatr.Val_as_bry(); break;
case Xatr_header: header = xatr.Val_as_bry(); break;
case Xatr_toc_cur: toc_cur = xatr.Val_as_bry(); break;
case Xatr_toc_prv: toc_prv = xatr.Val_as_bry(); break;
case Xatr_toc_nxt: toc_nxt = xatr.Val_as_bry(); break;
case Xatr_index_ttl: index_ttl_bry = val_bry; break;
case Xatr_bgn_page: bgn_page_bry = val_bry; break;
case Xatr_end_page: end_page_bry = val_bry; break;
case Xatr_bgn_sect: if (Bry_.Len_gt_0(val_bry)) bgn_sect_bry = val_bry; break; // ignore empty-String; EX:fromsection=""; ISSUE#:650 DATE:2020-01-11
case Xatr_end_sect: if (Bry_.Len_gt_0(val_bry)) end_sect_bry = val_bry; break; // ignore empty-String; EX:tosection=""; ISSUE#:650 DATE:2020-01-11
case Xatr_include: include = val_bry; break;
case Xatr_exclude: exclude = val_bry; break;
case Xatr_step: step_bry = val_bry; break;
case Xatr_onlysection: onlysection = val_bry; break;
case Xatr_header: header = val_bry; break;
case Xatr_toc_cur: toc_cur = val_bry; break;
case Xatr_toc_prv: toc_prv = val_bry; break;
case Xatr_toc_nxt: toc_nxt = val_bry; break;
}
}
public void Xtn_parse(Xowe_wiki wiki, Xop_ctx ctx, Xop_root_tkn root, byte[] src, Xop_xnde_tkn xnde) {

@ -67,6 +67,20 @@ public class Pp_pages_nde_basic_tst {
, "</p>"
));
}
@Test public void Section__null() {// PURPOSE:if fromsection / tosection is null, assume all; ISSUE#:650 DATE:2020-01-11
fxt.Init_page_create("Page:A/1", "a<section begin='sect_0'/>b<section end='sect_0'/>c");
fxt.Test_parse_page_wiki_str("<pages index='A' from=1 to=1 />", String_.Concat_lines_nl
( "<p>abc&#32;"
, "</p>"
));
}
@Test public void Section__empty() {// PURPOSE:if fromsection / tosection is empty, assume all; ISSUE#:650 DATE:2020-01-11
fxt.Init_page_create("Page:A/1", "a<section begin='sect_0'/>b<section end='sect_0'/>c");
fxt.Test_parse_page_wiki_str("<pages index='A' from=1 to=1 fromsection='' tosection=''/>", String_.Concat_lines_nl
( "<p>abc&#32;"
, "</p>"
));
}
@Test public void Noinclude() {
fxt.Init_page_create("Page:A/1", "<noinclude>a</noinclude>{|\n|b\n|}");
fxt.Init_page_create("Page:A/2", "<noinclude>c</noinclude>''d''");

Loading…
Cancel
Save