MediaWiki REL1_33
UserTest Class Reference

Database. More...

Inheritance diagram for UserTest:
Collaboration diagram for UserTest:

Public Member Functions

 provideExperienceLevel ()
 
 testActorId ()
 User::newFromActorId.
 
 testActorId_old ()
 Actor tests with SCHEMA_COMPAT_READ_OLD.
 
 testAnonOptions ()
 T39963 Make sure defaults are loaded when setOption is called.
 
 testAutoblockCookieInauthentic ()
 Test that a modified BlockID cookie doesn't actually load the relevant block (T152951).
 
 testAutoblockCookieInfiniteExpiry ()
 When a user is autoblocked and a cookie is set to track them, the expiry time of the cookie should match the block's expiry, to a maximum of 24 hours.
 
 testAutoblockCookieNoSecretKey ()
 The BlockID cookie is normally verified with a HMAC, but not if wgSecretKey is not set.
 
 testAutoblockCookies ()
 When a user is autoblocked a cookie is set with which to track them in case they log out and change IP addresses.
 
 testAutoblockCookiesDisabled ()
 Make sure that no cookie is set to track autoblocked users when $wgCookieSetOnAutoblock is false.
 
 testBlockInstanceCache ()
 User::getBlockedStatus User::getBlock User::blockedBy User::blockedFor User::isHidden User::isBlockedFrom.
 
 testCheckAndSetTouched ()
 User::checkAndSetTouched.
 
 testCheckPasswordValidity ()
 Test password validity checks.
 
 testEquals ()
 User::equals.
 
 testExperienceLevel ( $editCount, $memberSince, $expLevel)
 User::getExperienceLevel provideExperienceLevel.
 
 testExperienceLevelAnon ()
 User::getExperienceLevel.
 
 testFindUsersByGroup ()
 User::findUsersByGroup.
 
 testGetCanonicalName ( $name, $expectedArray)
 User::getCanonicalName() provideGetCanonicalName.
 
 testGetEditCount ()
 Test User::editCount medium User::getEditCount.
 
 testGetEditCountForAnons ()
 Test User::editCount medium User::getEditCount.
 
 testGetFirstLatestEditTimestamp ()
 User::getFirstEditTimestamp User::getLatestEditTimestamp.
 
 testGetGroupsWithPermission ( $expected, $right)
 provideGetGroupsWithPermission User::getGroupsWithPermission
 
 testGetId ()
 User::getId.
 
 testGroupPermissions ()
 User::getGroupPermissions.
 
 testIncEditCount ()
 Test User::editCount medium User::incEditCount.
 
 testIpBlockCookieIgnoredWhenUserLoggedIn ()
 When an ip user is blocked and then they log in, cookie block should be invalid and the cookie removed.
 
 testIpBlockCookieNotSet ()
 Block cookie should NOT be set when wgCookieSetOnIpBlock is disabled User::trackBlockWithCookie.
 
 testIpBlockCookieSet ()
 Block cookie should be set for IP Blocks if wgCookieSetOnIpBlock is set to true User::trackBlockWithCookie.
 
 testIsBlockedFrom ( $title, $expect, array $options=[])
 User::isBlockedFrom provideIsBlockedFrom.
 
 testIsIP ( $value, $result, $message)
 provideIPs User::isIP
 
 testIsLocallyBlockedProxy ( $ip, $blockListEntry)
 provideIsLocallBlockedProxy User::isLocallyBlockedProxy
 
 testIsPingLimitable ()
 User::isPingLimitable.
 
 testIsValidUserName ( $username, $result, $message)
 provideUserNames User::isValidUserName
 
 testLoggedIn ()
 User::isLoggedIn User::isAnon.
 
 testNewFromAnyId ()
 User::newFromAnyId.
 
 testNewFromIdentity ()
 User::newFromIdentity.
 
 testOptions ()
 Test changing user options.
 
 testRevokePermissions ()
 User::getGroupPermissions.
 
 testSoftBlockRanges ()
 User::getBlockedStatus.
 
 testUserGetRightsHooks ()
 User::getRights.
 
 testUserPermissions ()
 User::getRights.
 
- Public Member Functions inherited from MediaWikiTestCase
 __construct ( $name=null, array $data=[], $dataName='')
 
 __destruct ()
 
 addDBData ()
 Stub.
 
 addDBDataOnce ()
 Stub.
 
 copyTestData (IDatabase $source, IDatabase $target)
 Copy test data from one database connection to another.
 
 dbPrefix ()
 
 getCliArg ( $offset)
 
 hideDeprecated ( $function)
 Don't throw a warning if $function is deprecated and called later.
 
 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.
 
 setupAllTestDBs ()
 Set up all test DBs.
 
 setUserLang ( $lang)
 
 testMediaWikiTestCaseParentSetupCalled ()
 Make sure MediaWikiTestCase extending classes have called their parent setUp method.
 
 usesTemporaryTables ()
 

Static Public Member Functions

static provideGetCanonicalName ()
 
static provideGetGroupsWithPermission ()
 
static provideIPs ()
 
static provideIsBlockedFrom ()
 
static provideIsLocallBlockedProxy ()
 
static provideUserNames ()
 
- Static Public Member Functions inherited from MediaWikiTestCase
static getMutableTestUser ( $groups=[])
 Convenience method for getting a mutable test user.
 
static getTestPrefixFor (IDatabase $db)
 
static getTestSysop ()
 Convenience method for getting an immutable admin test user.
 
static getTestUser ( $groups=[])
 Convenience method for getting an immutable test user.
 
static installMockMwServices (Config $configOverrides=null)
 Creates a new "mock" MediaWikiServices instance, and installs it.
 
static listTables (IMaintainableDatabase $db)
 
static prepareServices (Config $bootstrapConfig)
 
static resetNonServiceCaches ()
 Resets some non-service singleton instances and other static caches.
 
static restoreMwServices ()
 Restores the original, non-mock MediaWikiServices instance.
 
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.
 
static teardownTestDB ()
 Restores MediaWiki to using the table set (table prefix) it was using before setupTestDB() was called.
 
static wfResetOutputBuffersBarrier ( $buffer)
 Used as a marker to prevent wfResetOutputBuffers from breaking PHPUnit.
 

Public Attributes

const USER_TALK_PAGE = '<user talk page>'
 Constant for self::testIsBlockedFrom.
 
- Public Attributes inherited from MediaWikiTestCase
const DB_PREFIX = 'unittest_'
 Table name prefixes.
 
const ORA_DB_PREFIX = 'ut_'
 

Protected Member Functions

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

Protected Attributes

User $user
 
- Protected Attributes inherited from MediaWikiTestCase
Database $db
 Primary database.
 
array $supportedDBs
 
array $tablesUsed = []
 

Private Member Functions

 setUpPermissionGlobals ()
 

Static Private Member Functions

static makeEdit (User $user, $title, $content, $comment)
 

Additional Inherited Members

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

Detailed Description

Database.

Definition at line 15 of file UserTest.php.

Member Function Documentation

◆ makeEdit()

static UserTest::makeEdit ( User $user,
$title,
$content,
$comment )
staticprivate
Parameters
User$user
string$title
string$content
string$comment
Returns
\MediaWiki\Revision\RevisionRecord|null

Definition at line 1571 of file UserTest.php.

References $content.

Referenced by testGetFirstLatestEditTimestamp().

◆ provideExperienceLevel()

UserTest::provideExperienceLevel ( )

Definition at line 932 of file UserTest.php.

◆ provideGetCanonicalName()

static UserTest::provideGetCanonicalName ( )
static

Definition at line 455 of file UserTest.php.

References false.

◆ provideGetGroupsWithPermission()

static UserTest::provideGetGroupsWithPermission ( )
static

Definition at line 167 of file UserTest.php.

◆ provideIPs()

static UserTest::provideIPs ( )
static

Definition at line 196 of file UserTest.php.

◆ provideIsBlockedFrom()

static UserTest::provideIsBlockedFrom ( )
static

Definition at line 1351 of file UserTest.php.

References NS_USER_TALK, true, and USER_TALK_PAGE.

◆ provideIsLocallBlockedProxy()

static UserTest::provideIsLocallBlockedProxy ( )
static

Definition at line 983 of file UserTest.php.

◆ provideUserNames()

static UserTest::provideUserNames ( )
static

Definition at line 221 of file UserTest.php.

◆ setUp()

◆ setUpPermissionGlobals()

UserTest::setUpPermissionGlobals ( )
private

Definition at line 40 of file UserTest.php.

References $wgGroupPermissions, and $wgRevokePermissions.

Referenced by setUp().

◆ testActorId()

◆ testActorId_old()

UserTest::testActorId_old ( )

Actor tests with SCHEMA_COMPAT_READ_OLD.

The only thing different from testActorId() is the behavior if the actor row doesn't exist in the DB, since with SCHEMA_COMPAT_READ_NEW that situation can't happen. But we copy all the other tests too just for good measure.

User::newFromActorId

Definition at line 1096 of file UserTest.php.

References and(), User\createNew(), User\getActorId(), User\getId(), User\getName(), MediaWikiTestCase\hideDeprecated(), User\newFromActorId(), User\newFromId(), User\newFromName(), User\newFromRow(), MediaWikiTestCase\overrideMwServices(), User\purge(), SCHEMA_COMPAT_READ_OLD, SCHEMA_COMPAT_WRITE_BOTH, User\selectFields(), and MediaWikiTestCase\setMwGlobals().

◆ testAnonOptions()

UserTest::testAnonOptions ( )

T39963 Make sure defaults are loaded when setOption is called.

User::loadOptions

Definition at line 355 of file UserTest.php.

References $wgDefaultUserOptions, and and().

◆ testAutoblockCookieInauthentic()

UserTest::testAutoblockCookieInauthentic ( )

◆ testAutoblockCookieInfiniteExpiry()

UserTest::testAutoblockCookieInfiniteExpiry ( )

When a user is autoblocked and a cookie is set to track them, the expiry time of the cookie should match the block's expiry, to a maximum of 24 hours.

If the expiry time is changed, the cookie's should change with it. User::trackBlockWithCookie

Definition at line 715 of file UserTest.php.

References $res, and(), MWCryptRand\generateHex(), MediaWikiTestCase\getTestSysop(), MediaWikiTestCase\getTestUser(), MediaWikiTestCase\mergeMwGlobalArrayValue(), User\newFromSession(), MediaWikiTestCase\setMwGlobals(), Block\TYPE_USER, and wfTimestamp().

◆ testAutoblockCookieNoSecretKey()

UserTest::testAutoblockCookieNoSecretKey ( )

The BlockID cookie is normally verified with a HMAC, but not if wgSecretKey is not set.

This checks that a non-authenticated cookie still works. User::trackBlockWithCookie

Definition at line 863 of file UserTest.php.

References $res, and(), MediaWikiTestCase\getTestSysop(), MediaWikiTestCase\getTestUser(), MediaWikiTestCase\mergeMwGlobalArrayValue(), User\newFromSession(), and MediaWikiTestCase\setMwGlobals().

◆ testAutoblockCookies()

UserTest::testAutoblockCookies ( )

◆ testAutoblockCookiesDisabled()

UserTest::testAutoblockCookiesDisabled ( )

◆ testBlockInstanceCache()

◆ testCheckAndSetTouched()

UserTest::testCheckAndSetTouched ( )

◆ testCheckPasswordValidity()

UserTest::testCheckPasswordValidity ( )

Test password validity checks.

There are 3 checks in core,

Definition at line 371 of file UserTest.php.

References and(), User\checkPasswordValidity(), User\getPasswordValidity(), MediaWikiTestCase\hideDeprecated(), User\isValidPassword(), User\newFromName(), and MediaWikiTestCase\setMwGlobals().

◆ testEquals()

UserTest::testEquals ( )

◆ testExperienceLevel()

◆ testExperienceLevelAnon()

UserTest::testExperienceLevelAnon ( )

◆ testFindUsersByGroup()

◆ testGetCanonicalName()

UserTest::testGetCanonicalName ( $name,
$expectedArray )

User::getCanonicalName() provideGetCanonicalName.

Definition at line 431 of file UserTest.php.

References and(), User\getCanonicalName(), and MediaWikiTestCase\mergeMwGlobalArrayValue().

◆ testGetEditCount()

UserTest::testGetEditCount ( )

Test User::editCount medium User::getEditCount.

Definition at line 249 of file UserTest.php.

References and(), User\getEditCount(), and MediaWikiTestCase\getMutableTestUser().

◆ testGetEditCountForAnons()

UserTest::testGetEditCountForAnons ( )

Test User::editCount medium User::getEditCount.

Definition at line 286 of file UserTest.php.

References and(), User\getEditCount(), and User\newFromName().

◆ testGetFirstLatestEditTimestamp()

UserTest::testGetFirstLatestEditTimestamp ( )

◆ testGetGroupsWithPermission()

UserTest::testGetGroupsWithPermission ( $expected,
$right )

provideGetGroupsWithPermission User::getGroupsWithPermission

Definition at line 159 of file UserTest.php.

References and(), and User\getGroupsWithPermission().

◆ testGetId()

UserTest::testGetId ( )

User::getId.

Definition at line 501 of file UserTest.php.

References and(), and User\getId().

◆ testGroupPermissions()

UserTest::testGroupPermissions ( )

User::getGroupPermissions.

Definition at line 70 of file UserTest.php.

References and(), and User\getGroupPermissions().

◆ testIncEditCount()

UserTest::testIncEditCount ( )

Test User::editCount medium User::incEditCount.

Definition at line 307 of file UserTest.php.

References and(), MediaWikiTestCase\getMutableTestUser(), User\incEditCount(), and User\newFromId().

◆ testIpBlockCookieIgnoredWhenUserLoggedIn()

UserTest::testIpBlockCookieIgnoredWhenUserLoggedIn ( )

When an ip user is blocked and then they log in, cookie block should be invalid and the cookie removed.

User::trackBlockWithCookie

Definition at line 1505 of file UserTest.php.

References $request, and(), MWCryptRand\generateHex(), MediaWikiTestCase\getTestSysop(), MediaWikiTestCase\getTestUser(), User\isBlocked(), User\newFromSession(), MediaWikiTestCase\setMwGlobals(), and wfTimestamp().

◆ testIpBlockCookieNotSet()

UserTest::testIpBlockCookieNotSet ( )

Block cookie should NOT be set when wgCookieSetOnIpBlock is disabled User::trackBlockWithCookie.

Definition at line 1469 of file UserTest.php.

References $request, and(), MWCryptRand\generateHex(), MediaWikiTestCase\getTestSysop(), User\newFromSession(), MediaWikiTestCase\setMwGlobals(), and wfTimestamp().

◆ testIpBlockCookieSet()

UserTest::testIpBlockCookieSet ( )

Block cookie should be set for IP Blocks if wgCookieSetOnIpBlock is set to true User::trackBlockWithCookie.

Definition at line 1433 of file UserTest.php.

References $request, and(), MWCryptRand\generateHex(), MediaWikiTestCase\getTestSysop(), User\newFromSession(), MediaWikiTestCase\setMwGlobals(), and wfTimestamp().

◆ testIsBlockedFrom()

UserTest::testIsBlockedFrom ( $title,
$expect,
array $options = [] )

User::isBlockedFrom provideIsBlockedFrom.

Parameters
string | null$titleTitle to test.
bool$expectExpected result from User::isBlockedFrom()
array$optionsAdditional test options:
  • 'blockAllowsUTEdit': (bool, default true) Value for $wgBlockAllowsUTEdit
  • 'allowUsertalk': (bool, default false) Passed to Block::__construct()
  • 'pageRestrictions': (array|null) If non-empty, page restriction titles for the block.

Definition at line 1308 of file UserTest.php.

References $options, and(), MediaWikiTestCase\getExistingTestPage(), MediaWikiTestCase\getTestSysop(), MediaWikiTestCase\getTestUser(), MediaWikiTestCase\setMwGlobals(), and wfTimestamp().

◆ testIsIP()

UserTest::testIsIP ( $value,
$result,
$message )

provideIPs User::isIP

Definition at line 192 of file UserTest.php.

References $value, and and().

◆ testIsLocallyBlockedProxy()

UserTest::testIsLocallyBlockedProxy ( $ip,
$blockListEntry )

◆ testIsPingLimitable()

UserTest::testIsPingLimitable ( )

◆ testIsValidUserName()

UserTest::testIsValidUserName ( $username,
$result,
$message )

provideUserNames User::isValidUserName

Definition at line 217 of file UserTest.php.

References $username, and and().

◆ testLoggedIn()

◆ testNewFromAnyId()

◆ testNewFromIdentity()

UserTest::testNewFromIdentity ( )

◆ testOptions()

UserTest::testOptions ( )

◆ testRevokePermissions()

UserTest::testRevokePermissions ( )

User::getGroupPermissions.

Definition at line 87 of file UserTest.php.

References and(), and User\getGroupPermissions().

◆ testSoftBlockRanges()

UserTest::testSoftBlockRanges ( )

◆ testUserGetRightsHooks()

UserTest::testUserGetRightsHooks ( )

◆ testUserPermissions()

UserTest::testUserPermissions ( )

User::getRights.

Definition at line 98 of file UserTest.php.

References and().

Member Data Documentation

◆ $user

User UserTest::$user
protected

Definition at line 23 of file UserTest.php.

Referenced by testSoftBlockRanges().

◆ USER_TALK_PAGE

const UserTest::USER_TALK_PAGE = '<user talk page>'

Constant for self::testIsBlockedFrom.

Definition at line 18 of file UserTest.php.

Referenced by provideIsBlockedFrom().


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