Wikibase: Check for null in getEntityId when title is invalid

pull/620/head
gnosygnu 6 years ago
parent 372cd3958d
commit 070eb3c53a

@ -139,7 +139,11 @@ public class Scrib_lib_wikibase implements Scrib_lib {
byte[] ttl_bry = args.Pull_bry(0); byte[] ttl_bry = args.Pull_bry(0);
Xowe_wiki wiki = core.Wiki(); Xowe_wiki wiki = core.Wiki();
Xoa_ttl ttl = Xoa_ttl.Parse(wiki, ttl_bry); Xoa_ttl ttl = Xoa_ttl.Parse(wiki, ttl_bry);
byte[] rv = wiki.Appe().Wiki_mgr().Wdata_mgr().Qid_mgr.Get_qid_or_null(wiki, ttl); if (rv == null) rv = Bry_.Empty; byte[] rv = null;
if (ttl != null) // must check for null; PAGE:en.w:Water_treader DATE:2018-07-01
rv = wiki.Appe().Wiki_mgr().Wdata_mgr().Qid_mgr.Get_qid_or_null(wiki, ttl);
if (rv == null) // can be null if ttl is invalid or doesn't exist
rv = Bry_.Empty;
return rslt.Init_obj(rv); return rslt.Init_obj(rv);
} }
// REF: https://github.com/wikimedia/mediawiki-extensions-Wikibase/blob/master/client/config/WikibaseClient.default.php // REF: https://github.com/wikimedia/mediawiki-extensions-Wikibase/blob/master/client/config/WikibaseClient.default.php

@ -53,6 +53,7 @@ public class Scrib_lib_wikibase_tst {
wdata_fxt.Init_links_add("enwiki", "Earth", "q2"); wdata_fxt.Init_links_add("enwiki", "Earth", "q2");
fxt.Test_scrib_proc_str(lib, Scrib_lib_wikibase.Invk_getEntityId, Object_.Ary("Earth" ), "q2"); fxt.Test_scrib_proc_str(lib, Scrib_lib_wikibase.Invk_getEntityId, Object_.Ary("Earth" ), "q2");
fxt.Test_scrib_proc_str(lib, Scrib_lib_wikibase.Invk_getEntityId, Object_.Ary("missing_page" ), ""); fxt.Test_scrib_proc_str(lib, Scrib_lib_wikibase.Invk_getEntityId, Object_.Ary("missing_page" ), "");
fxt.Test_scrib_proc_str(lib, Scrib_lib_wikibase.Invk_getEntityId, Object_.Ary("" ), ""); // PAGE:en.w:Water_treader DATE:2018-07-01
} }
@Test public void GetReferencedEntityId() { @Test public void GetReferencedEntityId() {
wdata_fxt.Init__docs__add(wdata_fxt.Wdoc_bldr("Q1").Xto_wdoc()); wdata_fxt.Init__docs__add(wdata_fxt.Wdoc_bldr("Q1").Xto_wdoc());
@ -67,8 +68,6 @@ public class Scrib_lib_wikibase_tst {
rv[i] = Keyval_.int_(i, toIds[i]); rv[i] = Keyval_.int_(i, toIds[i]);
return rv; return rv;
} }
/*
*/
@Test public void GetLabel__cur() { @Test public void GetLabel__cur() {
wdata_fxt.Init__docs__add(wdata_fxt.Wdoc_bldr("q2").Add_label("zh-hans", "s").Add_label("zh-hant", "t").Xto_wdoc()); wdata_fxt.Init__docs__add(wdata_fxt.Wdoc_bldr("q2").Add_label("zh-hans", "s").Add_label("zh-hant", "t").Xto_wdoc());
fxt.Test_scrib_proc_str(lib, Scrib_lib_wikibase.Invk_getLabel, Object_.Ary("q2"), "s"); // do not get fallback fxt.Test_scrib_proc_str(lib, Scrib_lib_wikibase.Invk_getLabel, Object_.Ary("q2"), "s"); // do not get fallback

Loading…
Cancel
Save