From f2be871b55686345e813325438bc97dea29a3aeb Mon Sep 17 00:00:00 2001 From: lusabo Date: Wed, 18 Sep 2013 17:03:04 -0300 Subject: [PATCH] IN PROGRESS - issue FWK-119: Testes da extensão Servlet --- impl/extension/servlet/src/test/java/producer/HttpServletRequestProducerTest.java | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ impl/extension/servlet/src/test/java/producer/HttpServletResponseProducerTest.java | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ impl/extension/servlet/src/test/java/producer/RequestServlet.java | 30 ++++++++++++++++++++++++++++++ impl/extension/servlet/src/test/java/producer/ResponseServlet.java | 30 ++++++++++++++++++++++++++++++ impl/extension/servlet/src/test/java/security/SecurityServlet.java | 37 +++++++++++++++++++++++++++++++++++++ impl/extension/servlet/src/test/java/security/SecurityTest.java | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ impl/extension/servlet/src/test/java/xxxx/XServlet.java | 37 ------------------------------------- impl/extension/servlet/src/test/java/xxxx/XTest.java | 58 ---------------------------------------------------------- impl/extension/servlet/src/test/resources/producer/web.xml | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ impl/extension/servlet/src/test/resources/security/web.xml | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ impl/extension/servlet/src/test/resources/xxx/web.xml | 52 ---------------------------------------------------- 11 files changed, 402 insertions(+), 147 deletions(-) create mode 100644 impl/extension/servlet/src/test/java/producer/HttpServletRequestProducerTest.java create mode 100644 impl/extension/servlet/src/test/java/producer/HttpServletResponseProducerTest.java create mode 100644 impl/extension/servlet/src/test/java/producer/RequestServlet.java create mode 100644 impl/extension/servlet/src/test/java/producer/ResponseServlet.java create mode 100644 impl/extension/servlet/src/test/java/security/SecurityServlet.java create mode 100644 impl/extension/servlet/src/test/java/security/SecurityTest.java delete mode 100644 impl/extension/servlet/src/test/java/xxxx/XServlet.java delete mode 100644 impl/extension/servlet/src/test/java/xxxx/XTest.java create mode 100644 impl/extension/servlet/src/test/resources/producer/web.xml create mode 100644 impl/extension/servlet/src/test/resources/security/web.xml delete mode 100644 impl/extension/servlet/src/test/resources/xxx/web.xml diff --git a/impl/extension/servlet/src/test/java/producer/HttpServletRequestProducerTest.java b/impl/extension/servlet/src/test/java/producer/HttpServletRequestProducerTest.java new file mode 100644 index 0000000..33d0cf6 --- /dev/null +++ b/impl/extension/servlet/src/test/java/producer/HttpServletRequestProducerTest.java @@ -0,0 +1,50 @@ +package producer; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + +import java.net.URL; + +import javax.inject.Inject; + +import org.apache.commons.httpclient.HttpClient; +import org.apache.commons.httpclient.HttpStatus; +import org.apache.commons.httpclient.methods.GetMethod; +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 test.Tests; +import br.gov.frameworkdemoiselle.context.RequestContext; + +@RunWith(Arquillian.class) +public class HttpServletRequestProducerTest { + + private static final String PATH = "src/test/resources/producer"; + + @ArquillianResource + private URL deploymentUrl; + + @Deployment(testable = false) + public static WebArchive createDeployment() { + return Tests.createDeployment().addClass(RequestServlet.class) + .addAsWebInfResource(Tests.createFileAsset(PATH + "/web.xml"), "web.xml"); + } + + @Test + public void createR() { + HttpClient client = new HttpClient(); + GetMethod method = new GetMethod(deploymentUrl + "/requestproducer"); + try { + int status = client.executeMethod(method); + assertEquals(HttpStatus.SC_OK, status); + } catch (Exception e) { + fail(); + } + } + +} diff --git a/impl/extension/servlet/src/test/java/producer/HttpServletResponseProducerTest.java b/impl/extension/servlet/src/test/java/producer/HttpServletResponseProducerTest.java new file mode 100644 index 0000000..046d89c --- /dev/null +++ b/impl/extension/servlet/src/test/java/producer/HttpServletResponseProducerTest.java @@ -0,0 +1,50 @@ +package producer; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + +import java.net.URL; + +import javax.inject.Inject; + +import org.apache.commons.httpclient.HttpClient; +import org.apache.commons.httpclient.HttpStatus; +import org.apache.commons.httpclient.methods.GetMethod; +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 test.Tests; +import br.gov.frameworkdemoiselle.context.RequestContext; + +@RunWith(Arquillian.class) +public class HttpServletResponseProducerTest { + + private static final String PATH = "src/test/resources/producer"; + + @ArquillianResource + private URL deploymentUrl; + + @Deployment(testable = false) + public static WebArchive createDeployment() { + return Tests.createDeployment().addClass(RequestServlet.class) + .addAsWebInfResource(Tests.createFileAsset(PATH + "/web.xml"), "web.xml"); + } + + @Test + public void createResponse() { + HttpClient client = new HttpClient(); + GetMethod method = new GetMethod(deploymentUrl + "/responseproducer"); + try { + int status = client.executeMethod(method); + assertEquals(HttpStatus.SC_OK, status); + } catch (Exception e) { + fail(); + } + } + +} diff --git a/impl/extension/servlet/src/test/java/producer/RequestServlet.java b/impl/extension/servlet/src/test/java/producer/RequestServlet.java new file mode 100644 index 0000000..c9de55f --- /dev/null +++ b/impl/extension/servlet/src/test/java/producer/RequestServlet.java @@ -0,0 +1,30 @@ +package producer; + +import java.io.IOException; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.http.HttpStatus; + +import br.gov.frameworkdemoiselle.util.Beans; + +public class RequestServlet extends HttpServlet { + + private static final long serialVersionUID = 1L; + + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + + HttpServletRequest httpRequest = Beans.getReference(HttpServletRequest.class); + + if (httpRequest != null) { + response.setStatus(HttpStatus.SC_OK); + } else { + response.setStatus(HttpStatus.SC_INTERNAL_SERVER_ERROR); + } + } + +} diff --git a/impl/extension/servlet/src/test/java/producer/ResponseServlet.java b/impl/extension/servlet/src/test/java/producer/ResponseServlet.java new file mode 100644 index 0000000..52ed1d1 --- /dev/null +++ b/impl/extension/servlet/src/test/java/producer/ResponseServlet.java @@ -0,0 +1,30 @@ +package producer; + +import java.io.IOException; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.http.HttpStatus; + +import br.gov.frameworkdemoiselle.util.Beans; + +public class ResponseServlet extends HttpServlet { + + private static final long serialVersionUID = 1L; + + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + + HttpServletResponse httpResponse = Beans.getReference(HttpServletResponse.class); + + if (httpResponse != null) { + response.setStatus(HttpStatus.SC_OK); + } else { + response.setStatus(HttpStatus.SC_INTERNAL_SERVER_ERROR); + } + } + +} diff --git a/impl/extension/servlet/src/test/java/security/SecurityServlet.java b/impl/extension/servlet/src/test/java/security/SecurityServlet.java new file mode 100644 index 0000000..fbf56c2 --- /dev/null +++ b/impl/extension/servlet/src/test/java/security/SecurityServlet.java @@ -0,0 +1,37 @@ +package security; + +import java.io.IOException; + +import javax.inject.Inject; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.http.HttpStatus; + +import br.gov.frameworkdemoiselle.security.Credentials; +import br.gov.frameworkdemoiselle.security.SecurityContext; + +@WebServlet("/login") +public class SecurityServlet extends HttpServlet { + + private static final long serialVersionUID = 1L; + + @Inject + private SecurityContext securityContext; + + @Inject + private Credentials credentials; + + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + super.doGet(request, response); + + credentials.setUsername("users"); + credentials.setPassword("users"); + securityContext.login(); + response.setStatus(HttpStatus.SC_OK); + } +} diff --git a/impl/extension/servlet/src/test/java/security/SecurityTest.java b/impl/extension/servlet/src/test/java/security/SecurityTest.java new file mode 100644 index 0000000..a5308c0 --- /dev/null +++ b/impl/extension/servlet/src/test/java/security/SecurityTest.java @@ -0,0 +1,50 @@ +package security; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.fail; + +import java.io.IOException; +import java.net.URL; + +import org.apache.commons.httpclient.HttpClient; +import org.apache.commons.httpclient.HttpException; +import org.apache.commons.httpclient.HttpStatus; +import org.apache.commons.httpclient.methods.GetMethod; +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 test.Tests; + +@RunWith(Arquillian.class) +public class SecurityTest { + + private static final String PATH = "src/test/resources/security"; + + @ArquillianResource + private URL deploymentUrl; + + @Deployment(testable = false) + public static WebArchive createDeployment() { + return Tests.createDeployment().addClass(SecurityServlet.class) + .addAsWebInfResource(Tests.createFileAsset(PATH + "/web.xml"), "web.xml"); + } + + @Test + public void login() { + HttpClient client = new HttpClient(); + GetMethod method = new GetMethod(deploymentUrl + "/login"); + try { + int status = client.executeMethod(method); + assertEquals(HttpStatus.SC_OK, status); + } catch (HttpException e) { + fail(); + } catch (IOException e) { + e.printStackTrace(); + } + } + +} diff --git a/impl/extension/servlet/src/test/java/xxxx/XServlet.java b/impl/extension/servlet/src/test/java/xxxx/XServlet.java deleted file mode 100644 index 16bd4c6..0000000 --- a/impl/extension/servlet/src/test/java/xxxx/XServlet.java +++ /dev/null @@ -1,37 +0,0 @@ -package xxxx; - -import java.io.IOException; - -import javax.inject.Inject; -import javax.servlet.ServletException; -import javax.servlet.annotation.WebServlet; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import br.gov.frameworkdemoiselle.security.Credentials; -import br.gov.frameworkdemoiselle.security.SecurityContext; - -@WebServlet("/login") -public class XServlet extends HttpServlet { - - private static final long serialVersionUID = 1L; - - @Inject - private SecurityContext securityContext; - - @Inject - private Credentials credentials; - - @Override - protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - super.doGet(request, response); - - System.out.println("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"); - - credentials.setUsername("admin"); - credentials.setPassword("changeit"); - - securityContext.login(); - } -} diff --git a/impl/extension/servlet/src/test/java/xxxx/XTest.java b/impl/extension/servlet/src/test/java/xxxx/XTest.java deleted file mode 100644 index 78db17d..0000000 --- a/impl/extension/servlet/src/test/java/xxxx/XTest.java +++ /dev/null @@ -1,58 +0,0 @@ -package xxxx; - -import java.io.IOException; -import java.net.URL; - -import org.apache.commons.httpclient.HttpClient; -import org.apache.commons.httpclient.HttpException; -import org.apache.commons.httpclient.methods.GetMethod; -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 test.Tests; - -@RunWith(Arquillian.class) -public class XTest { - - private static final String PATH = "src/test/resources/xxx"; - - @ArquillianResource - private URL deploymentUrl; - - @Deployment(testable = false) - public static WebArchive createDeployment() { - return Tests.createDeployment().addClass(XServlet.class) - .addAsWebInfResource(Tests.createFileAsset(PATH + "/web.xml"), "web.xml"); - } - - @Test - public void xxxx() { - HttpClient client = new HttpClient(); - GetMethod method = new GetMethod(deploymentUrl + "/login"); - - try { - int status = client.executeMethod(method); - System.out.println(status); - - } catch (HttpException e) { - e.printStackTrace(); - - } catch (IOException e) { - e.printStackTrace(); - } - - // browser.open(deploymentUrl + "login"); - - // browser.type("id=xxx-input", "demo"); - // browser.waitForPageToLoad("15000"); - - // assertTrue("User should be logged in!", - // browser.isElementPresent("xpath=//li[contains(text(), 'Welcome')]")); - // assertTrue("Username should be shown!", - // browser.isElementPresent("xpath=//p[contains(text(), 'You are signed in as demo.')]")); - } -} diff --git a/impl/extension/servlet/src/test/resources/producer/web.xml b/impl/extension/servlet/src/test/resources/producer/web.xml new file mode 100644 index 0000000..4dace01 --- /dev/null +++ b/impl/extension/servlet/src/test/resources/producer/web.xml @@ -0,0 +1,72 @@ + + + + + br.gov.frameworkdemoiselle.util.ServletListener + + + + Demoiselle Servlet Filter + br.gov.frameworkdemoiselle.util.ServletFilter + + + Demoiselle Servlet Filter + /* + + + + Request Class + producer.RequestServlet + + + + Request Class + /requestproducer + + + + Response xClass + producer.ResponseServlet + + + + Response xClass + /responseproducer + + \ No newline at end of file diff --git a/impl/extension/servlet/src/test/resources/security/web.xml b/impl/extension/servlet/src/test/resources/security/web.xml new file mode 100644 index 0000000..c2c591c --- /dev/null +++ b/impl/extension/servlet/src/test/resources/security/web.xml @@ -0,0 +1,83 @@ + + + + + br.gov.frameworkdemoiselle.util.ServletListener + + + + Demoiselle Servlet Filter + br.gov.frameworkdemoiselle.util.ServletFilter + + + Demoiselle Servlet Filter + /* + + + + + + myapp + /\* + GET + + + users + + + + BASIC + default + + + users + + + + Security Class + security.SecurityServlet + + + + Security Class + /login + + + + \ No newline at end of file diff --git a/impl/extension/servlet/src/test/resources/xxx/web.xml b/impl/extension/servlet/src/test/resources/xxx/web.xml deleted file mode 100644 index 70d32be..0000000 --- a/impl/extension/servlet/src/test/resources/xxx/web.xml +++ /dev/null @@ -1,52 +0,0 @@ - - - - - br.gov.frameworkdemoiselle.util.ServletListener - - - Demoiselle Servlet Filter - br.gov.frameworkdemoiselle.util.ServletFilter - - - Demoiselle Servlet Filter - /* - - - \ No newline at end of file -- libgit2 0.21.2