summaryrefslogtreecommitdiff
path: root/cask
diff options
context:
space:
mode:
authorLi Haoyi <haoyi.sg@gmail.com>2019-10-09 10:44:14 +0800
committerLi Haoyi <haoyi.sg@gmail.com>2019-10-09 10:47:20 +0800
commit0f0f945abd365c9f6f83b3d315cea30eacb6ed51 (patch)
tree4b812b4f6650a42056aa31c2f712b3d7e4125925 /cask
parente21d5ab3526937619c59dd01114b48521eee9d26 (diff)
downloadcask-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')
-rw-r--r--cask/src/cask/decorators/compress.scala5
-rw-r--r--cask/src/cask/router/Result.scala6
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
}