You are here

class DataCollectorTranslatorTest in Plug 7

Hierarchy

  • class \Symfony\Component\Translation\Tests\DataCollectorTranslatorTest extends \Symfony\Component\Translation\Tests\PHPUnit_Framework_TestCase

Expanded class hierarchy of DataCollectorTranslatorTest

File

lib/Symfony/translation/Tests/DataCollectorTranslatorTest.php, line 18

Namespace

Symfony\Component\Translation\Tests
View source
class DataCollectorTranslatorTest extends \PHPUnit_Framework_TestCase {
  protected function setUp() {
    if (!class_exists('Symfony\\Component\\HttpKernel\\DataCollector\\DataCollector')) {
      $this
        ->markTestSkipped('The "DataCollector" is not available');
    }
  }
  public function testCollectMessages() {
    $collector = $this
      ->createCollector();
    $collector
      ->setFallbackLocales(array(
      'fr',
      'ru',
    ));
    $collector
      ->trans('foo');
    $collector
      ->trans('bar');
    $collector
      ->transChoice('choice', 0);
    $collector
      ->trans('bar_ru');
    $expectedMessages = array();
    $expectedMessages[] = array(
      'id' => 'foo',
      'translation' => 'foo (en)',
      'locale' => 'en',
      'domain' => 'messages',
      'state' => DataCollectorTranslator::MESSAGE_DEFINED,
    );
    $expectedMessages[] = array(
      'id' => 'bar',
      'translation' => 'bar (fr)',
      'locale' => 'fr',
      'domain' => 'messages',
      'state' => DataCollectorTranslator::MESSAGE_EQUALS_FALLBACK,
    );
    $expectedMessages[] = array(
      'id' => 'choice',
      'translation' => 'choice',
      'locale' => 'en',
      'domain' => 'messages',
      'state' => DataCollectorTranslator::MESSAGE_MISSING,
    );
    $expectedMessages[] = array(
      'id' => 'bar_ru',
      'translation' => 'bar (ru)',
      'locale' => 'ru',
      'domain' => 'messages',
      'state' => DataCollectorTranslator::MESSAGE_EQUALS_FALLBACK,
    );
    $this
      ->assertEquals($expectedMessages, $collector
      ->getCollectedMessages());
  }
  private function createCollector() {
    $translator = new Translator('en');
    $translator
      ->addLoader('array', new ArrayLoader());
    $translator
      ->addResource('array', array(
      'foo' => 'foo (en)',
    ), 'en');
    $translator
      ->addResource('array', array(
      'bar' => 'bar (fr)',
    ), 'fr');
    $translator
      ->addResource('array', array(
      'bar_ru' => 'bar (ru)',
    ), 'ru');
    $collector = new DataCollectorTranslator($translator);
    return $collector;
  }

}

Members