MediaWiki REL1_28
DumpTestCase Class Reference

Base TestCase for dumps. More...

Inheritance diagram for DumpTestCase:
Collaboration diagram for DumpTestCase:

Public Member Functions

 expectETAOutput ()
 Checks for test output consisting only of lines containing ETA announcements.
 
- Public Member Functions inherited from MediaWikiTestCase
 __call ( $func, $args)
 
 __construct ( $name=null, array $data=[], $dataName='')
 
 __destruct ()
 
 addDBData ()
 Stub.
 
 addDBDataOnce ()
 Stub.
 
 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)
 
 setupAllTestDBs ()
 Set up all test DBs.
 
 setUserLang ( $lang)
 
 testMediaWikiTestCaseParentSetupCalled ()
 Make sure MediaWikiTestCase extending classes have called their parent setUp method.
 
 usesTemporaryTables ()
 

Protected Member Functions

 addRevision (Page $page, $text, $summary, $model=CONTENT_MODEL_WIKITEXT)
 Adds a revision to a page, while returning the resuting revision's id.
 
 assertDumpEnd ( $name="mediawiki")
 Asserts that the xml reader is at the final closing tag of an xml file and closes the reader.
 
 assertDumpStart ( $fname, $skip_siteinfo=true)
 Opens an XML file to analyze and optionally skips past siteinfo.
 
 assertNodeEnd ( $name, $skip=true)
 Asserts that the xml reader is at an closing element of given name, and optionally skips past it.
 
 assertNodeStart ( $name, $skip=true)
 Asserts that the xml reader is at an element of given name, and optionally skips past it.
 
 assertPageEnd ()
 Asserts that the xml reader is at the page's closing element and skips to the next element.
 
 assertPageStart ( $id, $ns, $name)
 Asserts that the xml reader is at the start of a page element and skips over the first tags, after checking them.
 
 assertRevision ( $id, $summary, $text_id, $text_bytes, $text_sha1, $text=false, $parentid=false, $model=CONTENT_MODEL_WIKITEXT, $format=CONTENT_FORMAT_WIKITEXT)
 Asserts that the xml reader is at a revision and checks its representation before skipping over it.
 
 assertText ( $id, $text_id, $text_bytes, $text)
 
 assertTextNode ( $name, $text, $skip_ws=true)
 Asserts that the xml reader is at an element of given tag that contains a given text, and skips over the element.
 
 checkHasGzip ()
 Skip the test if 'gzip' is not in $PATH.
 
 gunzip ( $fname)
 gunzips the given file and stores the result in the original file name
 
 setUp ()
 Default set up function.
 
 skipPastNodeEnd ( $name)
 Step the current XML reader to the first element start after the node end of a given name.
 
 skipToNodeEnd ( $name)
 Step the current XML reader until node end of given name is found.
 
 skipWhitespace ()
 Steps the xml reader over white space.
 
- Protected Member Functions inherited from MediaWikiTestCase
 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.
 
 assertHTMLEquals ( $expected, $actual, $msg='')
 Put each HTML element on its own line and then equals() the results.
 
 assertSelect ( $table, $fields, $condition, array $expectedRows)
 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.
 
 assertValidHtmlDocument ( $html)
 Asserts that the given string is valid HTML document.
 
 assertValidHtmlSnippet ( $html)
 Asserts that the given string is a valid HTML snippet.
 
 checkDbIsSupported ()
 
 checkPHPExtension ( $extName)
 Check if $extName is a loaded PHP extension, will skip the test whenever it is not loaded.
 
 getDefaultWikitextNS ()
 Returns the ID of a namespace that defaults to Wikitext.
 
 getNewTempDirectory ()
 obtains a new temporary directory
 
 getNewTempFile ()
 Obtains a new temporary file name.
 
 insertPage ( $pageName, $text='Sample page for unit test.', $namespace=null)
 Insert a new page.
 
 isWikitextNS ( $ns)
 Returns true if the given namespace defaults to Wikitext according to $wgNamespaceContentModels.
 
 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.
 
 setLogger ( $channel, LoggerInterface $logger)
 Sets the logger for a specified channel, for the duration of the test.
 
 setMwGlobals ( $pairs, $value=null)
 
 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 ()
 

Protected Attributes

Exception null $exceptionFromAddDBData = null
 exception to be rethrown once in sound PHPUnit surrounding
 
XMLReader null $xml = null
 Holds the XMLReader used for analyzing an XML dump.
 
- Protected Attributes inherited from MediaWikiTestCase
Database $db
 Primary database.
 
array $supportedDBs
 
array $tablesUsed = []
 

Static Protected Attributes

static bool null $hasGzip = null
 Whether the 'gzip' utility is available.
 

Additional Inherited Members

- Static Public Member Functions inherited from MediaWikiTestCase
static assertNotTag ( $matcher, $actual, $message='', $isHtml=true)
 
static assertTag ( $matcher, $actual, $message='', $isHtml=true)
 Note: we are overriding this method to remove the deprecated error.
 
static getMutableTestUser ( $groups=[])
 Convenience method for getting a mutable test user.
 
static getTestSysop ()
 Convenience method for getting an immutable admin test user.
 
static getTestUser ( $groups=[])
 Convenience method for getting an immutable test user.
 
static listTables (Database $db)
 
static prepareServices (Config $bootstrapConfig)
 Prepare service configuration for unit testing.
 
static setUpBeforeClass ()
 
static setupTestDB (Database $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 inherited from MediaWikiTestCase
const DB_PREFIX = 'unittest_'
 Table name prefixes.
 
const ORA_DB_PREFIX = 'ut_'
 
- 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 resetGlobalServices (Config $bootstrapConfig=null)
 Reset global services, and install testing environment.
 
static setupDatabaseWithTestPrefix (Database $db, $prefix)
 Setups a database with the given prefix.
 
static setupExternalStoreTestDBs ( $testPrefix)
 Clones the External Store database(s) for testing.
 
static stripStringKeys (&$r)
 Utility function for eliminating all string keys from an array.
 

Detailed Description

Base TestCase for dumps.

Definition at line 6 of file DumpTestCase.php.

Member Function Documentation

◆ addRevision()

DumpTestCase::addRevision ( Page  $page,
  $text,
  $summary,
  $model = CONTENT_MODEL_WIKITEXT 
)
protected

Adds a revision to a page, while returning the resuting revision's id.

Parameters
Page$pagePage to add the revision to
string$textRevisions text
string$summaryRevisions summary
string$modelThe model ID (defaults to wikitext)
Exceptions
MWException
Returns
array

Definition at line 59 of file DumpTestCase.php.

References $page, $status, $summary, $value, and ContentHandler\makeContent().

Referenced by BackupDumperPageTest\addDBData(), and TextPassDumperDatabaseTest\addDBData().

◆ assertDumpEnd()

DumpTestCase::assertDumpEnd (   $name = "mediawiki")
protected

◆ assertDumpStart()

DumpTestCase::assertDumpStart (   $fname,
  $skip_siteinfo = true 
)
protected

◆ assertNodeEnd()

DumpTestCase::assertNodeEnd (   $name,
  $skip = true 
)
protected

Asserts that the xml reader is at an closing element of given name, and optionally skips past it.

Parameters
string$nameThe name of the closing element to check for (e.g.: "mediawiki" for </mediawiki>)
bool$skip(optional) if true, skip past the found element

Definition at line 255 of file DumpTestCase.php.

References $name.

Referenced by assertDumpEnd(), BackupDumperLoggerTest\assertLogItem(), assertPageEnd(), assertRevision(), assertText(), and assertTextNode().

◆ assertNodeStart()

DumpTestCase::assertNodeStart (   $name,
  $skip = true 
)
protected

Asserts that the xml reader is at an element of given name, and optionally skips past it.

Parameters
string$nameThe name of the element to check for (e.g.: "mediawiki" for <mediawiki>)
bool$skip(optional) if true, skip past the found element

Definition at line 239 of file DumpTestCase.php.

References $name.

Referenced by BackupDumperLoggerTest\assertLogItem(), assertPageStart(), assertRevision(), assertText(), and assertTextNode().

◆ assertPageEnd()

◆ assertPageStart()

DumpTestCase::assertPageStart (   $id,
  $ns,
  $name 
)
protected

Asserts that the xml reader is at the start of a page element and skips over the first tags, after checking them.

Besides the opening page element, this function also checks for and skips over the title, ns, and id tags. Hence after this function, the xml reader is at the first revision of the current page.

Parameters
int$idId of the page to assert
int$nsNumber of namespage to assert
string$nameTitle of the current page

Definition at line 300 of file DumpTestCase.php.

References $name, assertNodeStart(), assertTextNode(), and skipWhitespace().

Referenced by TextPassDumperDatabaseTest\checkpointHelper(), BackupDumperPageTest\testCurrentStubGzip(), BackupDumperPageTest\testCurrentStubPlain(), BackupDumperPageTest\testFullStubPlain(), BackupDumperPageTest\testFullTextPlain(), TextPassDumperDatabaseTest\testPlain(), TextPassDumperDatabaseTest\testPrefetchPlain(), and BackupDumperPageTest\testXmlDumpsBackupUseCase().

◆ assertRevision()

DumpTestCase::assertRevision (   $id,
  $summary,
  $text_id,
  $text_bytes,
  $text_sha1,
  $text = false,
  $parentid = false,
  $model = CONTENT_MODEL_WIKITEXT,
  $format = CONTENT_FORMAT_WIKITEXT 
)
protected

Asserts that the xml reader is at a revision and checks its representation before skipping over it.

Parameters
int$idId of the revision
string$summarySummary of the revision
int$text_idId of the revision's text
int$text_bytesNumber of bytes in the revision's text
string$text_sha1The base36 SHA-1 of the revision's text
string | bool$text(optional) The revision's string, or false to check for a revision stub
int | bool$parentid(optional) id of the parent revision
string$modelThe expected content model id (default: CONTENT_MODEL_WIKITEXT)
string$formatThe expected format model id (default: CONTENT_FORMAT_WIKITEXT)

Definition at line 334 of file DumpTestCase.php.

References $summary, assertNodeEnd(), assertNodeStart(), assertText(), assertTextNode(), and skipWhitespace().

Referenced by TextPassDumperDatabaseTest\checkpointHelper(), BackupDumperPageTest\testCurrentStubGzip(), BackupDumperPageTest\testCurrentStubPlain(), BackupDumperPageTest\testFullStubPlain(), BackupDumperPageTest\testFullTextPlain(), TextPassDumperDatabaseTest\testPlain(), TextPassDumperDatabaseTest\testPrefetchPlain(), and BackupDumperPageTest\testXmlDumpsBackupUseCase().

◆ assertText()

DumpTestCase::assertText (   $id,
  $text_id,
  $text_bytes,
  $text 
)
protected

Definition at line 380 of file DumpTestCase.php.

References assertNodeEnd(), assertNodeStart(), and skipWhitespace().

Referenced by assertRevision().

◆ assertTextNode()

DumpTestCase::assertTextNode (   $name,
  $text,
  $skip_ws = true 
)
protected

Asserts that the xml reader is at an element of given tag that contains a given text, and skips over the element.

Parameters
string$nameThe name of the element to check for (e.g.: "mediawiki" for <mediawiki>...</mediawiki>)
string | bool$textIf string, check if it equals the elements text. If false, ignore the element's text
bool$skip_ws(optional) if true, skip past white spaces that trail the closing element.

Definition at line 274 of file DumpTestCase.php.

References $name, assertNodeEnd(), assertNodeStart(), and skipWhitespace().

Referenced by BackupDumperLoggerTest\assertLogItem(), assertPageStart(), and assertRevision().

◆ checkHasGzip()

◆ expectETAOutput()

DumpTestCase::expectETAOutput ( )

Checks for test output consisting only of lines containing ETA announcements.

Definition at line 121 of file DumpTestCase.php.

References $line, $lines, and as.

Referenced by TextPassDumperDatabaseTest\checkpointHelper(), and BackupDumperPageTest\testXmlDumpsBackupUseCase().

◆ gunzip()

DumpTestCase::gunzip (   $fname)
protected

gunzips the given file and stores the result in the original file name

Parameters
string$fnameFilename to read the gzipped data from and stored the gunzipped data into

Definition at line 86 of file DumpTestCase.php.

References $fname.

Referenced by TextPassDumperDatabaseTest\checkpointHelper(), BackupDumperPageTest\testCurrentStubGzip(), BackupDumperPageTest\testXmlDumpsBackupUseCase(), and BackupDumperLoggerTest\testXmlDumpsBackupUseCaseLogging().

◆ setUp()

DumpTestCase::setUp ( )
protected

Default set up function.

Clears $wgUser, and reports errors from addDBData to PHPUnit

Reimplemented from MediaWikiLangTestCase.

Reimplemented in BackupDumperPageTest, and TextPassDumperDatabaseTest.

Definition at line 106 of file DumpTestCase.php.

References $exceptionFromAddDBData, and MediaWikiTestCase\setMwGlobals().

◆ skipPastNodeEnd()

DumpTestCase::skipPastNodeEnd (   $name)
protected

Step the current XML reader to the first element start after the node end of a given name.

Parameters
string$nameName of the closing element to look for (e.g.: "mediawiki" when looking for </mediawiki>)
Returns
bool True if new element after the closing of $name could be found. false otherwise.

Definition at line 174 of file DumpTestCase.php.

References $name, and skipToNodeEnd().

Referenced by assertDumpStart().

◆ skipToNodeEnd()

DumpTestCase::skipToNodeEnd (   $name)
protected

Step the current XML reader until node end of given name is found.

Parameters
string$nameName of the closing element to look for (e.g.: "mediawiki" when looking for </mediawiki>)
Returns
bool True if the end node could be found. false otherwise.

Definition at line 152 of file DumpTestCase.php.

References $name.

Referenced by skipPastNodeEnd().

◆ skipWhitespace()

DumpTestCase::skipWhitespace ( )
protected

Steps the xml reader over white space.

Definition at line 223 of file DumpTestCase.php.

Referenced by assertDumpEnd(), BackupDumperLoggerTest\assertLogItem(), assertPageEnd(), assertPageStart(), assertRevision(), assertText(), and assertTextNode().

Member Data Documentation

◆ $exceptionFromAddDBData

Exception null DumpTestCase::$exceptionFromAddDBData = null
protected

exception to be rethrown once in sound PHPUnit surrounding

As the current MediaWikiTestCase::run is not robust enough to recover from thrown exceptions directly, we cannot throw frow within self::addDBData, although it would be appropriate. Hence, we catch the exception and store it until we are in setUp and may finally rethrow the exception without crashing the test suite.

Definition at line 19 of file DumpTestCase.php.

Referenced by setUp().

◆ $hasGzip

bool null DumpTestCase::$hasGzip = null
staticprotected

Whether the 'gzip' utility is available.

Definition at line 29 of file DumpTestCase.php.

Referenced by checkHasGzip().

◆ $xml

XMLReader null DumpTestCase::$xml = null
protected

Holds the XMLReader used for analyzing an XML dump.

Definition at line 26 of file DumpTestCase.php.


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