• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

mimmi20 / browser-detector / 12915563542

22 Jan 2025 07:24PM UTC coverage: 89.212% (-10.8%) from 100.0%
12915563542

push

github

web-flow
Merge pull request #872 from mimmi20/updates

rewrite Headers

2983 of 3466 new or added lines in 72 files covered. (86.06%)

9 existing lines in 2 files now uncovered.

4234 of 4746 relevant lines covered (89.21%)

11.89 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

81.25
/src/Parser/Header/XUcbrowserDevice.php
1
<?php
2

3
/**
4
 * This file is part of the browser-detector package.
5
 *
6
 * Copyright (c) 2012-2025, Thomas Mueller <mimmi20@live.de>
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11

12
declare(strict_types = 1);
13

14
namespace BrowserDetector\Parser\Header;
15

16
use Override;
17
use UaNormalizer\Normalizer\Exception\Exception;
18
use UaNormalizer\Normalizer\NormalizerInterface;
19
use UaParser\DeviceCodeInterface;
20
use UaParser\DeviceParserInterface;
21

22
use function in_array;
23
use function mb_strtolower;
24

25
final readonly class XUcbrowserDevice implements DeviceCodeInterface
26
{
27
    /** @throws void */
28
    public function __construct(private DeviceParserInterface $deviceParser, private NormalizerInterface $normalizer)
21✔
29
    {
30
        // nothing to do
31
    }
21✔
32

33
    /** @throws void */
34
    #[Override]
21✔
35
    public function hasDeviceCode(string $value): bool
36
    {
37
        return !in_array(mb_strtolower($value), ['j2me', 'opera', 'jblend'], true);
21✔
38
    }
39

40
    /** @throws void */
41
    #[Override]
21✔
42
    public function getDeviceCode(string $value): string | null
43
    {
44
        if (in_array(mb_strtolower($value), ['j2me', 'opera', 'jblend'], true)) {
21✔
45
            return null;
3✔
46
        }
47

48
        try {
49
            $normalizedValue = $this->normalizer->normalize($value);
18✔
NEW
50
        } catch (Exception) {
×
NEW
51
            return null;
×
52
        }
53

54
        if ($normalizedValue === '' || $normalizedValue === null) {
18✔
NEW
55
            return null;
×
56
        }
57

58
        $code = $this->deviceParser->parse($normalizedValue);
18✔
59

60
        if ($code === '') {
18✔
61
            return null;
1✔
62
        }
63

64
        return $code;
17✔
65
    }
66
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc