silverstripe-framework/tests/php/i18n/YamlWriterTest.php

65 lines
1.9 KiB
PHP

<?php
namespace SilverStripe\i18n\Tests;
use SilverStripe\Core\Convert;
use SilverStripe\Dev\SapphireTest;
use SilverStripe\i18n\Messages\YamlWriter;
class YamlWriterTest extends SapphireTest
{
public function testYamlWriter()
{
$writer = new YamlWriter();
$entities = [
'Level1.Level2.EntityName' => 'Text',
'Level1.OtherEntityName' => 'Other Text',
'Level1.Plurals' => [
'context' => 'Some ignored context',
'one' => 'An item',
'other' => '{count} items',
],
'Level1.PluralString1' => 'An item|{count} items',
'Level1.PluralString2' => [
'context' => 'Another ignored context',
'default' => 'An item|{count} items',
],
// Some near-false-positives for plurals
'Level1.NotPlural1' => 'Not a plural|string', // no count
'Level1.NotPlural2' => 'Not|a|plural|string{count}', // unexpected number
'Level1.NotPlural3' => 'Not a plural string {count}', // no pipe
'Level1.BoolTest' => 'True',
'Level1.FlagTest' => 'No',
'Level1.TextTest' => 'Maybe',
'Template.ss.Key' => 'Template var',
'TopLevel' => 'The Top',
];
$yaml = <<<YAML
de:
Level1:
BoolTest: 'True'
FlagTest: 'No'
Level2.EntityName: Text
NotPlural1: 'Not a plural|string'
NotPlural2: 'Not|a|plural|string{count}'
NotPlural3: 'Not a plural string {count}'
OtherEntityName: 'Other Text'
PluralString1:
one: 'An item'
other: '{count} items'
PluralString2:
one: 'An item'
other: '{count} items'
Plurals:
one: 'An item'
other: '{count} items'
TextTest: Maybe
Template.ss:
Key: 'Template var'
TopLevel: 'The Top'
YAML;
$this->assertEquals($yaml, Convert::nl2os($writer->getYaml($entities, 'de')));
}
}