RCFilters: Test abstract class func directly, not in subclass tests
[lhc/web/wiklou.git] / tests / phpunit / includes / changes / ChangesListBooleanFilterGroupTest.php
1 <?php
2
3 /**
4 * @covers ChangesListBooleanFilterGroup
5 */
6 class ChangesListBooleanFilterGroupTest extends MediaWikiTestCase {
7 public function testIsFullCoverage() {
8 $hideGroupDefault = TestingAccessWrapper::newFromObject(
9 new ChangesListBooleanFilterGroup( [
10 'name' => 'groupName',
11 'priority' => 1,
12 'filters' => [],
13 ] )
14 );
15
16 $this->assertSame(
17 true,
18 $hideGroupDefault->isFullCoverage
19 );
20 }
21
22 public function testGetJsData() {
23 $definition = [
24 'name' => 'some-group',
25 'title' => 'some-group-title',
26 'priority' => 1,
27 'filters' => [
28 [
29 'name' => 'hidefoo',
30 'label' => 'foo-label',
31 'description' => 'foo-description',
32 'default' => true,
33 'showHide' => 'showhidefoo',
34 'priority' => 2,
35 ],
36 [
37 'name' => 'hidebar',
38 'label' => 'bar-label',
39 'description' => 'bar-description',
40 'default' => false,
41 'priority' => 4,
42 ]
43 ],
44 ];
45
46 $group = new ChangesListBooleanFilterGroup( $definition );
47
48 $specialPage = $this->getMockBuilder( 'ChangesListSpecialPage' )
49 ->setConstructorArgs( [
50 'ChangesListSpecialPage',
51 '',
52 ] )
53 ->getMockForAbstractClass();
54
55 $this->assertArrayEquals(
56 [
57 'name' => 'some-group',
58 'title' => 'some-group-title',
59 'type' => ChangesListBooleanFilterGroup::TYPE,
60 'priority' => 1,
61 'filters' => [
62 [
63 'name' => 'hidebar',
64 'label' => 'bar-label',
65 'description' => 'bar-description',
66 'default' => false,
67 'priority' => 4,
68 'cssClass' => null,
69 'conflicts' => [],
70 'subset' => [],
71 ],
72 [
73 'name' => 'hidefoo',
74 'label' => 'foo-label',
75 'description' => 'foo-description',
76 'default' => true,
77 'priority' => 2,
78 'cssClass' => null,
79 'conflicts' => [],
80 'subset' => [],
81 ],
82 ],
83 'conflicts' => [],
84 'fullCoverage' => true,
85 'messageKeys' => [
86 'some-group-title',
87 'bar-label',
88 'bar-description',
89 'foo-label',
90 'foo-description',
91 ],
92 ],
93
94 $group->getJsData( $specialPage ),
95 /** ordered= */ false,
96 /** named= */ true
97 );
98 }
99 }