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

GZipRule::validate()   A

Complexity

Conditions 4
Paths 3

Size

Total Lines 8
Code Lines 4

Duplication

Lines 8
Ratio 100 %
Metric Value
dl 8
loc 8
rs 9.2
cc 4
eloc 4
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