Merge "Revert "Make an empty "?action=" parameter default to "view"""
This commit is contained in:
commit
4be623a6b3
4 changed files with 14 additions and 28 deletions
|
|
@ -59,7 +59,7 @@ class MediaWiki {
|
|||
$request = $this->context->getRequest();
|
||||
$curid = $request->getInt( 'curid' );
|
||||
$title = $request->getVal( 'title' );
|
||||
$action = $this->getAction();
|
||||
$action = $request->getVal( 'action', 'view' );
|
||||
|
||||
if ( $request->getCheck( 'search' ) ) {
|
||||
// Compatibility with old search URLs which didn't use Special:Search
|
||||
|
|
@ -229,7 +229,7 @@ class MediaWiki {
|
|||
throw new BadTitleError();
|
||||
}
|
||||
// Redirect loops, no title in URL, $wgUsePathInfo URLs, and URLs with a variant
|
||||
} elseif ( $this->getAction() === 'view' && !$request->wasPosted()
|
||||
} elseif ( $request->getVal( 'action', 'view' ) == 'view' && !$request->wasPosted()
|
||||
&& ( $request->getVal( 'title' ) === null
|
||||
|| $title->getPrefixedDBkey() != $request->getVal( 'title' ) )
|
||||
&& !count( $request->getValueNames( array( 'action', 'title' ) ) )
|
||||
|
|
@ -330,7 +330,7 @@ class MediaWiki {
|
|||
|
||||
// Namespace might change when using redirects
|
||||
// Check for redirects ...
|
||||
$action = $this->getAction();
|
||||
$action = $request->getVal( 'action', 'view' );
|
||||
$file = ( $title->getNamespace() == NS_FILE ) ? $article->getFile() : null;
|
||||
if ( ( $action == 'view' || $action == 'render' ) // ... for actions that show content
|
||||
&& !$request->getVal( 'oldid' ) // ... and are not old revisions
|
||||
|
|
@ -416,7 +416,7 @@ class MediaWiki {
|
|||
return;
|
||||
}
|
||||
|
||||
if ( wfRunHooks( 'UnknownAction', array( $this->getAction(), $page ) ) ) {
|
||||
if ( wfRunHooks( 'UnknownAction', array( $request->getVal( 'action', 'view' ), $page ) ) ) {
|
||||
$output->setStatusCode( 404 );
|
||||
$output->showErrorPage( 'nosuchaction', 'nosuchactiontext' );
|
||||
}
|
||||
|
|
@ -489,7 +489,8 @@ class MediaWiki {
|
|||
$request = $this->context->getRequest();
|
||||
|
||||
// Send Ajax requests to the Ajax dispatcher.
|
||||
if ( $this->config->get( 'UseAjax' ) && $this->getAction() === 'ajax' ) {
|
||||
if ( $this->config->get( 'UseAjax' ) && $request->getVal( 'action', 'view' ) == 'ajax' ) {
|
||||
|
||||
// Set a dummy title, because $wgTitle == null might break things
|
||||
$title = Title::makeTitle( NS_MAIN, 'AJAX' );
|
||||
$this->context->setTitle( $title );
|
||||
|
|
|
|||
|
|
@ -142,7 +142,7 @@ abstract class Action {
|
|||
// Trying to get a WikiPage for NS_SPECIAL etc. will result
|
||||
// in WikiPage::factory throwing "Invalid or virtual namespace -1 given."
|
||||
// For SpecialPages et al, default to action=view.
|
||||
if ( $actionName === '' || !$context->canUseWikiPage() ) {
|
||||
if ( !$context->canUseWikiPage() ) {
|
||||
return 'view';
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -844,7 +844,7 @@ class SkinTemplate extends Skin {
|
|||
);
|
||||
|
||||
// parameters
|
||||
$action = Action::getActionName( $this );
|
||||
$action = $request->getVal( 'action', 'view' );
|
||||
|
||||
$userCanRead = $title->quickUserCan( 'read', $user );
|
||||
|
||||
|
|
|
|||
|
|
@ -57,6 +57,8 @@ class ActionTest extends MediaWikiTestCase {
|
|||
// Null and non-existing values
|
||||
array( 'null', null ),
|
||||
array( 'undeclared', null ),
|
||||
array( '', null ),
|
||||
array( false, null ),
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -136,37 +138,20 @@ class ActionTest extends MediaWikiTestCase {
|
|||
$this->assertType( $expected ?: 'null', $action );
|
||||
}
|
||||
|
||||
public function emptyActionProvider() {
|
||||
return array(
|
||||
array( null ),
|
||||
array( false ),
|
||||
array( '' ),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider emptyActionProvider
|
||||
*/
|
||||
public function testEmptyAction_doesNotExist( $requestedAction ) {
|
||||
$exists = Action::exists( $requestedAction );
|
||||
public function testNull_doesNotExist() {
|
||||
$exists = Action::exists( null );
|
||||
|
||||
$this->assertFalse( $exists );
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider emptyActionProvider
|
||||
*/
|
||||
public function testEmptyAction_defaultsToView() {
|
||||
public function testNull_defaultsToView() {
|
||||
$context = $this->getContext( null );
|
||||
$actionName = Action::getActionName( $context );
|
||||
|
||||
$this->assertEquals( 'view', $actionName );
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider emptyActionProvider
|
||||
*/
|
||||
public function testEmptyAction_canNotBeInstantiated() {
|
||||
public function testNull_canNotBeInstantiated() {
|
||||
$page = $this->getPage();
|
||||
$action = Action::factory( null, $page );
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue