package ecologylab.bigsemantics.metametadata;
import java.util.ArrayList;
import java.util.HashMap;
import org.junit.Assert;
import org.junit.Test;
import ecologylab.bigsemantics.metametadata.fieldops.DecodeUrl;
import ecologylab.bigsemantics.metametadata.fieldops.GetParam;
import ecologylab.bigsemantics.metametadata.fieldops.OverrideParams;
import ecologylab.net.ParsedURL;
/**
*
* @author quyin
*/
public class TestFilterLocation
{
@Test
public void testOverrideParams() throws Exception
{
String url = "https://www.google.com/search?tbm=isch&source=hp&biw=1147&bih=1218&q=avatar&oq=avatar#newwindow=1&tbm=isch&q=3d+movies";
ParsedURL orig = ParsedURL.getAbsolute(url);
OverrideParams overrideParams = new OverrideParams();
FilterLocation filter = new FilterLocation();
filter.addOp(overrideParams);
ArrayList<ParsedURL> otherLocs = new ArrayList<ParsedURL>();
ParsedURL filtered = filter.filter(orig, otherLocs);
HashMap<String, String> params = filtered.extractParams(true);
Assert.assertEquals("3d movies", params.get("q"));
}
@Test
public void testExtractParam() throws Exception
{
String url = "https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=11&cad=rja&uact=8&ved=0CIIBEBYwCg&url=http%3A%2F%2Fexample.com%2Fresult.html%3Fpage%3D2023%26id%3D__id__%23foo&ei=E6JaVOWQA4uHyQTX04KwDg&usg=AFQjCNHWNnajgzcm_JOhsZlx7nVzKDuEgg&sig2=_CDrDhq0QXbcK2zp-xsPUA&bvm=bv.78972154,bs.1,d.cGE";
ParsedURL orig = ParsedURL.getAbsolute(url);
GetParam getParam = new GetParam();
getParam.setName("url");
DecodeUrl decodeUrl = new DecodeUrl();
FilterLocation filter = new FilterLocation();
filter.addOp(getParam);
filter.addOp(decodeUrl);
ArrayList<ParsedURL> otherLocs = new ArrayList<ParsedURL>();
ParsedURL filtered = filter.filter(orig, otherLocs);
Assert.assertEquals("http://example.com/result.html?page=2023&id=__id__#foo",
filtered.toString());
Assert.assertTrue(otherLocs.contains(orig));
}
}