Page MenuHomePhorge

No OneTemporary

Size
2 KB
Referenced Files
None
Subscribers
None
diff --git a/includes/actions/ActionEntryPoint.php b/includes/actions/ActionEntryPoint.php
index 51854c13c62..ab4062dc011 100644
--- a/includes/actions/ActionEntryPoint.php
+++ b/includes/actions/ActionEntryPoint.php
@@ -660,7 +660,7 @@ class ActionEntryPoint extends MediaWikiEntryPoint {
// Rewrite environment to redirected article
$rpage = $services->getWikiPageFactory()->newFromTitle( $target );
$rpage->loadPageData();
- if ( $rpage->exists() || ( is_object( $file ) && !$file->isLocal() ) ) {
+ if ( $target->isKnown() || ( is_object( $file ) && !$file->isLocal() ) ) {
$rarticle = Article::newFromWikiPage( $rpage, $context );
$rarticle->setRedirectedFrom( $title );
diff --git a/tests/phpunit/includes/actions/ActionEntryPointTest.php b/tests/phpunit/includes/actions/ActionEntryPointTest.php
index 94df036859c..4735da0e662 100644
--- a/tests/phpunit/includes/actions/ActionEntryPointTest.php
+++ b/tests/phpunit/includes/actions/ActionEntryPointTest.php
@@ -472,4 +472,52 @@ class ActionEntryPointTest extends MediaWikiIntegrationTestCase {
Assert::assertStringContainsString( 'Footer', $output );
}
+ public function testViewRedirectNonExistingViewablePage() {
+ $this->overrideConfigValue( MainConfigNames::LanguageCode, 'en' );
+ $page = $this->getExistingTestPage( 'Origin_' . __METHOD__ );
+ $target = $this->getNonexistingTestPage( 'MediaWiki:Mainpage' );
+ $link = $this->getServiceContainer()->getTitleFormatter()
+ ->getPrefixedText( $target );
+
+ $this->editPage( $page, "#REDIRECT [[$link]]\n\nRedirect Footer" );
+ $this->editPage( $target, "Redirect Target" );
+
+ $request = new FauxRequest( [
+ 'title' => $page->getTitle()->getPrefixedDBkey(),
+ ] );
+
+ $env = new MockEnvironment( $request );
+
+ $entryPoint = $this->getEntryPoint( $env );
+ $entryPoint->run();
+ $output = $entryPoint->getCapturedOutput();
+
+ Assert::assertStringContainsString( '<title>(pagetitle: MediaWiki:Mainpage', $output );
+ Assert::assertStringContainsString( 'Mainpage', $output );
+ }
+
+ public function testViewRedirectNonExistingViewablePageInFrLanguageCode() {
+ $this->overrideConfigValue( MainConfigNames::LanguageCode, 'fr' );
+ $page = $this->getExistingTestPage( 'Origin_' . __METHOD__ );
+ $target = $this->getNonexistingTestPage( 'MediaWiki:Mainpage' );
+ $link = $this->getServiceContainer()->getTitleFormatter()
+ ->getPrefixedText( $target );
+
+ $this->editPage( $page, "#REDIRECT [[$link]]\n\nRedirect Footer" );
+ $this->editPage( $target, "Redirect Target" );
+
+ $request = new FauxRequest( [
+ 'title' => $page->getTitle()->getPrefixedDBkey(),
+ ] );
+
+ $env = new MockEnvironment( $request );
+
+ $entryPoint = $this->getEntryPoint( $env );
+ $entryPoint->run();
+ $output = $entryPoint->getCapturedOutput();
+
+ Assert::assertStringContainsString( '<title>(pagetitle: MediaWiki:Mainpage', $output );
+ Assert::assertStringContainsString( 'Accueil', $output );
+ }
+
}

File Metadata

Mime Type
text/x-diff
Expires
Sat, Jul 5, 5:32 AM (11 h, 52 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
227510
Default Alt Text
(2 KB)

Event Timeline