package org.togglz.servlet.test.user.thread; import static org.junit.Assert.assertTrue; import java.io.IOException; import java.net.URL; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; import org.jboss.arquillian.test.api.ArquillianResource; import org.jboss.shrinkwrap.api.spec.WebArchive; import org.junit.Test; import org.junit.runner.RunWith; import org.togglz.core.manager.TogglzConfig; import org.togglz.test.Deployments; import org.togglz.test.Packaging; import com.gargoylesoftware.htmlunit.TextPage; import com.gargoylesoftware.htmlunit.WebClient; @RunWith(Arquillian.class) public class ThreadBasedUsersTest { @Deployment(testable = false) public static WebArchive createDeployment() { return Deployments.getBasicWebArchive() .addClass(ThreadBasedUsersConfiguration.class) .addClass(ThreadBasedUsersFilter.class) .addClass(UserDependentFeature.class) .setWebXML(Packaging.webAppDescriptor() .contextParam(TogglzConfig.class.getName(), ThreadBasedUsersConfiguration.class.getName()) .exportAsAsset()); } @ArquillianResource private URL url; @Test public void testDisabledForAllUsers() throws IOException { WebClient client = new WebClient(); TextPage page = client.getPage(url + "features?user=ck"); assertTrue(page.getContent().contains("DISABLED = false")); } @Test public void testEnabledForAllUsers() throws IOException { WebClient client = new WebClient(); TextPage page = client.getPage(url + "features?user=ck"); assertTrue(page.getContent().contains("ENABLED_FOR_ALL = true")); } @Test public void testEnabledForOneUserWithCorrectUser() throws IOException { WebClient client = new WebClient(); TextPage page = client.getPage(url + "features?user=ck"); assertTrue(page.getContent().contains("ENABLED_FOR_CK = true")); } @Test public void testEnabledForOneUserWithOtherUsers() throws IOException { WebClient client = new WebClient(); TextPage page = client.getPage(url + "features?user=other"); assertTrue(page.getContent().contains("ENABLED_FOR_CK = false")); } @Test public void testFeatureAdminFlagForAdminUser() throws IOException { WebClient client = new WebClient(); TextPage userPage = client.getPage(url + "user?user=ck"); assertTrue(userPage.getContent().contains("USER = ck")); assertTrue(userPage.getContent().contains("ADMIN = true")); } @Test public void testFeatureAdminFlagForOtherUser() throws IOException { WebClient client = new WebClient(); TextPage userPage = client.getPage(url + "user?user=other"); assertTrue(userPage.getContent().contains("USER = other")); assertTrue(userPage.getContent().contains("ADMIN = false")); } }