package com.nimbusds.jose;
import java.text.ParseException;
import junit.framework.TestCase;
import com.nimbusds.jose.util.Base64URL;
/**
* Tests plain header parsing and serialisation.
*
* @author Vladimir Dzhuvinov
* @version $version$ (2012-10-01)
*/
public class PlainHeaderTest extends TestCase {
public void testSerializeAndParse() {
PlainHeader h = new PlainHeader();
assertEquals(Algorithm.NONE, h.getAlgorithm());
assertNull(h.getType());
assertNull(h.getContentType());
h.setType(new JOSEObjectType("JWT"));
h.setContentType("application/jwt");
h.setCustomParameter("xCustom", "abc");
assertTrue(h.getIncludedParameters().contains("alg"));
assertTrue(h.getIncludedParameters().contains("typ"));
assertTrue(h.getIncludedParameters().contains("cty"));
assertTrue(h.getIncludedParameters().contains("xCustom"));
assertEquals(4, h.getIncludedParameters().size());
Base64URL b64url = h.toBase64URL();
// Parse back
try {
h = PlainHeader.parse(b64url);
} catch (ParseException e) {
fail(e.getMessage());
}
assertNotNull(h);
assertEquals(Algorithm.NONE, h.getAlgorithm());
assertEquals(new JOSEObjectType("JWT"), h.getType());
assertEquals("application/jwt", h.getContentType());
assertEquals("abc", (String)h.getCustomParameter("xCustom"));
assertEquals(1, h.getCustomParameters().size());
}
}