Jeroen De Dauw has submitted this change and it was merged. Change subject: Clone Change objects returned by TestChanges. ......................................................................
Clone Change objects returned by TestChanges. Previously, test cases would modify the tests and leak state to subsequent tests. Change-Id: Id9e3f0e82f8de0d6b175ac19457d87e5e40f1134 --- M lib/tests/phpunit/changes/TestChanges.php 1 file changed, 37 insertions(+), 24 deletions(-) Approvals: Jeroen De Dauw: Looks good to me, approved jenkins-bot: Verified diff --git a/lib/tests/phpunit/changes/TestChanges.php b/lib/tests/phpunit/changes/TestChanges.php index 8dd2092..741f1e8 100644 --- a/lib/tests/phpunit/changes/TestChanges.php +++ b/lib/tests/phpunit/changes/TestChanges.php @@ -157,37 +157,45 @@ $new->removeSiteLink( 'enwiki', false ); $changes['remove-enwiki-sitelink'] = EntityChange::newFromUpdate( EntityChange::UPDATE, $old, $new ); $old = $new->copy(); + + // apply all the defaults ---------- + $defaults = array( + 'user_id' => 0, + 'time' => '20130101000000', + 'type' => 'test', + ); + + $rev = 1000; + + /* @var EntityChange $change */ + foreach ( $changes as $key => $change ) { + $change->setComment( "$key:1|" ); + + $meta = array( + 'comment' => '', + 'page_id' => 23, + 'bot' => false, + 'rev_id' => $rev, + 'parent_id' => $rev -1, + 'user_text' => 'Some User', + 'time' => wfTimestamp( TS_MW ), + ); + + $change->setMetadata( $meta ); + self::applyDefaults( $change, $defaults ); + + $rev += 1; + } } - $defaults = array( - 'user_id' => 0, - 'time' => '20130101000000', - 'type' => 'test', - ); - - $rev = 1000; + $clones = array(); /* @var EntityChange $change */ foreach ( $changes as $key => $change ) { - $change->setComment( "$key:1|" ); - - $meta = array( - 'comment' => '', - 'page_id' => 23, - 'bot' => false, - 'rev_id' => $rev, - 'parent_id' => $rev -1, - 'user_text' => 'Some User', - 'time' => wfTimestamp( TS_MW ), - ); - - $change->setMetadata( $meta ); - self::applyDefaults( $change, $defaults ); - - $rev += 1; + $clones[$key] = clone $change; } - return $changes; + return $clones; } /** @@ -211,6 +219,7 @@ // filter info field by key if ( $infoFilter !== null ) { $infoFilter = array_flip( $infoFilter ); + $filteredChanges = array(); /* @var \Wikibase\ChangeRow $change */ foreach ( $changes as $change ) { @@ -221,7 +230,11 @@ $change->setField( 'info', $info ); } + + $filteredChanges[] = $change; } + + $changes = $filteredChanges; } return $changes; -- To view, visit https://gerrit.wikimedia.org/r/74148 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: Id9e3f0e82f8de0d6b175ac19457d87e5e40f1134 Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/Wikibase Gerrit-Branch: master Gerrit-Owner: Daniel Kinzler <daniel.kinz...@wikimedia.de> Gerrit-Reviewer: Addshore <addshorew...@gmail.com> Gerrit-Reviewer: Aude <aude.w...@gmail.com> Gerrit-Reviewer: Daniel Werner <daniel.wer...@wikimedia.de> Gerrit-Reviewer: Denny Vrandecic <denny.vrande...@wikimedia.de> Gerrit-Reviewer: Jeroen De Dauw <jeroended...@gmail.com> Gerrit-Reviewer: jenkins-bot _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits