<?php
use MediaWiki\MediaWikiServices;
-use MediaWiki\Storage\MutableRevisionRecord;
-use MediaWiki\Storage\RevisionRecord;
+use MediaWiki\Revision\MutableRevisionRecord;
+use MediaWiki\Revision\RevisionRecord;
+use MediaWiki\Revision\SlotRecord;
use PHPUnit\Framework\MockObject\MockObject;
/**
}
$u = $page->newPageUpdater( $user );
- $u->setContent( 'main', $cont );
+ $u->setContent( SlotRecord::MAIN, $cont );
$rev = $u->saveRevision( CommentStoreComment::newUnsavedComment( 'Rev ' . $key ) );
$revisions[ $key ] = $rev;
->willReturn( new ParserOutput( 'Structured Output' ) );
$content->method( 'getModel' )
->willReturn( 'NotText' );
- $content->method( 'getNativeData' )
- ->willReturn( [ (object)[ 'x' => 'stuff' ] ] );
+ $content->expects( $this->never() )->method( 'getNativeData' );
$content->method( 'copy' )
->willReturn( $content );
$rev->setComment( $dummyRev->getComment() );
$rev->setTimestamp( $dummyRev->getTimestamp() );
- $rev->setContent( 'main', $content );
+ $rev->setContent( SlotRecord::MAIN, $content );
$rev = new Revision( $rev );
$this->assertNotContains( 'Test B', $this->getHtml( $output ) );
}
+ public function testUnhiddenViewOfDeletedRevision() {
+ $revisions = [];
+ $page = $this->getPage( __METHOD__, [ 1 => 'Test A', 2 => 'Test B' ], $revisions );
+ $idA = $revisions[1]->getId();
+
+ $revDelList = new RevDelRevisionList(
+ RequestContext::getMain(), $page->getTitle(), [ $idA ]
+ );
+ $revDelList->setVisibility( [
+ 'value' => [ RevisionRecord::DELETED_TEXT => 1 ],
+ 'comment' => "Testing",
+ ] );
+
+ $article = new Article( $page->getTitle(), $idA );
+ $context = new DerivativeContext( $article->getContext() );
+ $article->setContext( $context );
+ $context->getOutput()->setTitle( $page->getTitle() );
+ $context->getRequest()->setVal( 'unhide', 1 );
+ $context->setUser( $this->getTestUser( [ 'sysop' ] )->getUser() );
+ $article->view();
+
+ $output = $article->getContext()->getOutput();
+ $this->assertContains( '(rev-deleted-text-view)', $this->getHtml( $output ) );
+
+ $this->assertContains( 'Test A', $this->getHtml( $output ) );
+ $this->assertNotContains( 'Test B', $this->getHtml( $output ) );
+ }
+
public function testViewMissingPage() {
$page = $this->getPage( __METHOD__ );
'ArticleContentViewCustom',
function ( Content $content, Title $title, OutputPage $output ) use ( $page ) {
$this->assertSame( $page->getTitle(), $title, '$title' );
- $this->assertSame( 'Test A', $content->getNativeData(), '$content' );
+ $this->assertSame( 'Test A', $content->getText(), '$content' );
$output->addHTML( 'Hook Text' );
return false;
$this->setTemporaryHook(
'ArticleRevisionViewCustom',
function ( RevisionRecord $rev, Title $title, $oldid, OutputPage $output ) use ( $page ) {
- $content = $rev->getContent( 'main' );
-
+ $content = $rev->getContent( SlotRecord::MAIN );
$this->assertSame( $page->getTitle(), $title, '$title' );
- $this->assertSame( 'Test A', $content->getNativeData(), '$content' );
+ $this->assertSame( 'Test A', $content->getText(), '$content' );
$output->addHTML( 'Hook Text' );
return false;
'ArticleAfterFetchContentObject',
function ( Article &$articlePage, Content &$content ) use ( $page, $article ) {
$this->assertSame( $article, $articlePage, '$articlePage' );
- $this->assertSame( 'Test A', $content->getNativeData(), '$content' );
+ $this->assertSame( 'Test A', $content->getText(), '$content' );
$content = new WikitextContent( 'Hook Text' );
}