Merge "Revert "textSelection: Use execcommand to replace text""
[lhc/web/wiklou.git] / tests / phpunit / includes / Revision / RenderedRevisionTest.php
index bea0b49..43fccee 100644 (file)
@@ -4,16 +4,17 @@ namespace MediaWiki\Tests\Revision;
 
 use Content;
 use Language;
+use MediaWiki\Revision\MutableRevisionRecord;
+use MediaWiki\Revision\MutableRevisionSlots;
 use MediaWiki\Revision\RenderedRevision;
-use MediaWiki\Storage\MutableRevisionRecord;
-use MediaWiki\Storage\MutableRevisionSlots;
-use MediaWiki\Storage\RevisionArchiveRecord;
-use MediaWiki\Storage\RevisionRecord;
-use MediaWiki\Storage\RevisionStore;
-use MediaWiki\Storage\RevisionStoreRecord;
-use MediaWiki\Storage\SuppressedDataException;
-use MediaWiki\User\UserIdentityValue;
+use MediaWiki\Revision\RevisionArchiveRecord;
+use MediaWiki\Revision\RevisionRecord;
+use MediaWiki\Revision\RevisionStore;
+use MediaWiki\Revision\RevisionStoreRecord;
+use MediaWiki\Revision\SlotRecord;
+use MediaWiki\Revision\SuppressedDataException;
 use MediaWikiTestCase;
+use MediaWiki\User\UserIdentityValue;
 use ParserOptions;
 use ParserOutput;
 use PHPUnit\Framework\MockObject\MockObject;
@@ -241,7 +242,7 @@ class RenderedRevisionTest extends MediaWikiTestCase {
                $this->assertContains( 'user:Frank!', $html );
                $this->assertContains( 'time:20180101000003!', $html );
 
-               $this->assertSame( $html, $rr->getSlotParserOutput( 'main' )->getText() );
+               $this->assertSame( $html, $rr->getSlotParserOutput( SlotRecord::MAIN )->getText() );
        }
 
        public function testGetRevisionParserOutput_old() {
@@ -263,7 +264,7 @@ class RenderedRevisionTest extends MediaWikiTestCase {
                $this->assertContains( 'user:Frank!', $html );
                $this->assertContains( 'time:20180101000003!', $html );
 
-               $this->assertSame( $html, $rr->getSlotParserOutput( 'main' )->getText() );
+               $this->assertSame( $html, $rr->getSlotParserOutput( SlotRecord::MAIN )->getText() );
        }
 
        public function testGetRevisionParserOutput_archive() {
@@ -285,7 +286,7 @@ class RenderedRevisionTest extends MediaWikiTestCase {
                $this->assertContains( 'user:Frank!', $html );
                $this->assertContains( 'time:20180101000003!', $html );
 
-               $this->assertSame( $html, $rr->getSlotParserOutput( 'main' )->getText() );
+               $this->assertSame( $html, $rr->getSlotParserOutput( SlotRecord::MAIN )->getText() );
        }
 
        public function testGetRevisionParserOutput_suppressed() {
@@ -337,7 +338,7 @@ class RenderedRevisionTest extends MediaWikiTestCase {
                $this->assertContains( 'user:Frank!', $html );
                $this->assertContains( 'time:20180101000003!', $html );
 
-               $this->assertSame( $html, $rr->getSlotParserOutput( 'main' )->getText() );
+               $this->assertSame( $html, $rr->getSlotParserOutput( SlotRecord::MAIN )->getText() );
        }
 
        public function testGetRevisionParserOutput_raw() {
@@ -371,7 +372,7 @@ class RenderedRevisionTest extends MediaWikiTestCase {
                $this->assertContains( 'user:Frank!', $html );
                $this->assertContains( 'time:20180101000003!', $html );
 
-               $this->assertSame( $html, $rr->getSlotParserOutput( 'main' )->getText() );
+               $this->assertSame( $html, $rr->getSlotParserOutput( SlotRecord::MAIN )->getText() );
        }
 
        public function testGetRevisionParserOutput_multi() {
@@ -387,7 +388,7 @@ class RenderedRevisionTest extends MediaWikiTestCase {
                $rr = new RenderedRevision( $title, $rev, $options, $this->combinerCallback );
 
                $combinedOutput = $rr->getRevisionParserOutput();
-               $mainOutput = $rr->getSlotParserOutput( 'main' );
+               $mainOutput = $rr->getSlotParserOutput( SlotRecord::MAIN );
                $auxOutput = $rr->getSlotParserOutput( 'aux' );
 
                $combinedHtml = $combinedOutput->getText();
@@ -422,7 +423,7 @@ class RenderedRevisionTest extends MediaWikiTestCase {
                $text .= "* user:{{REVISIONUSER}}!\n";
                $text .= "* time:{{REVISIONTIMESTAMP}}!\n";
 
-               $rev->setContent( 'main', new WikitextContent( $text ) );
+               $rev->setContent( SlotRecord::MAIN, new WikitextContent( $text ) );
 
                $options = ParserOptions::newCanonical( 'canonical' );
                $rr = new RenderedRevision( $title, $rev, $options, $this->combinerCallback );
@@ -449,7 +450,7 @@ class RenderedRevisionTest extends MediaWikiTestCase {
                $text .= "* user:{{REVISIONUSER}}!\n";
                $text .= "* time:{{REVISIONTIMESTAMP}}!\n";
 
-               $rev->setContent( 'main', new WikitextContent( $text ) );
+               $rev->setContent( SlotRecord::MAIN, new WikitextContent( $text ) );
 
                $actualRevision = $this->getMockRevision(
                        RevisionStoreRecord::class,
@@ -482,6 +483,23 @@ class RenderedRevisionTest extends MediaWikiTestCase {
                $this->assertContains( 'time:20180101000003!', $html );
        }
 
+       public function testSetRevisionParserOutput() {
+               $title = $this->getMockTitle( 3, 21 );
+               $rev = $this->getMockRevision( RevisionStoreRecord::class, $title );
+
+               $options = ParserOptions::newCanonical( 'canonical' );
+               $rr = new RenderedRevision( $title, $rev, $options, $this->combinerCallback );
+
+               $output = new ParserOutput( 'Kittens' );
+               $rr->setRevisionParserOutput( $output );
+
+               $this->assertSame( $output, $rr->getRevisionParserOutput() );
+               $this->assertSame( 'Kittens', $rr->getRevisionParserOutput()->getText() );
+
+               $this->assertSame( $output, $rr->getSlotParserOutput( SlotRecord::MAIN ) );
+               $this->assertSame( 'Kittens', $rr->getSlotParserOutput( SlotRecord::MAIN )->getText() );
+       }
+
        public function testNoHtml() {
                /** @var MockObject|Content $mockContent */
                $mockContent = $this->getMockBuilder( WikitextContent::class )
@@ -503,13 +521,13 @@ class RenderedRevisionTest extends MediaWikiTestCase {
                $title = $this->getMockTitle( 7, 21 );
 
                $rev = new MutableRevisionRecord( $title );
-               $rev->setContent( 'main', $mockContent );
+               $rev->setContent( SlotRecord::MAIN, $mockContent );
                $rev->setContent( 'aux', $mockContent );
 
                $options = ParserOptions::newCanonical( 'canonical' );
                $rr = new RenderedRevision( $title, $rev, $options, $this->combinerCallback );
 
-               $output = $rr->getSlotParserOutput( 'main', [ 'generate-html' => false ] );
+               $output = $rr->getSlotParserOutput( SlotRecord::MAIN, [ 'generate-html' => false ] );
                $this->assertFalse( $output->hasText(), 'hasText' );
 
                $output = $rr->getRevisionParserOutput( [ 'generate-html' => false ] );
@@ -527,19 +545,19 @@ class RenderedRevisionTest extends MediaWikiTestCase {
                $text .= "* user:{{REVISIONUSER}}!\n";
                $text .= "* time:{{REVISIONTIMESTAMP}}!\n";
 
-               $rev->setContent( 'main', new WikitextContent( $text ) );
+               $rev->setContent( SlotRecord::MAIN, new WikitextContent( $text ) );
                $rev->setContent( 'aux', new WikitextContent( '[[Goats]]' ) );
 
                $options = ParserOptions::newCanonical( 'canonical' );
                $rr = new RenderedRevision( $title, $rev, $options, $this->combinerCallback );
 
                $firstOutput = $rr->getRevisionParserOutput();
-               $mainOutput = $rr->getSlotParserOutput( 'main' );
+               $mainOutput = $rr->getSlotParserOutput( SlotRecord::MAIN );
                $auxOutput = $rr->getSlotParserOutput( 'aux' );
 
                // emulate a saved revision
                $savedRev = new MutableRevisionRecord( $title );
-               $savedRev->setContent( 'main', new WikitextContent( $text ) );
+               $savedRev->setContent( SlotRecord::MAIN, new WikitextContent( $text ) );
                $savedRev->setContent( 'aux', new WikitextContent( '[[Goats]]' ) );
                $savedRev->setId( 23 ); // saved, new
                $savedRev->setUser( new UserIdentityValue( 9, 'Frank', 0 ) );
@@ -547,7 +565,7 @@ class RenderedRevisionTest extends MediaWikiTestCase {
 
                $rr->updateRevision( $savedRev );
 
-               $this->assertNotSame( $mainOutput, $rr->getSlotParserOutput( 'main' ), 'Reset main' );
+               $this->assertNotSame( $mainOutput, $rr->getSlotParserOutput( SlotRecord::MAIN ), 'Reset main' );
                $this->assertSame( $auxOutput, $rr->getSlotParserOutput( 'aux' ), 'Keep aux' );
 
                $updatedOutput = $rr->getRevisionParserOutput();