File: StringsTest.php

package info (click to toggle)
php-oscarotero-gettext 4.8.12-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 1,652 kB
  • sloc: php: 5,231; xml: 22; javascript: 18; makefile: 14
file content (82 lines) | stat: -rw-r--r-- 3,011 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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
<?php

namespace Gettext\Tests;

use Gettext\Extractors;
use Gettext\Generators;
use PHPUnit\Framework\Attributes\DataProvider;

class StringsTest extends AbstractTestCase
{
    public static function stringFromPhpProvider()
    {
        return array(
            array('"test"', 'test'),
            array("'test'", 'test'),
            array("'DATE \a\\t TIME'", 'DATE \a\t TIME'),
            array("'DATE \a\\t TIME$'", 'DATE \a\t TIME$'),
            array("'DATE \a\\t TIME\$'", 'DATE \a\t TIME$'),
            array("'DATE \a\\t TIME\$a'", 'DATE \a\t TIME$a'),
            array('"FIELD\\tFIELD"', "FIELD\tFIELD"),
            array('"$"', '$'),
            array('"Hi $"', 'Hi $'),
            array('"$ hi"', '$ hi'),
            array('"Hi\t$name"', "Hi\t\$name"),
            array('"Hi\\\\"', 'Hi\\'),
            array('"{$obj->name}"', '{$obj->name}'),
            array('"a\x20b $c"', 'a b $c'),
            array('"a\x01b\2 \1 \01 \001 \r \n \t \v \f"', "a\1b\2 \1 \1 \1 \r \n \t \v \f"),
            array('"$ \$a \""', '$ $a "'),
        );
    }

    #[DataProvider('stringFromPhpProvider')]
    public function testStringFromPhp($source, $decoded)
    {
        $this->assertSame($decoded, Extractors\PhpCode::convertString($source));
    }

    public static function poStringsProvider()
    {
        return array(
            array('test', '"test"'),
            array("'test'", '"\'test\'"'),
            array("Special chars: \n \t \\ ", '"Special chars: \\n \\t \\\\ "'),
            array("Newline\nSlash and n\\nend", '"Newline\nSlash and n\\\\nend"'),
            array('Quoted "string" with %s', '"Quoted \\"string\\" with %s"'),
        );
    }

    #[DataProvider('poStringsProvider')]
    public function testStringToPo($phpString, $poString)
    {
        $this->assertSame($poString, Generators\Po::convertString($phpString));
    }

    #[DataProvider('poStringsProvider')]
    public function testStringFromPo($phpString, $poString)
    {
        $this->assertSame($phpString, Extractors\Po::convertString($poString));
    }

    public static function stringFromPo2Provider()
    {
        return array(
            array('"\\\\x07 - aka \\\\a: \\a"', "\\x07 - aka \\a: \x07"),
            array('"\\\\x08 - aka \\\\b: \\b"', "\\x08 - aka \\b: \x08"),
            array('"\\\\x09 - aka \\\\t: \\t"', "\\x09 - aka \\t: \t"),
            array('"\\\\x0a - aka \\\\n: \\n"', "\\x0a - aka \\n: \n"),
            array('"\\\\x0b - aka \\\\v: \\v"', "\\x0b - aka \\v: \x0b"),
            array('"\\\\x0c - aka \\\\f: \\f"', "\\x0c - aka \\f: \x0c"),
            array('"\\\\x0d - aka \\\\r: \\r"', "\\x0d - aka \\r: \r"),
            array('"\\\\x22 - aka \\": \\""', '\x22 - aka ": "'),
            array('"\\\\x5c - aka \\\\: \\\\"', '\\x5c - aka \\: \\'),
        );
    }

    #[DataProvider('stringFromPo2Provider')]
    public function testStringFromPo2($poString, $phpString)
    {
        $this->assertSame($phpString, Extractors\Po::convertString($poString));
    }
}