Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php/** This file is part of the Symfony package.** (c) Fabien Potencier <fabien@symfony.com>** For the full copyright and license information, please view the LICENSE* file that was distributed with this source code.*/namespace Symfony\Component\HttpFoundation\Test\Constraint;use PHPUnit\Framework\Constraint\Constraint;use Symfony\Component\HttpFoundation\Cookie;use Symfony\Component\HttpFoundation\Response;final class ResponseHasCookie extends Constraint{private $name;private $path;private $domain;public function __construct(string $name, string $path = '/', string $domain = null){$this->name = $name;$this->path = $path;$this->domain = $domain;}/*** {@inheritdoc}*/public function toString(): string{$str = sprintf('has cookie "%s"', $this->name);if ('/' !== $this->path) {$str .= sprintf(' with path "%s"', $this->path);}if ($this->domain) {$str .= sprintf(' for domain "%s"', $this->domain);}return $str;}/*** @param Response $response** {@inheritdoc}*/protected function matches($response): bool{return null !== $this->getCookie($response);}/*** @param Response $response** {@inheritdoc}*/protected function failureDescription($response): string{return 'the Response '.$this->toString();}private function getCookie(Response $response): ?Cookie{$cookies = $response->headers->getCookies();$filteredCookies = array_filter($cookies, function (Cookie $cookie) {return $cookie->getName() === $this->name && $cookie->getPath() === $this->path && $cookie->getDomain() === $this->domain;});return reset($filteredCookies) ?: null;}}