UriComparatorTest.php 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <?php
  2. declare(strict_types=1);
  3. namespace GuzzleHttp\Tests\Psr7;
  4. use GuzzleHttp\Psr7\Uri;
  5. use GuzzleHttp\Psr7\UriComparator;
  6. use PHPUnit\Framework\TestCase;
  7. /**
  8. * @covers \GuzzleHttp\Psr7\UriComparator
  9. */
  10. class UriComparatorTest extends TestCase
  11. {
  12. /**
  13. * @dataProvider getCrossOriginExamples
  14. */
  15. public function testIsCrossOrigin(string $original, string $modified, bool $expected): void
  16. {
  17. self::assertSame($expected, UriComparator::isCrossOrigin(new Uri($original), new Uri($modified)));
  18. }
  19. public function getCrossOriginExamples(): array
  20. {
  21. return [
  22. ['http://example.com/123', 'http://example.com/', false],
  23. ['http://example.com/123', 'http://example.com:80/', false],
  24. ['http://example.com:80/123', 'http://example.com/', false],
  25. ['http://example.com:80/123', 'http://example.com:80/', false],
  26. ['http://example.com/123', 'https://example.com/', true],
  27. ['http://example.com/123', 'http://www.example.com/', true],
  28. ['http://example.com/123', 'http://example.com:81/', true],
  29. ['http://example.com:80/123', 'http://example.com:81/', true],
  30. ['https://example.com/123', 'https://example.com/', false],
  31. ['https://example.com/123', 'https://example.com:443/', false],
  32. ['https://example.com:443/123', 'https://example.com/', false],
  33. ['https://example.com:443/123', 'https://example.com:443/', false],
  34. ['https://example.com/123', 'http://example.com/', true],
  35. ['https://example.com/123', 'https://www.example.com/', true],
  36. ['https://example.com/123', 'https://example.com:444/', true],
  37. ['https://example.com:443/123', 'https://example.com:444/', true],
  38. ];
  39. }
  40. }