* fix small bug in sessionid-removal

* add testcase for seesionid-removal

git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@7333 6c8d7289-2bf4-0310-a012-ef5d649a1542
This commit is contained in:
f1ori 2010-11-21 23:55:40 +00:00
parent dca9e16f51
commit fd74bc388c
2 changed files with 36 additions and 1 deletions

View File

@ -682,7 +682,7 @@ public class MultiProtocolURI implements Serializable, Comparable<MultiProtocolU
}
int p = q.toLowerCase().indexOf("&" + sid.toLowerCase() + "=");
if (p < 0) continue;
int p1 = q.indexOf('&', p);
int p1 = q.indexOf('&', p+1);
if (p1 < 0) {
q = q.substring(0, p);
} else {

View File

@ -0,0 +1,35 @@
package net.yacy.cora.document;
import static org.junit.Assert.*;
import java.net.MalformedURLException;
import java.util.TreeSet;
import net.yacy.cora.document.MultiProtocolURI;
import org.junit.Test;
public class MultiProtocolURITest {
@Test public void testSessionIdRemoval() throws MalformedURLException {
String[][] testURIs = new String[][] {
// meaning: original uri, stripped version
new String[]{"http://test.de/bla.php?phpsessionid=asdf", "http://test.de/bla.php"},
new String[]{"http://test.de/bla?phpsessionid=asdf&fdsa=asdf", "http://test.de/bla?fdsa=asdf"},
new String[]{"http://test.de/bla?asdf=fdsa&phpsessionid=asdf", "http://test.de/bla?asdf=fdsa"},
new String[]{"http://test.de/bla?asdf=fdsa&phpsessionid=asdf&fdsa=asdf", "http://test.de/bla?asdf=fdsa&fdsa=asdf"},
};
TreeSet<String> idNames = new TreeSet<String>();
idNames.add("phpsessionid");
MultiProtocolURI.initSessionIDNames(idNames);
for (int i=0; i<testURIs.length; i++) {
MultiProtocolURI uri = new MultiProtocolURI(testURIs[i][0]);
assertEquals(uri.toNormalform(true, true, true), testURIs[i][1]);
}
}
}