BubblingPath   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 25
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
eloc 8
dl 0
loc 25
ccs 9
cts 9
cp 1
rs 10
c 0
b 0
f 0
wmc 4

2 Methods

Rating   Name   Duplication   Size   Complexity  
A containsBubblingPath() 0 3 1
A filter() 0 10 3
1
<?php
2
namespace Aoe\Asdis\System\Uri\Filter;
3
4
use Aoe\Asdis\System\Uri\Filter\FilterInterface;
5
6
/**
7
 * Filters paths that contain "../".
8
 */
9
class BubblingPath implements FilterInterface
10
{
11
    /**
12
     * @param array $paths Array of paths.
13
     * @return array Valid paths.
14
     */
15 1
    public function filter(array $paths)
16
    {
17 1
        $filteredPaths = [];
18 1
        foreach ($paths as $path) {
19 1
            if ($this->containsBubblingPath($path)) {
20 1
                continue;
21
            }
22 1
            $filteredPaths[] = $path;
23
        }
24 1
        return $filteredPaths;
25
    }
26
27
    /**
28
     * @param string $path
29
     * @return boolean
30
     */
31 1
    private function containsBubblingPath($path)
32
    {
33 1
        return (false !== strpos($path, '../'));
34
    }
35
}