Back-end of new RecentChanges page, refactoring
[lhc/web/wiklou.git] / tests / phpunit / includes / specialpage / AbstractChangesListSpecialPageTestCase.php
1 <?php
2
3 /**
4 * Abstract base class for shared logic when testing ChangesListSpecialPage
5 * and subclasses
6 *
7 * @group Database
8 */
9 abstract class AbstractChangesListSpecialPageTestCase extends MediaWikiTestCase {
10 // Must be initialized by subclass
11 /**
12 * @var ChangesListSpecialPage
13 */
14 protected $changesListSpecialPage;
15
16 protected function setUp() {
17 parent::setUp();
18 $this->setMwGlobals( 'wgRCWatchCategoryMembership', true );
19 }
20
21 /**
22 * @dataProvider provideParseParameters
23 */
24 public function testParseParameters( $params, $expected ) {
25 $this->changesListSpecialPage->registerFilters();
26
27 $opts = new FormOptions();
28 foreach ( $expected as $key => $value ) {
29 // Register it as null so sets aren't rejected.
30 $opts->add(
31 $key,
32 null,
33 FormOptions::guessType( $expected )
34 );
35 }
36
37 $this->changesListSpecialPage->parseParameters(
38 $params,
39 $opts
40 );
41
42 $this->assertArrayEquals(
43 $expected,
44 $opts->getAllValues(),
45 /** ordered= */ false,
46 /** named= */ true
47 );
48 }
49 }