Browse Source

Added a setter for cookie collection.
Added getCookies() method for consistency with setCookies()
and deprecated cookies().

Robert Pustułka 8 years ago
parent
commit
ddfa92c9a3
2 changed files with 44 additions and 0 deletions
  1. 24 0
      src/Http/Client.php
  2. 20 0
      tests/TestCase/Http/ClientTest.php

+ 24 - 0
src/Http/Client.php

@@ -176,6 +176,7 @@ class Client
      * Get the cookies stored in the Client.
      *
      * @return \Cake\Http\Cookie\CookieCollection
+     * @deprecated 3.5.0 Use getCookies() instead.
      */
     public function cookies()
     {
@@ -183,6 +184,29 @@ class Client
     }
 
     /**
+     * Get the cookies stored in the Client.
+     *
+     * @return \Cake\Http\Cookie\CookieCollection
+     */
+    public function getCookies()
+    {
+        return $this->_cookies;
+    }
+
+    /**
+     * Sets the cookie collection.
+     *
+     * @param \Cake\Http\Cookie\CookieCollection $cookies Cookie collection to be set.
+     * @return $this
+     */
+    public function setCookies(CookieCollection $cookies)
+    {
+        $this->_cookies = $cookies;
+
+        return $this;
+    }
+
+    /**
      * Do a GET request.
      *
      * The $data argument supports a special `_content` key

+ 20 - 0
tests/TestCase/Http/ClientTest.php

@@ -17,6 +17,7 @@ use Cake\Core\Configure;
 use Cake\Http\Client;
 use Cake\Http\Client\Request;
 use Cake\Http\Client\Response;
+use Cake\Http\Cookie\CookieCollection;
 use Cake\TestSuite\TestCase;
 
 /**
@@ -621,6 +622,25 @@ class ClientTest extends TestCase
     }
 
     /**
+     * Test cookie collection getter and setter,
+     *
+     * @return void
+     */
+    public function testCookies()
+    {
+        $jar = new CookieCollection();
+        $http = new Client([
+            'cookieJar' => $jar
+        ]);
+
+        $this->assertSame($jar, $http->getCookies());
+
+        $cookies = new CookieCollection();
+        $http->setCookies($cookies);
+        $this->assertSame($cookies, $http->getCookies());
+    }
+
+    /**
      * test head request with querystring data
      *
      * @return void