Packages

  • package root
    Definition Classes
    root
  • package org
    Definition Classes
    root
  • package scalatestplus
    Definition Classes
    org
  • package play
    Definition Classes
    scalatestplus
  • trait MixedFixtures extends TestSuiteMixin with UnitFixture

    Trait that helps you provide different fixtures to different tests: a Application, a TestServer, or one of the Selenium WebDriverss.

    Trait that helps you provide different fixtures to different tests: a Application, a TestServer, or one of the Selenium WebDriverss.

    Trait MixedFixtures can be mixed into any fixture.Suite. For convenience it is mixed into MixedPlaySpec. In a fixture.Suite, tests can take a no-arg function. MixedFixtures provides several no-arg function classes (classes extending Function0) that can be used to provide different fixtures for different tests.

    If a test needs a Application, use the App function, like this:

    "provide an Application" in new App(fakeApp("ehcacheplugin" -> "disabled")) {
      app.configuration.getOptional[String]("ehcacheplugin") mustBe Some("disabled")
    }
    

    If a test needs an Application and running TestServer, use the Server function, like this:

    "send 404 on a bad request" in new Server {
      import java.net._
      val url = new URL("http://localhost:" + port + "/boom")
      val con = url.openConnection().asInstanceOf[HttpURLConnection]
      try con.getResponseCode mustBe 404
      finally con.disconnect()
    }
    

    If a test needs an Application, running TestServer, and Selenium driver, use one of functions Chrome, Firefox, HtmlUnit, InternetExplorer, or Safari. If the chosen Selenium driver is unavailable on the host platform, the test will be automatically canceled. Here's an example that uses the Safari function:

    "provide a web driver" in new Safari(fakeApp()) {
      go to ("http://localhost:" + port + "/testing")
      pageTitle mustBe "Test Page"
      click on find(name("b")).value
      eventually { pageTitle mustBe "scalatest" }
    }
    

    Here's a complete example:

    package org.scalatestplus.play.examples.mixedfixtures
    
    import play.api.test._
    import org.scalatestplus.play._
    import play.api.{Play, Application}
    import play.api.inject.guice._
    import play.api.routing._
    
    class ExampleSpec extends MixedPlaySpec {
    
      // Some helper methods
      def buildApp[A](elems: (String, String)*) = new GuiceApplicationBuilder()
        .configure(Map(elems:_*))
        .router(TestRoutes.router)
        .build()
    
      def getConfig(key: String)(implicit app: Application) = app.configuration.getOptional[String](key)
    
      "The App function" must {
        "provide an Application" in new App(buildApp("ehcacheplugin" -> "disabled")) {
          app.configuration.getOptional[String]("ehcacheplugin") mustBe Some("disabled")
        }
        "make the Application available implicitly" in new App(buildApp("ehcacheplugin" -> "disabled")) {
          getConfig("ehcacheplugin") mustBe Some("disabled")
        }
        "start the Application" in new App(buildApp("ehcacheplugin" -> "disabled")) {
          Play.maybeApplication mustBe Some(app)
        }
      }
      "The Server function" must {
        "provide an Application" in new Server(buildApp("ehcacheplugin" -> "disabled")) {
          app.configuration.getOptional[String]("ehcacheplugin") mustBe Some("disabled")
        }
        "make the Application available implicitly" in new Server(buildApp("ehcacheplugin" -> "disabled")) {
          getConfig("ehcacheplugin") mustBe Some("disabled")
        }
        "start the Application" in new Server(buildApp("ehcacheplugin" -> "disabled")) {
          Play.maybeApplication mustBe Some(app)
        }
        import Helpers._
        "send 404 on a bad request" in new Server {
          import java.net._
          val url = new URL("http://localhost:" + port + "/boom")
          val con = url.openConnection().asInstanceOf[HttpURLConnection]
          try con.getResponseCode mustBe 404
          finally con.disconnect()
        }
      }
      "The HtmlUnit function" must {
        "provide an Application" in new HtmlUnit(buildApp("ehcacheplugin" -> "disabled")) {
          app.configuration.getOptional[String]("ehcacheplugin") mustBe Some("disabled")
        }
        "make the Application available implicitly" in new HtmlUnit(buildApp("ehcacheplugin" -> "disabled")) {
          getConfig("ehcacheplugin") mustBe Some("disabled")
        }
        "start the Application" in new HtmlUnit(buildApp("ehcacheplugin" -> "disabled")) {
          Play.maybeApplication mustBe Some(app)
        }
        import Helpers._
        "send 404 on a bad request" in new HtmlUnit {
          import java.net._
          val url = new URL("http://localhost:" + port + "/boom")
          val con = url.openConnection().asInstanceOf[HttpURLConnection]
          try con.getResponseCode mustBe 404
          finally con.disconnect()
        }
        "provide a web driver" in new HtmlUnit(buildApp()) {
          go to ("http://localhost:" + port + "/testing")
          pageTitle mustBe "Test Page"
          click on find(name("b")).value
          eventually { pageTitle mustBe "scalatest" }
        }
      }
      "The Firefox function" must {
        "provide an Application" in new Firefox(buildApp("ehcacheplugin" -> "disabled")) {
          app.configuration.getOptional[String]("ehcacheplugin") mustBe Some("disabled")
        }
        "make the Application available implicitly" in new Firefox(buildApp("ehcacheplugin" -> "disabled")) {
          getConfig("ehcacheplugin") mustBe Some("disabled")
        }
        "start the Application" in new Firefox(buildApp("ehcacheplugin" -> "disabled")) {
          Play.maybeApplication mustBe Some(app)
        }
        import Helpers._
        "send 404 on a bad request" in new Firefox {
          import java.net._
          val url = new URL("http://localhost:" + port + "/boom")
          val con = url.openConnection().asInstanceOf[HttpURLConnection]
          try con.getResponseCode mustBe 404
          finally con.disconnect()
        }
        "provide a web driver" in new Firefox(buildApp()) {
          go to ("http://localhost:" + port + "/testing")
          pageTitle mustBe "Test Page"
          click on find(name("b")).value
          eventually { pageTitle mustBe "scalatest" }
        }
      }
      "The Safari function" must {
        "provide an Application" in new Safari(buildApp("ehcacheplugin" -> "disabled")) {
          app.configuration.getOptional[String]("ehcacheplugin") mustBe Some("disabled")
        }
        "make the Application available implicitly" in new Safari(buildApp("ehcacheplugin" -> "disabled")) {
          getConfig("ehcacheplugin") mustBe Some("disabled")
        }
        "start the Application" in new Safari(buildApp("ehcacheplugin" -> "disabled")) {
          Play.maybeApplication mustBe Some(app)
        }
        import Helpers._
        "send 404 on a bad request" in new Safari {
          import java.net._
          val url = new URL("http://localhost:" + port + "/boom")
          val con = url.openConnection().asInstanceOf[HttpURLConnection]
          try con.getResponseCode mustBe 404
          finally con.disconnect()
        }
        "provide a web driver" in new Safari(buildApp()) {
          go to ("http://localhost:" + port + "/testing")
          pageTitle mustBe "Test Page"
          click on find(name("b")).value
          eventually { pageTitle mustBe "scalatest" }
        }
      }
      "The Chrome function" must {
        "provide an Application" in new Chrome(buildApp("ehcacheplugin" -> "disabled")) {
          app.configuration.getOptional[String]("ehcacheplugin") mustBe Some("disabled")
        }
        "make the Application available implicitly" in new Chrome(buildApp("ehcacheplugin" -> "disabled")) {
          getConfig("ehcacheplugin") mustBe Some("disabled")
        }
        "start the Application" in new Chrome(buildApp("ehcacheplugin" -> "disabled")) {
          Play.maybeApplication mustBe Some(app)
        }
        import Helpers._
        "send 404 on a bad request" in new Chrome {
          import java.net._
          val url = new URL("http://localhost:" + port + "/boom")
          val con = url.openConnection().asInstanceOf[HttpURLConnection]
          try con.getResponseCode mustBe 404
          finally con.disconnect()
        }
        "provide a web driver" in new Chrome(buildApp()) {
          go to ("http://localhost:" + port + "/testing")
          pageTitle mustBe "Test Page"
          click on find(name("b")).value
          eventually { pageTitle mustBe "scalatest" }
        }
      }
      "The InternetExplorer function" must {
        "provide an Application" in new InternetExplorer(buildApp("ehcacheplugin" -> "disabled")) {
          app.configuration.getOptional[String]("ehcacheplugin") mustBe Some("disabled")
        }
        "make the Application available implicitly" in new InternetExplorer(buildApp("ehcacheplugin" -> "disabled")) {
          getConfig("ehcacheplugin") mustBe Some("disabled")
        }
        "start the Application" in new InternetExplorer(buildApp("ehcacheplugin" -> "disabled")) {
          Play.maybeApplication mustBe Some(app)
        }
        import Helpers._
        "send 404 on a bad request" in new InternetExplorer {
          import java.net._
          val url = new URL("http://localhost:" + port + "/boom")
          val con = url.openConnection().asInstanceOf[HttpURLConnection]
          try con.getResponseCode mustBe 404
          finally con.disconnect()
        }
        "provide a web driver" in new InternetExplorer(buildApp()) {
          go to ("http://localhost:" + port + "/testing")
          pageTitle mustBe "Test Page"
          click on find(name("b")).value
          eventually { pageTitle mustBe "scalatest" }
        }
      }
      "Any old thing" must {
        "be doable without much boilerplate" in { () =>
           1 + 1 mustEqual 2
         }
      }
    }
    

    Definition Classes
    play
  • App
  • Chrome
  • Firefox
  • HtmlUnit
  • InternetExplorer
  • Safari
  • Server

abstract class Server extends NoArg

NoArg subclass that provides a fixture composed of a Application and running TestServer.

Source
MixedFixtures.scala
Linear Supertypes
NoArg, () ⇒ Unit, DelayedInit, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Server
  2. NoArg
  3. Function0
  4. DelayedInit
  5. AnyRef
  6. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new Server(appFun: ⇒ Application = ..., port: Int = Helpers.testServerPort)

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. lazy val app: Application

    The lazy instance created from passed appFun

  5. def apply(): Unit

    Runs a TestServer using the passed-in Application and port before executing the test body, ensuring both are stopped after the test body completes.

    Runs a TestServer using the passed-in Application and port before executing the test body, ensuring both are stopped after the test body completes.

    Definition Classes
    Server → NoArg → Function0
  6. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  7. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @native() @throws( ... )
  8. final def delayedInit(body: ⇒ Unit): Unit
    Definition Classes
    NoArg → DelayedInit
  9. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  10. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  11. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  12. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  13. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  14. implicit def implicitApp: Application

    Makes the passed in Application implicit.

  15. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  16. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  17. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  18. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  19. val port: Int
  20. implicit lazy val portNumber: PortNumber

    Implicit PortNumber instance that wraps port.

    Implicit PortNumber instance that wraps port. The value returned from portNumber.value will be same as the value of port.

  21. final val styleName: Int
    Definition Classes
    NoArg
  22. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  23. def toString(): String
    Definition Classes
    Function0 → AnyRef → Any
  24. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  25. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  26. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @throws( ... )

Inherited from NoArg

Inherited from () ⇒ Unit

Inherited from DelayedInit

Inherited from AnyRef

Inherited from Any

Ungrouped