bug #16912 [Translation][Writer] avoid calling setBackup if the dumper is not FileDumper (aitboudad)

This PR was merged into the 2.7 branch.

Discussion
----------

[Translation][Writer] avoid calling setBackup if the dumper is not FileDumper

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets |  ~
| License       | MIT
| Doc PR        | n/a

Commits
-------

369b2d4 [Translation][Writer] avoid calling setBackup if the dumper is not an instance of FileDumper.
This commit is contained in:
Fabien Potencier 2016-01-25 09:14:19 +01:00
commit 9c5a6f5770
2 changed files with 50 additions and 1 deletions

View File

@ -0,0 +1,47 @@
<?php
/*
* This file is part of the Symfony package.
*
* (c) Fabien Potencier <fabien@symfony.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Symfony\Component\Translation\Tests\Writer;
use Symfony\Component\Translation\MessageCatalogue;
use Symfony\Component\Translation\Writer\TranslationWriter;
class TranslationWriterTest extends \PHPUnit_Framework_TestCase
{
public function testWriteTranslations()
{
$dumper = $this->getMock('Symfony\Component\Translation\Dumper\DumperInterface');
$dumper
->expects($this->once())
->method('dump');
$writer = new TranslationWriter();
$writer->addDumper('test', $dumper);
$writer->writeTranslations(new MessageCatalogue(array()), 'test');
}
public function testDisableBackup()
{
$dumper = $this->getMock('Symfony\Component\Translation\Dumper\DumperInterface');
$dumper
->expects($this->never())
->method('setBackup');
$phpDumper = $this->getMock('Symfony\Component\Translation\Dumper\PhpFileDumper');
$phpDumper
->expects($this->once())
->method('setBackup');
$writer = new TranslationWriter();
$writer->addDumper('test', $dumper);
$writer->addDumper('php', $phpDumper);
$writer->disableBackup();
}
}

View File

@ -45,7 +45,9 @@ class TranslationWriter
public function disableBackup()
{
foreach ($this->dumpers as $dumper) {
$dumper->setBackup(false);
if (method_exists($dumper, 'setBackup')) {
$dumper->setBackup(false);
}
}
}