Browse Source

Don't append an empty Cookie header

The HttpClient should not append `Cookie:` to the request if there are
no cookies.
Mark Story 8 years ago
parent
commit
1f87637644

+ 3 - 0
src/Http/Cookie/CookieCollection.php

@@ -226,6 +226,9 @@ class CookieCollection implements IteratorAggregate, Countable
         foreach ($cookies as $key => $value) {
             $cookiePairs[] = sprintf("%s=%s", rawurlencode($key), rawurlencode($value));
         }
+        if (empty($cookiePairs)) {
+            return $request;
+        }
 
         return $request->withHeader('Cookie', implode('; ', $cookiePairs));
     }

+ 13 - 0
tests/TestCase/Http/Cookie/CookieCollectionTest.php

@@ -357,6 +357,19 @@ class CookieCollectionTest extends TestCase
     }
 
     /**
+     * Test adding no cookies
+     *
+     * @return void
+     */
+    public function testAddToRequestNoCookies()
+    {
+        $collection = new CookieCollection();
+        $request = new ClientRequest('http://example.com/api');
+        $request = $collection->addToRequest($request);
+        $this->assertFalse($request->hasHeader('Cookie'), 'No header should be set.');
+    }
+
+    /**
      * Test adding cookies from the collection to request.
      *
      * @return void