URL cleanup: add 'campaign_' to the annoying parameters
Closes https://github.com/shaarli/Shaarli/issues/735 Signed-off-by: VirtualTam <virtualtam@flibidi.net>
This commit is contained in:
parent
67a1d5d823
commit
eaf2524887
2 changed files with 69 additions and 32 deletions
|
@ -94,7 +94,10 @@ class Url
|
||||||
'utm_',
|
'utm_',
|
||||||
|
|
||||||
// ATInternet
|
// ATInternet
|
||||||
'xtor='
|
'xtor=',
|
||||||
|
|
||||||
|
// Other
|
||||||
|
'campaign_'
|
||||||
);
|
);
|
||||||
|
|
||||||
private static $annoyingFragments = array(
|
private static $annoyingFragments = array(
|
||||||
|
|
|
@ -8,7 +8,13 @@
|
||||||
class CleanupUrlTest extends PHPUnit_Framework_TestCase
|
class CleanupUrlTest extends PHPUnit_Framework_TestCase
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Clean empty UrlThanks for building nothing
|
* @var string reference URL
|
||||||
|
*/
|
||||||
|
protected $ref = 'http://domain.tld:3000';
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clean empty URL
|
||||||
*/
|
*/
|
||||||
public function testCleanupUrlEmpty()
|
public function testCleanupUrlEmpty()
|
||||||
{
|
{
|
||||||
|
@ -16,59 +22,87 @@ public function testCleanupUrlEmpty()
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Clean an already cleaned Url
|
* Clean an already cleaned URL
|
||||||
*/
|
*/
|
||||||
public function testCleanupUrlAlreadyClean()
|
public function testCleanupUrlAlreadyClean()
|
||||||
{
|
{
|
||||||
$ref = 'http://domain.tld:3000';
|
$this->assertEquals($this->ref, cleanup_url($this->ref));
|
||||||
$this->assertEquals($ref, cleanup_url($ref));
|
$this->ref2 = $this->ref.'/path/to/dir/';
|
||||||
$ref = $ref.'/path/to/dir/';
|
$this->assertEquals($this->ref2, cleanup_url($this->ref2));
|
||||||
$this->assertEquals($ref, cleanup_url($ref));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Clean Url needing cleaning
|
* Clean URL fragments
|
||||||
*/
|
*/
|
||||||
public function testCleanupUrlNeedClean()
|
public function testCleanupUrlFragment()
|
||||||
{
|
{
|
||||||
$ref = 'http://domain.tld:3000';
|
$this->assertEquals($this->ref, cleanup_url($this->ref.'#tk.rss_all'));
|
||||||
$this->assertEquals($ref, cleanup_url($ref.'#tk.rss_all'));
|
$this->assertEquals($this->ref, cleanup_url($this->ref.'#xtor=RSS-'));
|
||||||
$this->assertEquals($ref, cleanup_url($ref.'#xtor=RSS-'));
|
$this->assertEquals($this->ref, cleanup_url($this->ref.'#xtor=RSS-U3ht0tkc4b'));
|
||||||
$this->assertEquals($ref, cleanup_url($ref.'#xtor=RSS-U3ht0tkc4b'));
|
}
|
||||||
$this->assertEquals($ref, cleanup_url($ref.'?action_object_map=junk'));
|
|
||||||
$this->assertEquals($ref, cleanup_url($ref.'?action_ref_map=Cr4p!'));
|
|
||||||
$this->assertEquals($ref, cleanup_url($ref.'?action_type_map=g4R84g3'));
|
|
||||||
|
|
||||||
$this->assertEquals($ref, cleanup_url($ref.'?fb_stuff=v41u3'));
|
/**
|
||||||
$this->assertEquals($ref, cleanup_url($ref.'?fb=71m3w4573'));
|
* Clean URL query - single annoying parameter
|
||||||
|
*/
|
||||||
|
public function testCleanupUrlQuerySingle()
|
||||||
|
{
|
||||||
|
$this->assertEquals($this->ref, cleanup_url($this->ref.'?action_object_map=junk'));
|
||||||
|
$this->assertEquals($this->ref, cleanup_url($this->ref.'?action_ref_map=Cr4p!'));
|
||||||
|
$this->assertEquals($this->ref, cleanup_url($this->ref.'?action_type_map=g4R84g3'));
|
||||||
|
|
||||||
$this->assertEquals($ref, cleanup_url($ref.'?utm_campaign=zomg'));
|
$this->assertEquals($this->ref, cleanup_url($this->ref.'?fb_stuff=v41u3'));
|
||||||
$this->assertEquals($ref, cleanup_url($ref.'?utm_medium=numnum'));
|
$this->assertEquals($this->ref, cleanup_url($this->ref.'?fb=71m3w4573'));
|
||||||
$this->assertEquals($ref, cleanup_url($ref.'?utm_source=c0d3'));
|
|
||||||
$this->assertEquals($ref, cleanup_url($ref.'?utm_term=1n4l'));
|
|
||||||
|
|
||||||
$this->assertEquals($ref, cleanup_url($ref.'?xtor=some-url'));
|
$this->assertEquals($this->ref, cleanup_url($this->ref.'?utm_campaign=zomg'));
|
||||||
$this->assertEquals($ref, cleanup_url($ref.'?xtor=some-url&fb=som3th1ng'));
|
$this->assertEquals($this->ref, cleanup_url($this->ref.'?utm_medium=numnum'));
|
||||||
$this->assertEquals($ref, cleanup_url(
|
$this->assertEquals($this->ref, cleanup_url($this->ref.'?utm_source=c0d3'));
|
||||||
$ref.'?fb=stuff&utm_campaign=zomg&utm_medium=numnum&utm_source=c0d3'
|
$this->assertEquals($this->ref, cleanup_url($this->ref.'?utm_term=1n4l'));
|
||||||
|
|
||||||
|
$this->assertEquals($this->ref, cleanup_url($this->ref.'?xtor=some-url'));
|
||||||
|
|
||||||
|
$this->assertEquals($this->ref, cleanup_url($this->ref.'?campaign_name=junk'));
|
||||||
|
$this->assertEquals($this->ref, cleanup_url($this->ref.'?campaign_start=junk'));
|
||||||
|
$this->assertEquals($this->ref, cleanup_url($this->ref.'?campaign_item_index=junk'));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clean URL query - multiple annoying parameters
|
||||||
|
*/
|
||||||
|
public function testCleanupUrlQueryMultiple()
|
||||||
|
{
|
||||||
|
$this->assertEquals($this->ref, cleanup_url($this->ref.'?xtor=some-url&fb=som3th1ng'));
|
||||||
|
|
||||||
|
$this->assertEquals($this->ref, cleanup_url(
|
||||||
|
$this->ref.'?fb=stuff&utm_campaign=zomg&utm_medium=numnum&utm_source=c0d3'
|
||||||
));
|
));
|
||||||
$this->assertEquals($ref, cleanup_url(
|
|
||||||
$ref.'?xtor=some-url&fb=som3th1ng#tk.rss_all'
|
$this->assertEquals($this->ref, cleanup_url(
|
||||||
|
$this->ref.'?campaign_start=zomg&campaign_name=numnum'
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clean URL query - multiple annoying parameters and fragment
|
||||||
|
*/
|
||||||
|
public function testCleanupUrlQueryFragment()
|
||||||
|
{
|
||||||
|
$this->assertEquals($this->ref, cleanup_url(
|
||||||
|
$this->ref.'?xtor=some-url&fb=som3th1ng#tk.rss_all'
|
||||||
));
|
));
|
||||||
|
|
||||||
// ditch annoying query params and fragment, keep useful params
|
// ditch annoying query params and fragment, keep useful params
|
||||||
$this->assertEquals(
|
$this->assertEquals(
|
||||||
$ref.'?my=stuff&is=kept',
|
$this->ref.'?my=stuff&is=kept',
|
||||||
cleanup_url(
|
cleanup_url(
|
||||||
$ref.'?fb=zomg&my=stuff&utm_medium=numnum&is=kept#tk.rss_all'
|
$this->ref.'?fb=zomg&my=stuff&utm_medium=numnum&is=kept#tk.rss_all'
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
// ditch annoying query params, keep useful params and fragment
|
// ditch annoying query params, keep useful params and fragment
|
||||||
$this->assertEquals(
|
$this->assertEquals(
|
||||||
$ref.'?my=stuff&is=kept#again',
|
$this->ref.'?my=stuff&is=kept#again',
|
||||||
cleanup_url(
|
cleanup_url(
|
||||||
$ref.'?fb=zomg&my=stuff&utm_medium=numnum&is=kept#again'
|
$this->ref.'?fb=zomg&my=stuff&utm_medium=numnum&is=kept#again'
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue