22
33namespace MediaWiki \Extension \CrawlerProtection \Tests ;
44
5+ use MediaWiki \Actions \ActionEntryPoint ;
56use MediaWiki \Extension \CrawlerProtection \Hooks ;
6- use OutputPage ;
7- use Title ;
7+ use MediaWiki \Output \OutputPage ;
8+ use MediaWiki \Page \Article ;
9+ use MediaWiki \Title \Title ;
10+ use PHPUnit \Framework \TestCase ;
811use User ;
912use WebRequest ;
10- use MediaWiki \MediaWiki ;
11- use Article ;
12- use PHPUnit \Framework \TestCase ;
1313
14+ /**
15+ * @coversDefaultClass \MediaWiki\Extension\CrawlerProtection\Hooks
16+ */
1417class HooksTest extends TestCase {
15- public function testRevisionTypeBlocksAnonymous () {
16- $ output = $ this ->createMock ( OutputPage::class );
17- $ output ->expects ( $ this ->once () )->method ( 'setPageTitle ' );
18- $ output ->expects ( $ this ->once () )->method ( 'addWikiTextAsInterface ' );
19- $ output ->expects ( $ this ->once () )->method ( 'setStatusCode ' )->with ( 403 );
20-
21- $ request = $ this ->createMock ( WebRequest::class );
22- $ request ->method ( 'getVal ' )->with ( 'type ' )->willReturn ( 'revision ' );
23-
24- $ user = $ this ->createMock ( User::class );
25- $ user ->method ( 'isRegistered ' )->willReturn ( false );
26-
27- $ article = $ this ->createMock ( Article::class );
28- $ title = $ this ->createMock ( Title::class );
29- $ wiki = $ this ->createMock ( MediaWiki::class );
30-
31- $ result = Hooks::onMediaWikiPerformAction ( $ output , $ article , $ title , $ user , $ request , $ wiki );
32- $ this ->assertFalse ( $ result );
33- }
34-
35- public function testRevisionTypeAllowsLoggedIn () {
36- $ output = $ this ->createMock ( OutputPage::class );
37-
38- $ request = $ this ->createMock ( WebRequest::class );
39- $ request ->method ( 'getVal ' )->with ( 'type ' )->willReturn ( 'revision ' );
40-
41- $ user = $ this ->createMock ( User::class );
42- $ user ->method ( 'isRegistered ' )->willReturn ( true );
43-
44- $ article = $ this ->createMock ( Article::class );
45- $ title = $ this ->createMock ( Title::class );
46- $ wiki = $ this ->createMock ( MediaWiki::class );
47-
48- $ result = Hooks::onMediaWikiPerformAction ( $ output , $ article , $ title , $ user , $ request , $ wiki );
49- $ this ->assertTrue ( $ result );
50- }
51-
52- public function testNonRevisionTypeAlwaysAllowed () {
53- $ output = $ this ->createMock ( OutputPage::class );
54-
55- $ request = $ this ->createMock ( WebRequest::class );
56- $ request ->method ( 'getVal ' )->with ( 'type ' )->willReturn ( 'view ' );
57-
58- $ user = $ this ->createMock ( User::class );
59- $ user ->method ( 'isRegistered ' )->willReturn ( false );
60-
61- $ article = $ this ->createMock ( Article::class );
62- $ title = $ this ->createMock ( Title::class );
63- $ wiki = $ this ->createMock ( MediaWiki::class );
64-
65- $ result = Hooks::onMediaWikiPerformAction ( $ output , $ article , $ title , $ user , $ request , $ wiki );
66- $ this ->assertTrue ( $ result );
67- }
68- }
18+ /**
19+ * @covers ::onMediaWikiPerformAction
20+ */
21+ public function testRevisionTypeBlocksAnonymous () {
22+ $ output = $ this ->createMock ( OutputPage::class );
23+ $ output ->expects ( $ this ->once () )->method ( 'setPageTitle ' );
24+ $ output ->expects ( $ this ->once () )->method ( 'addWikiTextAsInterface ' );
25+ $ output ->expects ( $ this ->once () )->method ( 'setStatusCode ' )->with ( 403 );
26+
27+ $ request = $ this ->createMock ( WebRequest::class );
28+ $ request ->method ( 'getVal ' )->with ( 'type ' )->willReturn ( 'revision ' );
29+
30+ $ user = $ this ->createMock ( User::class );
31+ $ user ->method ( 'isRegistered ' )->willReturn ( false );
32+
33+ $ article = $ this ->createMock ( Article::class );
34+ $ title = $ this ->createMock ( Title::class );
35+ $ wiki = $ this ->createMock ( ActionEntryPoint::class );
36+
37+ $ runner = new Hooks ();
38+ $ result = $ runner ->onMediaWikiPerformAction ( $ output , $ article , $ title , $ user , $ request , $ wiki );
39+ $ this ->assertFalse ( $ result );
40+ }
41+
42+ /**
43+ * @covers ::onMediaWikiPerformAction
44+ */
45+ public function testRevisionTypeAllowsLoggedIn () {
46+ $ output = $ this ->createMock ( OutputPage::class );
47+
48+ $ request = $ this ->createMock ( WebRequest::class );
49+ $ request ->method ( 'getVal ' )->with ( 'type ' )->willReturn ( 'revision ' );
50+
51+ $ user = $ this ->createMock ( User::class );
52+ $ user ->method ( 'isRegistered ' )->willReturn ( true );
53+
54+ $ article = $ this ->createMock ( Article::class );
55+ $ title = $ this ->createMock ( Title::class );
56+ $ wiki = $ this ->createMock ( ActionEntryPoint::class );
57+
58+ $ runner = new Hooks ();
59+ $ result = $ runner ->onMediaWikiPerformAction ( $ output , $ article , $ title , $ user , $ request , $ wiki );
60+ $ this ->assertTrue ( $ result );
61+ }
62+
63+ /**
64+ * @covers ::onMediaWikiPerformAction
65+ */
66+ public function testNonRevisionTypeAlwaysAllowed () {
67+ $ output = $ this ->createMock ( OutputPage::class );
68+
69+ $ request = $ this ->createMock ( WebRequest::class );
70+ $ request ->method ( 'getVal ' )->with ( 'type ' )->willReturn ( 'view ' );
71+
72+ $ user = $ this ->createMock ( User::class );
73+ $ user ->method ( 'isRegistered ' )->willReturn ( false );
74+
75+ $ article = $ this ->createMock ( Article::class );
76+ $ title = $ this ->createMock ( Title::class );
77+ $ wiki = $ this ->createMock ( ActionEntryPoint::class );
78+
79+ $ runner = new Hooks ();
80+ $ result = $ runner ->onMediaWikiPerformAction ( $ output , $ article , $ title , $ user , $ request , $ wiki );
81+ $ this ->assertTrue ( $ result );
82+ }
83+ }
0 commit comments