6 use InvalidArgumentException;
32 $title->resetArticleID( 17 );
43 'rev_page' => strval(
$title->getArticleID() ),
44 'rev_timestamp' =>
'20200101000000',
46 'rev_minor_edit' => 0,
47 'rev_parent_id' =>
'5',
48 'rev_len' => $slots->computeSize(),
49 'rev_sha1' => $slots->computeSha1(),
50 'page_latest' =>
'18',
53 $row = array_merge( $row, $rowOverrides );
60 $title->resetArticleID( 17 );
71 'rev_page' => strval(
$title->getArticleID() ),
72 'rev_timestamp' =>
'20200101000000',
74 'rev_minor_edit' => 0,
75 'rev_parent_id' =>
'5',
76 'rev_len' => $slots->computeSize(),
77 'rev_sha1' => $slots->computeSha1(),
78 'page_latest' =>
'18',
92 $row[
'rev_minor_edit'] =
'1';
95 yield
'minor deleted' => [
104 $row[
'page_latest'] = $row[
'rev_id'];
115 unset( $row[
'rev_parent'] );
117 yield
'no parent' => [
126 $row[
'rev_len'] =
null;
127 $row[
'rev_sha1'] =
'';
129 yield
'rev_len is null, rev_sha1 is ""' => [
138 yield
'no length, no hash' => [
167 $this->assertSame(
$title, $rec->getPageAsLinkTarget(),
'getPageAsLinkTarget' );
169 $this->assertSame( $comment, $rec->getComment(),
'getComment' );
171 $this->assertSame( $slots->
getSlotRoles(), $rec->getSlotRoles(),
'getSlotRoles' );
172 $this->assertSame( $wikiId, $rec->getWikiId(),
'getWikiId' );
174 $this->assertSame( (
int)$row->rev_id, $rec->getId(),
'getId' );
175 $this->assertSame( (
int)$row->rev_page, $rec->getPageId(),
'getId' );
176 $this->assertSame( $row->rev_timestamp, $rec->getTimestamp(),
'getTimestamp' );
177 $this->assertSame( (
int)$row->rev_deleted, $rec->getVisibility(),
'getVisibility' );
178 $this->assertSame( (
bool)$row->rev_minor_edit, $rec->isMinor(),
'getIsMinor' );
180 if ( isset( $row->rev_parent_id ) ) {
181 $this->assertSame( (
int)$row->rev_parent_id, $rec->getParentId(),
'getParentId' );
183 $this->assertSame( 0, $rec->getParentId(),
'getParentId' );
186 if ( isset( $row->rev_len ) ) {
187 $this->assertSame( (
int)$row->rev_len, $rec->getSize(),
'getSize' );
189 $this->assertSame( $slots->
computeSize(), $rec->getSize(),
'getSize' );
192 if ( !empty( $row->rev_sha1 ) ) {
193 $this->assertSame( $row->rev_sha1, $rec->getSha1(),
'getSha1' );
195 $this->assertSame( $slots->
computeSha1(), $rec->getSha1(),
'getSha1' );
198 if ( isset( $row->page_latest ) ) {
200 (
int)$row->rev_id === (
int)$row->page_latest,
215 $title->resetArticleID( 17 );
227 'rev_page' => strval(
$title->getArticleID() ),
228 'rev_timestamp' =>
'20200101000000',
230 'rev_minor_edit' => 0,
231 'rev_parent_id' =>
'5',
232 'rev_len' => $slots->computeSize(),
233 'rev_sha1' => $slots->computeSha1(),
234 'page_latest' =>
'18',
237 yield
'not a row' => [
247 $row[
'rev_timestamp'] =
'kittens';
249 yield
'bad timestamp' => [
258 $row[
'rev_page'] = 99;
260 yield
'page ID mismatch' => [
270 yield
'bad wiki' => [
325 $this->assertSame( $current,
$rev->isCurrent(),
'isCurrent()' );
341 'rev_deleted' => $visibility,
351 $this->assertNotNull(