| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- <?php
- /** @noinspection HttpUrlsUsage */
- namespace App\Tests\Unit\Service\Utils;
- use App\Service\Utils\UrlBuilder;
- use PHPUnit\Framework\MockObject\MockObject;
- use PHPUnit\Framework\TestCase;
- class UrlBuilderTest extends TestCase
- {
- private function getMockFor(string $methodName): UrlBuilder|MockObject
- {
- return $this
- ->getMockBuilder(UrlBuilder::class)
- ->setConstructorArgs(['https://mydomain.net'])
- ->setMethodsExcept([$methodName])
- ->getMock();
- }
- /**
- * @see UrlBuilder::concatPath()
- */
- public function testConcatPath(): void
- {
- $this->assertEquals(
- 'https://domain.org/abc/def',
- UrlBuilder::concatPath('https://domain.org', ['abc/def'])
- );
- $this->assertEquals(
- 'https://domain.org/abc/def',
- UrlBuilder::concatPath('https://domain.org/', ['/abc/def'])
- );
- $this->assertEquals(
- 'https://domain.org/abc/def/ghi/jkl/',
- UrlBuilder::concatPath('https://domain.org/', ['/abc/def', 'ghi', '//jkl/'])
- );
- $this->assertEquals(
- '/abc/def',
- UrlBuilder::concatPath('/abc/', ['/def'])
- );
- $this->assertEquals(
- 'https://domain.org/',
- UrlBuilder::concatPath('https://domain.org', [''])
- );
- }
- /**
- * @see UrlBuilder::concatParameters()
- */
- public function testConcatParameters(): void
- {
- $this->assertEquals(
- 'https://domain.org/abc',
- UrlBuilder::concatParameters('https://domain.org/abc', [])
- );
- $this->assertEquals(
- 'https://domain.org/abc?a=1&b&c=d%3De',
- UrlBuilder::concatParameters('https://domain.org/abc', ['a' => 1, 'b' => '', 'c' => 'd=e'])
- );
- $this->assertEquals(
- 'https://domain.org/abc?a=1&b=2',
- UrlBuilder::concatParameters('https://domain.org/abc?a=1', ['b' => 2])
- );
- }
- /**
- * @see UrlBuilder::prependHttps()
- */
- public function testPrependHttps(): void
- {
- $this->assertEquals(
- 'https://domain.org/abc',
- UrlBuilder::prependHttps('https://domain.org/abc')
- );
- $this->assertEquals(
- 'http://domain.org/abc',
- UrlBuilder::prependHttps('http://domain.org/abc')
- );
- $this->assertEquals(
- 'https://domain.org/abc',
- UrlBuilder::prependHttps('domain.org/abc')
- );
- }
- /**
- * @see UrlBuilder::concat()
- */
- public function testConcat(): void
- {
- $this->assertEquals(
- 'https://domain.org/abc?a=1',
- UrlBuilder::concat('domain.org', ['abc'], ['a' => 1], true)
- );
- }
- public function testGetRelativeUrl(): void
- {
- $urlBuilder = $this->getMockFor('getRelativeUrl');
- $this->assertEquals(
- '/abc?q=1',
- $urlBuilder->getRelativeUrl('https://mydomain.net/abc?q=1')
- );
- $this->assertEquals(
- '/abc?q=1',
- $urlBuilder->getRelativeUrl('/abc?q=1')
- );
- }
- public function testGetAbsoluteUrl(): void
- {
- $urlBuilder = $this->getMockFor('getAbsoluteUrl');
- $this->assertEquals(
- 'https://mydomain.net/abc?q=1',
- $urlBuilder->getAbsoluteUrl('/abc?q=1')
- );
- }
- }
|