Security update for Core, with self-updated composer
[yaffs-website] / vendor / symfony / console / Tests / Style / SymfonyStyleTest.php
index ee9b09f8f97ed50545716e8caef5cdbf02a01e33..ef6b72a07cc383f11a9cd11c00ed8ff2fadcdced 100644 (file)
@@ -13,9 +13,6 @@ namespace Symfony\Component\Console\Tests\Style;
 
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\Console\Command\Command;
-use Symfony\Component\Console\Input\InputInterface;
-use Symfony\Component\Console\Output\OutputInterface;
-use Symfony\Component\Console\Style\SymfonyStyle;
 use Symfony\Component\Console\Tester\CommandTester;
 
 class SymfonyStyleTest extends TestCase
@@ -27,12 +24,14 @@ class SymfonyStyleTest extends TestCase
 
     protected function setUp()
     {
+        putenv('COLUMNS=121');
         $this->command = new Command('sfstyle');
         $this->tester = new CommandTester($this->command);
     }
 
     protected function tearDown()
     {
+        putenv('COLUMNS');
         $this->command = null;
         $this->tester = null;
     }
@@ -48,26 +47,28 @@ class SymfonyStyleTest extends TestCase
         $this->assertStringEqualsFile($outputFilepath, $this->tester->getDisplay(true));
     }
 
-    public function inputCommandToOutputFilesProvider()
+    /**
+     * @dataProvider inputInteractiveCommandToOutputFilesProvider
+     */
+    public function testInteractiveOutputs($inputCommandFilepath, $outputFilepath)
+    {
+        $code = require $inputCommandFilepath;
+        $this->command->setCode($code);
+        $this->tester->execute(array(), array('interactive' => true, 'decorated' => false));
+        $this->assertStringEqualsFile($outputFilepath, $this->tester->getDisplay(true));
+    }
+
+    public function inputInteractiveCommandToOutputFilesProvider()
     {
         $baseDir = __DIR__.'/../Fixtures/Style/SymfonyStyle';
 
-        return array_map(null, glob($baseDir.'/command/command_*.php'), glob($baseDir.'/output/output_*.txt'));
+        return array_map(null, glob($baseDir.'/command/interactive_command_*.php'), glob($baseDir.'/output/interactive_output_*.txt'));
     }
-}
 
-/**
- * Use this class in tests to force the line length
- * and ensure a consistent output for expectations.
- */
-class SymfonyStyleWithForcedLineLength extends SymfonyStyle
-{
-    public function __construct(InputInterface $input, OutputInterface $output)
+    public function inputCommandToOutputFilesProvider()
     {
-        parent::__construct($input, $output);
+        $baseDir = __DIR__.'/../Fixtures/Style/SymfonyStyle';
 
-        $ref = new \ReflectionProperty(get_parent_class($this), 'lineLength');
-        $ref->setAccessible(true);
-        $ref->setValue($this, 120);
+        return array_map(null, glob($baseDir.'/command/command_*.php'), glob($baseDir.'/output/output_*.txt'));
     }
 }