From f917697b8eb677b72fc6ec85d7abe4ff5d538e11 Mon Sep 17 00:00:00 2001
From: Alejandro Celaya <alejandro@alejandrocelaya.com>
Date: Tue, 19 Jul 2016 18:19:05 +0200
Subject: [PATCH] Added first tests to Rest module

---
 .../Middleware/CrossDomainMiddlewareTest.php  | 54 +++++++++++++++++++
 phpunit.xml.dist                              |  3 ++
 2 files changed, 57 insertions(+)
 create mode 100644 module/Rest/test/Middleware/CrossDomainMiddlewareTest.php

diff --git a/module/Rest/test/Middleware/CrossDomainMiddlewareTest.php b/module/Rest/test/Middleware/CrossDomainMiddlewareTest.php
new file mode 100644
index 00000000..92656c82
--- /dev/null
+++ b/module/Rest/test/Middleware/CrossDomainMiddlewareTest.php
@@ -0,0 +1,54 @@
+<?php
+namespace ShlinkioTest\Shlink\Rest\Middleware;
+
+use PHPUnit_Framework_TestCase as TestCase;
+use Shlinkio\Shlink\Rest\Middleware\CrossDomainMiddleware;
+use Zend\Diactoros\Response;
+use Zend\Diactoros\ServerRequestFactory;
+
+class CrossDomainMiddlewareTest extends TestCase
+{
+    /**
+     * @var CrossDomainMiddleware
+     */
+    protected $middleware;
+
+    public function setUp()
+    {
+        $this->middleware = new CrossDomainMiddleware();
+    }
+
+    /**
+     * @test
+     */
+    public function anyRequestIncludesTheAllowAccessHeader()
+    {
+        $response = $this->middleware->__invoke(
+            ServerRequestFactory::fromGlobals(),
+            new Response(),
+            function ($req, $resp) {
+                return $resp;
+            }
+        );
+
+        $headers = $response->getHeaders();
+        $this->assertArrayHasKey('Access-Control-Allow-Origin', $headers);
+        $this->assertArrayNotHasKey('Access-Control-Allow-Headers', $headers);
+    }
+
+    /**
+     * @test
+     */
+    public function optionsRequestIncludesMoreHeaders()
+    {
+        $request = ServerRequestFactory::fromGlobals(['REQUEST_METHOD' => 'OPTIONS']);
+
+        $response = $this->middleware->__invoke($request, new Response(), function ($req, $resp) {
+            return $resp;
+        });
+
+        $headers = $response->getHeaders();
+        $this->assertArrayHasKey('Access-Control-Allow-Origin', $headers);
+        $this->assertArrayHasKey('Access-Control-Allow-Headers', $headers);
+    }
+}
diff --git a/phpunit.xml.dist b/phpunit.xml.dist
index 61fefa13..2c43e876 100644
--- a/phpunit.xml.dist
+++ b/phpunit.xml.dist
@@ -6,6 +6,9 @@
         <testsuite name="Core">
             <directory>./module/Core/test</directory>
         </testsuite>
+        <testsuite name="Rest">
+            <directory>./module/Rest/test</directory>
+        </testsuite>
     </testsuites>
 
     <filter>