/*
* Copyright (C) 2009 Wro4j. All rights reserved.
*/
package ro.isdc.wro.http;
import static org.junit.Assert.assertEquals;
import java.util.Enumeration;
import javax.servlet.FilterConfig;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.mockito.Mockito;
import ro.isdc.wro.WroRuntimeException;
import ro.isdc.wro.config.Context;
/**
* Test Context class behavior.
*
* @author Alex Objelean
*/
public class TestContext {
@BeforeClass
public static void onBeforeClass() {
assertEquals(0, Context.countActive());
}
@AfterClass
public static void onAfterClass() {
assertEquals(0, Context.countActive());
}
@Test(expected = WroRuntimeException.class)
public void cannotAccessContext() {
// unset intentionally
Context.unset();
Context.get();
}
@Before
public void initContext() {
final HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
final HttpServletResponse response = Mockito.mock(HttpServletResponse.class);
final FilterConfig filterConfig = Mockito.mock(FilterConfig.class);
Context.set(Context.webContext(request, response, filterConfig));
// simulate that gzip encoding is accepted
Mockito.when(Context.get().getRequest().getHeaders(Mockito.anyString())).thenReturn(new Enumeration<String>() {
public boolean hasMoreElements() {
return true;
}
public String nextElement() {
return "gzip";
}
});
}
@Test(expected = NullPointerException.class)
public void cannotSetNullContext() {
Context.set(null);
}
@After
public void tearDown() {
Context.unset();
}
}