Merge "Set MW_INSTALL_PATH in Maintenance.php"
[lhc/web/wiklou.git] / tests / phpunit / includes / page / ArticleViewTest.php
index d07a9e1..524fbdc 100644 (file)
@@ -1,8 +1,8 @@
 <?php
 use MediaWiki\MediaWikiServices;
-use MediaWiki\Storage\MutableRevisionRecord;
-use MediaWiki\Storage\RevisionRecord;
-use MediaWiki\Storage\SlotRecord;
+use MediaWiki\Revision\MutableRevisionRecord;
+use MediaWiki\Revision\RevisionRecord;
+use MediaWiki\Revision\SlotRecord;
 use PHPUnit\Framework\MockObject\MockObject;
 
 /**
@@ -190,8 +190,7 @@ class ArticleViewTest extends MediaWikiTestCase {
                        ->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 );
 
@@ -298,6 +297,34 @@ class ArticleViewTest extends MediaWikiTestCase {
                $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__ );
 
@@ -419,7 +446,7 @@ class ArticleViewTest extends MediaWikiTestCase {
                        '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;
@@ -455,9 +482,8 @@ class ArticleViewTest extends MediaWikiTestCase {
                        'ArticleRevisionViewCustom',
                        function ( RevisionRecord $rev, Title $title, $oldid, OutputPage $output ) use ( $page ) {
                                $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;
@@ -489,7 +515,7 @@ class ArticleViewTest extends MediaWikiTestCase {
                        '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' );
                        }