3 abstract class MediaWiki_TestCase
extends PHPUnit_Framework_TestCase
{
5 * @param string $serverType
8 protected function buildTestDatabase( $tables ) {
9 global $testOptions, $wgDBprefix, $wgDBserver, $wgDBadminuser, $wgDBadminpassword, $wgDBname;
10 $wgDBprefix = 'parsertest_';
11 $this->markTestIncomplete("This test requires DB admin user credentials.");
12 $db = new DatabaseMysql(
18 if (!(strcmp($db->getServerVersion(), '4.1') < 0 and stristr($db->getSoftwareLink(), 'MySQL'))) {
19 # Database that supports CREATE TABLE ... LIKE
20 foreach ($tables as $tbl) {
21 $newTableName = $db->tableName( $tbl );
22 #$tableName = $this->oldTableNames[$tbl];
24 $db->query("CREATE TEMPORARY TABLE $newTableName (LIKE $tableName)");
27 # Hack for MySQL versions < 4.1, which don't support
28 # "CREATE TABLE ... LIKE". Note that
29 # "CREATE TEMPORARY TABLE ... SELECT * FROM ... LIMIT 0"
30 # would not create the indexes we need....
31 foreach ($tables as $tbl) {
32 $res = $db->query("SHOW CREATE TABLE $tbl");
33 $row = $db->fetchRow($res);
35 $create_tmp = preg_replace('/CREATE TABLE `(.*?)`/', 'CREATE TEMPORARY TABLE `'
36 . $wgDBprefix . '\\1`', $create);
37 if ($create === $create_tmp) {
38 # Couldn't do replacement
39 wfDie( "could not create temporary table $tbl" );
41 $db->query($create_tmp);