File: rewriteTestFixtureFiles.php

package info (click to toggle)
matomo-device-detector 6.5.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 19,684 kB
  • sloc: php: 7,758; xml: 79; makefile: 15; sh: 3
file content (45 lines) | stat: -rw-r--r-- 1,270 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?php

declare(strict_types=1);

use DeviceDetector\DeviceDetector;
use DeviceDetector\Parser\AbstractParser;

include __DIR__ . '/../vendor/autoload.php';

AbstractParser::setVersionTruncation(AbstractParser::VERSION_TRUNCATION_NONE);

$fixtureFiles = array_merge(
    glob(__DIR__ . '/../Tests/fixtures/*.yml'),
    glob(__DIR__ . '/../Tests/Parser/Client/fixtures/*.yml'),
    glob(__DIR__ . '/../Tests/Parser/Device/fixtures/*.yml'),
    glob(__DIR__ . '/../Tests/Parser/fixtures/oss.yml')
);

$overwrite = !empty($argv[1]) && '--f' === $argv[1];

foreach ($fixtureFiles as $file) {
    $fileFixtures = Spyc::YAMLLoad(file_get_contents($file));
    $data         = [];

    foreach ($fileFixtures as $i => $fixture) {
        $keys = array_flip(array_keys($fixture));

        if ($overwrite) {
            $fixture = DeviceDetector::getInfoFromUserAgent($fixture['user_agent']);
        }

        $data[$i] = array_intersect_key($fixture, $keys);
    }

    $content = Spyc::YAMLDump($data, 2, 0);

    $content = str_replace(": ON\n", ": 'ON'\n", $content);
    $content = str_replace(": NO\n", ": 'NO'\n", $content);

    file_put_contents($file, $content);

    shell_exec("sed -i -e 's/version: \\([^\"].*\\)/version: \"\\1\"/g' " . $file);
}

echo "done.\n";