FakeWSResponseHeaders

mockws.FakeWSResponseHeaders
See theFakeWSResponseHeaders companion class

Attributes

Companion
class
Graph
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type

Members list

Type members

Inherited types

type MirroredElemLabels <: Tuple

The names of the product elements

The names of the product elements

Attributes

Inherited from:
Mirror
type MirroredLabel <: String

The name of the type

The name of the type

Attributes

Inherited from:
Mirror

Value members

Concrete methods

def toMultiMap(header: ResponseHeader): Map[String, Seq[String]]

Transition the response headers from

Transition the response headers from

Map[String, String]

to

Map[String, Seq[String]]

.

The closest behavior to the real WSClient implementations is wrap each value in a Seq() of size 1.

Justification: Multiple header response values for a single key are legal per RFC 2616 4.2 in two forms.

  1. Comma separated (e.g. Cache-Control: no-store, no-cache) NingWSClient represents these as Map("Cache-Control" -> Seq("no-store, no-cache")) rather than splitting them, so we shall too.

  2. Split into header key-value pairs (e.g. Cache-Control: no-store, Cache-Control: no-cache) Play 2.3 has a bug and is incapable of producing this response, so we don't have to worry about it. TL;DR: play.api.mvc.ResponseHeader uses a Map[String, String] which doesn't allow key collisions.

See: https://github.com/playframework/playframework/issues/3544

Attributes