trait CliTestTrait (View source)

CliTestTrait provides an execute() method that is useful for launching executable programs in functional tests.

Traits

OutputUtilsTrait provides some useful utility methods for test classes that define getOutputRaw() and getErrorOutputRaw() methods.

Properties

protected int $timeout

Timeout for command.

protected int $idleTimeout

Idle timeouts for commands.

protected Process|null $process

Methods

string
getOutputRaw()

Accessor for the last output, non-trimmed.

string
getErrorOutputRaw()

Accessor for the last stderr output, non-trimmed.

string
getSimplifiedOutput()

Get command output and simplify things like full paths and extra whitespace.

string
getSimplifiedErrorOutput()

Returns a simplified version of the error output to facilitate testing.

string
simplifyOutput(string $output)

Remove things like full paths and extra whitespace from the given string.

array
pathsToSimplify()

No description

string
getOutput()

Accessor for the last output, trimmed.

string
getErrorOutput()

Accessor for the last stderr output, trimmed.

array
getOutputAsList()

Accessor for the last output, rtrimmed and split on newlines.

array
getErrorOutputAsList()

Accessor for the last stderr output, rtrimmed and split on newlines.

mixed
getOutputFromJSON(string|int $key = null)

Accessor for the last output, decoded from json.

Process
startExecute(string|array $command, string|null $cd = null, array|null $env = null, string|null $input = null)

Run a command and return the process without waiting for it to finish.

void
execute(array|string $command, int $expected_return = 0, string|null $cd = null, array|null $env = null, string|null $input = null)

Actually runs the command.

static string
escapeshellarg(string $arg)

No description

static bool
isWindows()

No description

static string
_escapeshellargWindows(string $arg)

No description

string
buildProcessMessage()

Borrowed from \Symfony\Component\Process\Exception\ProcessTimedOutException

void
assertOutputEquals(string $expected, string $filter = '')

Checks that the output matches the expected output.

void
assertErrorOutputEquals(string $expected, string $filter = '')

Checks that the error output matches the expected output.

Details

string getOutputRaw()

Accessor for the last output, non-trimmed.

Return Value

string

string getErrorOutputRaw()

Accessor for the last stderr output, non-trimmed.

Return Value

string

Raw stderr as text.

protected string getSimplifiedOutput()

Get command output and simplify things like full paths and extra whitespace.

Return Value

string

protected string getSimplifiedErrorOutput()

Returns a simplified version of the error output to facilitate testing.

Return Value

string

A simplified version of the error output that has things like full paths and superfluous whitespace removed from it.

protected string simplifyOutput(string $output)

Remove things like full paths and extra whitespace from the given string.

Parameters

string $output

Return Value

string

array pathsToSimplify()

No description

Return Value

array

string getOutput()

Accessor for the last output, trimmed.

Return Value

string

string getErrorOutput()

Accessor for the last stderr output, trimmed.

Return Value

string

array getOutputAsList()

Accessor for the last output, rtrimmed and split on newlines.

Return Value

array

array getErrorOutputAsList()

Accessor for the last stderr output, rtrimmed and split on newlines.

Return Value

array

mixed getOutputFromJSON(string|int $key = null)

Accessor for the last output, decoded from json.

Parameters

string|int $key

Optionally return only a top level element from the json object.

Return Value

mixed

Process startExecute(string|array $command, string|null $cd = null, array|null $env = null, string|null $input = null)

Run a command and return the process without waiting for it to finish.

Parameters

string|array $command

The actual command line to run.

string|null $cd
array|null $env

Extra environment variables.

string|null $input

A string representing the STDIN that is piped to the command.

Return Value

Process

void execute(array|string $command, int $expected_return = 0, string|null $cd = null, array|null $env = null, string|null $input = null)

Actually runs the command.

Parameters

array|string $command

The actual command line to run.

int $expected_return

The return code to expect

string|null $cd
array|null $env

Extra environment variables.

string|null $input

A string representing the STDIN that is piped to the command.

Return Value

void

static string escapeshellarg(string $arg)

No description

Parameters

string $arg

Return Value

string

static bool isWindows()

No description

Return Value

bool

static string _escapeshellargWindows(string $arg)

No description

Parameters

string $arg

Return Value

string

string buildProcessMessage()

Borrowed from \Symfony\Component\Process\Exception\ProcessTimedOutException

Return Value

string

protected void assertOutputEquals(string $expected, string $filter = '')

Checks that the output matches the expected output.

This matches against a simplified version of the actual output that has absolute paths and duplicate whitespace removed, to avoid false negatives on minor differences.

Parameters

string $expected

The expected output.

string $filter

Optional regular expression that should be ignored in the error output.

Return Value

void

protected void assertErrorOutputEquals(string $expected, string $filter = '')

Checks that the error output matches the expected output.

This matches against a simplified version of the actual output that has absolute paths and duplicate whitespace removed, to avoid false negatives on minor differences.

Parameters

string $expected

The expected output.

string $filter

Optional regular expression that should be ignored in the error output.

Return Value

void