MediaWiki
REL1_30
CategoryMembershipChangeTest.php
Go to the documentation of this file.
1
<?php
2
10
class
CategoryMembershipChangeTest
extends
MediaWikiLangTestCase
{
11
15
private
static
$lastNotifyArgs
;
16
20
private
static
$notifyCallCounter
= 0;
21
25
private
static
$mockRecentChange
;
26
30
private
static
$pageRev
=
null
;
31
35
private
static
$revUser
=
null
;
36
40
private
static
$pageName
=
'CategoryMembershipChangeTestPage'
;
41
42
public
static
function
newForCategorizationCallback
() {
43
self::$lastNotifyArgs = func_get_args();
44
self::$notifyCallCounter += 1;
45
return
self::$mockRecentChange
;
46
}
47
48
public
function
setUp
() {
49
parent::setUp();
50
self::$notifyCallCounter = 0;
51
self::$mockRecentChange = self::getMock(
'RecentChange'
);
52
53
$this->
setContentLang
(
'qqx'
);
54
}
55
56
public
function
addDBDataOnce
() {
57
$info = $this->
insertPage
( self::$pageName );
58
$title = $info[
'title'
];
59
60
$page =
WikiPage::factory
( $title );
61
self::$pageRev = $page->getRevision();
62
self::$revUser = User::newFromId( self::$pageRev->getUser(
Revision::RAW
) );
63
}
64
65
private
function
newChange
(
Revision
$revision =
null
) {
66
$change =
new
CategoryMembershipChange
( Title::newFromText( self::$pageName ), $revision );
67
$change->overrideNewForCategorizationCallback(
68
'CategoryMembershipChangeTest::newForCategorizationCallback'
69
);
70
71
return
$change;
72
}
73
74
public
function
testChangeAddedNoRev
() {
75
$change = $this->
newChange
();
76
$change->triggerCategoryAddedNotification( Title::newFromText(
'CategoryName'
,
NS_CATEGORY
) );
77
78
$this->assertEquals( 1, self::$notifyCallCounter );
79
80
$this->assertTrue( strlen( self::$lastNotifyArgs[0] ) === 14 );
81
$this->assertEquals(
'Category:CategoryName'
, self::$lastNotifyArgs[1]->getPrefixedText() );
82
$this->assertEquals(
'(autochange-username)'
, self::$lastNotifyArgs[2]->getName() );
83
$this->assertEquals(
'(recentchanges-page-added-to-category: '
. self::$pageName .
')'
,
84
self::$lastNotifyArgs[3] );
85
$this->assertEquals( self::$pageName, self::$lastNotifyArgs[4]->getPrefixedText() );
86
$this->assertEquals( 0, self::$lastNotifyArgs[5] );
87
$this->assertEquals( 0, self::$lastNotifyArgs[6] );
88
$this->assertEquals(
null
, self::$lastNotifyArgs[7] );
89
$this->assertEquals( 1, self::$lastNotifyArgs[8] );
90
$this->assertEquals(
null
, self::$lastNotifyArgs[9] );
91
$this->assertEquals( 0, self::$lastNotifyArgs[10] );
92
}
93
94
public
function
testChangeRemovedNoRev
() {
95
$change = $this->
newChange
();
96
$change->triggerCategoryRemovedNotification( Title::newFromText(
'CategoryName'
,
NS_CATEGORY
) );
97
98
$this->assertEquals( 1, self::$notifyCallCounter );
99
100
$this->assertTrue( strlen( self::$lastNotifyArgs[0] ) === 14 );
101
$this->assertEquals(
'Category:CategoryName'
, self::$lastNotifyArgs[1]->getPrefixedText() );
102
$this->assertEquals(
'(autochange-username)'
, self::$lastNotifyArgs[2]->getName() );
103
$this->assertEquals(
'(recentchanges-page-removed-from-category: '
. self::$pageName .
')'
,
104
self::$lastNotifyArgs[3] );
105
$this->assertEquals( self::$pageName, self::$lastNotifyArgs[4]->getPrefixedText() );
106
$this->assertEquals( 0, self::$lastNotifyArgs[5] );
107
$this->assertEquals( 0, self::$lastNotifyArgs[6] );
108
$this->assertEquals(
null
, self::$lastNotifyArgs[7] );
109
$this->assertEquals( 1, self::$lastNotifyArgs[8] );
110
$this->assertEquals(
null
, self::$lastNotifyArgs[9] );
111
$this->assertEquals( 0, self::$lastNotifyArgs[10] );
112
}
113
114
public
function
testChangeAddedWithRev
() {
115
$revision =
Revision::newFromId
( Title::newFromText( self::$pageName )->getLatestRevID() );
116
$change = $this->
newChange
( $revision );
117
$change->triggerCategoryAddedNotification( Title::newFromText(
'CategoryName'
,
NS_CATEGORY
) );
118
119
$this->assertEquals( 1, self::$notifyCallCounter );
120
121
$this->assertTrue( strlen( self::$lastNotifyArgs[0] ) === 14 );
122
$this->assertEquals(
'Category:CategoryName'
, self::$lastNotifyArgs[1]->getPrefixedText() );
123
$this->assertEquals( self::$revUser->getName(), self::$lastNotifyArgs[2]->getName() );
124
$this->assertEquals(
'(recentchanges-page-added-to-category: '
. self::$pageName .
')'
,
125
self::$lastNotifyArgs[3] );
126
$this->assertEquals( self::$pageName, self::$lastNotifyArgs[4]->getPrefixedText() );
127
$this->assertEquals( self::$pageRev->getParentId(), self::$lastNotifyArgs[5] );
128
$this->assertEquals( $revision->getId(), self::$lastNotifyArgs[6] );
129
$this->assertEquals(
null
, self::$lastNotifyArgs[7] );
130
$this->assertEquals( 0, self::$lastNotifyArgs[8] );
131
$this->assertEquals(
'127.0.0.1'
, self::$lastNotifyArgs[9] );
132
$this->assertEquals( 0, self::$lastNotifyArgs[10] );
133
}
134
135
public
function
testChangeRemovedWithRev
() {
136
$revision =
Revision::newFromId
( Title::newFromText( self::$pageName )->getLatestRevID() );
137
$change = $this->
newChange
( $revision );
138
$change->triggerCategoryRemovedNotification( Title::newFromText(
'CategoryName'
,
NS_CATEGORY
) );
139
140
$this->assertEquals( 1, self::$notifyCallCounter );
141
142
$this->assertTrue( strlen( self::$lastNotifyArgs[0] ) === 14 );
143
$this->assertEquals(
'Category:CategoryName'
, self::$lastNotifyArgs[1]->getPrefixedText() );
144
$this->assertEquals( self::$revUser->getName(), self::$lastNotifyArgs[2]->getName() );
145
$this->assertEquals(
'(recentchanges-page-removed-from-category: '
. self::$pageName .
')'
,
146
self::$lastNotifyArgs[3] );
147
$this->assertEquals( self::$pageName, self::$lastNotifyArgs[4]->getPrefixedText() );
148
$this->assertEquals( self::$pageRev->getParentId(), self::$lastNotifyArgs[5] );
149
$this->assertEquals( $revision->getId(), self::$lastNotifyArgs[6] );
150
$this->assertEquals(
null
, self::$lastNotifyArgs[7] );
151
$this->assertEquals( 0, self::$lastNotifyArgs[8] );
152
$this->assertEquals(
'127.0.0.1'
, self::$lastNotifyArgs[9] );
153
$this->assertEquals( 0, self::$lastNotifyArgs[10] );
154
}
155
156
}
CategoryMembershipChangeTest
CategoryMembershipChange.
Definition
CategoryMembershipChangeTest.php:10
CategoryMembershipChangeTest\$pageName
static string $pageName
Definition
CategoryMembershipChangeTest.php:40
CategoryMembershipChangeTest\setUp
setUp()
Definition
CategoryMembershipChangeTest.php:48
CategoryMembershipChangeTest\$mockRecentChange
static RecentChange $mockRecentChange
Definition
CategoryMembershipChangeTest.php:25
CategoryMembershipChangeTest\$notifyCallCounter
static int $notifyCallCounter
Definition
CategoryMembershipChangeTest.php:20
CategoryMembershipChangeTest\testChangeRemovedWithRev
testChangeRemovedWithRev()
Definition
CategoryMembershipChangeTest.php:135
CategoryMembershipChangeTest\newChange
newChange(Revision $revision=null)
Definition
CategoryMembershipChangeTest.php:65
CategoryMembershipChangeTest\$pageRev
static Revision $pageRev
Definition
CategoryMembershipChangeTest.php:30
CategoryMembershipChangeTest\testChangeRemovedNoRev
testChangeRemovedNoRev()
Definition
CategoryMembershipChangeTest.php:94
CategoryMembershipChangeTest\testChangeAddedWithRev
testChangeAddedWithRev()
Definition
CategoryMembershipChangeTest.php:114
CategoryMembershipChangeTest\$revUser
static User $revUser
Definition
CategoryMembershipChangeTest.php:35
CategoryMembershipChangeTest\testChangeAddedNoRev
testChangeAddedNoRev()
Definition
CategoryMembershipChangeTest.php:74
CategoryMembershipChangeTest\$lastNotifyArgs
static array Title[] User[] $lastNotifyArgs
Definition
CategoryMembershipChangeTest.php:15
CategoryMembershipChangeTest\addDBDataOnce
addDBDataOnce()
Stub.
Definition
CategoryMembershipChangeTest.php:56
CategoryMembershipChangeTest\newForCategorizationCallback
static newForCategorizationCallback()
Definition
CategoryMembershipChangeTest.php:42
CategoryMembershipChange
Definition
CategoryMembershipChange.php:28
MediaWikiLangTestCase
Base class that store and restore the Language objects.
Definition
MediaWikiLangTestCase.php:6
MediaWikiTestCase\insertPage
insertPage( $pageName, $text='Sample page for unit test.', $namespace=null)
Insert a new page.
Definition
MediaWikiTestCase.php:996
MediaWikiTestCase\setContentLang
setContentLang( $lang)
Definition
MediaWikiTestCase.php:886
RecentChange
Utility class for creating new RC entries.
Definition
RecentChange.php:67
Revision
Definition
Revision.php:33
Revision\RAW
const RAW
Definition
Revision.php:100
Revision\newFromId
static newFromId( $id, $flags=0)
Load a page revision from a given revision ID number.
Definition
Revision.php:116
Title
Represents a title within MediaWiki.
Definition
Title.php:39
User
The User object encapsulates all of the user-specific settings (user_id, name, rights,...
Definition
User.php:51
WikiPage\factory
static factory(Title $title)
Create a WikiPage object of the appropriate class for the given title.
Definition
WikiPage.php:121
NS_CATEGORY
const NS_CATEGORY
Definition
Defines.php:79
tests
phpunit
includes
changes
CategoryMembershipChangeTest.php
Generated on Mon Nov 25 2024 15:43:42 for MediaWiki by
1.10.0