UrlBuilderTest.php 2.3 KB

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