function test_runScript() { $GLOBALS['_MAX']['CONF']['table']['prefix'] = $this->prefix; $oUpgrade = new OA_Upgrade(); $oUpgrade->initDatabaseConnection(); $oDbh =& $oUpgrade->oDbh; $oTable = new OA_DB_Table(); $testfile = MAX_PATH . "/etc/changes/tests/data/schema_tables_core_dashboard.xml"; $oTable->init($testfile); $table = 'preference'; $aExistingTables = OA_DB_Table::listOATablesCaseSensitive(); if (in_array($this->prefix . $table, $aExistingTables)) { $this->assertTrue($oTable->dropTable($this->prefix . $table), 'error dropping ' . $this->prefix . $table); } $this->assertTrue($oTable->createTable($table), 'error creating ' . $this->prefix . $table); $aExistingTables = OA_DB_Table::listOATablesCaseSensitive(); $this->assertTrue(in_array($this->prefix . $table, $aExistingTables), $this->prefix . $table . ' table not found'); $this->assertTrue($oUpgrade->runScript('postscript_openads_upgrade_2.3.36-beta-rc1.php')); $aExistingColumns = $oDbh->manager->listTableFields($this->prefix . $table); $aColumns = array('ad_clicks_sum', 'ad_views_sum', 'ad_clicks_per_second', 'ad_views_per_second', 'ad_cs_data_last_sent', 'ad_cs_data_last_sent', 'ad_cs_data_last_received'); foreach ($aColumns as $column) { $this->assertFalse(in_array($column, $aExistingColumns, $column . ' found in column list')); } TestEnv::restoreConfig(); TestEnv::restoreEnv(); }
function _dropAuditTable($table_name) { $oTable = new OA_DB_Table(); $aDBTables = OA_DB_Table::listOATablesCaseSensitive(); if (in_array($table_name, $aDBTables)) { $this->assertTrue($oTable->dropTable($table_name), 'error dropping audit table ' . $table_name); } $aDBTables = OA_DB_Table::listOATablesCaseSensitive(); $this->assertFalse(in_array($table_name, $aDBTables), '_dropAuditTable'); }
function test_runScript() { $oUpgrade = new OA_Upgrade(); $this->oConfiguration = $oUpgrade->oConfiguration; $oUpgrade->initDatabaseConnection(); $oDbh =& $oUpgrade->oDbh; $oTable = new OA_DB_Table(); $table = 'database_action'; $testfile = MAX_PATH . "/lib/OA/Upgrade/tests/data/{$table}.xml"; $oTable->init($testfile); $this->assertTrue($oTable->dropTable($this->prefix . $table), 'error dropping ' . $this->prefix . $table); $this->assertTrue($oTable->createTable($table), 'error creating ' . $this->prefix . $table); $aExistingTables = OA_DB_Table::listOATablesCaseSensitive(); $this->assertTrue(in_array($this->prefix . $table, $aExistingTables), 'old database_action table not found'); $this->assertTrue($oUpgrade->runScript('prescript_openads_upgrade_2.3.33-beta-rc4.php')); TestEnv::restoreConfig(); }
function _dropAuditTables($oDbh) { $oTable = new OA_DB_Table(); $testpath = MAX_PATH . '/lib/OA/Upgrade/tests/data/'; $oTable->init($testpath . 'schema_test_config.xml'); $aExistingTables = OA_DB_Table::listOATablesCaseSensitive(); if (in_array($this->prefix . 'database_action', $aExistingTables)) { $this->assertTrue($oTable->dropTable($this->prefix . 'database_action'), 'error dropping test ' . $this->prefix . 'database_action'); } if (in_array($this->prefix . 'upgrade_action', $aExistingTables)) { $this->assertTrue($oTable->dropTable($this->prefix . 'upgrade_action'), 'error dropping test ' . $this->prefix . 'upgrade_action'); } $aExistingTables = OA_DB_Table::listOATablesCaseSensitive(); $this->assertFalse(in_array($this->prefix . 'database_action', $aExistingTables), 'database_action'); $this->assertFalse(in_array($this->prefix . 'upgrade_action', $aExistingTables), 'upgrade_action'); }
function _dropTestTableAutoInc($oDbh) { $conf =& $GLOBALS['_MAX']['CONF']; $conf['table']['split'] = false; $oTable = new OA_DB_Table(); $oTable->init($this->path . 'schema_test_autoinc.xml'); $aExistingTables = OA_DB_Table::listOATablesCaseSensitive(); if ($this->_tableExists('table1_autoinc', $aExistingTables)) { $this->assertTrue($oTable->dropTable($this->prefix . 'table1_autoinc'), 'error dropping test table1_autoinc'); } $aExistingTables = OA_DB_Table::listOATablesCaseSensitive(); $this->assertFalse($this->_tableExists('table1_autoinc', $aExistingTables), '_dropTestTableAutoInc'); }
/** * A method to test the drop table method. * * Requirements: * Test 1: Test that a table can be dropped. * Test 2: Test that a temporary table can be dropped. * Test 3: Test that a tablename with uppercase prefix can be dropped. * Test 4: Test that a tablename with a mixed prefix can be dropped. */ function testDropTable() { // Test 1 $conf =& $GLOBALS['_MAX']['CONF']; $prefix = $conf['table']['prefix']; $oDbh =& OA_DB::singleton(); $table = $oDbh->quoteIdentifier($prefix . 'foo', true); $oTable = new OA_DB_Table(); $query = "CREATE TABLE {$table} ( a INTEGER )"; $oDbh->query($query); $aExistingTables = OA_DB_Table::listOATablesCaseSensitive(); $this->assertEqual($aExistingTables[0], $prefix . 'foo'); $this->assertTrue($oTable->dropTable($prefix . 'foo')); $aExistingTables = OA_DB_Table::listOATablesCaseSensitive(); $this->assertEqual(count($aExistingTables), 0, $prefix . 'foo'); //TestEnv::restoreEnv(); // Test 2 $conf =& $GLOBALS['_MAX']['CONF']; $oDbh =& OA_DB::singleton(); $oTable = new OA_DB_Table(); $table = $oDbh->quoteIdentifier($prefix . 'foo', true); $query = "CREATE TEMPORARY TABLE {$table} ( a INTEGER )"; $oDbh->query($query); // Test table exists with an insert $query = "INSERT INTO {$table} (a) VALUES (37)"; $result = $oDbh->query($query); $this->assertTrue($result); $this->assertTrue($oTable->dropTable($prefix . 'foo')); // Test table does not exist with an insert $query = "INSERT INTO {$table} (a) VALUES (37)"; RV::disableErrorHandling(); $result = $oDbh->query($query); RV::enableErrorHandling(); $this->assertEqual(strtolower(get_class($result)), 'mdb2_error'); //TestEnv::restoreEnv(); // Test 3 $conf =& $GLOBALS['_MAX']['CONF']; $conf['table']['prefix'] = 'OA_'; $prefix = $conf['table']['prefix']; $oDbh =& OA_DB::singleton(); $table = $oDbh->quoteIdentifier($prefix . 'foo', true); $query = "CREATE TABLE {$table} ( a INTEGER )"; $oDbh->query($query); $aExistingTables = OA_DB_Table::listOATablesCaseSensitive(); $this->assertEqual($aExistingTables[0], 'OA_foo'); $this->assertTrue($oTable->dropTable('OA_foo')); $aExistingTables = OA_DB_Table::listOATablesCaseSensitive(); $this->assertEqual(count($aExistingTables), 0, 'Table OA_foo'); //TestEnv::restoreEnv(); // Test 4 $conf =& $GLOBALS['_MAX']['CONF']; $conf['table']['prefix'] = 'oA_'; $prefix = $conf['table']['prefix']; $oDbh =& OA_DB::singleton(); $table = $oDbh->quoteIdentifier($prefix . 'foo', true); $oTable = new OA_DB_Table(); $query = "CREATE TABLE {$table} ( a INTEGER )"; $oDbh->query($query); $aExistingTables = OA_DB_Table::listOATablesCaseSensitive(); $this->assertEqual($aExistingTables[0], 'oA_foo'); $this->assertTrue($oTable->dropTable('oA_foo')); $aExistingTables = OA_DB_Table::listOATablesCaseSensitive(); $this->assertEqual(count($aExistingTables), 0, 'Table oA_foo'); //TestEnv::restoreEnv(); }