Skip to content
Extraits de code Groupes Projets
DatabaseTestCase.php 2,28 ko
Newer Older
  • Learn to ignore specific revisions
  • <?php
    /**
     * Piwik - Open source web analytics
     *
     * @link http://piwik.org
     * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
     */
    
    use Piwik\DataAccess\ArchiveTableCreator;
    use Piwik\DataTable\Manager;
    
    mattab's avatar
    mattab a validé
    use Piwik\DbHelper;
    
    use Piwik\Site;
    
    use Piwik\Tracker\Cache;
    
    /**
     * Tests extending DatabaseTestCase are much slower to run: the setUp will
     * create all Piwik tables in a freshly empty test database.
    
     *
     * This allows each test method to start from a clean DB and setup initial state to
    
     * then test it.
    
     */
    class DatabaseTestCase extends PHPUnit_Framework_TestCase
    {
    
    mattab's avatar
    mattab a validé
    
    
        /**
         * Setup the database and create the base tables for all tests
         */
        public function setUp()
        {
            parent::setUp();
            try {
    
                Config::getInstance()->setTestEnvironment();
    
                $dbConfig = Config::getInstance()->database;
    
                $dbName = $dbConfig['dbname'];
                $dbConfig['dbname'] = null;
    
    
    mattab's avatar
    mattab a validé
                DbHelper::createDatabaseObject($dbConfig);
    
    mattab's avatar
    mattab a validé
                DbHelper::dropDatabase();
                DbHelper::createDatabase($dbName);
                DbHelper::disconnectDatabase();
    
    mattab's avatar
    mattab a validé
                DbHelper::createDatabaseObject();
                DbHelper::createTables();
    
    //            \Piwik\PluginsManager::getInstance()->loadPlugins(array());
    
                IntegrationTestCase::loadAllPlugins();
    
            } catch (Exception $e) {
                $this->fail("TEST INITIALIZATION FAILED: " . $e->getMessage());
    
            include "DataFiles/SearchEngines.php";
            include "DataFiles/Languages.php";
            include "DataFiles/Countries.php";
            include "DataFiles/Currencies.php";
            include "DataFiles/LanguageToCountry.php";
        }
    
        /**
         * Resets all caches and drops the database
         */
        public function tearDown()
        {
            parent::tearDown();
    
    mattab's avatar
    mattab a validé
            IntegrationTestCase::unloadAllPlugins();
    
    mattab's avatar
    mattab a validé
            DbHelper::dropDatabase();
    
            Manager::getInstance()->deleteAll();
    
            Site::clearCache();
    
            Cache::deleteTrackerCache();
    
            Config::getInstance()->clear();
    
    mattab's avatar
    mattab a validé