Skip to content
Snippets Groups Projects
Commit da456f43 authored by catch's avatar catch
Browse files

Issue #3386707 by alexpott, mondrake, longwave: DiffOpOutputBuilder does not...

Issue #3386707 by alexpott, mondrake, longwave: DiffOpOutputBuilder does not correctly match the 10.0.x implementation and produces unexpected output (part 2)

(cherry picked from commit 259c2242)
parent 4fca204c
No related branches found
No related tags found
18 merge requests!11628Update file MediaLibraryWidget.php,!7564Revert "Issue #3364773 by roshnichordiya, Chris Matthews, thakurnishant_06,...,!5752Issue #3275828 by joachim, quietone, bradjones1, Berdir: document the reason...,!5627Issue #3261805: Field not saved when change of 0 on string start,!5427Issue #3338518: send credentials in ajax if configured in CORS settings.,!5395Issue #3387916 by fjgarlin, Spokje: Each GitLab job exposes user email,!5217Issue #3386607 by alexpott: Improve spell checking in commit-code-check.sh,!5064Issue #3379522 by finnsky, Gauravvvv, kostyashupenko, smustgrave, Chi: Revert...,!5040SDC ComponentElement: Transform slots scalar values to #plain_text instead of throwing an exception,!4958Issue #3392147: Whitelist IP for a Ban module.,!4894Issue #3280279: Add API to allow sites to opt in to upload SVG images in CKEditor 5,!4857Issue #3336994: StringFormatter always displays links to entity even if the user in context does not have access,!4856Issue #3336994: StringFormatter always displays links to entity even if the user in context does not have access,!4788Issue #3272985: RSS Feed header reverts to text/html when cached,!3679Issue #115801: Allow password on registration without disabling e-mail verification,!3106Issue #3017548: "Filtered HTML" text format does not support manual teaser break (<!--break-->),!925Issue #2339235: Remove taxonomy hard dependency on node module,!872Draft: Issue #3221319: Race condition when creating menu links and editing content deletes menu links
Pipeline #19834 passed
Pipeline: drupal

#19837

    ......@@ -61,12 +61,8 @@ public function toOpsArray(array $diff): array {
    if (count($hunkTarget) === 0) {
    $ops[] = $this->hunkOp(Differ::REMOVED, $hunkSource, $hunkTarget);
    }
    elseif (count($hunkSource) >= count($hunkTarget)) {
    $ops[] = $this->hunkOp(self::CHANGED, $hunkSource, $hunkTarget);
    }
    else {
    $ops[] = $this->hunkOp(self::CHANGED, $hunkSource, array_slice($hunkTarget, 0, count($hunkSource)));
    $ops[] = $this->hunkOp(Differ::ADDED, array_slice($hunkTarget, count($hunkSource)), []);
    $ops[] = $this->hunkOp(self::CHANGED, $hunkSource, $hunkTarget);
    }
    $hunkMode = NULL;
    $hunkSource = [];
    ......
    ......@@ -73,6 +73,16 @@ public function provideTestDiff(): array {
    ['aa', 'bb', 'cc', 'd'],
    ['a', 'c', 'd'],
    ],
    'copy-change-copy-change' => [
    [
    new DiffOpCopy(['a']),
    new DiffOpChange(['bb'], ['b', 'c']),
    new DiffOpCopy(['d']),
    new DiffOpChange(['ee'], ['e']),
    ],
    ['a', 'bb', 'd', 'ee'],
    ['a', 'b', 'c', 'd', 'e'],
    ],
    ];
    }
    ......@@ -111,12 +121,11 @@ public function testDiffInfiniteLoop(): void {
    $differ = new Differ($diffOpBuilder);
    $diff = $differ->diffToArray($from, $to);
    $diffOps = $diffOpBuilder->toOpsArray($diff);
    $this->assertCount(5, $diffOps);
    $this->assertCount(4, $diffOps);
    $this->assertEquals($diffOps[0], new DiffOpAdd([' - image.style.max_325x325']));
    $this->assertEquals($diffOps[1], new DiffOpCopy([' - image.style.max_650x650']));
    $this->assertEquals($diffOps[2], new DiffOpChange([' - image.style.max_325x325'], ['_core:']));
    $this->assertEquals($diffOps[3], new DiffOpAdd([' default_config_hash: 3mjM9p-kQ8syzH7N8T0L9OnCJDSPvHAZoi3q6jcXJKM']));
    $this->assertEquals($diffOps[4], new DiffOpCopy(['fallback_image_style: max_325x325', '']));
    $this->assertEquals($diffOps[2], new DiffOpChange([' - image.style.max_325x325'], ['_core:', ' default_config_hash: 3mjM9p-kQ8syzH7N8T0L9OnCJDSPvHAZoi3q6jcXJKM']));
    $this->assertEquals($diffOps[3], new DiffOpCopy(['fallback_image_style: max_325x325', '']));
    }
    }
    ......@@ -70,6 +70,24 @@ public function provideTestDiff() {
    ['a', 'b', 'd'],
    ['a'],
    ],
    'change-copy' => [
    [
    DiffOpChange::class,
    DiffOpCopy::class,
    ],
    ['aa', 'bb', 'cc', 'd'],
    ['a', 'c', 'd'],
    ],
    'copy-change-copy-change' => [
    [
    DiffOpCopy::class,
    DiffOpChange::class,
    DiffOpCopy::class,
    DiffOpChange::class,
    ],
    ['a', 'bb', 'd', 'ee'],
    ['a', 'b', 'c', 'd', 'e'],
    ],
    ];
    }
    ......
    0% Loading or .
    You are about to add 0 people to the discussion. Proceed with caution.
    Please register or to comment