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

GZipRule   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 13
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 3

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 5
c 1
b 0
f 0
lcom 0
cbo 3
dl 0
loc 13
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
B doValidation() 0 10 5
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