MediaWiki  master
ApiStashEditTest Class Reference

ApiStashEdit \MediaWiki\Storage\PageEditStash API medium Database. More...

Inheritance diagram for ApiStashEditTest:
Collaboration diagram for ApiStashEditTest:

Public Member Functions

 setUp ()
 
 signatureProvider ()
 
 tearDown ()
 
 testBasicEdit ()
 
 testBot ()
 
 testBusy ()
 
 testCheckCache ()
 
 testCheckCacheAnon ()
 
 testCheckCacheInterveningEdits ()
 
 testCheckCacheOldNoEdits ()
 
 testCheckCacheOldNoEditsAnon ()
 
 testDeletedRevision ()
 
 testDeletedRevisionSection ()
 
 testEditConflict ()
 
 testExistingPage ()
 
 testHashNormalization ()
 
 testInterveningEdit ()
 
 testIsInternal ()
 
 testMalformedStashedTextHash ()
 
 testMissingStashedTextHash ()
 
 testMissingTextAndStashedTextHash ()
 
 testNonexistentBaseRevId ()
 
 testPageWithNoRevisions ()
 
 testPingLimiter ()
 
 testSignatureTtl ( $text, $ttl)
 signatureProvider More...
 
 testStashedTextHash ()
 
 testUnrecognizedFormat ()
 
- Public Member Functions inherited from ApiTestCase
 testApiTestGroup ()
 
- 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 ()
 

Protected Member Functions

 doCheckCache (User $user, $text='Content')
 Shortcut for calling PageStashEdit::checkCache() without having to create Titles and Contents in every test. More...
 
 doStash (array $params=[], User $user=null, $expectedResult='stashed')
 Make a stashedit API call with suitable default parameters. More...
 
 doStashOld (User $user, $text='Content', $howOld=PageEditStash::PRESUME_FRESH_TTL_SEC)
 Stash an edit some time in the past, for testing expiry and freshness logic. More...
 
 getStashedText ( $hash)
 Return the text stashed for $hash. More...
 
 getStashKey ( $title=__CLASS__, $text='Content', User $user=null)
 Return a key that can be passed to the cache to obtain a stashed edit object. More...
 
- Protected Member Functions inherited from ApiTestCase
 doApiRequest (array $params, array $session=null, $appendModule=false, User $user=null, $tokenType=null)
 Does the API request and returns the result. More...
 
 doApiRequestWithToken (array $params, array $session=null, User $user=null, $tokenType='auto')
 Convenience function to access the token parameter of doApiRequest() more succinctly. More...
 
 doLogin ( $testUser=null)
 Previously this would do API requests to log in, as well as setting $wgUser and the request context's user. More...
 
 getTokenList (TestUser $user, $session=null)
 
 setExpectedApiException ( $msg, $code=null, array $data=null, $httpCode=0)
 Expect an ApiUsageException to be thrown with the given parameters, which are the same as ApiUsageException::newWithMessage()'s parameters. More...
 
 setUp ()
 
 tearDown ()
 
- Protected Member Functions inherited from MediaWikiLangTestCase
 setUp ()
 
- 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...
 

Additional Inherited Members

- Static Public Member Functions inherited from ApiTestCase
static apiExceptionHasCode (ApiUsageException $ex, $code)
 
- 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...
 
- 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
 
- Static Protected Member Functions inherited from ApiTestCase
static getErrorFormatter ()
 
- 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...
 
- Protected Attributes inherited from ApiTestCase
ApiTestContext $apiContext
 
- Protected Attributes inherited from MediaWikiTestCase
Database $db
 Primary database. More...
 
array $supportedDBs
 
array $tablesUsed = []
 
- Static Protected Attributes inherited from ApiTestCase
static $apiUrl
 
static $errorFormatter = null
 

Detailed Description

ApiStashEdit \MediaWiki\Storage\PageEditStash API medium Database.

Definition at line 15 of file ApiStashEditTest.php.

Member Function Documentation

◆ doCheckCache()

ApiStashEditTest::doCheckCache ( User  $user,
  $text = 'Content' 
)
protected

Shortcut for calling PageStashEdit::checkCache() without having to create Titles and Contents in every test.

Parameters
User$user
string$textThe text of the article
Returns
stdClass|bool Return value of PageStashEdit::checkCache(), false if not in cache

Definition at line 287 of file ApiStashEditTest.php.

References Title\newFromText().

Referenced by testCheckCache(), testCheckCacheAnon(), testCheckCacheInterveningEdits(), testCheckCacheOldNoEdits(), and testCheckCacheOldNoEditsAnon().

◆ doStash()

ApiStashEditTest::doStash ( array  $params = [],
User  $user = null,
  $expectedResult = 'stashed' 
)
protected

Make a stashedit API call with suitable default parameters.

Parameters
array$paramsQuery parameters for API request. All are optional and will have sensible defaults filled in. To make a parameter actually not passed, set to null.
User$userUser to do the request
string$expectedResult'stashed', 'editconflict'
Returns
array

Definition at line 42 of file ApiStashEditTest.php.

References $params, $res, $user, as, ApiTestCase\doApiRequestWithToken(), getStashedText(), and null.

Referenced by doStashOld(), testBasicEdit(), testBot(), testBusy(), testCheckCache(), testCheckCacheAnon(), testDeletedRevision(), testDeletedRevisionSection(), testEditConflict(), testExistingPage(), testHashNormalization(), testInterveningEdit(), testMalformedStashedTextHash(), testMissingStashedTextHash(), testMissingTextAndStashedTextHash(), testNonexistentBaseRevId(), testPageWithNoRevisions(), testPingLimiter(), testSignatureTtl(), testStashedTextHash(), and testUnrecognizedFormat().

◆ doStashOld()

ApiStashEditTest::doStashOld ( User  $user,
  $text = 'Content',
  $howOld = PageEditStash::PRESUME_FRESH_TTL_SEC 
)
protected

Stash an edit some time in the past, for testing expiry and freshness logic.

Parameters
User$userWho's doing the editing
string$textWhat text should be cached
int$howOldHow many seconds is "old" (we actually set it one second before this)

Definition at line 336 of file ApiStashEditTest.php.

References $cache, doStash(), getStashKey(), and wfTimestamp().

Referenced by testCheckCacheInterveningEdits(), testCheckCacheOldNoEdits(), and testCheckCacheOldNoEditsAnon().

◆ getStashedText()

ApiStashEditTest::getStashedText (   $hash)
protected

Return the text stashed for $hash.

Parameters
string$hash
Returns
string

Definition at line 104 of file ApiStashEditTest.php.

Referenced by doStash(), and testHashNormalization().

◆ getStashKey()

ApiStashEditTest::getStashKey (   $title = __CLASS__,
  $text = 'Content',
User  $user = null 
)
protected

Return a key that can be passed to the cache to obtain a stashed edit object.

Parameters
string$titleTitle of page
stringContent $text Content of edit
User$userUser who made edit
Returns
string

Definition at line 116 of file ApiStashEditTest.php.

References $content, $title, $user, MediaWikiTestCase\getTestSysop(), and Title\newFromText().

Referenced by doStashOld(), testBusy(), and testSignatureTtl().

◆ setUp()

ApiStashEditTest::setUp ( )

◆ signatureProvider()

ApiStashEditTest::signatureProvider ( )

Definition at line 408 of file ApiStashEditTest.php.

◆ tearDown()

ApiStashEditTest::tearDown ( )

Definition at line 29 of file ApiStashEditTest.php.

◆ testBasicEdit()

ApiStashEditTest::testBasicEdit ( )

Definition at line 128 of file ApiStashEditTest.php.

References doStash().

◆ testBot()

ApiStashEditTest::testBot ( )

◆ testBusy()

ApiStashEditTest::testBusy ( )

Definition at line 426 of file ApiStashEditTest.php.

References doStash(), getStashKey(), and null.

◆ testCheckCache()

ApiStashEditTest::testCheckCache ( )

◆ testCheckCacheAnon()

ApiStashEditTest::testCheckCacheAnon ( )

Definition at line 321 of file ApiStashEditTest.php.

References $user, class, doCheckCache(), doStash(), and User\newFromName().

◆ testCheckCacheInterveningEdits()

ApiStashEditTest::testCheckCacheInterveningEdits ( )

◆ testCheckCacheOldNoEdits()

ApiStashEditTest::testCheckCacheOldNoEdits ( )

◆ testCheckCacheOldNoEditsAnon()

ApiStashEditTest::testCheckCacheOldNoEditsAnon ( )

Definition at line 367 of file ApiStashEditTest.php.

References $user, class, doCheckCache(), doStashOld(), and User\newFromName().

◆ testDeletedRevision()

ApiStashEditTest::testDeletedRevision ( )

◆ testDeletedRevisionSection()

ApiStashEditTest::testDeletedRevisionSection ( )

◆ testEditConflict()

ApiStashEditTest::testEditConflict ( )

Definition at line 225 of file ApiStashEditTest.php.

References $name, doStash(), MediaWikiTestCase\editPage(), and null.

◆ testExistingPage()

ApiStashEditTest::testExistingPage ( )

Definition at line 206 of file ApiStashEditTest.php.

References $name, $rev, doStash(), and MediaWikiTestCase\editPage().

◆ testHashNormalization()

ApiStashEditTest::testHashNormalization ( )

Definition at line 171 of file ApiStashEditTest.php.

References doStash(), and getStashedText().

◆ testInterveningEdit()

ApiStashEditTest::testInterveningEdit ( )

Definition at line 213 of file ApiStashEditTest.php.

References $name, doStash(), and MediaWikiTestCase\editPage().

◆ testIsInternal()

ApiStashEditTest::testIsInternal ( )

Definition at line 416 of file ApiStashEditTest.php.

References $res, and ApiTestCase\doApiRequest().

◆ testMalformedStashedTextHash()

ApiStashEditTest::testMalformedStashedTextHash ( )

Definition at line 161 of file ApiStashEditTest.php.

References doStash(), and ApiTestCase\setExpectedApiException().

◆ testMissingStashedTextHash()

ApiStashEditTest::testMissingStashedTextHash ( )

Definition at line 166 of file ApiStashEditTest.php.

References doStash(), and ApiTestCase\setExpectedApiException().

◆ testMissingTextAndStashedTextHash()

ApiStashEditTest::testMissingTextAndStashedTextHash ( )

◆ testNonexistentBaseRevId()

ApiStashEditTest::testNonexistentBaseRevId ( )

◆ testPageWithNoRevisions()

ApiStashEditTest::testPageWithNoRevisions ( )

◆ testPingLimiter()

ApiStashEditTest::testPingLimiter ( )

◆ testSignatureTtl()

ApiStashEditTest::testSignatureTtl (   $text,
  $ttl 
)

signatureProvider

Parameters
string$textWhich signature to test (~~~, ~~~~, or ~~~~~)
int$ttlExpected TTL in seconds

Definition at line 395 of file ApiStashEditTest.php.

References $cache, doStash(), getStashKey(), and HashBagOStuff\KEY_EXP.

◆ testStashedTextHash()

ApiStashEditTest::testStashedTextHash ( )

Definition at line 155 of file ApiStashEditTest.php.

References $res, and doStash().

◆ testUnrecognizedFormat()

ApiStashEditTest::testUnrecognizedFormat ( )

Definition at line 139 of file ApiStashEditTest.php.

References doStash(), and ApiTestCase\setExpectedApiException().


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