PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 2.2.0
Independent Analytics – WordPress Analytics Plugin v2.2.0
2.15.4 2.15.3 2.15.2 2.15.1 2.15.0 2.14.10 trunk 1.1 1.10 1.10.1 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.17.1 1.17.2 1.17.3 1.17.4 1.18 1.18.1 1.19.0 1.19.1 1.2 1.20.0 1.21.0 1.22.0 1.22.1 1.23.0 1.23.1 1.24.0 1.24.1 1.25.0 1.25.1 1.26.0 1.27.0 1.28.0 1.28.1 1.28.2 1.28.3 1.29.0 1.3 1.30.0 1.30.1 1.4 1.5 1.6 1.7 1.8 1.9 2.0.0 2.0.1 2.1.4 2.1.5 2.1.6 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.10 2.11.2 2.11.3 2.11.4 2.11.5 2.11.6 2.11.7 2.11.8 2.11.9 2.12.0 2.12.1 2.12.2 2.13.1 2.13.2 2.13.5 2.13.6 2.14.0 2.14.1 2.14.2 2.14.4 2.14.6 2.14.7 2.14.8 2.14.9 2.2.0 2.2.1 2.3.1 2.3.2 2.4.2 2.4.3 2.5.0 2.5.1 2.6.0 2.6.1 2.6.2 2.6.3 2.6.4 2.7.0 2.7.1 2.7.2 2.7.3 2.8.2 2.8.3 2.8.4 2.8.5 2.8.6 2.8.7 2.8.8 2.8.9 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7
independent-analytics / vendor / symfony / console / Tester / TesterTrait.php
independent-analytics / vendor / symfony / console / Tester Last commit date
Constraint 2 years ago ApplicationTester.php 2 years ago CommandCompletionTester.php 2 years ago CommandTester.php 2 years ago TesterTrait.php 2 years ago
TesterTrait.php
169 lines
1 <?php
2
3 /*
4 * This file is part of the Symfony package.
5 *
6 * (c) Fabien Potencier <fabien@symfony.com>
7 *
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
10 */
11 namespace IAWP_SCOPED\Symfony\Component\Console\Tester;
12
13 use IAWP_SCOPED\PHPUnit\Framework\Assert;
14 use IAWP_SCOPED\Symfony\Component\Console\Input\InputInterface;
15 use IAWP_SCOPED\Symfony\Component\Console\Output\ConsoleOutput;
16 use IAWP_SCOPED\Symfony\Component\Console\Output\OutputInterface;
17 use IAWP_SCOPED\Symfony\Component\Console\Output\StreamOutput;
18 use IAWP_SCOPED\Symfony\Component\Console\Tester\Constraint\CommandIsSuccessful;
19 /**
20 * @author Amrouche Hamza <hamza.simperfit@gmail.com>
21 * @internal
22 */
23 trait TesterTrait
24 {
25 /** @var StreamOutput */
26 private $output;
27 private $inputs = [];
28 private $captureStreamsIndependently = \false;
29 /** @var InputInterface */
30 private $input;
31 /** @var int */
32 private $statusCode;
33 /**
34 * Gets the display returned by the last execution of the command or application.
35 *
36 * @return string
37 *
38 * @throws \RuntimeException If it's called before the execute method
39 */
40 public function getDisplay(bool $normalize = \false)
41 {
42 if (null === $this->output) {
43 throw new \RuntimeException('Output not initialized, did you execute the command before requesting the display?');
44 }
45 \rewind($this->output->getStream());
46 $display = \stream_get_contents($this->output->getStream());
47 if ($normalize) {
48 $display = \str_replace(\PHP_EOL, "\n", $display);
49 }
50 return $display;
51 }
52 /**
53 * Gets the output written to STDERR by the application.
54 *
55 * @param bool $normalize Whether to normalize end of lines to \n or not
56 *
57 * @return string
58 */
59 public function getErrorOutput(bool $normalize = \false)
60 {
61 if (!$this->captureStreamsIndependently) {
62 throw new \LogicException('The error output is not available when the tester is run without "capture_stderr_separately" option set.');
63 }
64 \rewind($this->output->getErrorOutput()->getStream());
65 $display = \stream_get_contents($this->output->getErrorOutput()->getStream());
66 if ($normalize) {
67 $display = \str_replace(\PHP_EOL, "\n", $display);
68 }
69 return $display;
70 }
71 /**
72 * Gets the input instance used by the last execution of the command or application.
73 *
74 * @return InputInterface
75 */
76 public function getInput()
77 {
78 return $this->input;
79 }
80 /**
81 * Gets the output instance used by the last execution of the command or application.
82 *
83 * @return OutputInterface
84 */
85 public function getOutput()
86 {
87 return $this->output;
88 }
89 /**
90 * Gets the status code returned by the last execution of the command or application.
91 *
92 * @return int
93 *
94 * @throws \RuntimeException If it's called before the execute method
95 */
96 public function getStatusCode()
97 {
98 if (null === $this->statusCode) {
99 throw new \RuntimeException('Status code not initialized, did you execute the command before requesting the status code?');
100 }
101 return $this->statusCode;
102 }
103 public function assertCommandIsSuccessful(string $message = '') : void
104 {
105 Assert::assertThat($this->statusCode, new CommandIsSuccessful(), $message);
106 }
107 /**
108 * Sets the user inputs.
109 *
110 * @param array $inputs An array of strings representing each input
111 * passed to the command input stream
112 *
113 * @return $this
114 */
115 public function setInputs(array $inputs)
116 {
117 $this->inputs = $inputs;
118 return $this;
119 }
120 /**
121 * Initializes the output property.
122 *
123 * Available options:
124 *
125 * * decorated: Sets the output decorated flag
126 * * verbosity: Sets the output verbosity flag
127 * * capture_stderr_separately: Make output of stdOut and stdErr separately available
128 */
129 private function initOutput(array $options)
130 {
131 $this->captureStreamsIndependently = \array_key_exists('capture_stderr_separately', $options) && $options['capture_stderr_separately'];
132 if (!$this->captureStreamsIndependently) {
133 $this->output = new StreamOutput(\fopen('php://memory', 'w', \false));
134 if (isset($options['decorated'])) {
135 $this->output->setDecorated($options['decorated']);
136 }
137 if (isset($options['verbosity'])) {
138 $this->output->setVerbosity($options['verbosity']);
139 }
140 } else {
141 $this->output = new ConsoleOutput($options['verbosity'] ?? ConsoleOutput::VERBOSITY_NORMAL, $options['decorated'] ?? null);
142 $errorOutput = new StreamOutput(\fopen('php://memory', 'w', \false));
143 $errorOutput->setFormatter($this->output->getFormatter());
144 $errorOutput->setVerbosity($this->output->getVerbosity());
145 $errorOutput->setDecorated($this->output->isDecorated());
146 $reflectedOutput = new \ReflectionObject($this->output);
147 $strErrProperty = $reflectedOutput->getProperty('stderr');
148 $strErrProperty->setAccessible(\true);
149 $strErrProperty->setValue($this->output, $errorOutput);
150 $reflectedParent = $reflectedOutput->getParentClass();
151 $streamProperty = $reflectedParent->getProperty('stream');
152 $streamProperty->setAccessible(\true);
153 $streamProperty->setValue($this->output, \fopen('php://memory', 'w', \false));
154 }
155 }
156 /**
157 * @return resource
158 */
159 private static function createStream(array $inputs)
160 {
161 $stream = \fopen('php://memory', 'r+', \false);
162 foreach ($inputs as $input) {
163 \fwrite($stream, $input . \PHP_EOL);
164 }
165 \rewind($stream);
166 return $stream;
167 }
168 }
169