Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
18.18% covered (danger)
18.18%
2 / 11
66.67% covered (warning)
66.67%
2 / 3
CRAP
0.00% covered (danger)
0.00%
0 / 1
RevisionList
18.18% covered (danger)
18.18%
2 / 11
66.67% covered (warning)
66.67%
2 / 3
12.76
0.00% covered (danger)
0.00%
0 / 1
 getType
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 doQuery
0.00% covered (danger)
0.00%
0 / 9
0.00% covered (danger)
0.00%
0 / 1
6
 newItem
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2/**
3 * Holders of revision list for a single page
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License along
16 * with this program; if not, write to the Free Software Foundation, Inc.,
17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18 * http://www.gnu.org/copyleft/gpl.html
19 *
20 * @file
21 */
22
23use MediaWiki\MediaWikiServices;
24use Wikimedia\Rdbms\SelectQueryBuilder;
25
26class RevisionList extends RevisionListBase {
27    /** @inheritDoc */
28    public function getType() {
29        return 'revision';
30    }
31
32    /** @inheritDoc */
33    public function doQuery( $db ) {
34        $queryBuilder = MediaWikiServices::getInstance()->getRevisionStore()->newSelectQueryBuilder( $db )
35            ->joinComment()
36            ->joinPage()
37            ->joinUser()
38            ->where( [ 'rev_page' => $this->page->getId() ] )
39            ->orderBy( 'rev_id', SelectQueryBuilder::SORT_DESC );
40        if ( $this->ids !== null ) {
41            $queryBuilder->andWhere( [ 'rev_id' => array_map( 'intval', $this->ids ) ] );
42        }
43        return $queryBuilder->caller( __METHOD__ )->fetchResultSet();
44    }
45
46    /** @inheritDoc */
47    public function newItem( $row ) {
48        return new RevisionItem( $this, $row );
49    }
50}