MediaWiki REL1_31
MediaWiki\Tests\Maintenance\TextPassDumperDatabaseTest Class Reference

Tests for TextPassDumper that rely on the database. More...

Inheritance diagram for MediaWiki\Tests\Maintenance\TextPassDumperDatabaseTest:
Collaboration diagram for MediaWiki\Tests\Maintenance\TextPassDumperDatabaseTest:

Public Member Functions

 addDBData ()
 Stub.
 
 testCheckpointGzip ()
 tests for working checkpoint generation in gzip format work.
 
 testCheckpointPlain ()
 Broken per T70653.
 
 testPlain ()
 
 testPrefetchPlain ()
 
- Public Member Functions inherited from MediaWiki\Tests\Maintenance\DumpTestCase
 expectETAOutput ()
 Checks for test output consisting only of lines containing ETA announcements.
 
- Public Member Functions inherited from MediaWikiTestCase
 __construct ( $name=null, array $data=[], $dataName='')
 
 __destruct ()
 
 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)
 
 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 ()
 

Protected Member Functions

 setUp ()
 Default set up function.
 
- Protected Member Functions inherited from MediaWiki\Tests\Maintenance\DumpTestCase
 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
 
 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.
 
 assertFileContains ( $fileName, $actualData, $createIfMissing=true, $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.
 
 getDefaultWikitextNS ()
 Returns the ID of a namespace that defaults to Wikitext.
 
 getNewTempDirectory ()
 obtains a new temporary directory
 
 getNewTempFile ()
 Obtains a new temporary file name.
 
 getSchemaOverrides (IMaintainableDatabase $db)
 Stub.
 
 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)
 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 ()
 

Private Member Functions

 checkpointHelper ( $checkpointFormat="file")
 Ensures that checkpoint dumps are used and written, by successively increasing the stub size and dumping until the duration crosses a threshold.
 
 setUpStub ( $fname=null, $iterations=1)
 Creates a stub file that is used for testing the text pass of dumps.
 

Private Attributes

 $pageId1
 
 $pageId2
 
 $pageId3
 
 $pageId4
 
 $revId1_1
 
 $revId2_1
 
 $revId2_2
 
 $revId2_3
 
 $revId2_4
 
 $revId3_1
 
 $revId3_2
 
 $revId4_1
 
 $textId1_1
 
 $textId2_1
 
 $textId2_2
 
 $textId2_3
 
 $textId2_4
 
 $textId3_1
 
 $textId3_2
 
 $textId4_1
 

Static Private Attributes

static $numOfPages = 4
 
static $numOfRevs = 8
 

Additional Inherited Members

- Static Public Member Functions inherited from MediaWikiTestCase
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 (IMaintainableDatabase $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 (IMaintainableDatabase $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.
 
- Protected Attributes inherited from MediaWiki\Tests\Maintenance\DumpTestCase
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 inherited from MediaWiki\Tests\Maintenance\DumpTestCase
static bool null $hasGzip = null
 Whether the 'gzip' utility is available.
 

Detailed Description

Tests for TextPassDumper that rely on the database.

Some of these tests use the old constuctor for TextPassDumper and the dump() function, while others use the new loadWithArgv( $args ) function and execute(). This is to ensure both the old and new methods work properly.

Database Dump TextPassDumper

Definition at line 26 of file backupTextPassTest.php.

Member Function Documentation

◆ addDBData()

MediaWiki\Tests\Maintenance\TextPassDumperDatabaseTest::addDBData ( )

Stub.

Subclasses may override this to prepare the database. Called before every test run (test function or data set).

See also
addDBDataOnce()
resetDB()
Since
1.18

Reimplemented from MediaWikiTestCase.

Definition at line 39 of file backupTextPassTest.php.

References $e, $title, MediaWiki\Tests\Maintenance\DumpTestCase\addRevision(), MediaWikiTestCase\getDefaultWikitextNS(), list, MediaWikiTestCase\mergeMwGlobalArrayValue(), and NS_TALK.

◆ checkpointHelper()

◆ setUp()

MediaWiki\Tests\Maintenance\TextPassDumperDatabaseTest::setUp ( )
protected

Default set up function.

Clears $wgUser, and reports errors from addDBData to PHPUnit

Reimplemented from MediaWiki\Tests\Maintenance\DumpTestCase.

Definition at line 107 of file backupTextPassTest.php.

◆ setUpStub()

MediaWiki\Tests\Maintenance\TextPassDumperDatabaseTest::setUpStub (   $fname = null,
  $iterations = 1 
)
private

Creates a stub file that is used for testing the text pass of dumps.

Parameters
string$fname(Optional) Absolute name of the file to write the stub into. If this parameter is null, a new temporary file is generated that is automatically removed upon tearDown.
int$iterations(Optional) specifies how often the block of 3 pages should go into the stub file. The page and revision id increase further and further, while the text id of the first iteration is reused. The pages and revision of iteration > 1 have no corresponding representation in the database.
Returns
string Absolute filename of the stub

Definition at line 481 of file backupTextPassTest.php.

References $fname, $header, MediaWiki\Tests\Maintenance\TextPassDumperDatabaseTest\$numOfPages, MediaWiki\Tests\Maintenance\TextPassDumperDatabaseTest\$numOfRevs, and MediaWikiTestCase\getNewTempFile().

Referenced by MediaWiki\Tests\Maintenance\TextPassDumperDatabaseTest\checkpointHelper(), MediaWiki\Tests\Maintenance\TextPassDumperDatabaseTest\testPlain(), and MediaWiki\Tests\Maintenance\TextPassDumperDatabaseTest\testPrefetchPlain().

◆ testCheckpointGzip()

MediaWiki\Tests\Maintenance\TextPassDumperDatabaseTest::testCheckpointGzip ( )

tests for working checkpoint generation in gzip format work.

We keep this test in addition to the simpler self::testCheckpointPlain, as there were once problems when the used sinks were DumpPipeOutputs.

xmldumps-backup typically uses bzip2 instead of gzip. However, as bzip2 requires PHP extensions, we go for gzip instead, which triggers the same relevant code paths while still being testable on more systems.

Broken per T70653.

large Broken

Definition at line 463 of file backupTextPassTest.php.

References MediaWiki\Tests\Maintenance\DumpTestCase\checkHasGzip(), and MediaWiki\Tests\Maintenance\TextPassDumperDatabaseTest\checkpointHelper().

◆ testCheckpointPlain()

MediaWiki\Tests\Maintenance\TextPassDumperDatabaseTest::testCheckpointPlain ( )

Broken per T70653.

large Broken

Definition at line 444 of file backupTextPassTest.php.

References MediaWiki\Tests\Maintenance\TextPassDumperDatabaseTest\checkpointHelper().

◆ testPlain()

◆ testPrefetchPlain()

Member Data Documentation

◆ $numOfPages

MediaWiki\Tests\Maintenance\TextPassDumperDatabaseTest::$numOfPages = 4
staticprivate

◆ $numOfRevs

MediaWiki\Tests\Maintenance\TextPassDumperDatabaseTest::$numOfRevs = 8
staticprivate

◆ $pageId1

MediaWiki\Tests\Maintenance\TextPassDumperDatabaseTest::$pageId1
private

◆ $pageId2

MediaWiki\Tests\Maintenance\TextPassDumperDatabaseTest::$pageId2
private

◆ $pageId3

MediaWiki\Tests\Maintenance\TextPassDumperDatabaseTest::$pageId3
private

Definition at line 30 of file backupTextPassTest.php.

◆ $pageId4

MediaWiki\Tests\Maintenance\TextPassDumperDatabaseTest::$pageId4
private

Definition at line 30 of file backupTextPassTest.php.

◆ $revId1_1

MediaWiki\Tests\Maintenance\TextPassDumperDatabaseTest::$revId1_1
private

◆ $revId2_1

MediaWiki\Tests\Maintenance\TextPassDumperDatabaseTest::$revId2_1
private

Definition at line 33 of file backupTextPassTest.php.

◆ $revId2_2

MediaWiki\Tests\Maintenance\TextPassDumperDatabaseTest::$revId2_2
private

Definition at line 33 of file backupTextPassTest.php.

◆ $revId2_3

MediaWiki\Tests\Maintenance\TextPassDumperDatabaseTest::$revId2_3
private

◆ $revId2_4

MediaWiki\Tests\Maintenance\TextPassDumperDatabaseTest::$revId2_4
private

Definition at line 34 of file backupTextPassTest.php.

◆ $revId3_1

MediaWiki\Tests\Maintenance\TextPassDumperDatabaseTest::$revId3_1
private

Definition at line 35 of file backupTextPassTest.php.

◆ $revId3_2

MediaWiki\Tests\Maintenance\TextPassDumperDatabaseTest::$revId3_2
private

Definition at line 35 of file backupTextPassTest.php.

◆ $revId4_1

MediaWiki\Tests\Maintenance\TextPassDumperDatabaseTest::$revId4_1
private

Definition at line 36 of file backupTextPassTest.php.

◆ $textId1_1

MediaWiki\Tests\Maintenance\TextPassDumperDatabaseTest::$textId1_1
private

Definition at line 32 of file backupTextPassTest.php.

◆ $textId2_1

MediaWiki\Tests\Maintenance\TextPassDumperDatabaseTest::$textId2_1
private

Definition at line 33 of file backupTextPassTest.php.

◆ $textId2_2

MediaWiki\Tests\Maintenance\TextPassDumperDatabaseTest::$textId2_2
private

Definition at line 33 of file backupTextPassTest.php.

◆ $textId2_3

MediaWiki\Tests\Maintenance\TextPassDumperDatabaseTest::$textId2_3
private

Definition at line 34 of file backupTextPassTest.php.

◆ $textId2_4

MediaWiki\Tests\Maintenance\TextPassDumperDatabaseTest::$textId2_4
private

Definition at line 34 of file backupTextPassTest.php.

◆ $textId3_1

MediaWiki\Tests\Maintenance\TextPassDumperDatabaseTest::$textId3_1
private

Definition at line 35 of file backupTextPassTest.php.

◆ $textId3_2

MediaWiki\Tests\Maintenance\TextPassDumperDatabaseTest::$textId3_2
private

Definition at line 35 of file backupTextPassTest.php.

◆ $textId4_1

MediaWiki\Tests\Maintenance\TextPassDumperDatabaseTest::$textId4_1
private

Definition at line 36 of file backupTextPassTest.php.


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