1
0
mirror of https://github.com/gnosygnu/xowa.git synced 2026-03-02 03:49:30 +00:00

Scribunto: Fix broken test for fetchLanguageNames

This commit is contained in:
gnosygnu
2018-12-09 22:00:07 -05:00
parent 3935d10b45
commit af19381e3c
7 changed files with 46 additions and 31 deletions

View File

@@ -23,5 +23,7 @@ public class Cldr_name_file {
public Ordered_hash Currency_names() {return currency_names;} private final Ordered_hash currency_names = Ordered_hash_.New();
public Ordered_hash Currency_symbols() {return currency_symbols;} private final Ordered_hash currency_symbols = Ordered_hash_.New();
public Ordered_hash Country_names() {return country_names;} private final Ordered_hash country_names = Ordered_hash_.New();
public Ordered_hash Time_units() {return time_units;} private final Ordered_hash time_units = Ordered_hash_.New();
public Ordered_hash Time_units() {return time_units;} private final Ordered_hash time_units = Ordered_hash_.New();
public static final Cldr_name_file Empty = new Cldr_name_file("EMPTY");
}

View File

@@ -26,7 +26,7 @@ public class Cldr_name_loader {
this.cldr_dir = cldr_dir;
}
public Cldr_name_file Load_or_null(String lang_key) {
public Cldr_name_file Load_or_empty(String lang_key) {
// normalize to lc; scrib will pass lower_case, but underlying files are Title_case
lang_key = String_.Lower(lang_key);
@@ -41,13 +41,17 @@ public class Cldr_name_loader {
// get file
Io_url url = (Io_url)urls_hash.Get_by(lang_key);
if (url == null) {
files_hash.Add(lang_key, Cldr_name_file.Empty);
Gfo_usr_dlg_.Instance.Warn_many("", "", "no cldrName file exists for lang; lang=~{lang}", lang_key);
return null;
return Cldr_name_file.Empty;
}
// load json
byte[] json = Io_mgr.Instance.LoadFilBry(url);
if (Bry_.Len_eq_0(json)) {
files_hash.Add(lang_key, Cldr_name_file.Empty);
Gfo_usr_dlg_.Instance.Warn_many("", "", "json is empty; lang=~{lang}", lang_key);
return null;
return Cldr_name_file.Empty;
}
// parse, cache and return

View File

@@ -31,7 +31,7 @@ class Cldr_name_loader_fxt {
Io_mgr.Instance.SaveFilStr(Io_url_.new_fil_(Dir_name + fil_name), txt);
}
public void Test__load_file_is_null(boolean expd, String lang_key) {
Cldr_name_file name_file = name_loader.Load_or_null(lang_key);
Cldr_name_file name_file = name_loader.Load_or_empty(lang_key);
Gftest.Eq__bool(expd, name_file == null);
}
}

View File

@@ -131,8 +131,9 @@ public class Scrib_lib_language implements Scrib_lib {
}
public boolean FetchLanguageName(Scrib_proc_args args, Scrib_proc_rslt rslt) {
String lang_code = args.Pull_str(0);
byte[] inLanguage = args.Pull_bry(1);
String rv = core.App().Lang_mgr().Name_mgr().fetchLanguageName(lang_code, inLanguage, null);
String inLanguage = args.Cast_str_or_null(1);
String include = args.Cast_str_or(2, "mw");
String rv = core.App().Lang_mgr().Name_mgr().fetchLanguageName(lang_code, inLanguage, include);
return rslt.Init_obj(rv);
/*
byte[] lang_code = args.Pull_bry(0);

View File

@@ -15,6 +15,7 @@ Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
*/
package gplx.xowa.xtns.scribunto.libs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.scribunto.*;
import org.junit.*;
import gplx.langs.jsons.*;
import gplx.xowa.langs.*; import gplx.xowa.langs.msgs.*; import gplx.xowa.langs.numbers.*;
public class Scrib_lib_language_tst {
@Before public void init() {
@@ -42,6 +43,21 @@ public class Scrib_lib_language_tst {
fxt.Test_scrib_proc_bool(lib, Scrib_lib_language.Invk_isValidBuiltInCode, Object_.Ary("e n"), false);
}
@Test public void FetchLanguageName() {
Io_mgr.Instance.SaveFilStr("mem/xowa/bin/any/xowa/cfg/lang/data/names.json", Json_doc.Make_str_by_apos
( "["
, " {"
, " 'code':'en'"
, " , 'name':'English'"
, " , 'note':'en_note'"
, " }"
, ", {"
, " 'code':'fr'"
, " , 'name':'Français'"
, " , 'note':'fr_note'"
, " }"
, "]"
));
fxt.Test_scrib_proc_str(lib, Scrib_lib_language.Invk_fetchLanguageName, Object_.Ary("en"), "English");
fxt.Test_scrib_proc_str(lib, Scrib_lib_language.Invk_fetchLanguageName, Object_.Ary("fr"), "Français");
fxt.Test_scrib_proc_str(lib, Scrib_lib_language.Invk_fetchLanguageName, Object_.Ary("qz"), "");