Completed
Push — master ( b66861...585d80 )
by René
04:01
created

ImageRule   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 41
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 3

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 5
lcom 0
cbo 3
dl 0
loc 41
ccs 12
cts 12
cp 1
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
B check() 0 30 5
1
<?php
2
3
namespace Zortje\SEO\Page;
4
5
use Zortje\Rules\Result;
6
use Zortje\Rules\ResultCollection;
7
use Zortje\Rules\Subject;
8
9
/**
10
 * Class ImageRule
11
 *
12
 * @package Page
13
 */
14
class ImageRule
15
{
16
17
    /**
18
     * Check image rules
19
     *
20
     * @param Subject $subject
21
     *
22
     * @return ResultCollection
23
     */
24 3
    public function check(Subject $subject): ResultCollection
25
    {
26 3
        $resultCollection = new ResultCollection();
27
28
        /**
29
         * Check
30
         */
31 3
        $contextDescription = $subject->getContextDescription();
32
33 3
        $imgTags = $subject->getDom()->getElementsByTagName('img');
34
35
        /**
36
         * @var \DOMElement $imgTag
37
         */
38 3
        $missingAltAttributes = 0;
39
40 3
        foreach ($imgTags as $imgTag) {
41 3
            $altAttribute = $imgTag->attributes->getNamedItem('alt');
42
43 3
            if (!$altAttribute || empty($altAttribute->nodeValue)) {
44 3
                $missingAltAttributes++;
45
            }
46
        }
47
48 3
        if ($missingAltAttributes > 0) {
49 3
            $resultCollection->add(new Result($contextDescription, "$missingAltAttributes img tag is missing alt attribute"));
50
        }
51
52 3
        return $resultCollection;
53
    }
54
}