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

Reply via email to