MediaWiki
REL1_32
McrReadNewRevisionStoreDbTest.php
Go to the documentation of this file.
1
<?php
2
namespace
MediaWiki\Tests\Revision
;
3
4
use
CommentStoreComment
;
5
use
MediaWiki\MediaWikiServices
;
6
use
MediaWiki\Revision\RevisionRecord
;
7
use
MediaWiki\Revision\SlotRecord
;
8
use
TextContent
;
9
use
Title
;
10
use
WikitextContent
;
11
22
class
McrReadNewRevisionStoreDbTest
extends
RevisionStoreDbTestBase
{
23
24
use
McrReadNewSchemaOverride
;
25
26
protected
function
assertRevisionExistsInDatabase
(
RevisionRecord
$rev
) {
27
$numberOfSlots = count(
$rev
->getSlotRoles() );
28
29
// new schema is written
30
$this->
assertSelect
(
31
'slots'
,
32
[
'count(*)'
],
33
[
'slot_revision_id'
=> $rev->
getId
() ],
34
[ [ (
string
)$numberOfSlots ] ]
35
);
36
37
$store =
MediaWikiServices::getInstance
()->getRevisionStore();
38
$revQuery
= $store->getSlotsQueryInfo( [
'content'
] );
39
40
$this->
assertSelect
(
41
$revQuery
[
'tables'
],
42
[
'count(*)'
],
43
[
44
'slot_revision_id'
=> $rev->
getId
(),
45
],
46
[ [ (
string
)$numberOfSlots ] ],
47
[],
48
$revQuery
[
'joins'
]
49
);
50
51
// Legacy schema is still being written
52
$this->
assertSelect
(
53
[
'revision'
,
'text'
],
54
[
'count(*)'
],
55
[
'rev_id'
=> $rev->
getId
(),
'rev_text_id > 0'
],
56
[ [ 1 ] ],
57
[],
58
[
'text'
=> [
'INNER JOIN'
, [
'rev_text_id = old_id'
] ] ]
59
);
60
61
parent::assertRevisionExistsInDatabase(
$rev
);
62
}
63
68
protected
function
assertSameSlotContent
(
SlotRecord
$a,
SlotRecord
$b ) {
69
parent::assertSameSlotContent( $a, $b );
70
71
// Assert that the same content ID has been used
72
$this->assertSame( $a->getContentId(), $b->getContentId() );
73
}
74
75
public
function
provideInsertRevisionOn_successes
() {
76
foreach
( parent::provideInsertRevisionOn_successes() as $case ) {
77
yield $case;
78
}
79
80
yield
'Multi-slot revision insertion'
=> [
81
[
82
'content'
=> [
83
'main'
=>
new
WikitextContent
(
'Chicken'
),
84
'aux'
=>
new
TextContent
(
'Egg'
),
85
],
86
'page'
=>
true
,
87
'comment'
=> $this->
getRandomCommentStoreComment
(),
88
'timestamp'
=>
'20171117010101'
,
89
'user'
=>
true
,
90
],
91
];
92
}
93
94
public
function
provideNewNullRevision
() {
95
foreach
( parent::provideNewNullRevision() as $case ) {
96
yield $case;
97
}
98
99
yield [
100
Title::newFromText(
'UTPage_notAutoCreated'
),
101
[
102
'content'
=> [
103
'main'
=>
new
WikitextContent
(
'Chicken'
),
104
'aux'
=>
new
WikitextContent
(
'Omelet'
),
105
],
106
],
107
CommentStoreComment::newUnsavedComment( __METHOD__ .
' comment multi'
),
108
];
109
}
110
111
public
function
testGetQueryInfo_NoSlotDataJoin
() {
112
$store =
MediaWikiServices::getInstance
()->getRevisionStore();
113
$queryInfo = $store->getQueryInfo();
114
115
// with the new schema enabled, query info should not join the main slot info
116
$this->assertFalse( array_key_exists(
'a_slot_data'
, $queryInfo[
'tables'
] ) );
117
$this->assertFalse( array_key_exists(
'a_slot_data'
, $queryInfo[
'joins'
] ) );
118
}
119
120
public
function
provideNewMutableRevisionFromArray
() {
121
foreach
( parent::provideNewMutableRevisionFromArray() as $case ) {
122
yield $case;
123
}
124
125
yield
'Basic array, multiple roles'
=> [
126
[
127
'id'
=> 2,
128
'page'
=> 1,
129
'timestamp'
=>
'20171017114835'
,
130
'user_text'
=>
'111.0.1.2'
,
131
'user'
=> 0,
132
'minor_edit'
=>
false
,
133
'deleted'
=> 0,
134
'len'
=> 29,
135
'parent_id'
=> 1,
136
'sha1'
=>
'89qs83keq9c9ccw9olvvm4oc9oq50ii'
,
137
'comment'
=>
'Goat Comment!'
,
138
'content'
=> [
139
'main'
=>
new
WikitextContent
(
'Söme Cöntent'
),
140
'aux'
=>
new
TextContent
(
'Öther Cöntent'
),
141
]
142
]
143
];
144
}
145
146
}
CommentStoreComment
CommentStoreComment represents a comment stored by CommentStore.
Definition
CommentStoreComment.php:29
MediaWikiTestCase\assertSelect
assertSelect( $table, $fields, $condition, array $expectedRows, array $options=[], array $join_conds=[])
Asserts that the given database query yields the rows given by $expectedRows.
Definition
MediaWikiTestCase.php:1966
MediaWiki\MediaWikiServices
MediaWikiServices is the service locator for the application scope of MediaWiki.
Definition
MediaWikiServices.php:99
MediaWiki\MediaWikiServices\getInstance
static getInstance()
Returns the global default instance of the top level service locator.
Definition
MediaWikiServices.php:120
MediaWiki\Revision\RevisionRecord
Page revision base class.
Definition
RevisionRecord.php:45
MediaWiki\Revision\RevisionRecord\getId
getId()
Get revision ID.
Definition
RevisionRecord.php:273
MediaWiki\Revision\SlotRecord
Value object representing a content slot associated with a page revision.
Definition
SlotRecord.php:39
MediaWiki\Tests\Revision\McrReadNewRevisionStoreDbTest
Tests RevisionStore against the intermediate MCR DB schema for use during schema migration.
Definition
McrReadNewRevisionStoreDbTest.php:22
MediaWiki\Tests\Revision\McrReadNewRevisionStoreDbTest\provideNewNullRevision
provideNewNullRevision()
Definition
McrReadNewRevisionStoreDbTest.php:94
MediaWiki\Tests\Revision\McrReadNewRevisionStoreDbTest\assertSameSlotContent
assertSameSlotContent(SlotRecord $a, SlotRecord $b)
Definition
McrReadNewRevisionStoreDbTest.php:68
MediaWiki\Tests\Revision\McrReadNewRevisionStoreDbTest\assertRevisionExistsInDatabase
assertRevisionExistsInDatabase(RevisionRecord $rev)
Definition
McrReadNewRevisionStoreDbTest.php:26
MediaWiki\Tests\Revision\McrReadNewRevisionStoreDbTest\testGetQueryInfo_NoSlotDataJoin
testGetQueryInfo_NoSlotDataJoin()
Definition
McrReadNewRevisionStoreDbTest.php:111
MediaWiki\Tests\Revision\McrReadNewRevisionStoreDbTest\provideInsertRevisionOn_successes
provideInsertRevisionOn_successes()
Definition
McrReadNewRevisionStoreDbTest.php:75
MediaWiki\Tests\Revision\McrReadNewRevisionStoreDbTest\provideNewMutableRevisionFromArray
provideNewMutableRevisionFromArray()
Definition
McrReadNewRevisionStoreDbTest.php:120
MediaWiki\Tests\Revision\RevisionStoreDbTestBase
Database RevisionStore.
Definition
RevisionStoreDbTestBase.php:40
MediaWiki\Tests\Revision\RevisionStoreDbTestBase\getRandomCommentStoreComment
getRandomCommentStoreComment()
Definition
RevisionStoreDbTestBase.php:386
TextContent
Content object implementation for representing flat text.
Definition
TextContent.php:37
Title
Represents a title within MediaWiki.
Definition
Title.php:39
WikitextContent
Content object for wiki text pages.
Definition
WikitextContent.php:35
$rev
presenting them properly to the user as errors is done by the caller return true use this to change the list i e etc $rev
Definition
hooks.txt:1818
MediaWiki\Tests\Revision
Definition
McrReadNewRevisionStoreDbTest.php:2
MediaWiki\Tests\Revision\McrReadNewSchemaOverride
trait McrReadNewSchemaOverride
Trait providing schema overrides that allow tests to run against the intermediate MCR database schema...
Definition
McrReadNewSchemaOverride.php:11
$revQuery
$revQuery
Definition
testCompression.php:51
tests
phpunit
includes
Revision
McrReadNewRevisionStoreDbTest.php
Generated on Mon Nov 25 2024 15:58:51 for MediaWiki by
1.10.0