public function tearDown() { parent::tearDown(); Piwik_DataTable_Manager::getInstance()->deleteAll(); Piwik_Option::getInstance()->clearCache(); Piwik_Common::deleteTrackerCache(); Piwik_Site::clearCache(); Piwik::truncateAllTables(); Piwik_TablePartitioning::$tablesAlreadyInstalled = null; }
public function tearDown() { Piwik::truncateAllTables(); }
/** * Truncates all tables then inserts the data in $tables into each * mapped table. * * @param array $tables Array mapping table names with arrays of row data. */ protected static function restoreDbTables($tables) { // truncate existing tables Piwik::truncateAllTables(); // insert data $existingTables = Piwik::getTablesInstalled(); foreach ($tables as $table => $rows) { // create table if it's an archive table if (strpos($table, 'archive_') !== false && !in_array($table, $existingTables)) { $tableType = strpos($table, 'archive_numeric') !== false ? 'archive_numeric' : 'archive_blob'; $createSql = Piwik::getTableCreateSql($tableType); $createSql = str_replace(Piwik_Common::prefixTable($tableType), $table, $createSql); Piwik_Query($createSql); } if (empty($rows)) { continue; } $rowsSql = array(); foreach ($rows as $row) { $values = array(); foreach ($row as $name => $value) { if (is_null($value)) { $values[] = 'NULL'; } else { if (is_numeric($value)) { $values[] = $value; } else { if (!ctype_print($value)) { $values[] = "x'" . bin2hex(substr($value, 1)) . "'"; } else { $values[] = "'{$value}'"; } } } } $rowsSql[] = "(" . implode(',', $values) . ")"; } $sql = "INSERT INTO {$table} VALUES " . implode(',', $rowsSql); Piwik_Query($sql); } }
/** * Test that purgeData works when there's no data. * * @group Plugins * @group PrivacyManager */ public function testPurgeDataDeleteLogsNoData() { Piwik::truncateAllTables(); foreach (Piwik::getTablesArchivesInstalled() as $table) { Piwik_Exec("DROP TABLE {$table}"); } // get purge data prediction $prediction = Piwik_PrivacyManager::getPurgeEstimate(); // perform checks on prediction $expectedPrediction = array(); $this->assertEquals($expectedPrediction, $prediction); // purge data $this->_setTimeToRun(); $this->instance->deleteLogData(); $this->instance->deleteReportData(); // perform checks $this->assertEquals(0, $this->_getTableCount('log_visit')); $this->assertEquals(0, $this->_getTableCount('log_conversion')); $this->assertEquals(0, $this->_getTableCount('log_link_visit_action')); $this->assertEquals(0, $this->_getTableCount('log_conversion_item')); $archiveTables = self::_getArchiveTableNames(); $this->assertFalse($this->_tableExists($archiveTables['numeric'][0])); // January $this->assertFalse($this->_tableExists($archiveTables['numeric'][1])); // February $this->assertFalse($this->_tableExists($archiveTables['blob'][0])); // January $this->assertFalse($this->_tableExists($archiveTables['blob'][1])); // February }