package com.nimbusds.jose; import junit.framework.TestCase; import com.nimbusds.jose.util.Base64URL; import java.text.ParseException; /** * Tests JOSE object methods. * * @author Vladimir Dzhuvinov * @version $version$ (2012-10-16) */ public class JOSEObjectTest extends TestCase { public void testSplitThreeParts() { // Implies JWS String s = "abc.def.ghi"; Base64URL[] parts = null; try { parts = JOSEObject.split(s); } catch (ParseException e) { fail(e.getMessage()); } assertEquals(3, parts.length); assertEquals("abc", parts[0].toString()); assertEquals("def", parts[1].toString()); assertEquals("ghi", parts[2].toString()); } public void testSplitFiveParts() { // Implies JWE String s = "abc.def.ghi.jkl.mno"; Base64URL[] parts = null; try { parts = JOSEObject.split(s); } catch (ParseException e) { fail(e.getMessage()); } assertEquals(5, parts.length); assertEquals("abc", parts[0].toString()); assertEquals("def", parts[1].toString()); assertEquals("ghi", parts[2].toString()); assertEquals("jkl", parts[3].toString()); assertEquals("mno", parts[4].toString()); } public void testSplitEmptyThirdPart() { // Implies plain JOSE object String s = "abc.def."; Base64URL[] parts = null; try { parts = JOSEObject.split(s); } catch (ParseException e) { fail(e.getMessage()); } assertEquals(3, parts.length); assertEquals("abc", parts[0].toString()); assertEquals("def", parts[1].toString()); assertEquals("", parts[2].toString()); } public void testSplitEmptySecondPart() { // JWS with empty payload String s = "abc..ghi"; Base64URL[] parts = null; try { parts = JOSEObject.split(s); } catch (ParseException e) { fail(e.getMessage()); } assertEquals(3, parts.length); assertEquals("abc", parts[0].toString()); assertEquals("", parts[1].toString()); assertEquals("ghi", parts[2].toString()); } public void testSplitEmptyFiveParts() { // JWS with empty payload String s = "...."; Base64URL[] parts = null; try { parts = JOSEObject.split(s); } catch (ParseException e) { fail(e.getMessage()); } assertEquals(5, parts.length); assertEquals("", parts[0].toString()); assertEquals("", parts[1].toString()); assertEquals("", parts[2].toString()); assertEquals("", parts[3].toString()); assertEquals("", parts[4].toString()); } public void testSplitException() { // Illegal JOSE String s = "abc.def"; Base64URL[] parts = null; try { parts = JOSEObject.split(s); fail("Failed to raise exception"); } catch (ParseException e) { // ok } } }