<?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'))); } }