package test;

import java.util.Collections;

import net.sourceforge.stripes.controller.DispatcherServlet;
import net.sourceforge.stripes.controller.StripesFilter;
import net.sourceforge.stripes.mock.MockRoundtrip;
import net.sourceforge.stripes.mock.MockServletContext;

import org.junit.Before;
import org.junit.Test;

import test.action.CryptoBugActionBean;

public class TestCryptoBug {

	private static MockServletContext context;

	@Before
	public void setup() {
		if (context == null)  {
			context = new MockServletContext("test");
			context.addFilter(StripesFilter.class, "StripesFilter", Collections
					.<String, String> singletonMap("ActionResolver.Packages",
							getClass().getPackage().getName()));
			context.setServlet(DispatcherServlet.class, "StripesDispatcher", null);
		}
	}


	@Test
	public void testWarningMessage() throws Exception {
		MockRoundtrip trip = newTrip();
		trip.addParameter("encrypted", "nice warning message");
		trip.execute();
	}


	@Test
	public void testException() throws Exception {
		MockRoundtrip trip = newTrip();
		trip.addParameter("encrypted", "stack trace from special characters .[]{}");
		trip.execute();
	}


	private MockRoundtrip newTrip() {
		return new MockRoundtrip(context, CryptoBugActionBean.class);
	}
}
