diff options
author | Li Haoyi <haoyi.sg@gmail.com> | 2019-10-09 10:44:14 +0800 |
---|---|---|
committer | Li Haoyi <haoyi.sg@gmail.com> | 2019-10-09 10:47:20 +0800 |
commit | 0f0f945abd365c9f6f83b3d315cea30eacb6ed51 (patch) | |
tree | 4b812b4f6650a42056aa31c2f712b3d7e4125925 /cask/src | |
parent | e21d5ab3526937619c59dd01114b48521eee9d26 (diff) | |
download | cask-0f0f945abd365c9f6f83b3d315cea30eacb6ed51.tar.gz cask-0f0f945abd365c9f6f83b3d315cea30eacb6ed51.tar.bz2 cask-0f0f945abd365c9f6f83b3d315cea30eacb6ed51.zip |
Add test to verify `compress` decorator is properly passing through irrelevant results
Diffstat (limited to 'cask/src')
-rw-r--r-- | cask/src/cask/decorators/compress.scala | 5 | ||||
-rw-r--r-- | cask/src/cask/router/Result.scala | 6 |
2 files changed, 6 insertions, 5 deletions
diff --git a/cask/src/cask/decorators/compress.scala b/cask/src/cask/decorators/compress.scala index 61d76f6..17931fd 100644 --- a/cask/src/cask/decorators/compress.scala +++ b/cask/src/cask/decorators/compress.scala @@ -11,7 +11,8 @@ class compress extends cask.RawDecorator{ .toSeq .flatMap(_.asScala) .flatMap(_.split(", ")) - delegate(Map()).transform{ case v: cask.Response[_] => + val r = delegate(Map()) + val finalResult = r.transform{ case v: cask.Response.Raw => val (newData, newHeaders) = if (acceptEncodings.exists(_.toLowerCase == "gzip")) { new Response.Data { def write(out: OutputStream): Unit = { @@ -37,6 +38,6 @@ class compress extends cask.RawDecorator{ v.cookies ) } - + finalResult } } diff --git a/cask/src/cask/router/Result.scala b/cask/src/cask/router/Result.scala index e38ee28..3c2f957 100644 --- a/cask/src/cask/router/Result.scala +++ b/cask/src/cask/router/Result.scala @@ -9,7 +9,7 @@ package cask.router */ sealed trait Result[+T]{ def map[V](f: T => V): Result[V] - def transform[V](f: PartialFunction[T, V]): Result[V] + def transform[V](f: PartialFunction[Any, V]): Result[V] } object Result{ @@ -19,7 +19,7 @@ object Result{ */ case class Success[T](value: T) extends Result[T]{ def map[V](f: T => V) = Success(f(value)) - def transform[V](f: PartialFunction[T, V]) = f.lift(value) match { + def transform[V](f: PartialFunction[Any, V]) = f.lift(value) match { case None => Success(value).asInstanceOf[Result[V]] case Some(res) => Success(res) } @@ -30,7 +30,7 @@ object Result{ */ sealed trait Error extends Result[Nothing]{ def map[V](f: Nothing => V) = this - def transform[V](f: PartialFunction[Nothing, V]) = this + def transform[V](f: PartialFunction[Any, V]) = this } |