diff --git a/src/Server.php b/src/Server.php
new file mode 100644
index 0000000000000000000000000000000000000000..0bc3832e998afb44af5dcc240ad8dde3e7e04680
--- /dev/null
+++ b/src/Server.php
@@ -0,0 +1,40 @@
+<?php
+
+namespace Tal;
+
+/**
+ * Class Server
+ *
+ * This class is a stupid wrapper for php functions for testing.
+ *
+ * @package Tal
+ * @author Thomas Flori <thflori@gmail.com>
+ * @codeCoverageIgnore trivial
+ */
+class Server
+{
+    /**
+     * Send a raw HTTP header
+     *
+     * @link http://php.net/manual/en/function.header.php
+     * @param string $string The header string
+     * @param bool $replace
+     * @param int $responseCode
+     * @return void
+     */
+    public function header($string, $replace = true, $responseCode = null)
+    {
+        header($string, $replace, $responseCode);
+    }
+
+    /**
+     * Echos the given $string
+     *
+     * @param $string
+     * @return void
+     */
+    public function echo($string)
+    {
+        echo($string);
+    }
+}
diff --git a/src/ServerResponse.php b/src/ServerResponse.php
index 0310d4685caf0425d8675b455d4fe3df2fd812b1..94b03cad55d3875fc835daaa3026bf0ab2355b93 100644
--- a/src/ServerResponse.php
+++ b/src/ServerResponse.php
@@ -17,16 +17,19 @@ class ServerResponse extends Response implements ServerResponseInterface
     /**
      * Sends this response to the client.
      *
+     * @param int $bufferSize
+     * @param Server|null $server
      * @return static
      */
-    public function send(int $bufferSize = 8192)
+    public function send(int $bufferSize = 8192, Server $server = null)
     {
+        $server = $server ?? new Server();
         foreach ($this->getHeaders() as $name => $values) {
             if (strtolower($name) !== 'set-cookie') {
-                header(sprintf('%s: %s', $name, implode(',', $values)), false);
+                $server->header(sprintf('%s: %s', $name, implode(',', $values)), false);
             } else {
                 foreach ($values as $value) {
-                    header(sprintf('%s: %s', $name, $value), false);
+                    $server->header(sprintf('%s: %s', $name, $value), false);
                 }
             }
         }
@@ -37,14 +40,14 @@ class ServerResponse extends Response implements ServerResponseInterface
             $this->getStatusCode(),
             $this->getReasonPhrase()
         );
-        header($http_line, true, $this->getStatusCode());
+        $server->header($http_line, true, $this->getStatusCode());
 
         $stream = $this->getBody();
         if ($stream->isSeekable()) {
             $stream->rewind();
         }
         while (!$stream->eof()) {
-            echo $stream->read($bufferSize);
+            $server->echo($stream->read($bufferSize));
         }
         return $this;
     }