Merge "Update an old comment that predated IPv6"
[lhc/web/wiklou.git] / tests / phpunit / includes / page / ArticleViewTest.php
index 68cddd6..524fbdc 100644 (file)
@@ -1,7 +1,8 @@
 <?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;
 
 /**
@@ -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;
@@ -189,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 );
 
@@ -201,7 +201,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 +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__ );
 
@@ -418,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;
@@ -453,10 +481,9 @@ 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' );
+                               $this->assertSame( 'Test A', $content->getText(), '$content' );
 
                                $output->addHTML( 'Hook Text' );
                                return false;
@@ -488,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' );
                        }