From e110d4028b7ad0ded626c7141ec4fbc5330823be Mon Sep 17 00:00:00 2001 From: Mark Harrah Date: Fri, 15 Jan 2010 20:00:25 -0500 Subject: [PATCH] test case for running webapps directly out of src/main/webapp --- .../servlet-direct/changes/MyServlet.scala | 20 ++++++++++++++++++ .../servlet-direct/project/build.properties | 3 +++ .../project/build/src/WebappBuild.scala | 21 +++++++++++++++++++ .../src/main/scala/test/MyServlet.scala | 20 ++++++++++++++++++ .../src/main/webapp/WEB-INF/web.xml | 18 ++++++++++++++++ src/sbt-test/web/servlet-direct/test | 14 +++++++++++++ 6 files changed, 96 insertions(+) create mode 100644 src/sbt-test/web/servlet-direct/changes/MyServlet.scala create mode 100644 src/sbt-test/web/servlet-direct/project/build.properties create mode 100644 src/sbt-test/web/servlet-direct/project/build/src/WebappBuild.scala create mode 100644 src/sbt-test/web/servlet-direct/src/main/scala/test/MyServlet.scala create mode 100644 src/sbt-test/web/servlet-direct/src/main/webapp/WEB-INF/web.xml create mode 100644 src/sbt-test/web/servlet-direct/test diff --git a/src/sbt-test/web/servlet-direct/changes/MyServlet.scala b/src/sbt-test/web/servlet-direct/changes/MyServlet.scala new file mode 100644 index 000000000..15dc6f7eb --- /dev/null +++ b/src/sbt-test/web/servlet-direct/changes/MyServlet.scala @@ -0,0 +1,20 @@ +package test + +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +class MyServlet extends HttpServlet { + + val html = + Hello, Scala 2! + Hello, Scala 2! This is a servlet. + + + override def doGet(req:HttpServletRequest, resp:HttpServletResponse) { + resp.setContentType("text/html") + resp.getWriter().print(html.toString) + } + def check28(f: Int = 3) = f +} + diff --git a/src/sbt-test/web/servlet-direct/project/build.properties b/src/sbt-test/web/servlet-direct/project/build.properties new file mode 100644 index 000000000..34162cdcd --- /dev/null +++ b/src/sbt-test/web/servlet-direct/project/build.properties @@ -0,0 +1,3 @@ +project.organization=tester +project.name=sbtweb +project.version=1.0 diff --git a/src/sbt-test/web/servlet-direct/project/build/src/WebappBuild.scala b/src/sbt-test/web/servlet-direct/project/build/src/WebappBuild.scala new file mode 100644 index 000000000..bca37e84d --- /dev/null +++ b/src/sbt-test/web/servlet-direct/project/build/src/WebappBuild.scala @@ -0,0 +1,21 @@ +import sbt._ + +class WebappBuild(info: ProjectInfo) extends DefaultWebProject(info) { + + val servlet_api = "org.mortbay.jetty" % "servlet-api-2.5" % "6.1.14" % "provided->default" + val jetty_servlet = "org.mortbay.jetty" % "jetty" % "6.1.14" % "test->default" + + def indexURL = new java.net.URL("http://localhost:8080") + def indexFile = new java.io.File("index.html") + import Process._ + lazy val getPage = execTask { indexURL #> indexFile } + lazy val checkPage = task { args => task { checkHelloWorld(args.mkString(" ")) } dependsOn getPage } + + override def jettyWebappPath = webappPath + + private def checkHelloWorld(checkString: String) = + { + val value = xsbt.FileUtilities.read(indexFile) + if(value.contains(checkString)) None else Some("index.html did not contain '" + checkString + "' :\n" +value) + } +} diff --git a/src/sbt-test/web/servlet-direct/src/main/scala/test/MyServlet.scala b/src/sbt-test/web/servlet-direct/src/main/scala/test/MyServlet.scala new file mode 100644 index 000000000..9d0365c5a --- /dev/null +++ b/src/sbt-test/web/servlet-direct/src/main/scala/test/MyServlet.scala @@ -0,0 +1,20 @@ +package test + +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +class MyServlet extends HttpServlet { + + val html = + Hello, Scala! + Hello, Scala! This is a servlet. + + + override def doGet(req:HttpServletRequest, resp:HttpServletResponse) { + resp.setContentType("text/html") + resp.getWriter().print(html.toString) + } + def check28(f: Int = 3) = f +} + diff --git a/src/sbt-test/web/servlet-direct/src/main/webapp/WEB-INF/web.xml b/src/sbt-test/web/servlet-direct/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 000000000..bff12b49b --- /dev/null +++ b/src/sbt-test/web/servlet-direct/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,18 @@ + + + + Archetype Created Web Application + + + Home + test.MyServlet + + + Home + / + + + + diff --git a/src/sbt-test/web/servlet-direct/test b/src/sbt-test/web/servlet-direct/test new file mode 100644 index 000000000..a04dfa4d7 --- /dev/null +++ b/src/sbt-test/web/servlet-direct/test @@ -0,0 +1,14 @@ +> ++2.8.0.Beta1-RC6 +> update +> jetty-run +$ pause +> check-page "Hello, Scala!" + +$ copy-file changes/MyServlet.scala src/main/scala/test/MyServlet.scala + +> prepare-webapp +> jetty-reload +> check-page "Hello, Scala 2!" + +> jetty-stop +-> check-page "Hello World 2!" \ No newline at end of file