mirror of
https://github.com/gnosygnu/xowa.git
synced 2026-03-02 03:49:30 +00:00
v2.5.4.1
This commit is contained in:
@@ -24,14 +24,14 @@ interface TstRuleMgr {
|
||||
class Xop_rule_mgr implements TstRuleMgr {
|
||||
public boolean SkipChkVal(String expdTypeKey, TstAtr expd) {
|
||||
String key = expdTypeKey + "." + expd.Key();
|
||||
Xop_rule_dat ruleDat = (Xop_rule_dat)hash.Fetch(key); if (ruleDat == null) return false;
|
||||
Xop_rule_dat ruleDat = (Xop_rule_dat)hash.Get_by(key); if (ruleDat == null) return false;
|
||||
if (expd.ValType().Eq(expd.Val(), ruleDat.SkipVal())) return true;
|
||||
return false;
|
||||
}
|
||||
public boolean SkipChkObj(String expdTypeKey, String atrKey, TstObj expd) {
|
||||
String key = expdTypeKey + "." + atrKey;
|
||||
Xop_rule_dat ruleDat = (Xop_rule_dat)hash.Fetch(key); if (ruleDat == null) return false;
|
||||
TstAtr expdAtr = (TstAtr)expd.Atrs().Fetch(ruleDat.SubKey());
|
||||
Xop_rule_dat ruleDat = (Xop_rule_dat)hash.Get_by(key); if (ruleDat == null) return false;
|
||||
TstAtr expdAtr = (TstAtr)expd.Atrs().Get_by(ruleDat.SubKey());
|
||||
if (expdAtr == null) return false;
|
||||
if (expdAtr.ValType().Eq(expdAtr.Val(), ruleDat.SkipVal())) return true;
|
||||
return false;
|
||||
@@ -51,7 +51,7 @@ class Xop_rule_mgr implements TstRuleMgr {
|
||||
return this;
|
||||
}
|
||||
public String Reg() {return typeKey;}
|
||||
OrderedHash hash = OrderedHash_.new_();
|
||||
Ordered_hash hash = Ordered_hash_.new_();
|
||||
public static final Xop_rule_mgr _ = new Xop_rule_mgr();
|
||||
}
|
||||
class Xop_rule_dat {
|
||||
@@ -78,22 +78,22 @@ public class TstObj_tst {
|
||||
}
|
||||
private static int Add(int[] ary) {int rv = 0; for (int i = 0; i < ary.length; i++) rv += ary[i]; return rv;}
|
||||
@gplx.Internal protected static void Eval(String raw, TstObj expdChk, TstObj actlChk, TstRuleMgr ruleMgr) {
|
||||
ListAdp rslts = ListAdp_.new_();
|
||||
Eval(rslts, ruleMgr, OrderedHash_.new_(), "", expdChk, actlChk);
|
||||
List_adp rslts = List_adp_.new_();
|
||||
Eval(rslts, ruleMgr, Ordered_hash_.new_(), "", expdChk, actlChk);
|
||||
|
||||
String_bldr sb = String_bldr_.new_();
|
||||
sb.Add(raw).Add(Op_sys.Lnx.Nl_str());
|
||||
boolean pass = true;
|
||||
int[] cols = new int[3];
|
||||
for (int i = 0; i < rslts.Count(); i++) {
|
||||
TstRslt rslt = (TstRslt)rslts.FetchAt(i);
|
||||
TstRslt rslt = (TstRslt)rslts.Get_at(i);
|
||||
Max(cols, 0, rslt.EvalStr());
|
||||
Max(cols, 1, rslt.Id());
|
||||
Max(cols, 2, rslt.Key());
|
||||
}
|
||||
String hdr = String_.Repeat(" ", Add(cols) + 3);
|
||||
for (int i = 0; i < rslts.Count(); i++) {
|
||||
TstRslt rslt = (TstRslt)rslts.FetchAt(i);
|
||||
TstRslt rslt = (TstRslt)rslts.Get_at(i);
|
||||
// if (rslt.EvalPass()) continue;
|
||||
sb .Add(String_.PadEnd(rslt.EvalStr(), cols[0] + 1, " "))
|
||||
.Add(String_.PadEnd(rslt.Id(), cols[1] + 1, " "))
|
||||
@@ -107,13 +107,13 @@ public class TstObj_tst {
|
||||
if (pass) return;
|
||||
throw Err_.new_(Op_sys.Lnx.Nl_str() + sb.XtoStr());
|
||||
}
|
||||
private static void Eval(ListAdp rslts, TstRuleMgr ruleMgr, OrderedHash props, String idx, TstObj expd, TstObj actl) {
|
||||
private static void Eval(List_adp rslts, TstRuleMgr ruleMgr, Ordered_hash props, String idx, TstObj expd, TstObj actl) {
|
||||
int expdLen = expd.Atrs().Count();
|
||||
props.Clear();
|
||||
for (int i = 0; i < expdLen; i++) {
|
||||
TstAtr expdAtr = (TstAtr)expd.Atrs().FetchAt(i);
|
||||
TstAtr expdAtr = (TstAtr)expd.Atrs().Get_at(i);
|
||||
String key = expdAtr.Key();
|
||||
TstAtr actlAtr = (TstAtr)actl.Atrs().Fetch(key);
|
||||
TstAtr actlAtr = (TstAtr)actl.Atrs().Get_by(key);
|
||||
if (expdAtr.ValType() == ObjectClassXtn._) {
|
||||
SrlObj expdSrl = (SrlObj)expdAtr.Val();
|
||||
TstObj expdTst = TstObj.new_();
|
||||
@@ -121,7 +121,7 @@ public class TstObj_tst {
|
||||
TstObj actlTst = TstObj.new_();
|
||||
if (actlAtr != null) ((SrlObj)actlAtr.Val()).SrlObj_Srl(actlTst);
|
||||
if (ruleMgr.SkipChkObj(expdAtr.TypeKey(), key, expdTst)) continue;
|
||||
Eval(rslts, ruleMgr, OrderedHash_.new_(), idx + "." + key, expdTst, actlTst);
|
||||
Eval(rslts, ruleMgr, Ordered_hash_.new_(), idx + "." + key, expdTst, actlTst);
|
||||
}
|
||||
else {
|
||||
if (actlAtr == null) actlAtr = new TstAtr();
|
||||
@@ -133,8 +133,8 @@ public class TstObj_tst {
|
||||
int expdSubsLen = expd.Subs().Count(), actlSubsLen = actl.Subs().Count();
|
||||
int maxLen = expdSubsLen > actlSubsLen ? expdSubsLen : actlSubsLen;
|
||||
for (int i = 0; i < maxLen; i++) {
|
||||
TstObj expdSub = i < expdSubsLen ? (TstObj)expd.Subs().FetchAt(i) : TstObj.Null;
|
||||
TstObj actlSub = i < actlSubsLen ? (TstObj)actl.Subs().FetchAt(i) : TstObj.Null;
|
||||
TstObj expdSub = i < expdSubsLen ? (TstObj)expd.Subs().Get_at(i) : TstObj.Null;
|
||||
TstObj actlSub = i < actlSubsLen ? (TstObj)actl.Subs().Get_at(i) : TstObj.Null;
|
||||
// if (ruleMgr != null) ruleMgr.Eval(expd.TypeKey(), expdSub.PropName(), expdAtr, actlAtr, skip);
|
||||
String iAsStr = Int_.Xto_str(i);
|
||||
String subId = String_.Eq(idx, "") ? iAsStr : idx + "." + iAsStr;
|
||||
@@ -148,7 +148,7 @@ public class TstObj_tst {
|
||||
Eval(rslts, ruleMgr, props, subId, expdSub, actlSub);
|
||||
}
|
||||
}
|
||||
private static void Eval(ListAdp rslts, String id, String key, TstAtr expd, TstAtr actl, boolean srcIsExpd) {
|
||||
private static void Eval(List_adp rslts, String id, String key, TstAtr expd, TstAtr actl, boolean srcIsExpd) {
|
||||
int evalType = 0;
|
||||
boolean evalPass = false; String evalStr = "";
|
||||
switch (evalType) {
|
||||
@@ -182,7 +182,7 @@ class MockObj {
|
||||
}
|
||||
class TstObj implements SrlMgr {
|
||||
public boolean Type_rdr() {return false;}
|
||||
public OrderedHash Atrs() {return atrs;} private OrderedHash atrs = OrderedHash_.new_();
|
||||
public Ordered_hash Atrs() {return atrs;} private Ordered_hash atrs = Ordered_hash_.new_();
|
||||
public Object StoreRoot(SrlObj root, String key) {return null;}
|
||||
public boolean SrlBoolOr(String key, boolean v) {Atrs_add(key, v, BoolClassXtn._); return v;}
|
||||
public byte SrlByteOr(String key, byte v) {Atrs_add(key, v, ByteClassXtn._); return v;}
|
||||
@@ -196,15 +196,15 @@ class TstObj implements SrlMgr {
|
||||
Atrs_add(key, v, ObjectClassXtn._);
|
||||
return v;
|
||||
}
|
||||
public void SrlList(String key, ListAdp list, SrlObj proto, String itmKey) {}
|
||||
public void SrlList(String key, List_adp list, SrlObj proto, String itmKey) {}
|
||||
public String TypeKey() {return typeKey;} public void TypeKey_(String v) {typeKey = v;} private String typeKey;
|
||||
private void Atrs_add(String key, Object val, ClassXtn valType) {
|
||||
atrs.Add(key, new TstAtr().TypeKey_(typeKey).Key_(key).Val_(val).ValType_(valType));
|
||||
}
|
||||
public ListAdp Subs() {return subs;} ListAdp subs = ListAdp_.Null;
|
||||
public List_adp Subs() {return subs;} List_adp subs = List_adp_.Noop;
|
||||
public SrlMgr SrlMgr_new(Object o) {return Subs_new();}
|
||||
public TstObj Subs_new() {
|
||||
if (subs == ListAdp_.Null) subs = ListAdp_.new_();
|
||||
if (subs == List_adp_.Noop) subs = List_adp_.new_();
|
||||
TstObj rv = TstObj.new_();
|
||||
subs.Add(rv);
|
||||
return rv;
|
||||
|
||||
@@ -40,7 +40,7 @@ public class Xoa_ttl { // PAGE:en.w:http://en.wikipedia.org/wiki/Help:Link; REF.
|
||||
Bry_.Replace_reuse(rv, Byte_ascii.Space, Byte_ascii.Underline);
|
||||
return rv;
|
||||
}
|
||||
public String Page_db_as_str() {return String_.new_utf8_(Page_db());}
|
||||
public String Page_db_as_str() {return String_.new_u8(Page_db());}
|
||||
public int Leaf_bgn() {return leaf_bgn;}
|
||||
public byte[] Base_txt() {return leaf_bgn == -1 ? Page_txt() : Bry_.Mid(full_txt, page_bgn, leaf_bgn - 1);}
|
||||
public byte[] Leaf_txt() {return leaf_bgn == -1 ? Page_txt() : Bry_.Mid(full_txt, leaf_bgn, anch_bgn == -1 ? full_txt.length : anch_bgn - 1);}
|
||||
@@ -50,7 +50,7 @@ public class Xoa_ttl { // PAGE:en.w:http://en.wikipedia.org/wiki/Help:Link; REF.
|
||||
public byte[] Talk_txt() {return ns.Id_talk() ? Full_txt() : Bry_.Add(tors_txt, Page_txt());}
|
||||
public byte[] Subj_txt() {return ns.Id_subj() ? Full_txt() : Bry_.Add(tors_txt, Page_txt());}
|
||||
public byte[] Full_url() {return Xoa_url_encoder._.Encode(full_txt);}
|
||||
public String Full_db_as_str() {return String_.new_utf8_(Full_db());}
|
||||
public String Full_db_as_str() {return String_.new_u8(Full_db());}
|
||||
public byte[] Full_db() {return ns.Gen_ttl(this.Page_db());}
|
||||
public byte[] Page_url() {return Xoa_url_encoder._.Encode(this.Page_txt());}
|
||||
public byte[] Leaf_url() {return Xoa_url_encoder._.Encode(this.Leaf_txt());}
|
||||
@@ -394,8 +394,8 @@ class Xoa_url_encoder {
|
||||
}
|
||||
return bb.Xto_bry_and_clear();
|
||||
}
|
||||
private static final byte[] Bry_amp = Bry_.new_ascii_("%26"), Bry_eq = Bry_.new_ascii_("%3D")
|
||||
, Bry_plus = Bry_.new_ascii_("%2B"), Bry_apos = Bry_.new_ascii_("%27")
|
||||
private static final byte[] Bry_amp = Bry_.new_a7("%26"), Bry_eq = Bry_.new_a7("%3D")
|
||||
, Bry_plus = Bry_.new_a7("%2B"), Bry_apos = Bry_.new_a7("%27")
|
||||
, Bry_underline = new byte[] {Byte_ascii.Underline}
|
||||
;
|
||||
Bry_bfr bb = Bry_bfr.new_();
|
||||
|
||||
@@ -21,7 +21,7 @@ public class Xoa_ttl_chkr implements Tst_chkr {
|
||||
public int Chk(Tst_mgr mgr, String path, Object o) {
|
||||
Xoa_ttl actl = (Xoa_ttl)o;
|
||||
int rv = 0;
|
||||
rv += mgr.Tst_val(expd_str == null, path, "raw", expd_str, String_.new_utf8_(actl.Raw()));
|
||||
rv += mgr.Tst_val(expd_str == null, path, "raw", expd_str, String_.new_u8(actl.Raw()));
|
||||
return rv;
|
||||
}
|
||||
public String Expd_str() {return expd_str;} public Xoa_ttl_chkr Expd_str_(String v) {expd_str = v; return this;} private String expd_str;
|
||||
|
||||
@@ -29,10 +29,10 @@ public class Xop_ctx {
|
||||
for (Xop_ctx_wkr wkr : wkrs) wkr.Ctor_ctx(this);
|
||||
}
|
||||
public Xoae_app App() {return app;} private Xoae_app app;
|
||||
public Xowe_wiki Wiki() {return wiki;} private Xowe_wiki wiki;
|
||||
public Xowe_wiki Wiki() {return wiki;} private Xowe_wiki wiki;
|
||||
public Xol_lang Lang() {return wiki.Lang();}
|
||||
public Xop_tkn_mkr Tkn_mkr() {return app.Tkn_mkr();}
|
||||
public Xoae_page Cur_page() {return cur_page;} public void Cur_page_(Xoae_page v) {cur_page = v;} private Xoae_page cur_page;
|
||||
public Xoae_page Cur_page() {return cur_page;} public void Cur_page_(Xoae_page v) {cur_page = v;} private Xoae_page cur_page;
|
||||
public byte Parse_tid() {return parse_tid;} public Xop_ctx Parse_tid_(byte v) {parse_tid = v; xnde_names_tid = v; return this;} private byte parse_tid = Xop_parser_.Parse_tid_null;
|
||||
public byte Xnde_names_tid() {return xnde_names_tid;} public Xop_ctx Xnde_names_tid_(byte v) {xnde_names_tid = v; return this;} private byte xnde_names_tid = Xop_parser_.Parse_tid_null;
|
||||
public Xop_amp_wkr Amp() {return amp;} private Xop_amp_wkr amp = new Xop_amp_wkr();
|
||||
|
||||
@@ -17,13 +17,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa; import gplx.*;
|
||||
public class Xop_ctx_ {
|
||||
public static String Page_as_str(Xop_ctx ctx) {return String_.new_utf8_(ctx.Cur_page().Ttl().Full_db());}
|
||||
public static String Page_as_str(Xop_ctx ctx) {return String_.new_u8(ctx.Cur_page().Ttl().Full_db());}
|
||||
public static String Src_limit_and_escape_nl(byte[] src, int bgn, int limit) {
|
||||
int end = bgn + limit;
|
||||
int src_len = src.length;
|
||||
if (end > src_len) end = src_len;
|
||||
byte[] rv = Bry_.Mid(src, bgn, end);
|
||||
rv = Bry_.Replace(rv, Byte_ascii.NewLine, Byte_ascii.Tab); // change nl to tab so text editor will show one warning per line
|
||||
return String_.new_utf8_(rv);
|
||||
return String_.new_u8(rv);
|
||||
}
|
||||
}
|
||||
@@ -27,7 +27,7 @@ class Xop_ctx__fxt {
|
||||
public void Clear() {
|
||||
}
|
||||
public void Test_Src_limit_and_escape_nl(String src, int bgn, int limit, String expd) {
|
||||
String actl = Xop_ctx_.Src_limit_and_escape_nl(Bry_.new_utf8_(src), bgn, limit);
|
||||
String actl = Xop_ctx_.Src_limit_and_escape_nl(Bry_.new_u8(src), bgn, limit);
|
||||
Tfds.Eq(expd, actl);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@ public class Xop_fxt {
|
||||
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("trg:wiki", "mem/wiki/repo/trg/", wiki.Domain_str()).Ext_rules_(Xof_rule_grp.Grp_app_default).Dir_depth_(2).Primary_(true);
|
||||
wiki.File_mgr().Repo_mgr().Add_repo(Bry_.new_utf8_("src:wiki"), Bry_.new_utf8_("trg:wiki"));
|
||||
wiki.File_mgr().Repo_mgr().Add_repo(Bry_.new_u8("src:wiki"), Bry_.new_u8("trg:wiki"));
|
||||
ctx = wiki.Ctx();
|
||||
mock_wkr.Clear_commons(); // assume all files are in repo 0
|
||||
wiki.File_mgr().Repo_mgr().Page_finder_(mock_wkr);
|
||||
@@ -60,19 +60,19 @@ public class Xop_fxt {
|
||||
ctx.Cur_page().Clear();
|
||||
wiki.Db_mgr().Load_mgr().Clear();
|
||||
app.Wiki_mgr().Clear();
|
||||
Io_mgr._.InitEngine_mem(); // clear created pages
|
||||
Io_mgr.I.InitEngine_mem(); // clear created pages
|
||||
wiki.Cfg_parser().Display_title_restrict_(false); // default to false, as a small number of tests assume restrict = false;
|
||||
return this;
|
||||
}
|
||||
public Xop_fxt Reset_for_msgs() {
|
||||
Io_mgr._.InitEngine_mem();
|
||||
Io_mgr.I.InitEngine_mem();
|
||||
wiki.Lang().Msg_mgr().Clear(); // need to clear out lang
|
||||
wiki.Msg_mgr().Clear(); // need to clear out wiki.Msgs
|
||||
this.Reset();
|
||||
return this;
|
||||
}
|
||||
public Xoa_ttl Page_ttl_(String txt) {
|
||||
Xoa_ttl rv = Xoa_ttl.parse_(wiki, Bry_.new_utf8_(txt));
|
||||
Xoa_ttl rv = Xoa_ttl.parse_(wiki, Bry_.new_u8(txt));
|
||||
ctx.Cur_page().Ttl_(rv);
|
||||
return rv;
|
||||
}
|
||||
@@ -159,10 +159,10 @@ public class Xop_fxt {
|
||||
}
|
||||
public Xop_fxt Init_para_y_() {ctx.Para().Enabled_y_(); 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;} ListAdp log_itms = ListAdp_.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_.Id_all);}
|
||||
public void Init_defn_add(String name, String text, byte case_match) {
|
||||
Xot_defn_tmpl itm = run_Parse_tmpl(Bry_.new_ascii_(name), Bry_.new_utf8_(text));
|
||||
Xot_defn_tmpl itm = run_Parse_tmpl(Bry_.new_a7(name), Bry_.new_u8(text));
|
||||
wiki.Cache_mgr().Defn_cache().Add(itm, case_match);
|
||||
}
|
||||
public void Init_defn_clear() {wiki.Cache_mgr().Defn_cache().Free_mem_all();}
|
||||
@@ -172,8 +172,8 @@ public class Xop_fxt {
|
||||
public Xop_fxt Init_page_create(String ttl, String txt) {return Init_page_create(wiki, ttl, txt);}
|
||||
public Xop_fxt Init_page_create(Xowe_wiki wiki, String ttl, String txt) {Init_page_create_static(wiki, ttl, txt);return this;}
|
||||
public static void Init_page_create_static(Xowe_wiki wiki, String ttl_str, String text_str) {
|
||||
Xoa_ttl ttl = Xoa_ttl.parse_(wiki, Bry_.new_utf8_(ttl_str));
|
||||
byte[] text = Bry_.new_utf8_(text_str);
|
||||
Xoa_ttl ttl = Xoa_ttl.parse_(wiki, Bry_.new_u8(ttl_str));
|
||||
byte[] text = Bry_.new_u8(text_str);
|
||||
wiki.Db_mgr().Save_mgr().Data_create(ttl, text);
|
||||
}
|
||||
public static void Init_msg(Xowe_wiki wiki, String key, String val) {
|
||||
@@ -181,24 +181,24 @@ public class Xop_fxt {
|
||||
}
|
||||
public Xop_fxt Init_page_update(String ttl, String txt) {return Init_page_update(wiki, ttl, txt);}
|
||||
public Xop_fxt Init_page_update(Xowe_wiki wiki, String ttl, String txt) {
|
||||
Xoa_ttl page_ttl = Xoa_ttl.parse_(wiki, Bry_.new_utf8_(ttl));
|
||||
byte[] page_raw = Bry_.new_utf8_(txt);
|
||||
Xoa_ttl page_ttl = Xoa_ttl.parse_(wiki, Bry_.new_u8(ttl));
|
||||
byte[] page_raw = Bry_.new_u8(txt);
|
||||
Xoae_page page = wiki.Data_mgr().Get_page(page_ttl, false);
|
||||
wiki.Db_mgr().Save_mgr().Data_update(page, page_raw);
|
||||
return this;
|
||||
}
|
||||
public Xop_fxt Init_xwiki_clear() {
|
||||
wiki.Xwiki_mgr().Clear();
|
||||
app.User().Wiki().Xwiki_mgr().Clear();
|
||||
app.Usere().Wiki().Xwiki_mgr().Clear();
|
||||
return this;
|
||||
}
|
||||
public Xop_fxt Init_xwiki_add_wiki_and_user_(String alias, String domain) {
|
||||
wiki.Xwiki_mgr().Add_full(alias, domain);
|
||||
app.User().Wiki().Xwiki_mgr().Add_full(domain, domain);
|
||||
app.Usere().Wiki().Xwiki_mgr().Add_full(domain, domain);
|
||||
return this;
|
||||
}
|
||||
public Xop_fxt Init_xwiki_add_user_(String domain) {
|
||||
app.User().Wiki().Xwiki_mgr().Add_full(domain, domain);
|
||||
app.Usere().Wiki().Xwiki_mgr().Add_full(domain, domain);
|
||||
return this;
|
||||
}
|
||||
public void Test_parse_tmpl_str_test(String tmpl_raw, String page_raw, String expd) {
|
||||
@@ -207,53 +207,53 @@ public class Xop_fxt {
|
||||
}
|
||||
public void Test_parse_tmpl_str(String raw, String expd) {
|
||||
byte[] actl = Test_parse_tmpl_str_rv(raw);
|
||||
Tfds.Eq_str_lines(expd, String_.new_utf8_(actl));
|
||||
Tfds.Eq_str_lines(expd, String_.new_u8(actl));
|
||||
tst_Log_check();
|
||||
}
|
||||
public byte[] Test_parse_tmpl_str_rv(String raw) {
|
||||
byte[] raw_bry = Bry_.new_utf8_(raw);
|
||||
byte[] raw_bry = Bry_.new_u8(raw);
|
||||
Xop_root_tkn root = tkn_mkr.Root(raw_bry);
|
||||
return parser.Parse_text_to_wtxt(root, ctx, tkn_mkr, raw_bry);
|
||||
}
|
||||
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) {
|
||||
byte[] raw_bry = Bry_.new_utf8_(raw);
|
||||
byte[] raw_bry = Bry_.new_u8(raw);
|
||||
Xot_defn_tmpl itm = run_Parse_tmpl(Bry_.Empty, raw_bry);
|
||||
Parse_chk(raw_bry, itm.Root(), expd);
|
||||
}
|
||||
public void Test_parse_page_tmpl_str(String raw, String expd) {
|
||||
byte[] raw_bry = Bry_.new_utf8_(raw);
|
||||
byte[] raw_bry = Bry_.new_u8(raw);
|
||||
Xop_root_tkn root = tkn_mkr.Root(raw_bry);
|
||||
byte[] actl = parser.Parse_text_to_wtxt(root, ctx, tkn_mkr, raw_bry);
|
||||
Tfds.Eq(expd, String_.new_utf8_(actl));
|
||||
Tfds.Eq(expd, String_.new_u8(actl));
|
||||
tst_Log_check();
|
||||
}
|
||||
public Xop_root_tkn Test_parse_page_tmpl_tkn(String raw) {
|
||||
byte[] raw_bry = Bry_.new_utf8_(raw);
|
||||
byte[] raw_bry = Bry_.new_u8(raw);
|
||||
Xop_root_tkn root = tkn_mkr.Root(raw_bry);
|
||||
parser.Parse_text_to_wtxt(root, ctx, tkn_mkr, raw_bry);
|
||||
return root;
|
||||
}
|
||||
public void Test_parse_page_tmpl(String raw, Tst_chkr... expd_ary) {
|
||||
byte[] raw_bry = Bry_.new_utf8_(raw);
|
||||
byte[] raw_bry = Bry_.new_u8(raw);
|
||||
Xop_root_tkn root = tkn_mkr.Root(raw_bry);
|
||||
parser.Parse_text_to_wtxt(root, ctx, tkn_mkr, raw_bry);
|
||||
Parse_chk(raw_bry, root, expd_ary);
|
||||
}
|
||||
public void Test_parse_page_wiki(String raw, Tst_chkr... expd_ary) {
|
||||
byte[] raw_bry = Bry_.new_utf8_(raw);
|
||||
byte[] raw_bry = Bry_.new_u8(raw);
|
||||
Xop_root_tkn root = Test_parse_page_wiki_root(raw_bry);
|
||||
Parse_chk(raw_bry, root, expd_ary);
|
||||
}
|
||||
public Xop_root_tkn Test_parse_page_wiki_root(String raw) {return Test_parse_page_wiki_root(Bry_.new_utf8_(raw));}
|
||||
public Xop_root_tkn Test_parse_page_wiki_root(String raw) {return Test_parse_page_wiki_root(Bry_.new_u8(raw));}
|
||||
Xop_root_tkn Test_parse_page_wiki_root(byte[] raw_bry) {
|
||||
Xop_root_tkn root = tkn_mkr.Root(raw_bry);
|
||||
parser.Parse_wtxt_to_wdom(root, ctx, tkn_mkr, raw_bry, Xop_parser_.Doc_bgn_bos);
|
||||
return root;
|
||||
}
|
||||
public void Test_parse_page_all(String raw, Tst_chkr... expd_ary) {
|
||||
byte[] raw_bry = Bry_.new_utf8_(raw);
|
||||
Xop_root_tkn root = Exec_parse_page_all_as_root(Bry_.new_utf8_(raw));
|
||||
byte[] raw_bry = Bry_.new_u8(raw);
|
||||
Xop_root_tkn root = Exec_parse_page_all_as_root(Bry_.new_u8(raw));
|
||||
Parse_chk(raw_bry, root, expd_ary);
|
||||
}
|
||||
public void Data_create(String ttl_str, String text_str) {Init_page_create(wiki, ttl_str, text_str);}
|
||||
@@ -272,13 +272,13 @@ public class Xop_fxt {
|
||||
return root;
|
||||
}
|
||||
public String Exec_parse_page_all_as_str(String raw) {
|
||||
Xop_root_tkn root = Exec_parse_page_all_as_root(Bry_.new_utf8_(raw));
|
||||
Xop_root_tkn root = Exec_parse_page_all_as_root(Bry_.new_u8(raw));
|
||||
Bry_bfr actl_bfr = Bry_bfr.new_();
|
||||
hdom_wtr.Write_all(actl_bfr, ctx, root.Root_src(), root);
|
||||
return actl_bfr.Xto_str_and_clear();
|
||||
}
|
||||
public String Exec_parse_page_wiki_as_str(String raw) {
|
||||
byte[] raw_bry = Bry_.new_utf8_(raw);
|
||||
byte[] raw_bry = Bry_.new_u8(raw);
|
||||
Xop_root_tkn root = tkn_mkr.Root(raw_bry);
|
||||
parser.Parse_wtxt_to_wdom(root, ctx, tkn_mkr, raw_bry, Xop_parser_.Doc_bgn_bos);
|
||||
Bry_bfr actl_bfr = Bry_bfr.new_();
|
||||
@@ -302,14 +302,14 @@ public class Xop_fxt {
|
||||
public String[] Log_xtoAry() {
|
||||
Gfo_msg_log msg_log = app.Msg_log();
|
||||
int len = msg_log.Ary_len();
|
||||
ListAdp actl_list = ListAdp_.new_();
|
||||
List_adp actl_list = List_adp_.new_();
|
||||
for (int i = 0; i < len; i++) {
|
||||
Gfo_msg_data eny = msg_log.Ary_get(i);
|
||||
if (eny.Item().Cmd() > Gfo_msg_itm_.Cmd_note) {
|
||||
actl_list.Add(String_.new_utf8_(eny.Item().Path_bry()));
|
||||
actl_list.Add(String_.new_u8(eny.Item().Path_bry()));
|
||||
}
|
||||
}
|
||||
String[] actl = actl_list.XtoStrAry();
|
||||
String[] actl = actl_list.To_str_ary();
|
||||
msg_log.Clear();
|
||||
return actl;
|
||||
}
|
||||
@@ -317,7 +317,7 @@ public class Xop_fxt {
|
||||
int len = log_itms.Count();
|
||||
String[] expd = new String[len];
|
||||
for (int i = 0; i < len; i++) {
|
||||
Gfo_msg_itm itm = (Gfo_msg_itm)log_itms.FetchAt(i);
|
||||
Gfo_msg_itm itm = (Gfo_msg_itm)log_itms.Get_at(i);
|
||||
expd[i] = itm.Path_str();
|
||||
}
|
||||
log_itms.Clear();
|
||||
@@ -328,23 +328,23 @@ public class Xop_fxt {
|
||||
public void tst_Warn(String... expd) {
|
||||
Gfo_usr_dlg usr_dlg = app.Usr_dlg();
|
||||
Gfo_usr_dlg__gui_test ui_wkr = (Gfo_usr_dlg__gui_test)usr_dlg.Gui_wkr();
|
||||
String[] actl = ui_wkr.Warns().XtoStrAry();
|
||||
String[] actl = ui_wkr.Warns().To_str_ary();
|
||||
Tfds.Eq_ary_str(expd, actl);
|
||||
}
|
||||
public void Test_parse_page(String ttl, String expd) {
|
||||
byte[] actl = Load_page(wiki, ttl);
|
||||
Tfds.Eq(expd, String_.new_utf8_(actl));
|
||||
Tfds.Eq(expd, String_.new_u8(actl));
|
||||
}
|
||||
public static byte[] Load_page(Xowe_wiki wiki, String ttl_str) {
|
||||
byte[] ttl_bry = Bry_.new_utf8_(ttl_str);
|
||||
byte[] ttl_bry = Bry_.new_u8(ttl_str);
|
||||
Xoa_url page_url = Xoa_url.new_(wiki.Domain_bry(), ttl_bry);
|
||||
Xoa_ttl ttl = Xoa_ttl.parse_(wiki, ttl_bry);
|
||||
return wiki.GetPageByTtl(page_url, ttl).Data_raw();
|
||||
return wiki.Load_page_by_ttl(page_url, ttl).Data_raw();
|
||||
}
|
||||
public static void Reg_xwiki_alias(Xowe_wiki wiki, String alias, String domain) {
|
||||
byte[] domain_bry = Bry_.new_ascii_(domain);
|
||||
wiki.Xwiki_mgr().Add_full(Bry_.new_ascii_(alias), domain_bry, Bry_.Add(domain_bry, Bry_.new_ascii_("/wiki/~{0}")));
|
||||
wiki.Appe().User().Wiki().Xwiki_mgr().Add_full(domain_bry, domain_bry);
|
||||
byte[] domain_bry = Bry_.new_a7(domain);
|
||||
wiki.Xwiki_mgr().Add_full(Bry_.new_a7(alias), domain_bry, Bry_.Add(domain_bry, Bry_.new_a7("/wiki/~{0}")));
|
||||
wiki.Appe().Usere().Wiki().Xwiki_mgr().Add_full(domain_bry, domain_bry);
|
||||
}
|
||||
public static String html_img_none(String trg, String alt, String src, String ttl) {
|
||||
return String_.Format(String_.Concat_lines_nl_skip_last("<a href=\"/wiki/{0}\" class=\"image\" xowa_title=\"{3}\"><img id=\"xowa_file_img_0\" alt=\"{1}\" src=\"{2}\" width=\"9\" height=\"8\" /></a>"), trg, alt, src, ttl);
|
||||
@@ -391,8 +391,8 @@ public class Xop_fxt {
|
||||
public Xop_fxt Init_lang_numbers_separators(Xol_lang lang, String grp_spr, String dec_spr) {
|
||||
gplx.xowa.langs.numbers.Xol_transform_mgr separator_mgr = lang.Num_mgr().Separators_mgr();
|
||||
separator_mgr.Clear();
|
||||
separator_mgr.Set(gplx.xowa.langs.numbers.Xol_num_mgr.Separators_key__grp, Bry_.new_utf8_(grp_spr));
|
||||
separator_mgr.Set(gplx.xowa.langs.numbers.Xol_num_mgr.Separators_key__dec, Bry_.new_utf8_(dec_spr));
|
||||
separator_mgr.Set(gplx.xowa.langs.numbers.Xol_num_mgr.Separators_key__grp, Bry_.new_u8(grp_spr));
|
||||
separator_mgr.Set(gplx.xowa.langs.numbers.Xol_num_mgr.Separators_key__dec, Bry_.new_u8(dec_spr));
|
||||
return this;
|
||||
}
|
||||
public void Init_lang_kwds(int kwd_id, boolean case_match, String... kwds) {Init_lang_kwds(wiki.Lang(), kwd_id, case_match, kwds);}
|
||||
@@ -402,7 +402,7 @@ public class Xop_fxt {
|
||||
kwd_grp.Srl_load(case_match, Bry_.Ary(kwds));
|
||||
}
|
||||
public void Init_xtn_pages() {
|
||||
Io_mgr._.InitEngine_mem();
|
||||
Io_mgr.I.InitEngine_mem();
|
||||
wiki.Xtn_mgr().Xtn_proofread().Enabled_y_();
|
||||
wiki.Db_mgr().Load_mgr().Clear(); // must clear; otherwise fails b/c files get deleted, but wiki.data_mgr caches the Xowd_regy_mgr (the .reg file) in memory;
|
||||
wiki.Ns_mgr().Add_new(Xowc_xtn_pages.Ns_page_id_default, "Page").Add_new(Xowc_xtn_pages.Ns_index_id_default, "Index").Init();
|
||||
|
||||
@@ -31,7 +31,6 @@ public class Xop_parser_ {
|
||||
ctx.Para().Enabled_(para_enabled);
|
||||
parser.Parse_wtxt_to_wdom(root, ctx, ctx.Tkn_mkr(), wtxt, Xop_parser_.Doc_bgn_bos);
|
||||
wiki.Html_mgr().Html_wtr().Write_all(bfr, ctx, wtxt, root);
|
||||
page.Lnki_file_mgr().Clear(); // NOTE: reset lnki_file_mgr else indicator will stop page from loading; DATE:2015-03-08
|
||||
return bfr.To_bry_and_rls();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -51,7 +51,7 @@ class Xop_parser__fxt {
|
||||
fxt.Reset();
|
||||
}
|
||||
public void Test_parse_to_html(String raw, boolean para_enabled, String expd) {
|
||||
byte[] raw_bry = Bry_.new_utf8_(raw);
|
||||
byte[] raw_bry = Bry_.new_u8(raw);
|
||||
fxt.Wiki().Parser().Parse_text_to_html(bfr, fxt.Page(), para_enabled, raw_bry);
|
||||
Tfds.Eq(expd, bfr.Xto_str_and_clear());
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ package gplx.xowa; import gplx.*;
|
||||
import gplx.xowa.html.*;
|
||||
public class Xop_redirect_mgr {
|
||||
private final Xowe_wiki wiki; private final Url_encoder url_decoder; private Hash_adp_bry redirect_hash;
|
||||
public Xop_redirect_mgr(Xowe_wiki wiki) {this.wiki = wiki; this.url_decoder = Xoa_app_.Utl__encoder_mgr().Url_ttl();} // NOTE: must be Url_ttl, not Url; PAGE:en.w:Template:Positionskarte+ -> Template:Location_map+, not Template:Location_map DATE:2014-08-21
|
||||
public Xop_redirect_mgr(Xowe_wiki wiki) {this.wiki = wiki; this.url_decoder = Xoa_app_.Utl__encoder_mgr().Http_url_ttl();} // NOTE: must be Url_ttl, not Url; PAGE:en.w:Template:Positionskarte+ -> Template:Location_map+, not Template:Location_map DATE:2014-08-21
|
||||
public void Clear() {redirect_hash = null;} // TEST:
|
||||
public boolean Is_redirect(byte[] text, int text_len) {return this.Extract_redirect(text, text_len) != null;}
|
||||
public Xoa_ttl Extract_redirect_loop(byte[] src) {
|
||||
@@ -53,7 +53,7 @@ public class Xop_redirect_mgr {
|
||||
public static final int Redirect_max_allowed = 4;
|
||||
public static final Xoa_ttl Redirect_null_ttl = null;
|
||||
public static final byte[] Redirect_null_bry = Bry_.Empty;
|
||||
private static final byte[] Redirect_bry = Bry_.new_ascii_("#REDIRECT ");
|
||||
private static final byte[] Redirect_bry = Bry_.new_a7("#REDIRECT ");
|
||||
public static byte[] Make_redirect_text(byte[] redirect_to_ttl) {
|
||||
return Bry_.Add
|
||||
( Redirect_bry // "#REDIRECT "
|
||||
@@ -63,13 +63,13 @@ public class Xop_redirect_mgr {
|
||||
);
|
||||
}
|
||||
public static byte[] Bld_redirect_msg(Xoae_app app, Xowe_wiki wiki, Xoae_page page) {
|
||||
ListAdp list = page.Redirected_ttls();
|
||||
List_adp list = page.Redirected_ttls();
|
||||
int list_len = list.Count();
|
||||
if (list_len == 0) return Bry_.Empty;
|
||||
Bry_bfr redirect_bfr = app.Utl__bfr_mkr().Get_b512();
|
||||
for (int i = 0; i < list_len; i++) {
|
||||
if (i != 0) redirect_bfr.Add(Bry_redirect_dlm);
|
||||
byte[] redirect_ttl = (byte[])list.FetchAt(i);
|
||||
byte[] redirect_ttl = (byte[])list.Get_at(i);
|
||||
redirect_bfr.Add(Xoh_consts.A_bgn) // '<a href="'
|
||||
.Add(Xoh_href_parser.Href_wiki_bry) // '/wiki/'
|
||||
.Add(redirect_ttl) // 'PageA'
|
||||
@@ -86,7 +86,7 @@ public class Xop_redirect_mgr {
|
||||
app.Tmp_fmtr().Fmt_(msg_itm.Val()).Bld_bfr_one(fmt_bfr, redirect_bfr);
|
||||
redirect_bfr.Clear().Mkr_rls(); fmt_bfr.Mkr_rls();
|
||||
return fmt_bfr.Xto_bry_and_clear();
|
||||
} private static byte[] Bry_redirect_dlm = Bry_.new_ascii_(" <--- "), Bry_redirect_arg = Bry_.new_ascii_("?redirect=no");
|
||||
} private static byte[] Bry_redirect_dlm = Bry_.new_a7(" <--- "), Bry_redirect_arg = Bry_.new_a7("?redirect=no");
|
||||
}
|
||||
class Xop_redirect_mgr_ {
|
||||
public static int Get_kwd_end_or_end(byte[] src, int bgn, int end) { // get end of kwd
|
||||
|
||||
@@ -54,16 +54,16 @@ class Xop_redirect_mgr_fxt {
|
||||
fxt.Init_page_create(tmpl_ttl_str, tmpl_wtxt_str); // create redirect_src
|
||||
fxt.Init_page_create(redirect_ttl, "test"); // create redirect_trg
|
||||
fxt.Test_parse_page_tmpl_tkn("{{" + tmpl_ttl_str + "}}"); // parse {{redirect_src}}
|
||||
Xoa_ttl tmpl_ttl = Xoa_ttl.parse_(fxt.Wiki(), Bry_.new_utf8_(tmpl_ttl_str));
|
||||
Xoa_ttl tmpl_ttl = Xoa_ttl.parse_(fxt.Wiki(), Bry_.new_u8(tmpl_ttl_str));
|
||||
Xot_defn_tmpl defn_tmpl = (Xot_defn_tmpl)fxt.Wiki().Cache_mgr().Defn_cache().Get_by_key(tmpl_ttl.Page_db()); // get defn (which parse should have created)
|
||||
Tfds.Eq(expd_frame_ttl, String_.new_utf8_(defn_tmpl.Frame_ttl())); // check frame_ttl
|
||||
Tfds.Eq(expd_frame_ttl, String_.new_u8(defn_tmpl.Frame_ttl())); // check frame_ttl
|
||||
}
|
||||
public void Test_redirect(String raw_str, String expd_str) {
|
||||
Xop_redirect_mgr redirect_mgr = fxt.Ctx().Wiki().Redirect_mgr();
|
||||
redirect_mgr.Clear();
|
||||
byte[] raw_bry = Bry_.new_utf8_(raw_str);
|
||||
byte[] raw_bry = Bry_.new_u8(raw_str);
|
||||
Xoa_ttl actl_ttl = redirect_mgr.Extract_redirect(raw_bry, raw_bry.length);
|
||||
byte[] actl_bry = actl_ttl == null ? Bry_.Empty : actl_ttl.Full_txt();
|
||||
Tfds.Eq(expd_str, String_.new_utf8_(actl_bry));
|
||||
Tfds.Eq(expd_str, String_.new_u8(actl_bry));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -83,7 +83,7 @@ public class Xop_sanitizer {
|
||||
case Xop_amp_trie_itm.Tid_num_hex:
|
||||
boolean pass = amp_mgr.Parse_as_int(itm_tid == Xop_amp_trie_itm.Tid_num_hex, src, end, pos - 1, pos + itm.Xml_name_bry().length);
|
||||
if (pass)
|
||||
bfr.Add_utf8_int(amp_mgr.Rslt_val());
|
||||
bfr.Add_u8_int(amp_mgr.Rslt_val());
|
||||
else
|
||||
bfr.Add_byte(Byte_ascii.Amp);
|
||||
pos = amp_mgr.Rslt_pos();
|
||||
|
||||
@@ -38,7 +38,7 @@ class Xop_sanitizer_fxt {
|
||||
sanitizer = new Xop_sanitizer(new Xop_amp_mgr(), new Gfo_msg_log(Xoa_app_.Name));
|
||||
}
|
||||
public void tst_Escape_id(String raw, String expd) {
|
||||
byte[] raw_bry = Bry_.new_utf8_(raw);
|
||||
Tfds.Eq(expd, String_.new_utf8_(sanitizer.Escape_id(raw_bry)));
|
||||
byte[] raw_bry = Bry_.new_u8(raw);
|
||||
Tfds.Eq(expd, String_.new_u8(sanitizer.Escape_id(raw_bry)));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -67,7 +67,7 @@ class Xop_html_txt_tkn_chkr extends Xop_tkn_chkr_base {
|
||||
public String Html_ref_key() {return html_ref_key;} public Xop_html_txt_tkn_chkr Html_ref_key_(String v) {html_ref_key = v; return this;} private String html_ref_key;
|
||||
@Override public int Chk_hook(Tst_mgr mgr, String path, Object actl_obj, int err) {
|
||||
Xop_amp_tkn_txt actl = (Xop_amp_tkn_txt)actl_obj;
|
||||
err += mgr.Tst_val(html_ref_key == null, path, "html_ref_key", html_ref_key, String_.new_utf8_(actl.Xml_name_bry()));
|
||||
err += mgr.Tst_val(html_ref_key == null, path, "html_ref_key", html_ref_key, String_.new_u8(actl.Xml_name_bry()));
|
||||
return err;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user