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();
 }
コード例 #2
0
 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();
 }
コード例 #4
0
 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');
 }
コード例 #5
0
 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');
 }
コード例 #6
0
 /**
  * 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();
 }