MediaWiki  master
ApiStructureTest Class Reference

Checks that all API modules, core and extensions, conform to the conventions: More...

Inheritance diagram for ApiStructureTest:
Collaboration diagram for ApiStructureTest:

Public Member Functions

 testDocumentationExists ( $path, array $globals)
 provideDocumentationExists More...
 
 testParameterConsistency ( $path)
 provideParameterConsistency More...
 
- Public Member Functions inherited from MediaWikiTestCase
 __construct ( $name=null, array $data=[], $dataName='')
 
 __destruct ()
 
 addDBData ()
 Stub. More...
 
 addDBDataOnce ()
 Stub. More...
 
 copyTestData (IDatabase $source, IDatabase $target)
 Copy test data from one database connection to another. More...
 
 dbPrefix ()
 
 getCliArg ( $offset)
 
 hideDeprecated ( $function)
 Don't throw a warning if $function is deprecated and called later. More...
 
 needsDB ()
 
 run (PHPUnit_Framework_TestResult $result=null)
 
 setCliArg ( $offset, $value)
 
 setContentLang ( $lang)
 
 setGroupPermissions ( $newPerms, $newKey=null, $newValue=null)
 Alters $wgGroupPermissions for the duration of the test. More...
 
 setupAllTestDBs ()
 Set up all test DBs. More...
 
 setUserLang ( $lang)
 
 testMediaWikiTestCaseParentSetupCalled ()
 Make sure MediaWikiTestCase extending classes have called their parent setUp method. More...
 
 usesTemporaryTables ()
 

Static Public Member Functions

static provideDocumentationExists ()
 
static provideParameterConsistency ()
 
- Static Public Member Functions inherited from MediaWikiTestCase
static getMutableTestUser ( $groups=[])
 Convenience method for getting a mutable test user. More...
 
static getTestPrefixFor (IDatabase $db)
 
static getTestSysop ()
 Convenience method for getting an immutable admin test user. More...
 
static getTestUser ( $groups=[])
 Convenience method for getting an immutable test user. More...
 
static installMockMwServices (Config $configOverrides=null)
 Creates a new "mock" MediaWikiServices instance, and installs it. More...
 
static listTables (IMaintainableDatabase $db)
 
static prepareServices (Config $bootstrapConfig)
 
static resetNonServiceCaches ()
 Resets some non-service singleton instances and other static caches. More...
 
static restoreMwServices ()
 Restores the original, non-mock MediaWikiServices instance. More...
 
static setUpBeforeClass ()
 
static setupTestDB (IMaintainableDatabase $db, $prefix)
 Creates an empty skeleton of the wiki database by cloning its structure to equivalent tables using the given $prefix. More...
 
static teardownTestDB ()
 Restores MediaWiki to using the table set (table prefix) it was using before setupTestDB() was called. More...
 
static wfResetOutputBuffersBarrier ( $buffer)
 Used as a marker to prevent wfResetOutputBuffers from breaking PHPUnit. More...
 

Static Protected Member Functions

static getSubModulePaths (ApiModuleManager $manager)
 Return paths of all submodules in an ApiModuleManager, recursively. More...
 
- Static Protected Member Functions inherited from MediaWikiTestCase
static getExternalStoreDatabaseConnections ()
 Gets master database connections for all of the ExternalStoreDB stores configured in $wgDefaultExternalStore. More...
 
static isUsingExternalStoreDB ()
 Check whether ExternalStoreDB is being used. More...
 
static setupDatabaseWithTestPrefix (IMaintainableDatabase $db, $prefix=null)
 Setups a database with cloned tables using the given prefix. More...
 
static setupExternalStoreTestDBs ( $testPrefix=null)
 Clones the External Store database(s) for testing. More...
 
static stripStringKeys (&$r)
 Utility function for eliminating all string keys from an array. More...
 

Private Member Functions

 checkMessage ( $msg, $what)
 Test a message. More...
 
 validateDefault ( $param, $config)
 Asserts that $default is a valid default for $type. More...
 
 validateType ( $types, $value, $param, $desc)
 Throws if $value does not match one of the types specified in $types. More...
 

Static Private Member Functions

static getMain ()
 Initialize/fetch the ApiMain instance for testing. More...
 

Static Private Attributes

static $constantNames = null
 
static ApiMain $main
 
static $paramAllowedTypes
 
static $paramProhibitedTypes
 
static $paramRequirements
 
static array static $paramTypes
 Values are an array, where each array value is a permitted type. More...
 
static array $testGlobals
 Sets of globals to test. More...
 

Additional Inherited Members

- Public Attributes inherited from MediaWikiTestCase
const DB_PREFIX = 'unittest_'
 Table name prefixes. More...
 
const ORA_DB_PREFIX = 'ut_'
 
- Static Public Attributes inherited from MediaWikiTestCase
static TestUser [] $users
 
- Protected Member Functions inherited from MediaWikiTestCase
 addCoreDBData ()
 
 addTmpFiles ( $files)
 
 anythingBut (... $values)
 Returns a PHPUnit constraint that matches anything other than a fixed set of values. More...
 
 arrayWrap (array $elements)
 Utility method taking an array of elements and wrapping each element in its own array. More...
 
 assertArrayEquals (array $expected, array $actual, $ordered=false, $named=false)
 Assert that two arrays are equal. More...
 
 assertFileContains ( $fileName, $actualData, $createIfMissing=false, $msg='')
 Check whether file contains given data. More...
 
 assertHTMLEquals ( $expected, $actual, $msg='')
 Put each HTML element on its own line and then equals() the results. More...
 
 assertSelect ( $table, $fields, $condition, array $expectedRows, array $options=[], array $join_conds=[])
 Asserts that the given database query yields the rows given by $expectedRows. More...
 
 assertType ( $type, $actual, $message='')
 Asserts the type of the provided value. More...
 
 assertTypeOrValue ( $type, $actual, $value=false, $message='')
 Asserts that the provided variable is of the specified internal type or equals the $value argument. More...
 
 checkDbIsSupported ()
 
 checkPHPExtension ( $extName)
 Check if $extName is a loaded PHP extension, will skip the test whenever it is not loaded. More...
 
 editPage ( $pageName, $text, $summary='', $defaultNs=NS_MAIN)
 Edits or creates a page/revision. More...
 
 ensureMockDatabaseConnection (IDatabase $db)
 
 getDefaultWikitextNS ()
 Returns the ID of a namespace that defaults to Wikitext. More...
 
 getExistingTestPage ( $title=null)
 Returns a WikiPage representing an existing page. More...
 
 getNewTempDirectory ()
 obtains a new temporary directory More...
 
 getNewTempFile ()
 Obtains a new temporary file name. More...
 
 getNonexistingTestPage ( $title=null)
 Returns a WikiPage representing a non-existing page. More...
 
static getSchemaOverrides (IMaintainableDatabase $db)
 Stub. More...
 
 insertPage ( $pageName, $text='Sample page for unit test.', $namespace=null, User $user=null)
 Insert a new page. More...
 
 isTestInDatabaseGroup ()
 
 isWikitextNS ( $ns)
 Returns true if the given namespace defaults to Wikitext according to $wgNamespaceContentModels. More...
 
 markTestSkippedIfDbType ( $type)
 Skip the test if using the specified database type. More...
 
 markTestSkippedIfNoDiff3 ()
 Check, if $wgDiff3 is set and ready to merge Will mark the calling test as skipped, if not ready. More...
 
 mergeMwGlobalArrayValue ( $name, $values)
 Merges the given values into a MW global array variable. More...
 
 objectAssociativeSort (array &$array)
 Does an associative sort that works for objects. More...
 
 overrideMwServices (Config $configOverrides=null, array $services=[])
 Stashes the global instance of MediaWikiServices, and installs a new one, allowing test cases to override settings and services. More...
 
 revisionDelete ( $rev, array $value=[Revision::DELETED_TEXT=> 1], $comment='')
 Revision-deletes a revision. More...
 
 setIniSetting ( $name, $value)
 Set an ini setting for the duration of the test. More...
 
 setLogger ( $channel, LoggerInterface $logger)
 Sets the logger for a specified channel, for the duration of the test. More...
 
 setMwGlobals ( $pairs, $value=null)
 Sets a global, maintaining a stashed version of the previous global to be restored in tearDown. More...
 
 setService ( $name, $object)
 Sets a service, maintaining a stashed version of the previous service to be restored in tearDown. More...
 
 setTemporaryHook ( $hookName, $handler)
 Create a temporary hook handler which will be reset by tearDown. More...
 
 setUp ()
 
 tearDown ()
 
 truncateTable ( $tableName, IDatabase $db=null)
 Empties the given table and resets any auto-increment counters. More...
 
- Protected Attributes inherited from MediaWikiTestCase
Database $db
 Primary database. More...
 
array $supportedDBs
 
array $tablesUsed = []
 

Detailed Description

Checks that all API modules, core and extensions, conform to the conventions:

  • have documentation i18n messages (the test won't catch everything since i18n messages can vary based on the wiki configuration, but it should catch many cases for forgotten i18n)
  • do not have inconsistencies in the parameter definitions

    API

Definition at line 16 of file ApiStructureTest.php.

Member Function Documentation

◆ checkMessage()

ApiStructureTest::checkMessage (   $msg,
  $what 
)
private

Test a message.

Parameters
Message$msg
string$whatWhich message is being checked

Definition at line 127 of file ApiStructureTest.php.

References class, getContext(), and ApiBase\makeMessage().

Referenced by testDocumentationExists().

◆ getMain()

static ApiStructureTest::getMain ( )
staticprivate

Initialize/fetch the ApiMain instance for testing.

Returns
ApiMain

Definition at line 111 of file ApiStructureTest.php.

References RequestContext\getMain(), Title\makeTitle(), and NS_SPECIAL.

◆ getSubModulePaths()

static ApiStructureTest::getSubModulePaths ( ApiModuleManager  $manager)
staticprotected

Return paths of all submodules in an ApiModuleManager, recursively.

Parameters
ApiModuleManager$manager
Returns
string[]

Definition at line 646 of file ApiStructureTest.php.

References $name, as, ApiModuleManager\getModule(), and ApiModuleManager\getNames().

◆ provideDocumentationExists()

static ApiStructureTest::provideDocumentationExists ( )
static

Definition at line 226 of file ApiStructureTest.php.

References $path, $ret, as, ApiMain\getModuleManager(), and ApiBase\getModulePath().

◆ provideParameterConsistency()

static ApiStructureTest::provideParameterConsistency ( )
static
Returns
array List of API module paths to test

Definition at line 629 of file ApiStructureTest.php.

References $path, $ret, as, ApiMain\getModuleManager(), and ApiBase\getModulePath().

◆ testDocumentationExists()

ApiStructureTest::testDocumentationExists (   $path,
array  $globals 
)

◆ testParameterConsistency()

◆ validateDefault()

ApiStructureTest::validateDefault (   $param,
  $config 
)
private

Asserts that $default is a valid default for $type.

Parameters
string$paramName of param, for error messages
array$configArray of configuration options for this parameter

Definition at line 528 of file ApiStructureTest.php.

References $e, $type, as, ApiBase\PARAM_DFLT, ApiBase\PARAM_EXTRA_NAMESPACES, ApiBase\PARAM_ISMULTI, ApiBase\PARAM_TYPE, and wfTimestamp().

Referenced by testParameterConsistency().

◆ validateType()

ApiStructureTest::validateType (   $types,
  $value,
  $param,
  $desc 
)
private

Throws if $value does not match one of the types specified in $types.

Parameters
array$typesFrom self::$paramTypes array
mixed$valueValue to check
string$paramName of param we're checking, for error messages
string$descDescription for error messages

Definition at line 484 of file ApiStructureTest.php.

References $type, $value, as, and MediaWikiTestCase\assertType().

Referenced by testParameterConsistency().

Member Data Documentation

◆ $constantNames

ApiStructureTest::$constantNames = null
staticprivate

Definition at line 105 of file ApiStructureTest.php.

◆ $main

ApiMain ApiStructureTest::$main
staticprivate

Definition at line 19 of file ApiStructureTest.php.

◆ $paramAllowedTypes

ApiStructureTest::$paramAllowedTypes
staticprivate
Initial value:
= [
ApiBase::PARAM_MAX => [ 'integer', 'limit' ]

Definition at line 83 of file ApiStructureTest.php.

◆ $paramProhibitedTypes

ApiStructureTest::$paramProhibitedTypes
staticprivate
Initial value:
= [
ApiBase::PARAM_ISMULTI => [ 'boolean', 'limit', 'upload' ]

Definition at line 99 of file ApiStructureTest.php.

◆ $paramRequirements

◆ $paramTypes

array static ApiStructureTest::$paramTypes
staticprivate
Initial value:
= [
ApiBase::PARAM_ISMULTI => [ 'boolean' ]

Values are an array, where each array value is a permitted type.

A type can be a string, which is the name of an internal type or a class/interface. Or it can be an array, in which case the value must be an array whose elements are the types given in the array (e.g., [ 'string', integer' ] means an array whose entries are strings and/or integers).

Definition at line 39 of file ApiStructureTest.php.

◆ $testGlobals

array ApiStructureTest::$testGlobals
staticprivate
Initial value:
= [
[
'MiserMode' => false,
]

Sets of globals to test.

Each array element is input to HashConfig

Definition at line 22 of file ApiStructureTest.php.


The documentation for this class was generated from the following file: