Merge "ChangesListSpecialPageTest: Use Database::makeList() instead of makeshift...
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Tue, 10 Apr 2018 13:08:20 +0000 (13:08 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Tue, 10 Apr 2018 13:08:20 +0000 (13:08 +0000)
includes/specialpage/ChangesListSpecialPage.php
tests/phpunit/includes/specialpage/ChangesListSpecialPageTest.php

index c38b0da..eb2cada 100644 (file)
@@ -276,7 +276,7 @@ abstract class ChangesListSpecialPage extends SpecialPage {
                                                'queryCallable' => function ( $specialClassName, $ctx, $dbr, &$tables, &$fields, &$conds,
                                                        &$query_options, &$join_conds
                                                ) {
-                                                       $conds[] = 'rc_bot = 0';
+                                                       $conds['rc_bot'] = 0;
                                                },
                                                'cssClassSuffix' => 'bot',
                                                'isRowApplicableCallable' => function ( $ctx, $rc ) {
@@ -291,7 +291,7 @@ abstract class ChangesListSpecialPage extends SpecialPage {
                                                'queryCallable' => function ( $specialClassName, $ctx, $dbr, &$tables, &$fields, &$conds,
                                                        &$query_options, &$join_conds
                                                ) {
-                                                       $conds[] = 'rc_bot = 1';
+                                                       $conds['rc_bot'] = 1;
                                                },
                                                'cssClassSuffix' => 'human',
                                                'isRowApplicableCallable' => function ( $ctx, $rc ) {
index d612b53..5118218 100644 (file)
@@ -105,9 +105,14 @@ class ChangesListSpecialPageTest extends AbstractChangesListSpecialPageTestCase
        }
 
        private static function normalizeCondition( $conds ) {
+               $dbr = wfGetDB( DB_REPLICA );
                $normalized = array_map(
-                       function ( $k, $v ) {
-                               return is_numeric( $k ) ? $v : "$k = $v";
+                       function ( $k, $v ) use ( $dbr ) {
+                               if ( is_array( $v ) ) {
+                                       sort( $v );
+                               }
+                               // (Ab)use makeList() to format only this entry
+                               return $dbr->makeList( [ $k => $v ], Database::LIST_AND );
                        },
                        array_keys( $conds ),
                        $conds
@@ -116,9 +121,9 @@ class ChangesListSpecialPageTest extends AbstractChangesListSpecialPageTestCase
                return $normalized;
        }
 
-       /** return false if condition begin with 'rc_timestamp ' */
+       /** return false if condition begins with 'rc_timestamp ' */
        private static function filterOutRcTimestampCondition( $var ) {
-               return ( false === strpos( $var, 'rc_timestamp ' ) );
+               return ( is_array( $var ) || false === strpos( $var, 'rc_timestamp ' ) );
        }
 
        public function testRcNsFilter() {
@@ -342,7 +347,7 @@ class ChangesListSpecialPageTest extends AbstractChangesListSpecialPageTestCase
                $user = $this->getTestSysop()->getUser();
                $this->assertConditions(
                        [ # expected
-                               "rc_patrolled = 0",
+                               'rc_patrolled = 0',
                        ],
                        [
                                'hidepatrolled' => 1,
@@ -356,7 +361,7 @@ class ChangesListSpecialPageTest extends AbstractChangesListSpecialPageTestCase
                $user = $this->getTestSysop()->getUser();
                $this->assertConditions(
                        [ # expected
-                               "rc_patrolled != 0",
+                               'rc_patrolled != 0',
                        ],
                        [
                                'hideunpatrolled' => 1,