Add audience parameter to PoolWorkArticleView
[lhc/web/wiklou.git] / tests / phpunit / includes / page / ArticleViewTest.php
index 68cddd6..629621e 100644 (file)
@@ -2,6 +2,7 @@
 use MediaWiki\MediaWikiServices;
 use MediaWiki\Storage\MutableRevisionRecord;
 use MediaWiki\Storage\RevisionRecord;
+use MediaWiki\Storage\SlotRecord;
 use PHPUnit\Framework\MockObject\MockObject;
 
 /**
@@ -43,7 +44,7 @@ class ArticleViewTest extends MediaWikiTestCase {
                        }
 
                        $u = $page->newPageUpdater( $user );
-                       $u->setContent( 'main', $cont );
+                       $u->setContent( SlotRecord::MAIN, $cont );
                        $rev = $u->saveRevision( CommentStoreComment::newUnsavedComment( 'Rev ' . $key ) );
 
                        $revisions[ $key ] = $rev;
@@ -201,7 +202,7 @@ class ArticleViewTest extends MediaWikiTestCase {
                $rev->setComment( $dummyRev->getComment() );
                $rev->setTimestamp( $dummyRev->getTimestamp() );
 
-               $rev->setContent( 'main', $content );
+               $rev->setContent( SlotRecord::MAIN, $content );
 
                $rev = new Revision( $rev );
 
@@ -297,6 +298,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__ );
 
@@ -453,7 +482,7 @@ class ArticleViewTest extends MediaWikiTestCase {
                $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' );