72 lines
2.5 KiB
Scala
72 lines
2.5 KiB
Scala
package controllers
|
|
|
|
import play.api.mvc._
|
|
import play.api.i18n._
|
|
import org.scalatestplus.play._
|
|
import org.scalatestplus.play.guice.GuiceOneAppPerTest
|
|
import play.api.http.FileMimeTypes
|
|
import play.api.test._
|
|
import play.api.test.Helpers._
|
|
import play.api.test.CSRFTokenHelper._
|
|
|
|
import scala.concurrent.ExecutionContext
|
|
|
|
/**
|
|
* $model;format="Camel"$ form controller specs
|
|
*/
|
|
class $model;format="Camel"$ControllerSpec extends PlaySpec with GuiceOneAppPerTest with Injecting {
|
|
|
|
// Provide stubs for components based off Helpers.stubControllerComponents()
|
|
class StubComponents(cc:ControllerComponents = stubControllerComponents()) extends MessagesControllerComponents {
|
|
override val parsers: PlayBodyParsers = cc.parsers
|
|
override val messagesApi: MessagesApi = cc.messagesApi
|
|
override val langs: Langs = cc.langs
|
|
override val fileMimeTypes: FileMimeTypes = cc.fileMimeTypes
|
|
override val executionContext: ExecutionContext = cc.executionContext
|
|
override val actionBuilder: ActionBuilder[Request, AnyContent] = cc.actionBuilder
|
|
override val messagesActionBuilder: MessagesActionBuilder = new DefaultMessagesActionBuilderImpl(parsers.default, messagesApi)(executionContext)
|
|
}
|
|
|
|
"$model;format="Camel"$Controller GET" should {
|
|
|
|
"render the index page from a new instance of controller" in {
|
|
val controller = new $model;format="Camel"$Controller(new StubComponents())
|
|
val request = FakeRequest().withCSRFToken
|
|
val home = controller.$model;format="camel"$Get().apply(request)
|
|
|
|
status(home) mustBe OK
|
|
contentType(home) mustBe Some("text/html")
|
|
}
|
|
|
|
"render the index page from the application" in {
|
|
val controller = inject[$model;format="Camel"$Controller]
|
|
val request = FakeRequest().withCSRFToken
|
|
val home = controller.$model;format="camel"$Get().apply(request)
|
|
|
|
status(home) mustBe OK
|
|
contentType(home) mustBe Some("text/html")
|
|
}
|
|
|
|
"render the index page from the router" in {
|
|
val request = CSRFTokenHelper.addCSRFToken(FakeRequest(GET, "/$model;format="camel"$"))
|
|
val home = route(app, request).get
|
|
|
|
status(home) mustBe OK
|
|
contentType(home) mustBe Some("text/html")
|
|
}
|
|
}
|
|
|
|
"$model;format="Camel"$Controller POST" should {
|
|
"process form" in {
|
|
val request = {
|
|
FakeRequest(POST, "/$model;format="camel"$")
|
|
.withFormUrlEncodedBody("name" -> "play", "age" -> "4")
|
|
}
|
|
val home = route(app, request).get
|
|
|
|
status(home) mustBe SEE_OTHER
|
|
}
|
|
}
|
|
|
|
}
|