v1/web/core/tests/Drupal/TestTools/TestVarDumper.php

47 lines
1.2 KiB
PHP

<?php
namespace Drupal\TestTools;
use Symfony\Component\VarDumper\Cloner\VarCloner;
use Symfony\Component\VarDumper\Dumper\CliDumper;
use Symfony\Component\VarDumper\Dumper\HtmlDumper;
/**
* Provides handlers for the Symfony VarDumper to work within tests.
*
* This allows the dump() function to produce output on the terminal without
* causing PHPUnit to complain.
*/
class TestVarDumper {
/**
* A CLI handler for \Symfony\Component\VarDumper\VarDumper.
*/
public static function cliHandler($var) {
$cloner = new VarCloner();
$dumper = new CliDumper();
fwrite(STDOUT, "\n");
$dumper->setColors(TRUE);
$dumper->dump(
$cloner->cloneVar($var),
function ($line, $depth, $indent_pad) {
// A negative depth means "end of dump".
if ($depth >= 0) {
// Adds a two spaces indentation to the line.
fwrite(STDOUT, str_repeat($indent_pad, $depth) . $line . "\n");
}
}
);
}
/**
* A HTML handler for \Symfony\Component\VarDumper\VarDumper.
*/
public static function htmlHandler($var) {
$cloner = new VarCloner();
$dumper = new HtmlDumper();
$dumper->dump($cloner->cloneVar($var));
}
}