UrlBuilderTest.php 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <?php
  2. /** @noinspection HttpUrlsUsage */
  3. namespace App\Tests\Unit\Service\Utils;
  4. use App\Service\Utils\UrlBuilder;
  5. use PHPUnit\Framework\TestCase;
  6. class UrlBuilderTest extends TestCase
  7. {
  8. /**
  9. * @see UrlBuilder::concatPath()
  10. */
  11. public function testConcatPath(): void
  12. {
  13. $this->assertEquals(
  14. 'https://domain.org/abc/def',
  15. UrlBuilder::concatPath('https://domain.org', ['abc/def'])
  16. );
  17. $this->assertEquals(
  18. 'https://domain.org/abc/def',
  19. UrlBuilder::concatPath('https://domain.org/', ['/abc/def'])
  20. );
  21. $this->assertEquals(
  22. 'https://domain.org/abc/def/ghi/jkl',
  23. UrlBuilder::concatPath('https://domain.org/', ['/abc/def', 'ghi', '//jkl'])
  24. );
  25. $this->assertEquals(
  26. 'https://domain.org/',
  27. UrlBuilder::concatPath('https://domain.org', [''])
  28. );
  29. }
  30. /**
  31. * @see UrlBuilder::concatParameters()
  32. */
  33. public function testConcatParameters(): void
  34. {
  35. $this->assertEquals(
  36. 'https://domain.org/abc',
  37. UrlBuilder::concatParameters('https://domain.org/abc', [])
  38. );
  39. $this->assertEquals(
  40. 'https://domain.org/abc?a=1&b&c=d%3De',
  41. UrlBuilder::concatParameters('https://domain.org/abc', ['a' => 1, 'b' => '', 'c' => 'd=e'])
  42. );
  43. $this->assertEquals(
  44. 'https://domain.org/abc?a=1&b=2',
  45. UrlBuilder::concatParameters('https://domain.org/abc?a=1', ['b' => 2])
  46. );
  47. }
  48. /**
  49. * @see UrlBuilder::prependHttps()
  50. */
  51. public function testPrependHttps(): void
  52. {
  53. $this->assertEquals(
  54. 'https://domain.org/abc',
  55. UrlBuilder::prependHttps('https://domain.org/abc')
  56. );
  57. $this->assertEquals(
  58. 'http://domain.org/abc',
  59. UrlBuilder::prependHttps('http://domain.org/abc')
  60. );
  61. $this->assertEquals(
  62. 'https://domain.org/abc',
  63. UrlBuilder::prependHttps('domain.org/abc')
  64. );
  65. }
  66. /**
  67. * @see UrlBuilder::concat()
  68. */
  69. public function testConcat(): void
  70. {
  71. $this->assertEquals(
  72. 'https://domain.org/abc?a=1',
  73. UrlBuilder::concat('domain.org', ['abc'], ['a' => 1], true)
  74. );
  75. }
  76. }