/* * Copyright 2006-2008 Sxip Identity Corporation */ package org.openid4java.message; import junit.framework.Test; import junit.framework.TestSuite; import junit.framework.TestCase; import java.util.Map; import java.util.HashMap; /** * @author Marius Scurtescu, Johnny Bufu */ public class MessageTest extends TestCase { private Message _msg; public MessageTest(String name) { super(name); } public void setUp() throws Exception { ParameterList params = new ParameterList(); params.set(new Parameter("key1", "value1")); params.set(new Parameter("key1", "value2")); params.set(new Parameter("key2", "value1")); _msg = new Message(params); } public void tearDown() throws Exception { _msg = null; } public void testKeyValueFormEncoding() throws Exception { String keyValueForm = "key1:value2\nkey2:value1\n"; assertEquals(keyValueForm, _msg.keyValueFormEncoding()); } public void testWwwFormEncoding() throws Exception { String wwwForm = "openid.key1=value2&openid.key2=value1"; assertEquals(wwwForm, _msg.wwwFormEncoding()); } public static Test suite() { return new TestSuite(MessageTest.class); } public void testNotAllowedChars() throws Exception { Parameter param; Map parameterMap; try { // semicolon in key param = new Parameter("some:key", "value"); parameterMap = new HashMap(); parameterMap.put(param.getKey(), param.getValue()); Message.createMessage(new ParameterList(parameterMap)); fail("A MessageException should be thrown " + "if the key/values contain invalid characters"); } catch (MessageException expected) { assertTrue(true); } try { // newline in key param = new Parameter("some\nkey\n", "value"); parameterMap = new HashMap(); parameterMap.put(param.getKey(), param.getValue()); Message.createMessage(new ParameterList(parameterMap)); fail("A MessageException should be thrown " + "if the key/values contain invalid characters"); } catch (MessageException expected) { assertTrue(true); } try { // newline in value param = new Parameter("key", "val\nue"); parameterMap = new HashMap(); parameterMap.put(param.getKey(), param.getValue()); Message.createMessage(new ParameterList(parameterMap)); fail("A MessageException should be thrown " + "if the key/values contain invalid characters"); } catch (MessageException expected) { assertTrue(true); } try { // all of the above param = new Parameter("some:\nkey", "value\n"); parameterMap = new HashMap(); parameterMap.put(param.getKey(), param.getValue()); Message.createMessage(new ParameterList(parameterMap)); fail("A MessageException should be thrown " + "if the key/values contain invalid characters"); } catch (MessageException expected) { assertTrue(true); } } }