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

ImageRule::check()   B

Complexity

Conditions 5
Paths 6

Size

Total Lines 30
Code Lines 12

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 12
CRAP Score 5

Importance

Changes 0
Metric Value
dl 0
loc 30
ccs 12
cts 12
cp 1
rs 8.439
c 0
b 0
f 0
cc 5
eloc 12
nc 6
nop 1
crap 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
}