Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x

ResponseHeaderLocationSame.php

Namespace

Symfony\Component\HttpFoundation\Test\Constraint

File

vendor/symfony/http-foundation/Test/Constraint/ResponseHeaderLocationSame.php

View source
<?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\Request;
use Symfony\Component\HttpFoundation\Response;
final class ResponseHeaderLocationSame extends Constraint {
    public function __construct(Request $request, string $expectedValue) {
    }
    public function toString() : string {
        return \sprintf('has header "Location" matching "%s"', $this->expectedValue);
    }
    protected function matches($other) : bool {
        if (!$other instanceof Response) {
            return false;
        }
        $location = $other->headers
            ->get('Location');
        if (null === $location) {
            return false;
        }
        return $this->toFullUrl($this->expectedValue) === $this->toFullUrl($location);
    }
    protected function failureDescription($other) : string {
        return 'the Response ' . $this->toString();
    }
    private function toFullUrl(string $url) : string {
        if (null === parse_url($url, \PHP_URL_PATH)) {
            $url .= '/';
        }
        if (str_starts_with($url, '//')) {
            return \sprintf('%s:%s', $this->request
                ->getScheme(), $url);
        }
        if (str_starts_with($url, '/')) {
            return $this->request
                ->getSchemeAndHttpHost() . $url;
        }
        return $url;
    }

}

Classes

Title Deprecated Summary
ResponseHeaderLocationSame

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal