/*
XOWA: the XOWA Offline Wiki Application
Copyright (C) 2012-2017 gnosygnu@gmail.com

XOWA is licensed under the terms of the General Public License (GPL) Version 3,
or alternatively under the terms of the Apache License Version 2.0.

You may use XOWA according to either of these licenses as is most appropriate
for your project on a case-by-case basis.

The terms of each license can be found in the source code repository:

GPLv3 License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-GPLv3.txt
Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
*/
package gplx.xowa.htmls.doms; import gplx.*; import gplx.xowa.*; import gplx.xowa.htmls.*;
import org.junit.*;
public class Xoh_dom_tst {
	@Test  public void Find_atr() {
		String src = "a <nde0 atr0=\"val0\" atr1=\"val1\"/> b <nde1 atr0=\"val3\" atr1=\"val4\"/> c";
		tst_Find(src, "nde0", "atr0", "val0", "atr1", "val1");	// match nde0
		tst_Find(src, "nde1", "atr0", "val3", "atr1", "val4");	// match nde1
		tst_Find(src, "nde0", "atr0", "val5", "atr1", null);	// wrong val
		tst_Find(src, "nde0", "atr2", "val0", "atr1", null);	// wrong key
		tst_Find(src, "nde2", "atr0", "val0", "atr1", null);	// wrong nde
	}
	@Test  public void Title_by_href() {// PURPOSE: handle content-editable=n and finding file directly for download
		Title_by_href_tst
		( "/wiki/File:Bazille,_Fr%C3%A9d%C3%A9ric_%7E_Le_Petit_Jardinier_%28The_Little_Gardener%29,_c1866-67_oil_on_canvas_Museum_of_Fine_Arts,_Houston.jpg"
		, "<a href=\"lure\" xowa_title=\"wrong\"></a><a href=\"/wiki/File:Bazille,_Fr%C3%A9d%C3%A9ric_%7E_Le_Petit_Jardinier_%28The_Little_Gardener%29,_c1866-67_oil_on_canvas_Museum_of_Fine_Arts,_Houston.jpg\" xowa_title=\"find_me\"></a>"
		, "find_me"
		);
	}
	private void tst_Find(String src, String where_nde, String where_key, String where_val, String select_key, String expd) {
		Xoh_find rv = new Xoh_find();
		byte[] actl = Xoh_dom_.Query_val_by_where(rv, Bry_.new_u8(src), Bry_.new_u8(where_nde), Bry_.new_u8(where_key), Bry_.new_u8(where_val), Bry_.new_u8(select_key), 0);
		Tfds.Eq(expd, String_.new_u8(actl));
	}
	private void Title_by_href_tst(String href, String html_src, String expd) {
		String actl = Xoh_dom_.Title_by_href(Bry_.new_u8(href), Bry_.new_u8(html_src));
		Tfds.Eq(expd, actl);
	}
}
