Page Menu
Home
WickedGov Phorge
Search
Configure Global Search
Log In
Files
F4099481
DatabaseLogEntryTest.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
3 KB
Referenced Files
None
Subscribers
None
DatabaseLogEntryTest.php
View Options
<?php
use
MediaWiki\User\ActorStore
;
use
MediaWiki\User\UserIdentity
;
use
MediaWiki\User\UserIdentityValue
;
use
Wikimedia\Rdbms\IReadableDatabase
;
/**
* @group Database
*/
class
DatabaseLogEntryTest
extends
MediaWikiIntegrationTestCase
{
/**
* @covers \DatabaseLogEntry::newFromId
* @covers \DatabaseLogEntry::getSelectQueryData
*
* @dataProvider provideNewFromId
*
* @param int $id
* @param array $selectFields
* @param string[]|null $row
* @param string[]|null $expectedFields
*/
public
function
testNewFromId
(
$id
,
array
$selectFields
,
?
array
$row
=
null
,
?
array
$expectedFields
=
null
)
{
$row
=
$row
?
(
object
)
$row
:
null
;
$db
=
$this
->
createMock
(
IReadableDatabase
::
class
);
$db
->
expects
(
self
::
once
()
)
->
method
(
'selectRow'
)
->
with
(
$selectFields
[
'tables'
],
$selectFields
[
'fields'
],
$selectFields
[
'conds'
],
'DatabaseLogEntry::newFromId'
,
$selectFields
[
'options'
],
$selectFields
[
'join_conds'
]
)
->
will
(
self
::
returnValue
(
$row
)
);
/** @var IReadableDatabase $db */
$logEntry
=
DatabaseLogEntry
::
newFromId
(
$id
,
$db
);
if
(
!
$expectedFields
)
{
self
::
assertNull
(
$logEntry
,
"Expected no log entry returned for id=$id"
);
}
else
{
self
::
assertEquals
(
$id
,
$logEntry
->
getId
()
);
self
::
assertEquals
(
$expectedFields
[
'type'
],
$logEntry
->
getType
()
);
self
::
assertEquals
(
$expectedFields
[
'comment'
],
$logEntry
->
getComment
()
);
}
}
public
static
function
provideNewFromId
()
{
$newTables
=
[
'tables'
=>
[
'logging'
,
'comment_log_comment'
=>
'comment'
,
'logging_actor'
=>
'actor'
,
'user'
=>
'user'
,
],
'fields'
=>
[
'log_id'
,
'log_type'
,
'log_action'
,
'log_timestamp'
,
'log_namespace'
,
'log_title'
,
'log_params'
,
'log_deleted'
,
'user_id'
,
'user_name'
,
'log_comment_text'
=>
'comment_log_comment.comment_text'
,
'log_comment_data'
=>
'comment_log_comment.comment_data'
,
'log_comment_cid'
=>
'comment_log_comment.comment_id'
,
'log_user'
=>
'logging_actor.actor_user'
,
'log_user_text'
=>
'logging_actor.actor_name'
,
'log_actor'
,
],
'options'
=>
[],
'join_conds'
=>
[
'user'
=>
[
'LEFT JOIN'
,
'user_id=logging_actor.actor_user'
],
'comment_log_comment'
=>
[
'JOIN'
,
'comment_log_comment.comment_id = log_comment_id'
],
'logging_actor'
=>
[
'JOIN'
,
'actor_id=log_actor'
],
],
];
return
[
[
0
,
$newTables
+
[
'conds'
=>
[
'log_id'
=>
0
]
],
null
,
null
],
[
123
,
$newTables
+
[
'conds'
=>
[
'log_id'
=>
123
]
],
[
'log_id'
=>
123
,
'log_type'
=>
'foobarize'
,
'log_comment_text'
=>
'test!'
,
'log_comment_data'
=>
null
,
],
[
'type'
=>
'foobarize'
,
'comment'
=>
'test!'
]
],
[
567
,
$newTables
+
[
'conds'
=>
[
'log_id'
=>
567
]
],
[
'log_id'
=>
567
,
'log_type'
=>
'foobarize'
,
'log_comment_text'
=>
'test!'
,
'log_comment_data'
=>
null
,
],
[
'type'
=>
'foobarize'
,
'comment'
=>
'test!'
]
],
];
}
public
static
function
provideGetPerformerIdentity
()
{
yield
'registered actor'
=>
[
'actor_row_fields'
=>
[
'user_id'
=>
42
,
'log_user_text'
=>
'Testing'
,
'log_actor'
=>
24
,
],
UserIdentityValue
::
newRegistered
(
42
,
'Testing'
),
];
yield
'anon actor'
=>
[
'actor_row_fields'
=>
[
'log_user_text'
=>
'127.0.0.1'
,
'log_actor'
=>
24
,
],
UserIdentityValue
::
newAnonymous
(
'127.0.0.1'
),
];
yield
'unknown actor'
=>
[
'actor_row_fields'
=>
[],
new
UserIdentityValue
(
0
,
ActorStore
::
UNKNOWN_USER_NAME
),
];
}
/**
* @dataProvider provideGetPerformerIdentity
* @covers \DatabaseLogEntry::getPerformerIdentity
*/
public
function
testGetPerformer
(
array
$actorRowFields
,
UserIdentity
$expected
)
{
$logEntry
=
DatabaseLogEntry
::
newFromRow
(
[
'log_id'
=>
1
,
]
+
$actorRowFields
);
$performer
=
$logEntry
->
getPerformerIdentity
();
$this
->
assertTrue
(
$expected
->
equals
(
$performer
)
);
}
}
File Metadata
Details
Attached
Mime Type
text/x-php
Expires
Tue, Aug 18, 15:54 (3 w, 5 d ago)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
af/60/bdb0ba70fee9d8b2fc435ce2a301
Default Alt Text
DatabaseLogEntryTest.php (3 KB)
Attached To
Mode
rMWPROD MediaWiki Production
Attached
Detach File
Event Timeline
Log In to Comment