Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
9 / 9
100.00% covered (success)
100.00%
1 / 1
CRAP
100.00% covered (success)
100.00%
1 / 1
AMFDeviceDetector
100.00% covered (success)
100.00%
9 / 9
100.00% covered (success)
100.00%
1 / 1
5
100.00% covered (success)
100.00%
1 / 1
 detectDeviceProperties
100.00% covered (success)
100.00%
9 / 9
100.00% covered (success)
100.00%
1 / 1
5
1<?php
2
3namespace MobileFrontend\Devices;
4
5use MediaWiki\Request\WebRequest;
6
7/**
8 * Detect mobile and tablet devices using environment variables set by the
9 * Apache Mobile Filter (AMF) module.
10 *
11 * @link http://wiki.apachemobilefilter.org/index.php/Main_Page
12 */
13class AMFDeviceDetector implements DeviceDetector {
14
15    /**
16     * @inheritDoc
17     */
18    public function detectDeviceProperties( WebRequest $request, array $server ) {
19        $hasIsMobile = isset( $server['AMF_DEVICE_IS_MOBILE'] );
20        $hasIsTablet = isset( $server['AMF_DEVICE_IS_TABLET'] );
21
22        if ( !$hasIsMobile && !$hasIsTablet ) {
23            return null;
24        }
25
26        $isMobileDevice = $hasIsMobile
27            && $server['AMF_DEVICE_IS_MOBILE'] === 'true';
28
29        $isTabletDevice = $hasIsTablet
30            && $server['AMF_DEVICE_IS_TABLET'] === 'true';
31
32        return new DeviceProperties( $isMobileDevice, $isTabletDevice );
33    }
34}