UrlBuilderTest.php 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  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. '/abc/def',
  27. UrlBuilder::concatPath('/abc/', ['/def'])
  28. );
  29. $this->assertEquals(
  30. 'https://domain.org/',
  31. UrlBuilder::concatPath('https://domain.org', [''])
  32. );
  33. }
  34. /**
  35. * @see UrlBuilder::concatParameters()
  36. */
  37. public function testConcatParameters(): void
  38. {
  39. $this->assertEquals(
  40. 'https://domain.org/abc',
  41. UrlBuilder::concatParameters('https://domain.org/abc', [])
  42. );
  43. $this->assertEquals(
  44. 'https://domain.org/abc?a=1&b&c=d%3De',
  45. UrlBuilder::concatParameters('https://domain.org/abc', ['a' => 1, 'b' => '', 'c' => 'd=e'])
  46. );
  47. $this->assertEquals(
  48. 'https://domain.org/abc?a=1&b=2',
  49. UrlBuilder::concatParameters('https://domain.org/abc?a=1', ['b' => 2])
  50. );
  51. }
  52. /**
  53. * @see UrlBuilder::prependHttps()
  54. */
  55. public function testPrependHttps(): void
  56. {
  57. $this->assertEquals(
  58. 'https://domain.org/abc',
  59. UrlBuilder::prependHttps('https://domain.org/abc')
  60. );
  61. $this->assertEquals(
  62. 'http://domain.org/abc',
  63. UrlBuilder::prependHttps('http://domain.org/abc')
  64. );
  65. $this->assertEquals(
  66. 'https://domain.org/abc',
  67. UrlBuilder::prependHttps('domain.org/abc')
  68. );
  69. }
  70. /**
  71. * @see UrlBuilder::concat()
  72. */
  73. public function testConcat(): void
  74. {
  75. $this->assertEquals(
  76. 'https://domain.org/abc?a=1',
  77. UrlBuilder::concat('domain.org', ['abc'], ['a' => 1], true)
  78. );
  79. }
  80. }