mirror of
https://github.com/gnosygnu/xowa.git
synced 2026-03-02 03:49:30 +00:00
'v3.7.2.1'
This commit is contained in:
@@ -182,5 +182,5 @@ public class Xop_lnki_wkr implements Xop_ctx_wkr, Xop_arg_wkr {
|
||||
ctx.App().Usr_dlg().Warn_many("", "", "fatal error in lnki: page=~{0} src=~{1} err=~{2}", String_.new_u8(ctx.Page().Ttl().Full_db()), String_.new_u8(src, lnki.Src_bgn(), lnki.Src_end()), Err_.Message_gplx_full(e));
|
||||
return false;
|
||||
}
|
||||
} private static final byte[] Const_pipe = Bry_.new_a7("|");
|
||||
} private static final byte[] Const_pipe = Bry_.new_a7("|");
|
||||
}
|
||||
|
||||
@@ -56,10 +56,10 @@ public class Xop_lnki_wkr_ {
|
||||
tmp_bfr.Mkr_rls();
|
||||
}
|
||||
Xowe_wiki wiki = ctx.Wiki();
|
||||
Xoa_ttl ttl = Xoa_ttl.parse(wiki, ttl_bry);
|
||||
Xoa_ttl ttl = Xoa_ttl.Parse(wiki, ttl_bry);
|
||||
if (ttl == null) return false;
|
||||
if ( wiki.Cfg_parser_lnki_xwiki_repos_enabled() // wiki has lnki.xwiki_repos
|
||||
&& ttl.Wik_bgn() != Xoa_ttl.Null_wik_bgn // xwiki available; EX: [[en:]]
|
||||
&& ttl.Wik_bgn() != Null_wik_bgn // xwiki available; EX: [[en:]]
|
||||
)
|
||||
ttl = Adj_ttl_for_file(wiki, ctx, ttl, ttl_bry);
|
||||
lnki.Ttl_(ttl);
|
||||
@@ -73,7 +73,7 @@ public class Xop_lnki_wkr_ {
|
||||
if (xwiki_bry_len + 1 >= ttl_bry_len) return ttl; // invalid ttl; EX: [[en:]]
|
||||
byte[] ttl_in_xwiki_bry = Bry_.Mid(ttl_bry, xwiki_bry_len + 1, ttl_bry_len); // +1 to position after xwiki :; EX: [[en:File:A.png]]; +1 to put after ":" at "F"
|
||||
if (!wiki.Cfg_parser().Lnki_cfg().Xwiki_repo_mgr().Has(xwiki_bry)) return ttl; // alias not in xwikis; EX: [[en_bad:File:A.png]]
|
||||
Xoa_ttl ttl_in_xwiki = Xoa_ttl.parse(wiki, ttl_in_xwiki_bry);
|
||||
Xoa_ttl ttl_in_xwiki = Xoa_ttl.Parse(wiki, ttl_in_xwiki_bry);
|
||||
if (ttl_in_xwiki == null) return ttl; // occurs if ttl is bad in xwiki; EX: [[en:<bad>]]
|
||||
return ttl_in_xwiki.Ns().Id_is_file() ? ttl_in_xwiki : ttl;
|
||||
}
|
||||
@@ -144,4 +144,5 @@ public class Xop_lnki_wkr_ {
|
||||
bfr.Add(ttl.Full_db());
|
||||
bfr.Add(Xop_tkn_.Lnki_end);
|
||||
}
|
||||
private static final int Null_wik_bgn = -1;
|
||||
}
|
||||
|
||||
@@ -143,9 +143,9 @@ public class Xop_lnki_wkr__basic_tst {
|
||||
fxt.Test_parse_page_wiki("[[a|]]", fxt.tkn_lnki_().Trg_tkn_(fxt.tkn_arg_val_txt_(2, 3)));
|
||||
}
|
||||
@Test public void Exc_empty() {
|
||||
fxt.Init_log_(Xop_ttl_log.Len_0, Xop_lnki_log.Invalid_ttl);
|
||||
fxt.Init_log_(Xop_lnki_log.Invalid_ttl);
|
||||
fxt.Test_parse_page_wiki("[[]]", fxt.tkn_txt_(0, 2), fxt.tkn_txt_(2, 4));
|
||||
fxt.Init_log_(Xop_ttl_log.Len_0, Xop_lnki_log.Invalid_ttl);
|
||||
fxt.Init_log_(Xop_lnki_log.Invalid_ttl);
|
||||
fxt.Test_parse_page_wiki("[[ ]]", fxt.tkn_txt_(0, 2), fxt.tkn_space_(2, 3), fxt.tkn_txt_(3, 5));
|
||||
}
|
||||
@Test public void Exc_invalid_u8() { // PURPOSE: "%DO" is an invalid UTF-8 sequence (requires 2 bytes, not just %D0); DATE:2013-11-11
|
||||
@@ -306,10 +306,10 @@ public class Xop_lnki_wkr__basic_tst {
|
||||
}
|
||||
@Test public void Visited() { // PURPOSE: show redirected titles as visited; EX:fr.w:Alpes_Pennines; DATE:2014-02-28
|
||||
Xowe_wiki wiki = fxt.Wiki();
|
||||
Xoa_ttl ttl = Xoa_ttl.parse(wiki, Bry_.new_a7("Src")); // simulate requrest for "Src" page
|
||||
Xoa_ttl ttl = Xoa_ttl.Parse(wiki, Bry_.new_a7("Src")); // simulate requrest for "Src" page
|
||||
Xoae_page previous_page = Xoae_page.New_test(wiki, ttl);
|
||||
previous_page.Redirected_ttls().Add(Bry_.new_a7("Src")); // simulate redirect from "Src"
|
||||
fxt.App().Usere().History_mgr().Add(previous_page); // simulate "Src" already being clicked once; this is the key call
|
||||
previous_page.Redirect().Itms__add__article(previous_page.Url(), ttl, null); // simulate redirect from "Src"
|
||||
fxt.App().Usere().History_mgr().Add(previous_page); // simulate "Src" already being clicked once; this is the key call
|
||||
fxt.Wtr_cfg().Lnki_visited_y_();
|
||||
fxt.Test_parse_page_all_str("[[Src]]" , "<a href=\"/wiki/Src\" class=\"xowa-visited\">Src</a>"); // show [[Src]] as visited since it exists in history
|
||||
fxt.Test_parse_page_all_str("[[Other]]" , "<a href=\"/wiki/Other\">Other</a>"); // show other pages as not visited
|
||||
|
||||
@@ -30,7 +30,7 @@ public class Xop_lnki_wkr__invalid_tst {
|
||||
fxt.Test_parse_page_all_str("[[''[a]'']]" , "[[<i>[a]</i>]]");
|
||||
}
|
||||
@Test public void Pipe_only() {
|
||||
fxt.Init_log_(Xop_ttl_log.Len_0, Xop_lnki_log.Invalid_ttl);
|
||||
fxt.Init_log_(Xop_lnki_log.Invalid_ttl);
|
||||
fxt.Test_parse_page_wiki("[[|]]", fxt.tkn_txt_(0, 2), fxt.tkn_pipe_(2), fxt.tkn_txt_(3, 5));
|
||||
}
|
||||
@Test public void Xnde_should_force_ttl_parse() { // PURPOSE: reparse should be forced at xnde not at pipe; EX: [[a<b>c</b>|d]] reparse should start at <b>; DATE:2014-03-30
|
||||
|
||||
Reference in New Issue
Block a user