diff options
author | Pierre Schmitz <pierre@archlinux.de> | 2014-03-12 18:12:23 +0100 |
---|---|---|
committer | Pierre Schmitz <pierre@archlinux.de> | 2014-03-12 18:12:23 +0100 |
commit | d417de70fcf39e0a7a15ba780b597914d16ca0f7 (patch) | |
tree | 06ef8c333473660350b995abc03e18f3f85359eb /tests/phpunit/includes/specials | |
parent | a4edbfa031eb4cd72678051f1510afde4f77951e (diff) |
Update to MediaWiki 1.22.4
Diffstat (limited to 'tests/phpunit/includes/specials')
4 files changed, 0 insertions, 403 deletions
diff --git a/tests/phpunit/includes/specials/QueryAllSpecialPagesTest.php b/tests/phpunit/includes/specials/QueryAllSpecialPagesTest.php deleted file mode 100644 index a806b4ac..00000000 --- a/tests/phpunit/includes/specials/QueryAllSpecialPagesTest.php +++ /dev/null @@ -1,79 +0,0 @@ -<?php -/** - * Test class to run the query of most of all our special pages - * - * Copyright © 2011, Antoine Musso - * - * @author Antoine Musso - * @group Database - */ - -if ( !defined( 'MEDIAWIKI' ) ) { - die( 1 ); -} - -global $IP; -require_once "$IP/includes/QueryPage.php"; // Needed to populate $wgQueryPages - -class QueryAllSpecialPagesTest extends MediaWikiTestCase { - - /** List query pages that can not be tested automatically */ - protected $manualTest = array( - 'LinkSearchPage' - ); - - /** - * Pages whose query use the same DB table more than once. - * This is used to skip testing those pages when run against a MySQL backend - * which does not support reopening a temporary table. See upstream bug: - * http://bugs.mysql.com/bug.php?id=10327 - */ - protected $reopensTempTable = array( - 'BrokenRedirects', - ); - - /** - * Initialize all query page objects - */ - function __construct() { - parent::__construct(); - - global $wgQueryPages; - foreach ( $wgQueryPages as $page ) { - $class = $page[0]; - if ( !in_array( $class, $this->manualTest ) ) { - $this->queryPages[$class] = new $class; - } - } - } - - /** - * Test SQL for each of our QueryPages objects - * @group Database - */ - public function testQuerypageSqlQuery() { - global $wgDBtype; - - foreach ( $this->queryPages as $page ) { - - // With MySQL, skips special pages reopening a temporary table - // See http://bugs.mysql.com/bug.php?id=10327 - if ( - $wgDBtype === 'mysql' - && in_array( $page->getName(), $this->reopensTempTable ) - ) { - $this->markTestSkipped( "SQL query for page {$page->getName()} can not be tested on MySQL backend (it reopens a temporary table)" ); - continue; - } - - $msg = "SQL query for page {$page->getName()} should give a result wrapper object"; - - $result = $page->reallyDoQuery( 50 ); - if ( $result instanceof ResultWrapper ) { - $this->assertTrue( true, $msg ); - } else { - $this->assertFalse( false, $msg ); - } - } - } -} diff --git a/tests/phpunit/includes/specials/SpecialPreferencesTest.php b/tests/phpunit/includes/specials/SpecialPreferencesTest.php deleted file mode 100644 index 6c637c65..00000000 --- a/tests/phpunit/includes/specials/SpecialPreferencesTest.php +++ /dev/null @@ -1,60 +0,0 @@ -<?php -/** - * Test class for SpecialPreferences class. - * - * Copyright © 2013, Antoine Musso - * Copyright © 2013, Wikimedia Foundation Inc. - * - */ - -class SpecialPreferencesTest extends MediaWikiTestCase { - - /** - * Make sure a nickname which is longer than $wgMaxSigChars - * is not throwing a fatal error. - * - * Test specifications by Alexandre "ialex" Emsenhuber. - */ - public function testBug41337() { - - // Set a low limit - $this->setMwGlobals( 'wgMaxSigChars', 2 ); - - $user = $this->getMock( 'User' ); - $user->expects( $this->any() ) - ->method( 'isAnon' ) - ->will( $this->returnValue( false ) ); - - # Yeah foreach requires an array, not NULL =( - $user->expects( $this->any() ) - ->method( 'getEffectiveGroups' ) - ->will( $this->returnValue( array() ) ); - - # The mocked user has a long nickname - $user->expects( $this->any() ) - ->method( 'getOption' ) - ->will( $this->returnValueMap( array( - array( 'nickname', null, false, 'superlongnickname' ), - ) - ) ); - - # Validate the mock (FIXME should probably be removed) - $this->assertFalse( $user->isAnon() ); - $this->assertEquals( array(), - $user->getEffectiveGroups() ); - $this->assertEquals( 'superlongnickname', - $user->getOption( 'nickname' ) ); - - # Forge a request to call the special page - $context = new RequestContext(); - $context->setRequest( new FauxRequest() ); - $context->setUser( $user ); - $context->setTitle( Title::newFromText( 'Test' ) ); - - # Do the call, should not spurt a fatal error. - $special = new SpecialPreferences(); - $special->setContext( $context ); - $special->execute( array() ); - } - -} diff --git a/tests/phpunit/includes/specials/SpecialRecentchangesTest.php b/tests/phpunit/includes/specials/SpecialRecentchangesTest.php deleted file mode 100644 index 436eb2e2..00000000 --- a/tests/phpunit/includes/specials/SpecialRecentchangesTest.php +++ /dev/null @@ -1,125 +0,0 @@ -<?php -/** - * Test class for SpecialRecentchanges class - * - * Copyright © 2011, Antoine Musso - * - * @author Antoine Musso - * @group Database - */ -class SpecialRecentchangesTest extends MediaWikiTestCase { - - /** - * @var SpecialRecentChanges - */ - protected $rc; - - /** helper to test SpecialRecentchanges::buildMainQueryConds() */ - private function assertConditions( $expected, $requestOptions = null, $message = '' ) { - $context = new RequestContext; - $context->setRequest( new FauxRequest( $requestOptions ) ); - - # setup the rc object - $this->rc = new SpecialRecentChanges(); - $this->rc->setContext( $context ); - $formOptions = $this->rc->setup( null ); - - # Filter out rc_timestamp conditions which depends on the test runtime - # This condition is not needed as of march 2, 2011 -- hashar - # @todo FIXME: Find a way to generate the correct rc_timestamp - $queryConditions = array_filter( - $this->rc->buildMainQueryConds( $formOptions ), - 'SpecialRecentchangesTest::filterOutRcTimestampCondition' - ); - - $this->assertEquals( - $expected, - $queryConditions, - $message - ); - } - - /** return false if condition begin with 'rc_timestamp ' */ - private static function filterOutRcTimestampCondition( $var ) { - return ( false === strpos( $var, 'rc_timestamp ' ) ); - } - - public function testRcNsFilter() { - $this->assertConditions( - array( # expected - 'rc_bot' => 0, - #0 => "rc_timestamp >= '20110223000000'", - 1 => "rc_namespace = '0'", - ), - array( - 'namespace' => NS_MAIN, - ), - "rc conditions with no options (aka default setting)" - ); - } - - public function testRcNsFilterInversion() { - $this->assertConditions( - array( # expected - #0 => "rc_timestamp >= '20110223000000'", - 'rc_bot' => 0, - 1 => sprintf( "rc_namespace != '%s'", NS_MAIN ), - ), - array( - 'namespace' => NS_MAIN, - 'invert' => 1, - ), - "rc conditions with namespace inverted" - ); - } - - /** - * @bug 2429 - * @dataProvider provideNamespacesAssociations - */ - public function testRcNsFilterAssociation( $ns1, $ns2 ) { - $this->assertConditions( - array( # expected - #0 => "rc_timestamp >= '20110223000000'", - 'rc_bot' => 0, - 1 => sprintf( "(rc_namespace = '%s' OR rc_namespace = '%s')", $ns1, $ns2 ), - ), - array( - 'namespace' => $ns1, - 'associated' => 1, - ), - "rc conditions with namespace inverted" - ); - } - - /** - * @bug 2429 - * @dataProvider provideNamespacesAssociations - */ - public function testRcNsFilterAssociationWithInversion( $ns1, $ns2 ) { - $this->assertConditions( - array( # expected - #0 => "rc_timestamp >= '20110223000000'", - 'rc_bot' => 0, - 1 => sprintf( "(rc_namespace != '%s' AND rc_namespace != '%s')", $ns1, $ns2 ), - ), - array( - 'namespace' => $ns1, - 'associated' => 1, - 'invert' => 1, - ), - "rc conditions with namespace inverted" - ); - } - - /** - * Provides associated namespaces to test recent changes - * namespaces association filtering. - */ - public static function provideNamespacesAssociations() { - return array( # (NS => Associated_NS) - array( NS_MAIN, NS_TALK ), - array( NS_TALK, NS_MAIN ), - ); - } -} diff --git a/tests/phpunit/includes/specials/SpecialSearchTest.php b/tests/phpunit/includes/specials/SpecialSearchTest.php deleted file mode 100644 index 17e883fd..00000000 --- a/tests/phpunit/includes/specials/SpecialSearchTest.php +++ /dev/null @@ -1,139 +0,0 @@ -<?php -/** - * Test class for SpecialSearch class - * Copyright © 2012, Antoine Musso - * - * @author Antoine Musso - * @group Database - */ - -class SpecialSearchTest extends MediaWikiTestCase { - private $search; - - /** - * @covers SpecialSearch::load - * @dataProvider provideSearchOptionsTests - * @param $requested Array Request parameters. For example array( 'ns5' => true, 'ns6' => true). NULL to use default options. - * @param $userOptions Array User options to test with. For example array('searchNs5' => 1 );. NULL to use default options. - * @param $expectedProfile An expected search profile name - * @param $expectedNs Array Expected namespaces - */ - public function testProfileAndNamespaceLoading( - $requested, $userOptions, $expectedProfile, $expectedNS, - $message = 'Profile name and namespaces mismatches!' - ) { - $context = new RequestContext; - $context->setUser( - $this->newUserWithSearchNS( $userOptions ) - ); - /* - $context->setRequest( new FauxRequest( array( - 'ns5'=>true, - 'ns6'=>true, - ) )); - */ - $context->setRequest( new FauxRequest( $requested ) ); - $search = new SpecialSearch(); - $search->setContext( $context ); - $search->load(); - - /** - * Verify profile name and namespace in the same assertion to make - * sure we will be able to fully compare the above code. PHPUnit stop - * after an assertion fail. - */ - $this->assertEquals( - array( /** Expected: */ - 'ProfileName' => $expectedProfile, - 'Namespaces' => $expectedNS, - ) - , array( /** Actual: */ - 'ProfileName' => $search->getProfile(), - 'Namespaces' => $search->getNamespaces(), - ) - , $message - ); - } - - public static function provideSearchOptionsTests() { - $defaultNS = SearchEngine::defaultNamespaces(); - $EMPTY_REQUEST = array(); - $NO_USER_PREF = null; - - return array( - /** - * Parameters: - * <Web Request>, <User options> - * Followed by expected values: - * <ProfileName>, <NSList> - * Then an optional message. - */ - array( - $EMPTY_REQUEST, $NO_USER_PREF, - 'default', $defaultNS, - 'Bug 33270: No request nor user preferences should give default profile' - ), - array( - array( 'ns5' => 1 ), $NO_USER_PREF, - 'advanced', array( 5 ), - 'Web request with specific NS should override user preference' - ), - array( - $EMPTY_REQUEST, array( - 'searchNs2' => 1, - 'searchNs14' => 1, - ) + array_fill_keys( array_map( function ( $ns ) { - return "searchNs$ns"; - }, $defaultNS ), 0 ), - 'advanced', array( 2, 14 ), - 'Bug 33583: search with no option should honor User search preferences' - . ' and have all other namespace disabled' - ), - ); - } - - /** - * Helper to create a new User object with given options - * User remains anonymous though - */ - function newUserWithSearchNS( $opt = null ) { - $u = User::newFromId( 0 ); - if ( $opt === null ) { - return $u; - } - foreach ( $opt as $name => $value ) { - $u->setOption( $name, $value ); - } - - return $u; - } - - /** - * Verify we do not expand search term in <title> on search result page - * https://gerrit.wikimedia.org/r/4841 - */ - public function testSearchTermIsNotExpanded() { - - # Initialize [[Special::Search]] - $search = new SpecialSearch(); - $search->getContext()->setTitle( Title::newFromText( 'Special:Search' ) ); - $search->load(); - - # Simulate a user searching for a given term - $term = '{{SITENAME}}'; - $search->showResults( $term ); - - # Lookup the HTML page title set for that page - $pageTitle = $search - ->getContext() - ->getOutput() - ->getHTMLTitle(); - - # Compare :-] - $this->assertRegExp( - '/' . preg_quote( $term ) . '/', - $pageTitle, - "Search term '{$term}' should not be expanded in Special:Search <title>" - ); - } -} |