Completed
Push — master ( d752b0...a10eb8 )
by
unknown
04:31
created

RemoveQueryParameterUrlNormalizerTest   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 31
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 3

Importance

Changes 0
Metric Value
dl 0
loc 31
rs 10
c 0
b 0
f 0
wmc 4
lcom 1
cbo 3
1
<?php
2
3
namespace tests\MediaMonks\Crawler\Url\Normalizer;
4
5
use MediaMonks\Crawler\Url;
6
use MediaMonks\Crawler\Url\Normalizer\RemoveQueryParameterUrlNormalizer;
7
use Mockery as m;
8
9
class RemoveQueryParameterUrlNormalizerTest extends \PHPUnit_Framework_TestCase
10
{
11
    public function test_query_parameter_is_removed()
12
    {
13
        $this->applyNormalization('http://my-project/?foo=bar', ['foo'], 'http://my-project/');
14
    }
15
16
    public function test_query_parameters_are_removed()
17
    {
18
        $this->applyNormalization('http://my-project/?foo=bar&bar=baz', ['foo', 'bar'], 'http://my-project/');
19
    }
20
21
    public function test_query_parameters_are_not_removed()
22
    {
23
        $this->applyNormalization('http://my-project/?foo=bar&bar=baz', ['foo2'], 'http://my-project/?foo=bar&bar=baz');
24
    }
25
26
    /**
27
     * @param $urlInput
28
     * @param array $removeKeys
29
     * @param $urlExpectedOutput
30
     */
31
    protected function applyNormalization($urlInput, array $removeKeys, $urlExpectedOutput)
32
    {
33
        $url = Url::createFromString($urlInput);
34
        $callbackUrlMatcher = new RemoveQueryParameterUrlNormalizer($removeKeys);
35
        $url = $callbackUrlMatcher->normalize($url);
36
37
        $this->assertEquals($urlExpectedOutput, $url->__toString());
38
    }
39
}