Daniel Kinzler has uploaded a new change for review.
https://gerrit.wikimedia.org/r/74148
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(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase
refs/changes/48/74148/1
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: newchange
Gerrit-Change-Id: Id9e3f0e82f8de0d6b175ac19457d87e5e40f1134
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Daniel Kinzler <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits