jenkins-bot has submitted this change and it was merged. (
https://gerrit.wikimedia.org/r/401959 )
Change subject: Diff support for forms
......................................................................
Diff support for forms
Bug: T182424
Depends-On: Ia4bebd82b013eaddca6cb9b988caf7328e260a1a
Change-Id: I50eb04857ba820faea56b484daaaca6d44a7822a
---
M WikibaseLexeme.entitytypes.php
M i18n/en.json
M i18n/qqq.json
M src/DataModel/Services/Diff/ChangeFormDiffOp.php
A src/Diff/FormDiffView.php
M src/Diff/LexemeDiffVisualizer.php
A tests/phpunit/mediawiki/Diff/FormDiffViewTest.php
M tests/phpunit/mediawiki/Diff/LexemeDiffVisualizerTest.php
8 files changed, 441 insertions(+), 8 deletions(-)
Approvals:
WMDE-leszek: Looks good to me, approved
Lucas Werkmeister (WMDE): Looks good to me, approved
jenkins-bot: Verified
diff --git a/WikibaseLexeme.entitytypes.php b/WikibaseLexeme.entitytypes.php
index 8567e80..7b5ce7f 100644
--- a/WikibaseLexeme.entitytypes.php
+++ b/WikibaseLexeme.entitytypes.php
@@ -194,7 +194,9 @@
return new LexemeDiffVisualizer(
$messageLocalizer,
- $basicEntityDiffVisualizer
+ $basicEntityDiffVisualizer,
+ $claimDiffer,
+ $claimDiffView
);
}
],
diff --git a/i18n/en.json b/i18n/en.json
index f90a514..fe0e54d 100644
--- a/i18n/en.json
+++ b/i18n/en.json
@@ -53,5 +53,7 @@
"wikibaselexeme-diffview-lexical-category": "lexical category",
"wikibaselexeme-diffview-language": "language",
"wikibaselexeme-diffview-form": "form",
+ "wikibaselexeme-diffview-representation": "representation",
+ "wikibaselexeme-diffview-grammatical-feature": "grammatical feature",
"content-model-wikibase-lexeme": "Wikibase lexeme"
}
diff --git a/i18n/qqq.json b/i18n/qqq.json
index 003fa5e..27e31a0 100644
--- a/i18n/qqq.json
+++ b/i18n/qqq.json
@@ -58,5 +58,7 @@
"wikibaselexeme-diffview-lexical-category": "Title of lexical category
in diff page",
"wikibaselexeme-diffview-language": "Title of language in diff
page\n{{Identical|Language}}",
"wikibaselexeme-diffview-form": "Title of form in diff page",
+ "wikibaselexeme-diffview-representation": "Title of representation in
diff page",
+ "wikibaselexeme-diffview-grammatical-feature": "Title of grammatical
feature in diff page",
"content-model-wikibase-lexeme": "The name for Wikibase lexeme content
model, used when describing what type of content a page contains."
}
diff --git a/src/DataModel/Services/Diff/ChangeFormDiffOp.php
b/src/DataModel/Services/Diff/ChangeFormDiffOp.php
index b86bd84..87dc709 100644
--- a/src/DataModel/Services/Diff/ChangeFormDiffOp.php
+++ b/src/DataModel/Services/Diff/ChangeFormDiffOp.php
@@ -15,7 +15,6 @@
* @var FormId
*/
private $formId;
-
/**
* @var Diff
*/
diff --git a/src/Diff/FormDiffView.php b/src/Diff/FormDiffView.php
new file mode 100644
index 0000000..1d82223
--- /dev/null
+++ b/src/Diff/FormDiffView.php
@@ -0,0 +1,141 @@
+<?php
+
+namespace Wikibase\Lexeme\Diff;
+
+use Diff\DiffOp\Diff\Diff;
+use Diff\DiffOp\DiffOp;
+use Diff\DiffOp\DiffOpAdd;
+use Diff\DiffOp\DiffOpChange;
+use Diff\DiffOp\DiffOpRemove;
+use MessageLocalizer;
+use MWException;
+use Wikibase\Lexeme\DataModel\Services\Diff\ChangeFormDiffOp;
+use Wikibase\Repo\Diff\BasicDiffView;
+use Wikibase\Repo\Diff\ClaimDiffer;
+use Wikibase\Repo\Diff\ClaimDifferenceVisualizer;
+
+/**
+ * Class for generating views of DiffOp objects of forms.
+ *
+ * @license GPL-2.0+
+ */
+class FormDiffView extends BasicDiffView {
+
+ /**
+ * @var ClaimDiffer|null
+ */
+ private $claimDiffer;
+
+ /**
+ * @var ClaimDifferenceVisualizer|null
+ */
+ private $claimDiffVisualizer;
+
+ /**
+ * @var MessageLocalizer
+ */
+ private $messageLocalizer;
+
+ /**
+ * @param string[] $path
+ * @param Diff $diff
+ * @param ClaimDiffer $claimDiffer
+ * @param ClaimDifferenceVisualizer $claimDiffVisualizer
+ * @param MessageLocalizer $messageLocalizer
+ */
+ public function __construct(
+ array $path,
+ Diff $diff,
+ ClaimDiffer $claimDiffer,
+ ClaimDifferenceVisualizer $claimDiffVisualizer,
+ MessageLocalizer $messageLocalizer
+ ) {
+ parent::__construct( $path, $diff );
+
+ $this->claimDiffer = $claimDiffer;
+ $this->claimDiffVisualizer = $claimDiffVisualizer;
+ $this->messageLocalizer = $messageLocalizer;
+ }
+
+ /**
+ * @param string[] $path
+ * @param DiffOp $op
+ *
+ * @return string
+ * @throws MWException
+ */
+ protected function generateOpHtml( array $path, DiffOp $op ) {
+ $html = '';
+ if ( $op->isAtomic() ) {
+ return parent::generateOpHtml( $path, $op );
+ }
+ foreach ( $op as $key => $subOp ) {
+ if ( !$subOp instanceof ChangeFormDiffOp ) {
+ $html .= $this->generateOpHtml( array_merge(
$path, [ $key ] ), $subOp );
+ } else {
+ $html .= $this->generateFormOpHtml( $path,
$subOp, $key );
+ }
+ }
+ return $html;
+ }
+
+ private function generateFormOpHtml( $path, ChangeFormDiffOp $op, $key
) {
+ $html = '';
+ foreach ( $op->getStatementsDiffOps() as $claimDiffOp ) {
+ $html .= $this->getClaimDiffHtml(
+ $claimDiffOp,
+ array_merge( $path, [ $key ] )
+ );
+ }
+
+ $html .= parent::generateOpHtml(
+ array_merge(
+ $path,
+ [ $key, $this->messageLocalizer->msg(
'wikibaselexeme-diffview-representation' )->text() ]
+ ),
+ $op->getRepresentationDiffOps()
+ );
+
+ $html .= parent::generateOpHtml(
+ array_merge(
+ $path,
+ [ $key, $this->messageLocalizer->msg(
'wikibaselexeme-diffview-grammatical-feature' )->text() ]
+ ),
+ $op->getGrammaticalFeaturesDiffOps()
+ );
+
+ return $html;
+ }
+
+ /**
+ * @param DiffOp $claimDiffOp
+ *
+ * @return string HTML
+ * @throws MWException
+ */
+ protected function getClaimDiffHtml( DiffOp $claimDiffOp, array $path )
{
+ if ( $claimDiffOp instanceof DiffOpChange ) {
+ $claimDifference = $this->claimDiffer->diffClaims(
+ $claimDiffOp->getOldValue(),
+ $claimDiffOp->getNewValue()
+ );
+ return $this->claimDiffVisualizer->visualizeClaimChange(
+ $claimDifference,
+ $claimDiffOp->getNewValue(),
+ $path
+ );
+ }
+
+ if ( $claimDiffOp instanceof DiffOpAdd ) {
+ return $this->claimDiffVisualizer->visualizeNewClaim(
$claimDiffOp->getNewValue(), $path );
+ } elseif ( $claimDiffOp instanceof DiffOpRemove ) {
+ return
$this->claimDiffVisualizer->visualizeRemovedClaim(
+ $claimDiffOp->getOldValue(),
+ $path
+ );
+ } else {
+ throw new MWException( 'Encountered an unexpected diff
operation type for a claim' );
+ }
+ }
+
+}
diff --git a/src/Diff/LexemeDiffVisualizer.php
b/src/Diff/LexemeDiffVisualizer.php
index 78f0e7d..a8210f2 100644
--- a/src/Diff/LexemeDiffVisualizer.php
+++ b/src/Diff/LexemeDiffVisualizer.php
@@ -8,6 +8,8 @@
use Wikibase\Repo\Content\EntityContentDiff;
use Wikibase\Repo\Diff\BasicDiffView;
use Wikibase\Repo\Diff\BasicEntityDiffVisualizer;
+use Wikibase\Repo\Diff\ClaimDiffer;
+use Wikibase\Repo\Diff\ClaimDifferenceVisualizer;
use Wikibase\Repo\Diff\EntityDiffVisualizer;
/**
@@ -28,12 +30,26 @@
*/
private $basicEntityDiffVisualizer;
+ /**
+ * @var ClaimDiffer|null
+ */
+ private $claimDiffer;
+
+ /**
+ * @var ClaimDifferenceVisualizer|null
+ */
+ private $claimDiffVisualizer;
+
public function __construct(
MessageLocalizer $messageLocalizer,
- EntityDiffVisualizer $basicEntityDiffVisualizer
+ EntityDiffVisualizer $basicEntityDiffVisualizer,
+ ClaimDiffer $claimDiffer,
+ ClaimDifferenceVisualizer $claimDiffView
) {
$this->messageLocalizer = $messageLocalizer;
$this->basicEntityDiffVisualizer = $basicEntityDiffVisualizer;
+ $this->claimDiffer = $claimDiffer;
+ $this->claimDiffVisualizer = $claimDiffView;
}
/**
@@ -61,7 +77,7 @@
* @return string
*/
private function visualizeEntityDiff( EntityDiff $diff ) {
- return ( new BasicDiffView(
+ $basicDiff = ( new BasicDiffView(
[],
new Diff(
[
@@ -70,13 +86,25 @@
$this->messageLocalizer->msg(
'wikibaselexeme-diffview-lexical-category' )
->text() =>
$diff->getLexicalCategoryDiff(),
$this->messageLocalizer->msg(
'wikibaselexeme-diffview-language' )->text() =>
- $diff->getLanguageDiff(),
- $this->messageLocalizer->msg(
'wikibaselexeme-diffview-form' )->text() =>
- $diff->getFormsDiff(),
+ $diff->getLanguageDiff()
],
true
)
) )->getHtml();
+ $formDiff = ( new FormDiffView(
+ [],
+ new Diff(
+ [
+ $this->messageLocalizer->msg(
'wikibaselexeme-diffview-form' )->text() =>
+ $diff->getFormsDiff(),
+ ],
+ true
+ ),
+ $this->claimDiffer,
+ $this->claimDiffVisualizer,
+ $this->messageLocalizer
+ ) )->getHtml();
+ return $basicDiff . $formDiff;
}
}
diff --git a/tests/phpunit/mediawiki/Diff/FormDiffViewTest.php
b/tests/phpunit/mediawiki/Diff/FormDiffViewTest.php
new file mode 100644
index 0000000..e4e3634
--- /dev/null
+++ b/tests/phpunit/mediawiki/Diff/FormDiffViewTest.php
@@ -0,0 +1,238 @@
+<?php
+
+namespace Wikibase\Lexeme\Tests\Diff;
+
+use Diff\Comparer\ComparableComparer;
+use Diff\DiffOp\Diff\Diff;
+use Diff\OrderedListDiffer;
+use MessageLocalizer;
+use RawMessage;
+use Wikibase\DataModel\Entity\PropertyId;
+use Wikibase\DataModel\Services\EntityId\EntityIdFormatter;
+use Wikibase\DataModel\Snak\PropertySomeValueSnak;
+use Wikibase\DataModel\Statement\Statement;
+use Wikibase\Lexeme\DataModel\Services\Diff\ChangeFormDiffOp;
+use Wikibase\Lexeme\DataModel\Services\Diff\FormDiffer;
+use Wikibase\Lexeme\Diff\FormDiffView;
+use Wikibase\Lexeme\Tests\DataModel\NewForm;
+use Wikibase\Lib\SnakFormatter;
+use Wikibase\Repo\Diff\ClaimDiffer;
+use Wikibase\Repo\Diff\ClaimDifferenceVisualizer;
+use Wikibase\Repo\Diff\DifferencesSnakVisualizer;
+
+/**
+ * @covers Wikibase\Lexeme\Diff\FormDiffView
+ *
+ * @license GPL-2.0+
+ */
+class FormDiffViewTest extends \PHPUnit_Framework_TestCase {
+
+ /**
+ * @return ClaimDiffer
+ */
+ private function getMockClaimDiffer() {
+ return new ClaimDiffer( new OrderedListDiffer( new
ComparableComparer() ) );
+ }
+
+ /**
+ * @param string $returnValue
+ * @param string $format
+ *
+ * @return SnakFormatter
+ */
+ public function newSnakFormatter(
+ $returnValue = '<i>SNAK</i>',
+ $format = SnakFormatter::FORMAT_HTML
+ ) {
+ $instance = $this->getMock( SnakFormatter::class );
+ $instance->expects( $this->any() )
+ ->method( 'getFormat' )
+ ->will( $this->returnValue( $format ) );
+ $instance->expects( $this->any() )
+ ->method( 'canFormatSnak' )
+ ->will( $this->returnValue( true ) );
+ $instance->expects( $this->any() )
+ ->method( 'formatSnak' )
+ ->will( $this->returnValue( $returnValue ) );
+ return $instance;
+ }
+
+ /**
+ * @return EntityIdFormatter
+ */
+ public function newEntityIdLabelFormatter() {
+ $instance = $this->getMock( EntityIdFormatter::class );
+
+ $instance->expects( $this->any() )
+ ->method( 'formatEntityId' )
+ ->will( $this->returnValue( '<a>PID</a>' ) );
+
+ return $instance;
+ }
+
+ /**
+ * @return ClaimDifferenceVisualizer
+ */
+ private function getMockClaimDiffVisualizer() {
+ return new ClaimDifferenceVisualizer(
+ new DifferencesSnakVisualizer(
+ $this->newEntityIdLabelFormatter(),
+ $this->newSnakFormatter( '<i>DETAILED SNAK</i>'
),
+ $this->newSnakFormatter(),
+ 'qqx'
+ ),
+ 'qqx'
+ );
+ }
+
+ /**
+ * @return MessageLocalizer
+ */
+ private function getMockMessageLocalizer() {
+ $mock = $this->getMock( MessageLocalizer::class );
+
+ $mock->method( 'msg' )
+ ->will( $this->returnCallback( function ( $key ) {
+ return new RawMessage( "($key)" );
+ } ) );
+
+ return $mock;
+ }
+
+ /**
+ * @return FormDiffView
+ */
+ private function getDiffView( ChangeFormDiffOp $diff ) {
+ return new FormDiffView(
+ [],
+ new Diff(
+ [ 'form' => new Diff( [
$diff->getFormId()->getSerialization() => $diff ], true ) ],
+ true
+ ),
+ $this->getMockClaimDiffer(),
+ $this->getMockClaimDiffVisualizer(),
+ $this->getMockMessageLocalizer()
+ );
+ }
+
+ public function testDiffChangedRepresentations() {
+ $differ = new FormDiffer();
+ $form1 = NewForm::havingId( 'F1' )
+ ->andRepresentation( 'en', 'cat' )
+ ->build();
+ $form2 = NewForm::havingId( 'F1' )
+ ->andRepresentation( 'en', 'goat' )
+ ->build();
+ $diff = $differ->diffEntities( $form1, $form2 );
+
+ $formDiffViewHeader = 'form / L1-F1 /
(wikibaselexeme-diffview-representation) / en';
+ $expected = '<tr><td colspan="2" class="diff-lineno">' .
$formDiffViewHeader .
+ '</td><td colspan="2" class="diff-lineno">' .
$formDiffViewHeader . '</td></tr>' .
+ '<tr><td class="diff-marker">-</td><td
class="diff-deletedline"><div>' .
+ '<del class="diffchange
diffchange-inline">cat</del></div></td><td class="diff-marker">' .
+ '+</td><td class="diff-addedline"><div><ins
class="diffchange diffchange-inline">' .
+ 'goat</ins></div></td></tr>';
+ $this->assertSame( $expected, $this->getDiffView( $diff
)->getHtml() );
+ }
+
+ public function testDiffAddedRepresentations() {
+ $differ = new FormDiffer();
+ $form1 = NewForm::havingId( 'F1' )
+ ->andRepresentation( 'en', 'en-value' )
+ ->build();
+ $form2 = NewForm::havingId( 'F1' )
+ ->andRepresentation( 'en', 'en-value' )
+ ->andRepresentation( 'fr', 'fr-value' )
+ ->build();
+
+ $diff = $differ->diffEntities( $form1, $form2 );
+
+ $formDiffViewHeader = 'form / L1-F1 /
(wikibaselexeme-diffview-representation) / fr';
+ $expected = '<tr><td colspan="2" class="diff-lineno">' .
$formDiffViewHeader .
+ '</td><td colspan="2" class="diff-lineno">' .
$formDiffViewHeader . '</td></tr>' .
+ '<tr><td colspan="2"> </td><td
class="diff-marker">+</td><td class="diff-addedline">' .
+ '<div><ins class="diffchange
diffchange-inline">fr-value</ins></div></td></tr>';
+ $this->assertSame( $expected, $this->getDiffView( $diff
)->getHtml() );
+ }
+
+ public function testDiffAddedGrammaticalFeatures() {
+ $differ = new FormDiffer();
+ $form1 = NewForm::havingId( 'F1' )
+ ->andRepresentation( 'en', 'en-value' )
+ ->andGrammaticalFeature( 'Q1' )
+ ->build();
+ $form2 = NewForm::havingId( 'F1' )
+ ->andRepresentation( 'en', 'en-value' )
+ ->andGrammaticalFeature( 'Q1' )
+ ->andGrammaticalFeature( 'Q2' )
+ ->build();
+ $diff = $differ->diffEntities( $form1, $form2 );
+
+ $formDiffViewHeader = 'form / L1-F1 /
(wikibaselexeme-diffview-grammatical-feature) / 0';
+ $expected = '<tr><td colspan="2" class="diff-lineno">' .
$formDiffViewHeader .
+ '</td><td colspan="2" class="diff-lineno">' .
$formDiffViewHeader . '</td>' .
+ '</tr><tr><td colspan="2"> </td><td
class="diff-marker">+</td>' .
+ '<td class="diff-addedline"><div><ins class="diffchange
diffchange-inline">Q2</ins>'.
+ '</div></td></tr>';
+ $this->assertSame( $expected, $this->getDiffView( $diff
)->getHtml() );
+ }
+
+ public function testDiffChangedStatements() {
+ $differ = new FormDiffer();
+ $form1 = NewForm::havingId( 'F1' )
+ ->andRepresentation( 'en', 'en-value' )
+ ->andStatement( $this->someStatement( 'P1', 'guid1' ) )
+ ->build();
+ $form2 = NewForm::havingId( 'F1' )
+ ->andRepresentation( 'en', 'en-value' )
+ ->andStatement( $this->someStatement( 'P1', 'guid1' ) )
+ ->andStatement( $this->someStatement( 'P2', 'guid2' ) )
+ ->build();
+
+ $diff = $differ->diffEntities( $form1, $form2 );
+
+ $expected = '<tr><td colspan="2" class="diff-lineno"></td><td
colspan="2" class="diff-lineno">' .
+ 'form / L1-F1 / (wikibase-entity-property) /
<a>PID</a></td></tr><tr>' .
+ '<td colspan="2"> </td><td
class="diff-marker">+</td><td class="diff-addedline">' .
+ '<div><ins class="diffchange
diffchange-inline"><span><i>DETAILED SNAK</i></span></ins>' .
+ '</div></td></tr><tr><td colspan="2"
class="diff-lineno"></td><td colspan="2" ' .
+ 'class="diff-lineno">form / L1-F1 /
(wikibase-entity-property) / <a>PID</a>' .
+ '(colon-separator)<i>SNAK</i> /
(wikibase-diffview-rank)</td></tr><tr><td colspan="2">' .
+ ' </td><td class="diff-marker">+</td><td
class="diff-addedline"><div>' .
+ '<ins class="diffchange
diffchange-inline"><span>(wikibase-diffview-rank-normal)</span>' .
+ '</ins></div></td></tr>';
+ $this->assertSame( $expected, $this->getDiffView( $diff
)->getHtml() );
+ }
+
+ public function testPatchRemovedGrammaticalFeature() {
+ $differ = new FormDiffer();
+ $form1 = NewForm::havingId( 'F1' )
+ ->andRepresentation( 'en', 'en-value' )
+ ->andGrammaticalFeature( 'Q1' )
+ ->build();
+ $form2 = NewForm::havingId( 'F1' )
+ ->andRepresentation( 'en', 'en-value' )
+ ->build();
+
+ $diff = $differ->diffEntities( $form1, $form2 );
+
+ $formDiffViewHeader = 'form / L1-F1 /
(wikibaselexeme-diffview-grammatical-feature) / 0';
+ $expected = '<tr><td colspan="2" class="diff-lineno">' .
$formDiffViewHeader . '</td>' .
+ '<td colspan="2" class="diff-lineno">' .
$formDiffViewHeader .
+ '</td></tr><tr><td class="diff-marker">-</td><td
class="diff-deletedline"><div>' .
+ '<del class="diffchange
diffchange-inline">Q1</del></div></td></tr>';
+ $this->assertSame( $expected, $this->getDiffView( $diff
)->getHtml() );
+ }
+
+ /**
+ * @return mixed
+ */
+ private function someStatement( $propertyId, $guid ) {
+ $statement = new Statement(
+ new PropertySomeValueSnak( new PropertyId( $propertyId
) )
+ );
+ $statement->setGuid( $guid );
+ return $statement;
+ }
+
+}
diff --git a/tests/phpunit/mediawiki/Diff/LexemeDiffVisualizerTest.php
b/tests/phpunit/mediawiki/Diff/LexemeDiffVisualizerTest.php
index 05ab888..69729c8 100644
--- a/tests/phpunit/mediawiki/Diff/LexemeDiffVisualizerTest.php
+++ b/tests/phpunit/mediawiki/Diff/LexemeDiffVisualizerTest.php
@@ -13,6 +13,8 @@
use Site;
use Wikibase\DataModel\Services\Diff\EntityDiff;
use Wikibase\DataModel\Services\EntityId\EntityIdFormatter;
+use Wikibase\Lexeme\DataModel\FormId;
+use Wikibase\Lexeme\DataModel\Services\Diff\ChangeFormDiffOp;
use Wikibase\Lexeme\DataModel\Services\Diff\LexemeDiff;
use Wikibase\Lexeme\Diff\LexemeDiffVisualizer;
use Wikibase\Repo\Content\EntityContentDiff;
@@ -39,6 +41,13 @@
}
public function diffProvider() {
+ $formDiff = new ChangeFormDiffOp(
+ new FormId( 'L1-F1' ),
+ new Diff( [
+ 'representations' => new Diff( [ 'en' => new
DiffOpChange( 'old', 'new' ) ], true ),
+ 'grammaticalFeatures' => new DiffOpChange(
'Q5', 'Q6' )
+ ], true )
+ );
$lexemeDiff = new EntityContentDiff(
new LexemeDiff( [
'lemmas' => new Diff( [
@@ -52,11 +61,15 @@
'language' => new Diff( [
'id' => new DiffOpChange( 'Q3', 'Q4' ),
], true ),
+ 'forms' => new Diff( [
+ 'L1-F1' => $formDiff,
+ ], true ),
] ),
new Diff(),
'lexeme'
);
+ $expectedForm = '(wikibaselexeme-diffview-form) / L1-F1 /
(wikibaselexeme-diffview-';
$lexemeTags = [
'has <td>lemma / en</td>' =>
'>(wikibaselexeme-diffview-lemma) / en</td>',
'has <ins>O_o</ins>' => '>O_o</ins>',
@@ -65,6 +78,12 @@
'has <td>language / id</td>' =>
'>(wikibaselexeme-diffview-language) / id</td>',
'has <del>Q3</del>' => '>Q3</del>',
'has <ins>Q4</ins>' => '>Q4</ins>',
+ 'has form representation' => $expectedForm .
'representation) / en<',
+ 'has <del>old</del>' => '>old</del>',
+ 'has <ins>new</ins>' => '>new</ins>',
+ 'has form grammatical-feature' => $expectedForm .
'grammatical-feature)',
+ 'has <del>Q5</del>' => '>Q5</del>',
+ 'has <ins>Q6</ins>' => '>Q6</ins>',
];
$redirectDiff = new EntityContentDiff(
@@ -135,7 +154,9 @@
return new LexemeDiffVisualizer(
$this->getMockMessageLocalizer(),
- $baiscVisualizer
+ $baiscVisualizer,
+ $this->getMockClaimDiffer(),
+ $this->getMockClaimDiffVisualizer()
);
}
--
To view, visit https://gerrit.wikimedia.org/r/401959
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I50eb04857ba820faea56b484daaaca6d44a7822a
Gerrit-PatchSet: 5
Gerrit-Project: mediawiki/extensions/WikibaseLexeme
Gerrit-Branch: master
Gerrit-Owner: Ladsgroup <[email protected]>
Gerrit-Reviewer: Ladsgroup <[email protected]>
Gerrit-Reviewer: Lucas Werkmeister (WMDE) <[email protected]>
Gerrit-Reviewer: Thiemo Kreuz (WMDE) <[email protected]>
Gerrit-Reviewer: WMDE-leszek <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits