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

RemoveQueryParameterUrlNormalizerTest::applyNormalization()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 8
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 5
nc 1
nop 3
dl 0
loc 8
rs 9.4285
c 0
b 0
f 0
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
}