Wrap doesn't actually wrap in the tidy extension.
This causes tests to be flakey, for example some of `FormTest` fails
if you happen to have `ext-tidy` installed (which is the default on most systems).
This happened to me on PHP 7.4.19 with tidy 5.6.0 (OSX Homebrew).
Note that the tests aren't failing in Travis right now.
You'd expect `wrap => 0` to be honoured. It's documented as an integer
in the tidy docs: https://api.html-tidy.org/tidy/quickref_5.6.0.html#wrap.
Even tracked this down to the PHP source which appears to be doing the right thing:
https://github.com/php/php-src/blob/master/ext/tidy/tidy.c#L300
There's a bug from 2018 against PHP 7.2.8 which was closed as "not a bug" without comment:
https://bugs.php.net/bug.php?id=76683
You can see the behaviour in action in the following test.
```
<?php
$html = '<p>a really long string which should not be wrapped</p>';
echo "## With tidy extension" . PHP_EOL;
$tidy = new tidy();
$tidy->parseString(
$html,
[
'output-xhtml' => true,
'numeric-entities' => true,
'wrap' => 0,
],
'utf8'
);
$tidy->cleanRepair();
echo $tidy . PHP_EOL;
echo "## With tidy cli" . PHP_EOL;
$cmd = sprintf("echo " . escapeshellarg($html) . " | tidy --force-output 1 -n -q -utf8 -asxhtml -w 0 2> /dev/null");
echo shell_exec($cmd);
```
Long story short, setting it to 99999 fixes the issue.
This test helper has a number of hooks to other parts of the
and required many class_exists() guards to operate without them
This has come out of PoC development work as part of:
https://github.com/silverstripe/silverstripe-framework/issues/9679
But can stand-alone as a mergeable PR.
* #3236 Added dev/config view
* Refactored use of echo to
* Added config/audit for matching missing property definitions in the current config
* Minor enhancements to dev/config implementation