/* This code is part of Freenet. It is distributed under the GNU General
* Public License, version 2 (or at your option any later version). See
* http://www.gnu.org/ for further details of the GPL. */
package freenet.clients.http;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Date;
public class ReceivedCookieTest extends CookieTest {
static final String validEncodedCookie = " SessionID = \"abCd12345\" ;"
+ " $Version = 1 ;"
+ " $Path = \"/Freetalk\";"
+ " $Discard; "
+ " $Expires = \"Sun, 25 Oct 2030 15:09:37 GMT\"; "
+ " $blah;";
@Override
@SuppressWarnings("deprecation")
protected void setUp() throws Exception {
super.setUp();
validExpiresDate = new Date(2030 - 1900, 10 - 1, 25, 15, 9, 37);
cookie = ReceivedCookie.parseHeader(validEncodedCookie).get(0);
}
@Override
public void testGetDomain() {
// TODO: Implement.
}
public void testParseHeader() throws ParseException {
// The tests for getPath(), getName() etc will be executed using the parsed mCookie and therefore also test parseHeader() for valid values,
// we only need to test special cases here.
ArrayList<ReceivedCookie> cookies;
Cookie cookie;
// Plain firefox cookie
cookie = ReceivedCookie.parseHeader("SessionID=abCd12345").get(0);
assertEquals(VALID_NAME.toLowerCase(), cookie.getName()); assertEquals(VALID_VALUE, cookie.getValue());
// Two plain firefox cookies
cookies = ReceivedCookie.parseHeader("SessionID=abCd12345;key2=valUe2");
cookie = cookies.get(0); assertEquals(VALID_NAME.toLowerCase(), cookie.getName()); assertEquals(VALID_VALUE, cookie.getValue());
cookie = cookies.get(1); assertEquals("key2", cookie.getName()); assertEquals("valUe2", cookie.getValue());
// Key without value at end:
cookie = ReceivedCookie.parseHeader(" SessionID = \"abCd12345\" ;"
+ " $blah;").get(0);
assertEquals(VALID_NAME.toLowerCase(), cookie.getName()); assertEquals(VALID_VALUE, cookie.getValue());
// Key without value and without semicolon at end
cookie = ReceivedCookie.parseHeader(" SessionID = \"abCd12345\" ;"
+ " $blah").get(0);
assertEquals(VALID_NAME.toLowerCase(), cookie.getName()); assertEquals(VALID_VALUE, cookie.getValue());
}
@Override
public void testEncodeToHeaderValue() {
try {
cookie.encodeToHeaderValue();
fail("ReceivedCookie.encodeToHeaderValue() should throw UnsupportedOperationException!");
} catch(UnsupportedOperationException e) {}
}
}