Merge "userExpLevel test: use $tables from function under tests"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Tue, 2 May 2017 19:58:22 +0000 (19:58 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Tue, 2 May 2017 19:58:22 +0000 (19:58 +0000)
1  2 
tests/phpunit/includes/specialpage/ChangesListSpecialPageTest.php

@@@ -396,7 -396,6 +396,7 @@@ class ChangesListSpecialPageTest extend
        }
  
        public function testFilterUserExpLevel() {
 +              $now = time();
                $this->setMwGlobals( [
                        'wgLearnerEdits' => 10,
                        'wgLearnerMemberSince' => 4,
                        'Learner3' => [ 'edits' => 460, 'days' => 33 ],
                        'Learner4' => [ 'edits' => 525, 'days' => 28 ],
                        'Experienced1' => [ 'edits' => 538, 'days' => 33 ],
 -              ] );
 +              ], $now );
  
                // newcomers only
                $this->assertArrayEquals(
                        [ 'Newcomer1', 'Newcomer2', 'Newcomer3' ],
 -                      $this->fetchUsers( [ 'newcomer' ] )
 +                      $this->fetchUsers( [ 'newcomer' ], $now )
                );
  
                // newcomers and learner
                                'Newcomer1', 'Newcomer2', 'Newcomer3',
                                'Learner1', 'Learner2', 'Learner3', 'Learner4',
                        ],
 -                      $this->fetchUsers( [ 'newcomer', 'learner' ] )
 +                      $this->fetchUsers( [ 'newcomer', 'learner' ], $now )
                );
  
                // newcomers and more learner
                                'Newcomer1', 'Newcomer2', 'Newcomer3',
                                'Experienced1',
                        ],
 -                      $this->fetchUsers( [ 'newcomer', 'experienced' ] )
 +                      $this->fetchUsers( [ 'newcomer', 'experienced' ], $now )
                );
  
                // learner only
                $this->assertArrayEquals(
                        [ 'Learner1', 'Learner2', 'Learner3', 'Learner4' ],
 -                      $this->fetchUsers( [ 'learner' ] )
 +                      $this->fetchUsers( [ 'learner' ], $now )
                );
  
                // more experienced only
                $this->assertArrayEquals(
                        [ 'Experienced1' ],
 -                      $this->fetchUsers( [ 'experienced' ] )
 +                      $this->fetchUsers( [ 'experienced' ], $now )
                );
  
                // learner and more experienced
                                'Learner1', 'Learner2', 'Learner3', 'Learner4',
                                'Experienced1',
                        ],
 -                      $this->fetchUsers( [ 'learner', 'experienced' ] ),
 +                      $this->fetchUsers( [ 'learner', 'experienced' ], $now ),
                        'Learner and more experienced'
                );
  
                /*              'Learner1', 'Learner2', 'Learner3', 'Learner4', */
                /*              'Experienced1', */
                /*      ], */
 -              /*      $this->fetchUsers( [ 'newcomer', 'learner', 'experienced' ] ) */
 +              /*      $this->fetchUsers( [ 'newcomer', 'learner', 'experienced' ], $now ) */
                /* ); */
        }
  
 -      private function createUsers( $specs ) {
 +      private function createUsers( $specs, $now ) {
                $dbw = wfGetDB( DB_MASTER );
                foreach ( $specs as $name => $spec ) {
                        User::createNew(
                                $name,
                                [
                                        'editcount' => $spec['edits'],
 -                                      'registration' => $dbw->timestamp( $this->daysAgo( $spec['days'] ) ),
 +                                      'registration' => $dbw->timestamp( $this->daysAgo( $spec['days'], $now ) ),
                                        'email' => 'ut',
                                ]
                        );
                }
        }
  
 -      private function fetchUsers( $filters ) {
 +      private function fetchUsers( $filters, $now ) {
                $tables = [];
                $conds = [];
                $fields = [];
                                &$conds,
                                &$query_options,
                                &$join_conds,
 -                              $filters
 +                              $filters,
 +                              $now
                        ]
                );
  
                $result = wfGetDB( DB_MASTER )->select(
-                       'user',
+                       $tables,
                        'user_name',
                        array_filter( $conds ) + [ 'user_email' => 'ut' ]
                );
                return $usernames;
        }
  
 -      private function daysAgo( $days ) {
 +      private function daysAgo( $days, $now ) {
                $secondsPerDay = 86400;
 -              return time() - $days * $secondsPerDay;
 +              return $now - $days * $secondsPerDay;
        }
  
        public function testGetFilterGroupDefinitionFromLegacyCustomFilters() {