CleanupUrlTest.php 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <?php
  2. /**
  3. * Unitary tests for cleanup_url()
  4. */
  5. require_once 'application/Url.php';
  6. class CleanupUrlTest extends PHPUnit_Framework_TestCase
  7. {
  8. /**
  9. * Clean empty UrlThanks for building nothing
  10. */
  11. public function testCleanupUrlEmpty()
  12. {
  13. $this->assertEquals('', cleanup_url(''));
  14. }
  15. /**
  16. * Clean an already cleaned Url
  17. */
  18. public function testCleanupUrlAlreadyClean()
  19. {
  20. $ref = 'http://domain.tld:3000';
  21. $this->assertEquals($ref, cleanup_url($ref));
  22. $ref = $ref.'/path/to/dir/';
  23. $this->assertEquals($ref, cleanup_url($ref));
  24. }
  25. /**
  26. * Clean Url needing cleaning
  27. */
  28. public function testCleanupUrlNeedClean()
  29. {
  30. $ref = 'http://domain.tld:3000';
  31. $this->assertEquals($ref, cleanup_url($ref.'#tk.rss_all'));
  32. $this->assertEquals($ref, cleanup_url($ref.'#xtor=RSS-'));
  33. $this->assertEquals($ref, cleanup_url($ref.'#xtor=RSS-U3ht0tkc4b'));
  34. $this->assertEquals($ref, cleanup_url($ref.'?action_object_map=junk'));
  35. $this->assertEquals($ref, cleanup_url($ref.'?action_ref_map=Cr4p!'));
  36. $this->assertEquals($ref, cleanup_url($ref.'?action_type_map=g4R84g3'));
  37. $this->assertEquals($ref, cleanup_url($ref.'?fb_stuff=v41u3'));
  38. $this->assertEquals($ref, cleanup_url($ref.'?fb=71m3w4573'));
  39. $this->assertEquals($ref, cleanup_url($ref.'?utm_campaign=zomg'));
  40. $this->assertEquals($ref, cleanup_url($ref.'?utm_medium=numnum'));
  41. $this->assertEquals($ref, cleanup_url($ref.'?utm_source=c0d3'));
  42. $this->assertEquals($ref, cleanup_url($ref.'?utm_term=1n4l'));
  43. $this->assertEquals($ref, cleanup_url($ref.'?xtor=some-url'));
  44. $this->assertEquals($ref, cleanup_url($ref.'?xtor=some-url&fb=som3th1ng'));
  45. $this->assertEquals($ref, cleanup_url(
  46. $ref.'?fb=stuff&utm_campaign=zomg&utm_medium=numnum&utm_source=c0d3'
  47. ));
  48. $this->assertEquals($ref, cleanup_url(
  49. $ref.'?xtor=some-url&fb=som3th1ng#tk.rss_all'
  50. ));
  51. // ditch annoying query params and fragment, keep useful params
  52. $this->assertEquals(
  53. $ref.'?my=stuff&is=kept',
  54. cleanup_url(
  55. $ref.'?fb=zomg&my=stuff&utm_medium=numnum&is=kept#tk.rss_all'
  56. )
  57. );
  58. // ditch annoying query params, keep useful params and fragment
  59. $this->assertEquals(
  60. $ref.'?my=stuff&is=kept#again',
  61. cleanup_url(
  62. $ref.'?fb=zomg&my=stuff&utm_medium=numnum&is=kept#again'
  63. )
  64. );
  65. }
  66. }