UrlBuilderTest.php 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <?php
  2. namespace App\Tests\Service\Utils;
  3. use App\Service\Utils\UrlBuilder;
  4. use PHPUnit\Framework\TestCase;
  5. class UrlBuilderTest extends TestCase
  6. {
  7. public function testConcatPath() {
  8. $this->assertEquals(
  9. 'https://domain.org/abc/def',
  10. UrlBuilder::concatPath('https://domain.org', 'abc/def')
  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/',
  18. UrlBuilder::concatPath('https://domain.org', '')
  19. );
  20. }
  21. public function testConcatParameters() {
  22. $this->assertEquals(
  23. 'https://domain.org/abc',
  24. UrlBuilder::concatParameters('https://domain.org/abc', [])
  25. );
  26. $this->assertEquals(
  27. 'https://domain.org/abc?a=1&b&c=d%3De',
  28. UrlBuilder::concatParameters('https://domain.org/abc', ['a' => 1, 'b' => '', 'c' => 'd=e'])
  29. );
  30. $this->assertEquals(
  31. 'https://domain.org/abc?a=1&b=2',
  32. UrlBuilder::concatParameters('https://domain.org/abc?a=1', ['b' => 2])
  33. );
  34. }
  35. public function testPrependHttps() {
  36. $this->assertEquals(
  37. 'https://domain.org/abc',
  38. UrlBuilder::prependHttps('https://domain.org/abc')
  39. );
  40. $this->assertEquals(
  41. 'http://domain.org/abc',
  42. UrlBuilder::prependHttps('http://domain.org/abc')
  43. );
  44. $this->assertEquals(
  45. 'https://domain.org/abc',
  46. UrlBuilder::prependHttps('domain.org/abc')
  47. );
  48. }
  49. public function testConcat() {
  50. $this->assertEquals(
  51. 'https://domain.org/abc?a=1',
  52. UrlBuilder::concat('domain.org', 'abc', ['a' => 1], true)
  53. );
  54. }
  55. }