DiffFormatterTest.php

Same filename in other branches
  1. 9 core/tests/Drupal/Tests/Component/Diff/DiffFormatterTest.php
  2. 8.9.x core/tests/Drupal/Tests/Component/Diff/DiffFormatterTest.php
  3. 11.x core/tests/Drupal/Tests/Component/Diff/DiffFormatterTest.php

Namespace

Drupal\Tests\Component\Diff

File

core/tests/Drupal/Tests/Component/Diff/DiffFormatterTest.php

View source
<?php

declare (strict_types=1);
namespace Drupal\Tests\Component\Diff;

use Drupal\Component\Diff\Diff;
use Drupal\Component\Diff\DiffFormatter;
use PHPUnit\Framework\TestCase;

/**
 * Test DiffFormatter classes.
 *
 * @coversDefaultClass \Drupal\Component\Diff\DiffFormatter
 *
 * @group Diff
 */
class DiffFormatterTest extends TestCase {
    
    /**
     * @return array
     *   - Expected formatted diff output.
     *   - First array of text to diff.
     *   - Second array of text to diff.
     */
    public static function provideTestDiff() {
        return [
            'empty' => [
                '',
                [],
                [],
            ],
            'add' => [
                "3a3\n> line2a\n",
                [
                    'line1',
                    'line2',
                    'line3',
                ],
                [
                    'line1',
                    'line2',
                    'line2a',
                    'line3',
                ],
            ],
            'delete' => [
                "3d3\n< line2a\n",
                [
                    'line1',
                    'line2',
                    'line2a',
                    'line3',
                ],
                [
                    'line1',
                    'line2',
                    'line3',
                ],
            ],
            'change' => [
                "3c3\n< line2a\n---\n> line2b\n",
                [
                    'line1',
                    'line2',
                    'line2a',
                    'line3',
                ],
                [
                    'line1',
                    'line2',
                    'line2b',
                    'line3',
                ],
            ],
        ];
    }
    
    /**
     * Tests whether op classes returned by DiffEngine::diff() match expectations.
     *
     * @covers ::format
     * @dataProvider provideTestDiff
     */
    public function testDiff($expected, $from, $to) : void {
        $diff = new Diff($from, $to);
        $formatter = new DiffFormatter();
        $output = $formatter->format($diff);
        $this->assertEquals($expected, $output);
    }

}

Classes

Title Deprecated Summary
DiffFormatterTest Test DiffFormatter classes.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.