Mercurial > hg > isophonics-drupal-site
view core/tests/Drupal/Tests/Component/Gettext/PoStreamWriterTest.php @ 19:fa3358dc1485 tip
Add ndrum files
author | Chris Cannam |
---|---|
date | Wed, 28 Aug 2019 13:14:47 +0100 |
parents | 1fec387a4317 |
children |
line wrap: on
line source
<?php namespace Drupal\Tests\Component\Gettext; use Drupal\Component\Gettext\PoItem; use Drupal\Component\Gettext\PoStreamWriter; use org\bovigo\vfs\vfsStream; use org\bovigo\vfs\vfsStreamFile; use PHPUnit\Framework\TestCase; /** * @coversDefaultClass \Drupal\Component\Gettext\PoStreamWriter * @group Gettext */ class PoStreamWriterTest extends TestCase { /** * The PO writer object under test. * * @var \Drupal\Component\Gettext\PoStreamWriter */ protected $poWriter; /** * The mock po file. * * @var \org\bovigo\vfs\vfsStreamFile */ protected $poFile; /** * {@inheritdoc} */ protected function setUp() { parent::setUp(); $this->poWriter = new PoStreamWriter(); $root = vfsStream::setup(); $this->poFile = new vfsStreamFile('powriter.po'); $root->addChild($this->poFile); } /** * @covers ::getURI */ public function testGetUriException() { if (method_exists($this, 'expectException')) { $this->expectException(\Exception::class, 'No URI set.'); } else { $this->setExpectedException(\Exception::class, 'No URI set.'); } $this->poWriter->getURI(); } /** * @covers ::writeItem * @dataProvider providerWriteData */ public function testWriteItem($poContent, $expected, $long) { if ($long) { if (method_exists($this, 'expectException')) { $this->expectException(\Exception::class, 'Unable to write data:'); } else { $this->setExpectedException(\Exception::class, 'Unable to write data:'); } } // Limit the file system quota to make the write fail on long strings. vfsStream::setQuota(10); $this->poWriter->setURI($this->poFile->url()); $this->poWriter->open(); $poItem = $this->prophesize(PoItem::class); $poItem->__toString()->willReturn($poContent); $this->poWriter->writeItem($poItem->reveal()); $this->poWriter->close(); $this->assertEquals(file_get_contents($this->poFile->url()), $expected); } /** * @return array * - Content to write. * - Written content. * - Content longer than 10 bytes. */ public function providerWriteData() { return [ ['', '', FALSE], ["\r\n", "\r\n", FALSE], ['write this if you can', 'write this', TRUE], ['éáíó>&', 'éáíó>&', FALSE], ['éáíó>&<', 'éáíó>&', TRUE], ['中文 890', '中文 890', FALSE], ['中文 89012', '中文 890', TRUE], ]; } /** * @covers ::close */ public function testCloseException() { if (method_exists($this, 'expectException')) { $this->expectException(\Exception::class, 'Cannot close stream that is not open.'); } else { $this->setExpectedException(\Exception::class, 'Cannot close stream that is not open.'); } $this->poWriter->close(); } }