UrlBuilderTest.php 2.1 KB

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