I used some examples from the pull request to build this in without using an updated version of play:
Create cookie:
val sessionCookie = Session.encodeAsCookie(Session(Map("key" -> "value")))
Create and execute fakeRequest:
val Some(result) = routeAndCall(FakeRequest(GET,"/").withHeaders(play.api.http.HeaderNames.COOKIE -> Cookies.encode(Seq(sessionCookie))))
Then to get stuff out I created the following:
Given the existing style of test methods:
status(result) must equalTo(OK)
I made:
def sessionCookie(result: Result): Option[Cookie] = cookies(result).get("PLAY_SESSION")
def session(result: Result): Session = Session.decodeFromCookie(sessionCookie(result))
Which you call:
session(result).get("key") must be("value")
Have to say this is not tested in anger. But see if it helps.