Completed
Push — master ( 062b07...4cbe2f )
by Nils
02:41
created

GZipRule::doValidation()   B

Complexity

Conditions 5
Paths 3

Size

Total Lines 10
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 10
rs 8.8571
cc 5
eloc 5
nc 3
nop 1
1
<?php
2
3
namespace whm\Smoke\Rules\Http\Header;
4
5
use whm\Smoke\Http\Response;
6
use whm\Smoke\Rules\Rule;
7
use whm\Smoke\Rules\StandardRule;
8
use whm\Smoke\Rules\ValidationFailedException;
9
10
/**
11
 * This rule checks if gzip compressions is activated.
12
 */
13
class GZipRule extends StandardRule
14
{
15
    public function doValidation(Response $response)
16
    {
17
        if (strpos($response->getContentType(), 'image') === false
18
            && strpos($response->getContentType(), 'pdf') === false
19
        ) {
20
            if (!$response->hasHeader('Content-Encoding') || $response->getHeader('Content-Encoding')[0] !== 'gzip') {
21
                throw new ValidationFailedException('gzip compression not active');
22
            }
23
        }
24
    }
25
}
26