public function testTrans(string
$expected, string
$input, array
$options =
[]) { mt_srand(987
);
$this->
assertSame($expected,
(new PseudoLocalizationTranslator(new IdentityTranslator(),
$options))->
trans($input));
} public static function provideTrans(): array
{ return [ ['[ƒöö⭐ ≤þ≥ƁÅŔ≤⁄þ≥]', 'foo⭐ <p>BAR</p>'
], // Test defaults
['before <div data-label="fcy"><a href="#" title="bar" data-content="ccc">foo</a></div> after', 'before <div data-label="fcy"><a href="#" title="bar" data-content="ccc">foo</a></div> after', self::
getIsolatedOptions(['parse_html' => true
])],
['ƀéƒöŕé <div data-label="fcyéé"><a href="#" title="bar" data-content="ccc">ƒöö éé</a></div> åƒţéŕ', 'before <div data-label="fcyéé"><a href="#" title="bar" data-content="ccc">foo éé</a></div> after', self::
getIsolatedOptions(['parse_html' => true, 'accents' => true
])],
['ƀéƒöŕé <div data-label="ƒçý"><a href="#" title="ƀåŕ" data-content="ccc">ƒöö</a></div> åƒţéŕ', 'before <div data-label="fcy"><a href="#" title="bar" data-content="ccc">foo</a></div> after', self::
getIsolatedOptions(['parse_html' => true, 'localizable_html_attributes' =>
['data-label', 'title'
], 'accents' => true
])],
[' ¡″♯€‰⅋´{}⁎⁺،‐·⁄⓪①②③④⑤⑥⑦⑧⑨∶⁏≤≂≥¿՞ÅƁÇÐÉƑĜĤÎĴĶĻṀÑÖÞǪŔŠŢÛṼŴẊÝŽ⁅∖⁆˄‿‵åƀçðéƒĝĥîĵķļɱñöþǫŕšţûṽŵẋýž(¦)˞', ' !"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~', self::
getIsolatedOptions(['accents' => true
])],
['foo <p>bar</p> ~~~~~~~~~~ ~~', 'foo <p>bar</p>', self::
getIsolatedOptions(['expansion_factor' => 2.0
])],
['foo <p>bar</p> ~~~ ~~', 'foo <p>bar</p>', self::
getIsolatedOptions(['parse_html' => true, 'expansion_factor' => 2.0
])], // Only the visible text length is expanded
['foobar ~~', 'foobar', self::
getIsolatedOptions(['expansion_factor' => 1.35
])], // 6*1.35 = 8.1 but we round up to 9
['[foobar]', 'foobar', self::
getIsolatedOptions(['brackets' => true
])],
['[foobar ~~~]', 'foobar', self::
getIsolatedOptions(['expansion_factor' => 2.0, 'brackets' => true
])], // The added brackets are taken into account in the expansion
['<p data-foo=""ççç<å">ƀåŕ</p>', '<p data-foo=""ccc<a">bar</p>', self::
getIsolatedOptions(['parse_html' => true, 'localizable_html_attributes' =>
['data-foo'
], 'accents' => true
])],
['<p data-foo="ççéç""">ƀåéŕ</p>', '<p data-foo="ccéc""">baér</p>', self::
getIsolatedOptions(['parse_html' => true, 'localizable_html_attributes' =>
['data-foo'
], 'accents' => true
])],
['<p data-foo="ccc""">ƀåŕ</p>', '<p data-foo="ccc""">bar</p>', self::
getIsolatedOptions(['parse_html' => true, 'accents' => true
])],
[