* @author Anil.Saldhana@redhat.com
* @since Dec 11, 2008
*/
public class DeflateEncodingDecodingUnitTestCase extends TestCase {
public void testDeflateEncoding() throws Exception {
AuthnRequestType authnRequest = (new SAML2Request()).createAuthnRequestType(IDGenerator.create("ID_"), "http://sp",
"http://localhost:8080/idp", "http://sp");
StringWriter sw = new StringWriter();
SAML2Request request = new SAML2Request();
request.marshall(authnRequest, sw);
byte[] deflatedMsg = DeflateUtil.encode(sw.toString());
String base64Request = Base64.encodeBytes(deflatedMsg, Base64.DONT_BREAK_LINES);
base64Request = URLEncoder.encode(base64Request, "UTF-8");
// Decode
String urlDecodedMsg = URLDecoder.decode(base64Request, "UTF-8");
byte[] decodedMessage = Base64.decode(urlDecodedMsg);
InputStream is = DeflateUtil.decode(decodedMessage);
AuthnRequestType decodedRequestType = request.getAuthnRequestType(is);
assertNotNull(decodedRequestType);
}