XXSSProtectionProcessor::process()   A
last analyzed

Complexity

Conditions 4
Paths 8

Size

Total Lines 23
Code Lines 14

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 20

Importance

Changes 0
Metric Value
eloc 14
dl 0
loc 23
c 0
b 0
f 0
ccs 0
cts 12
cp 0
rs 9.7998
cc 4
nc 8
nop 1
crap 20
1
<?php declare(strict_types=1);
2
3
/**
4
 * @license  http://opensource.org/licenses/mit-license.php MIT
5
 * @link     https://github.com/nicoSWD
6
 * @author   Nicolas Oelgart <[email protected]>
7
 */
8
namespace nicoSWD\SecHeaderCheck\Domain\Result\Processor;
9
10
use nicoSWD\SecHeaderCheck\Domain\Result\ObservationCollection;
11
use nicoSWD\SecHeaderCheck\Domain\Result\ParsedHeaders;
12
use nicoSWD\SecHeaderCheck\Domain\Result\Result\XXSSProtectionHeaderResult;
13
use nicoSWD\SecHeaderCheck\Domain\Result\Warning\XXSSProtectionHasReportUriKudos;
14
use nicoSWD\SecHeaderCheck\Domain\Result\Warning\XXSSProtectionIsBlockingKudos;
15
use nicoSWD\SecHeaderCheck\Domain\Result\Warning\XXSSProtectionTurnedOffWarning;
16
use nicoSWD\SecHeaderCheck\Domain\Result\Warning\XXSSProtectionTurnedOnKudos;
17
use nicoSWD\SecHeaderCheck\Domain\Result\Warning\XXSSProtectionWithoutModeBlockWarning;
18
use nicoSWD\SecHeaderCheck\Domain\Result\Warning\XXSSProtectionWithoutReportURIInfo;
19
20
final class XXSSProtectionProcessor extends AbstractProcessor
21
{
22
    public function process(ParsedHeaders $parsedHeaders): void
23
    {
24
        $observations = new ObservationCollection();
25
26
        if (!$this->header()->protectionIsOn()) {
27
            $observations->addWarning(new XXSSProtectionTurnedOffWarning());
28
        } else {
29
            $observations->addKudos(new XXSSProtectionTurnedOnKudos());
30
        }
31
32
        if (!$this->header()->isBlocking()) {
33
            $observations->addWarning(new XXSSProtectionWithoutModeBlockWarning());
34
        } else {
35
            $observations->addKudos(new XXSSProtectionIsBlockingKudos());
36
        }
37
38
        if (!$this->header()->hasReportUri()) {
39
            $observations->addInfo(new XXSSProtectionWithoutReportURIInfo());
40
        } else {
41
            $observations->addKudos(new XXSSProtectionHasReportUriKudos());
42
        }
43
44
        $this->addObservations($observations);
45
    }
46
47
    private function header(): XXSSProtectionHeaderResult
48
    {
49
        return $this->parsedHeader;
0 ignored issues
show
Bug Best Practice introduced by
The expression return $this->parsedHeader returns the type nicoSWD\SecHeaderCheck\D...lt\AbstractParsedHeader which includes types incompatible with the type-hinted return nicoSWD\SecHeaderCheck\D...SProtectionHeaderResult.
Loading history...
50
    }
51
}
52