Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FIX Tidy extension and cli fix for tests #9948

Merged
merged 1 commit into from
May 20, 2021
Merged

Commits on May 20, 2021

  1. FIX Tidy extension and cli fix for tests

    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.
    chillu committed May 20, 2021
    Configuration menu
    Copy the full SHA
    5e2ca7f View commit details
    Browse the repository at this point in the history