mirror of
https://github.com/gnosygnu/xowa.git
synced 2024-10-27 20:34:16 +00:00
Parser: Add parser-related test methods [#553]
This commit is contained in:
parent
b980351989
commit
924b5fd17b
@ -32,9 +32,18 @@ public class Xop_fxt {
|
|||||||
public Xop_fxt(Xoae_app app, Xowe_wiki wiki) {
|
public Xop_fxt(Xoae_app app, Xowe_wiki wiki) {
|
||||||
this.ctor(app, wiki);
|
this.ctor(app, wiki);
|
||||||
}
|
}
|
||||||
|
public Xop_fxt(Xowe_wiki wiki) {
|
||||||
|
this.ctor(Xoa_app_fxt.Make__app__edit(), wiki);
|
||||||
|
}
|
||||||
private void ctor(Xoae_app app, Xowe_wiki wiki) {
|
private void ctor(Xoae_app app, Xowe_wiki wiki) {
|
||||||
this.app = app;
|
this.app = app;
|
||||||
this.wiki = wiki;
|
this.wiki = wiki;
|
||||||
|
|
||||||
|
// NOTE: Xop_fxt does not call Init_by_app / Init_by_wiki b/c of test issues with DB; DATE:2019-09-15
|
||||||
|
// call these methods manually
|
||||||
|
app.Addon_mgr().Add_dflts_by_app(app).Run_by_app(app);
|
||||||
|
wiki.Init_once();
|
||||||
|
|
||||||
app.Wiki_mgr().Add(wiki);
|
app.Wiki_mgr().Add(wiki);
|
||||||
app.File_mgr().Repo_mgr().Set("src:wiki", "mem/wiki/repo/src/", wiki.Domain_str()).Ext_rules_(Xof_rule_grp.Grp_app_default).Dir_depth_(2);
|
app.File_mgr().Repo_mgr().Set("src:wiki", "mem/wiki/repo/src/", wiki.Domain_str()).Ext_rules_(Xof_rule_grp.Grp_app_default).Dir_depth_(2);
|
||||||
app.File_mgr().Repo_mgr().Set("trg:wiki", "mem/wiki/repo/trg/", wiki.Domain_str()).Ext_rules_(Xof_rule_grp.Grp_app_default).Dir_depth_(2).Primary_(true);
|
app.File_mgr().Repo_mgr().Set("trg:wiki", "mem/wiki/repo/trg/", wiki.Domain_str()).Ext_rules_(Xof_rule_grp.Grp_app_default).Dir_depth_(2).Primary_(true);
|
||||||
@ -169,9 +178,10 @@ public class Xop_fxt {
|
|||||||
public Xop_fxt Init_para_n_() {ctx.Para().Enabled_n_(); return this;}
|
public Xop_fxt Init_para_n_() {ctx.Para().Enabled_n_(); return this;}
|
||||||
public Xop_fxt Init_log_(Gfo_msg_itm... itms) {for (Gfo_msg_itm itm : itms) log_itms.Add(itm); return this;} List_adp log_itms = List_adp_.New();
|
public Xop_fxt Init_log_(Gfo_msg_itm... itms) {for (Gfo_msg_itm itm : itms) log_itms.Add(itm); return this;} List_adp log_itms = List_adp_.New();
|
||||||
public void Init_defn_add(String name, String text) {Init_defn_add(name, text, Xow_ns_case_.Tid__all);}
|
public void Init_defn_add(String name, String text) {Init_defn_add(name, text, Xow_ns_case_.Tid__all);}
|
||||||
public void Init_defn_add(String name, String text, byte case_match) {
|
public void Init_defn_add(String name, String text, byte case_match) {Init_defn_add(wiki, name, text, case_match);}
|
||||||
Xot_defn_tmpl itm = run_Parse_tmpl(Bry_.new_a7(name), Bry_.new_u8(text));
|
public void Init_defn_add(Xowe_wiki w, String name, String text, byte case_match) {
|
||||||
wiki.Cache_mgr().Defn_cache().Add(itm, case_match);
|
Xot_defn_tmpl itm = run_Parse_tmpl(w, Bry_.new_a7(name), Bry_.new_u8(text));
|
||||||
|
w.Cache_mgr().Defn_cache().Add(itm, case_match);
|
||||||
}
|
}
|
||||||
public void Init_defn_clear() {wiki.Cache_mgr().Defn_cache().Free_mem_all();}
|
public void Init_defn_clear() {wiki.Cache_mgr().Defn_cache().Free_mem_all();}
|
||||||
public Xop_fxt Init_id_create(int id, int fil_idx, int row_idx, boolean type_redirect, int itm_len, int ns_id, String ttl) {Xow_hive_mgr_fxt.Create_id(app, wiki.Hive_mgr(), id, fil_idx, row_idx, type_redirect, itm_len, ns_id, ttl); return this;}
|
public Xop_fxt Init_id_create(int id, int fil_idx, int row_idx, boolean type_redirect, int itm_len, int ns_id, String ttl) {Xow_hive_mgr_fxt.Create_id(app, wiki.Hive_mgr(), id, fil_idx, row_idx, type_redirect, itm_len, ns_id, ttl); return this;}
|
||||||
@ -210,23 +220,31 @@ public class Xop_fxt {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
public void Test_parse_template(String tmpl_raw, String expd) {Test_parse_tmpl_str_test(tmpl_raw, "{{test}}", expd);}
|
public void Test_parse_template(String tmpl_raw, String expd) {Test_parse_tmpl_str_test(tmpl_raw, "{{test}}", expd);}
|
||||||
public void Test_parse_tmpl_str_test(String tmpl_raw, String page_raw, String expd) {
|
public void Test_parse_tmpl_str_test(String tmpl_raw, String page_raw, String expd) {Test_parse_tmpl_str_test(wiki, tmpl_raw, page_raw, expd);}
|
||||||
Init_defn_add("test", tmpl_raw);
|
public void Test_parse_tmpl_str_test(Xowe_wiki w, String tmpl_raw, String page_raw, String expd) {
|
||||||
Test_parse_tmpl_str(page_raw, expd);
|
Init_defn_add(w, "test", tmpl_raw, Xow_ns_case_.Tid__all);
|
||||||
|
Test_parse_tmpl_str(w, page_raw, expd);
|
||||||
}
|
}
|
||||||
public void Test_parse_tmpl_str(String raw, String expd) {
|
public void Test_parse_tmpl_str(String raw, String expd) {Test_parse_tmpl_str(wiki, raw, expd);}
|
||||||
byte[] actl = Test_parse_tmpl_str_rv(raw);
|
public void Test_parse_tmpl_str(Xowe_wiki w, String raw, String expd) {
|
||||||
|
byte[] actl = Test_parse_tmpl_str_rv(w, raw);
|
||||||
Tfds.Eq_str_lines(expd, String_.new_u8(actl));
|
Tfds.Eq_str_lines(expd, String_.new_u8(actl));
|
||||||
tst_Log_check();
|
tst_Log_check();
|
||||||
}
|
}
|
||||||
public byte[] Test_parse_tmpl_str_rv(String raw) {
|
public byte[] Test_parse_tmpl_str_rv(String raw) {return Test_parse_tmpl_str_rv(wiki, raw);}
|
||||||
|
public byte[] Test_parse_tmpl_str_rv(Xowe_wiki w, String raw) {
|
||||||
byte[] raw_bry = Bry_.new_u8(raw);
|
byte[] raw_bry = Bry_.new_u8(raw);
|
||||||
Xop_root_tkn root = tkn_mkr.Root(raw_bry);
|
Xop_root_tkn root = tkn_mkr.Root(raw_bry);
|
||||||
ctx.Page().Root_(root);
|
Xop_ctx c = w.Parser_mgr().Ctx();
|
||||||
ctx.Page().Db().Text().Text_bry_(raw_bry);
|
c.Page().Root_(root);
|
||||||
return parser.Expand_tmpl(root, ctx, tkn_mkr, raw_bry);
|
c.Page().Db().Text().Text_bry_(raw_bry);
|
||||||
|
return w.Parser_mgr().Main().Expand_tmpl(root, c, tkn_mkr, raw_bry);
|
||||||
|
}
|
||||||
|
public Xot_defn_tmpl run_Parse_tmpl(byte[] name, byte[] raw) {return run_Parse_tmpl(wiki, name, raw);}
|
||||||
|
public Xot_defn_tmpl run_Parse_tmpl(Xowe_wiki w, byte[] name, byte[] raw) {
|
||||||
|
Xop_ctx c = w.Parser_mgr().Ctx();
|
||||||
|
return w.Parser_mgr().Main().Parse_text_to_defn_obj(c, c.Tkn_mkr(), w.Ns_mgr().Ns_template(), name, raw);
|
||||||
}
|
}
|
||||||
public Xot_defn_tmpl run_Parse_tmpl(byte[] name, byte[] raw) {return parser.Parse_text_to_defn_obj(ctx, ctx.Tkn_mkr(), wiki.Ns_mgr().Ns_template(), name, raw);}
|
|
||||||
public void Test_parse_tmpl(String raw, Tst_chkr... expd) {
|
public void Test_parse_tmpl(String raw, Tst_chkr... expd) {
|
||||||
byte[] raw_bry = Bry_.new_u8(raw);
|
byte[] raw_bry = Bry_.new_u8(raw);
|
||||||
Xot_defn_tmpl itm = run_Parse_tmpl(Bry_.Empty, raw_bry);
|
Xot_defn_tmpl itm = run_Parse_tmpl(Bry_.Empty, raw_bry);
|
||||||
@ -379,7 +397,7 @@ public class Xop_fxt {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void Test_str_full(String raw, String expd, String actl) {
|
public void Test_str_full(String raw, String expd, String actl) {
|
||||||
Tfds.Eq_str_lines(expd, actl, raw);
|
Tfds.Eq_str_lines(expd, actl, (hctx.Mode_is_hdump() ? "hsave" : "hview") + " \n" + raw);
|
||||||
}
|
}
|
||||||
public void Test_str_part_y(String actl, String... expd_parts) {
|
public void Test_str_part_y(String actl, String... expd_parts) {
|
||||||
int expd_parts_len = expd_parts.length;
|
int expd_parts_len = expd_parts.length;
|
||||||
|
@ -14,6 +14,7 @@ GPLv3 License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-GPLv3.txt
|
|||||||
Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
|
Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
|
||||||
*/
|
*/
|
||||||
package gplx.xowa.htmls.core.makes.tests; import gplx.*; import gplx.xowa.*; import gplx.xowa.htmls.*; import gplx.xowa.htmls.core.*; import gplx.xowa.htmls.core.makes.*;
|
package gplx.xowa.htmls.core.makes.tests; import gplx.*; import gplx.xowa.*; import gplx.xowa.htmls.*; import gplx.xowa.htmls.core.*; import gplx.xowa.htmls.core.makes.*;
|
||||||
|
import gplx.xowa.files.*; import gplx.xowa.files.caches.*; import gplx.xowa.parsers.lnkis.*;
|
||||||
import gplx.xowa.htmls.sections.*;
|
import gplx.xowa.htmls.sections.*;
|
||||||
public class Xoh_make_fxt {
|
public class Xoh_make_fxt {
|
||||||
public Xoh_make_fxt() {
|
public Xoh_make_fxt() {
|
||||||
@ -27,11 +28,22 @@ public class Xoh_make_fxt {
|
|||||||
}
|
}
|
||||||
public Xoh_page_chkr Page_chkr() {return page_chkr;} private final Xoh_page_chkr page_chkr = new Xoh_page_chkr();
|
public Xoh_page_chkr Page_chkr() {return page_chkr;} private final Xoh_page_chkr page_chkr = new Xoh_page_chkr();
|
||||||
public Xop_fxt Parser_fxt() {return parser_fxt;} private final Xop_fxt parser_fxt = new Xop_fxt();
|
public Xop_fxt Parser_fxt() {return parser_fxt;} private final Xop_fxt parser_fxt = new Xop_fxt();
|
||||||
public void Init_img_cache
|
public Xou_cache_finder_mem Init__usr_cache(Xof_fsdb_itm... ary) {
|
||||||
( String wiki_abrv, String lnki_ttl, byte lnki_type, double lnki_upright, int lnki_w, int lnki_h, double lnki_time, int lnki_page
|
Xou_cache_finder_mem rv = Xou_cache_finder_.New_mem();
|
||||||
, boolean repo_is_commons, String html_ttl, int html_w, int html_h, double html_time, int html_page
|
parser_fxt.Wiki().Html__hdump_mgr().Load_mgr().Make_mgr().Hctx().Test__cache__mgr_(rv);
|
||||||
) {
|
for (Xof_fsdb_itm itm : ary)
|
||||||
// fxt.Init_cache("en.wikipedia.org", "A.png", 0, 220, 110, 0.5, -1, -1, Bool_.Y, "B.png", 330, 110, -1, -1);
|
rv.Add(itm);
|
||||||
|
return rv;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Xof_fsdb_itm Init__fsdb_itm(String wiki_abrv, String lnki_ttl, int lnki_w, int lnki_h, int img_w, int img_h, String url) {
|
||||||
|
return Init__fsdb_itm(wiki_abrv, lnki_ttl, Xop_lnki_type.Id_none, -1, lnki_w, lnki_h, img_w, img_h, -1, -1, Io_url_.mem_fil_(url));
|
||||||
|
}
|
||||||
|
public Xof_fsdb_itm Init__fsdb_itm(String wiki_abrv, String lnki_ttl, byte lnki_type, double lnki_upright, int lnki_w, int lnki_h, int img_w, int img_h, double lnki_time, int lnki_page, Io_url url) {
|
||||||
|
Xof_fsdb_itm itm = new Xof_fsdb_itm();
|
||||||
|
itm.Init_at_lnki(Xof_exec_tid.Tid_wiki_page, Bry_.new_a7(wiki_abrv), Bry_.new_a7(lnki_ttl), lnki_type, lnki_upright, lnki_w, lnki_h, lnki_time, lnki_page, 0);
|
||||||
|
itm.Init_at_cache(true, img_w, img_h, url);
|
||||||
|
return itm;
|
||||||
}
|
}
|
||||||
public void Test__html(String wtxt, String expd) {Test__html(wtxt, expd, true);}
|
public void Test__html(String wtxt, String expd) {Test__html(wtxt, expd, true);}
|
||||||
public void Test__html(String wtxt, String expd, boolean escape_apos) {
|
public void Test__html(String wtxt, String expd, boolean escape_apos) {
|
||||||
@ -39,15 +51,18 @@ public class Xoh_make_fxt {
|
|||||||
String actl = parser_fxt.Exec__parse_to_hdump(wtxt);
|
String actl = parser_fxt.Exec__parse_to_hdump(wtxt);
|
||||||
Tfds.Eq_str_lines(expd, actl);
|
Tfds.Eq_str_lines(expd, actl);
|
||||||
}
|
}
|
||||||
public void Test__make(String html, Xoh_page_chkr chkr) {
|
public void Test__make(String html, Xoh_page_chkr chkr) {Test__make(true, html, chkr);}
|
||||||
|
public void Test__make(boolean print_to_console, String html, Xoh_page_chkr chkr) {
|
||||||
html = String_.Replace(html, "'", "\"");
|
html = String_.Replace(html, "'", "\"");
|
||||||
Xoh_page actl = new Xoh_page();
|
Xoh_page actl = new Xoh_page();
|
||||||
actl.Ctor_by_hview(parser_fxt.Wiki(), Xoa_url.blank(), parser_fxt.Wiki().Ttl_parse(Xoa_page_.Main_page_bry), 1);
|
actl.Ctor_by_hview(parser_fxt.Wiki(), Xoa_url.blank(), parser_fxt.Wiki().Ttl_parse(Xoa_page_.Main_page_bry), 1);
|
||||||
Gfo_usr_dlg_.Instance = Gfo_usr_dlg_.Test_console();
|
if (print_to_console)
|
||||||
|
Gfo_usr_dlg_.Instance = Gfo_usr_dlg_.Test_console();
|
||||||
Xoh_make_mgr make_mgr = parser_fxt.Wiki().Html__hdump_mgr().Load_mgr().Make_mgr();
|
Xoh_make_mgr make_mgr = parser_fxt.Wiki().Html__hdump_mgr().Load_mgr().Make_mgr();
|
||||||
byte[] actl_body = make_mgr.Parse(Bry_.new_u8(html), parser_fxt.Wiki(), actl);
|
byte[] actl_body = make_mgr.Parse(Bry_.new_u8(html), parser_fxt.Wiki(), actl);
|
||||||
actl.Db().Html().Html_bry_(actl_body);
|
actl.Db().Html().Html_bry_(actl_body);
|
||||||
Gfo_usr_dlg_.Instance = Gfo_usr_dlg_.Noop;
|
if (print_to_console)
|
||||||
|
Gfo_usr_dlg_.Instance = Gfo_usr_dlg_.Noop;
|
||||||
chkr.Check(actl);
|
chkr.Check(actl);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -34,7 +34,7 @@ public class Xoh_page_chkr {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
public void Check(Xoh_page actl) {
|
public void Check(Xoh_page actl) {
|
||||||
if (expd_body != null) Tfds.Eq_str_lines(expd_body, String_.new_u8(actl.Db().Html().Html_bry()));
|
if (expd_body != null) Tfds.Eq_str_lines(expd_body, String_.new_u8(actl.Db().Html().Html_bry()), "hload");
|
||||||
if (expd_section_mgr.Len() > 0)
|
if (expd_section_mgr.Len() > 0)
|
||||||
Tfds.Eq_str_lines(To_str__section_mgr(expd_section_mgr), To_str__section_mgr(actl.Section_mgr()));
|
Tfds.Eq_str_lines(To_str__section_mgr(expd_section_mgr), To_str__section_mgr(actl.Section_mgr()));
|
||||||
if (expd_img_mgr.Len() > 0)
|
if (expd_img_mgr.Len() > 0)
|
||||||
|
@ -18,7 +18,7 @@ import org.junit.*; import gplx.xowa.htmls.core.makes.tests.*; import gplx.xowa.
|
|||||||
public class Xoh_img_make__dump__tst {
|
public class Xoh_img_make__dump__tst {
|
||||||
private final Xoh_make_fxt fxt = new Xoh_make_fxt();
|
private final Xoh_make_fxt fxt = new Xoh_make_fxt();
|
||||||
@Before public void Init() {fxt.Clear();}
|
@Before public void Init() {fxt.Clear();}
|
||||||
@Test public void Html_exists__n() {
|
@Test public void Basic() {
|
||||||
String
|
String
|
||||||
orig = "<a href='/wiki/File:A.png' class='image' title='abc' xowa_title='A.png'><img data-xowa-title='A.png' data-xoimg='0|220|110|0.5|-1|-1' src='file:///mem/xowa/file/en.wikipedia.org/thumb/7/0/A.png/220px.png' width='220' height='110' alt='abc'></a>"
|
orig = "<a href='/wiki/File:A.png' class='image' title='abc' xowa_title='A.png'><img data-xowa-title='A.png' data-xoimg='0|220|110|0.5|-1|-1' src='file:///mem/xowa/file/en.wikipedia.org/thumb/7/0/A.png/220px.png' width='220' height='110' alt='abc'></a>"
|
||||||
, expd = "<a href='/wiki/File:A.png' class='image' title='abc' xowa_title='A.png'><img id='xoimg_0' data-xowa-title='A.png' data-xoimg='0|220|110|0.5|-1|-1' src='' width='0' height='0' alt='abc'></a>"
|
, expd = "<a href='/wiki/File:A.png' class='image' title='abc' xowa_title='A.png'><img id='xoimg_0' data-xowa-title='A.png' data-xoimg='0|220|110|0.5|-1|-1' src='' width='0' height='0' alt='abc'></a>"
|
||||||
|
@ -63,7 +63,7 @@ public class Xoh_img_src_data implements Bfr_arg_clearable, Xoh_itm_parser {
|
|||||||
rdr.Init_by_wkr(err_wkr, "img.src.xowa", src_bgn, src_end).Fail_throws_err_(fail_throws_err);
|
rdr.Init_by_wkr(err_wkr, "img.src.xowa", src_bgn, src_end).Fail_throws_err_(fail_throws_err);
|
||||||
repo_bgn = rdr.Find_fwd_rr_or(Bry__file, -1);
|
repo_bgn = rdr.Find_fwd_rr_or(Bry__file, -1);
|
||||||
if (repo_bgn == -1) {
|
if (repo_bgn == -1) {
|
||||||
repo_bgn = rdr.Find_fwd_rr(Bry__math);
|
repo_bgn = rdr.Find_fwd_rr_or(Bry__math, Bry_find_.Not_found);
|
||||||
if (repo_bgn == Bry_find_.Not_found) return false;
|
if (repo_bgn == Bry_find_.Not_found) return false;
|
||||||
this.file_ttl_bry = Bry_.Mid(rdr.Src(), repo_bgn, src_end);
|
this.file_ttl_bry = Bry_.Mid(rdr.Src(), repo_bgn, src_end);
|
||||||
this.repo_is_commons = true;
|
this.repo_is_commons = true;
|
||||||
|
@ -100,8 +100,7 @@ class Pf_msg_mgr_fxt {
|
|||||||
fxt.Test_parse_tmpl_str_test(raw, "{{test}}" , expd);
|
fxt.Test_parse_tmpl_str_test(raw, "{{test}}" , expd);
|
||||||
}
|
}
|
||||||
public void Test_parse_wiki(Xowe_wiki alt_wiki, String raw, String expd) {
|
public void Test_parse_wiki(Xowe_wiki alt_wiki, String raw, String expd) {
|
||||||
Xop_fxt alt_fxt = new Xop_fxt(fxt.App(), alt_wiki);
|
fxt.Test_parse_tmpl_str_test(alt_wiki, raw, "{{test}}" , expd);
|
||||||
alt_fxt.Test_parse_tmpl_str_test(raw, "{{test}}" , expd);
|
|
||||||
}
|
}
|
||||||
public void Test_parse_lang(String other_lang_id, String raw, String expd) {
|
public void Test_parse_lang(String other_lang_id, String raw, String expd) {
|
||||||
Xol_lang_itm other_lang = fxt.App().Lang_mgr().Get_by_or_load(Bry_.new_a7(other_lang_id));
|
Xol_lang_itm other_lang = fxt.App().Lang_mgr().Get_by_or_load(Bry_.new_a7(other_lang_id));
|
||||||
|
Loading…
Reference in New Issue
Block a user