Skip to content
Extraits de code Groupes Projets
DatabaseTestCase.php 1,65 ko
Newer Older
  • Learn to ignore specific revisions
  • <?php
    /**
    
     * Piwik - free/libre analytics platform
    
     *
     * @link http://piwik.org
     * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
     */
    
    use Piwik\Config;
    
    diosmosis's avatar
    diosmosis a validé
    use Piwik\Tests\Fixture;
    
    use Piwik\Tests\IntegrationTestCase;
    
    /**
     * 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 IntegrationTestCase
    
        /**
         * @var Fixture
         */
    
        public static $fixture;
        public static $tableData;
    
        public static function setUpBeforeClass()
        {
    
            static::configureFixture(static::$fixture);
    
            parent::setUpBeforeClass();
    
            self::$tableData = self::getDbTablesWithData();
        }
    
    mattab's avatar
    mattab a validé
    
    
        public static function tearDownAfterClass()
        {
            self::$tableData = array();
        }
    
    
        /**
         * Setup the database and create the base tables for all tests
         */
        public function setUp()
        {
            parent::setUp();
    
    
            Config::getInstance()->setTestEnvironment();
    
            if (!empty(self::$tableData)) {
                self::restoreDbTables(self::$tableData);
            }
    
        }
    
        /**
         * Resets all caches and drops the database
         */
        public function tearDown()
        {
    
            self::$fixture->clearInMemoryCaches();
    
    
            parent::tearDown();
        }
    
        protected static function configureFixture($fixture)
    
    diosmosis's avatar
    diosmosis a validé
        {
    
            $fixture->loadTranslations = false;
            $fixture->createSuperUser = false;
            $fixture->configureComponents = false;
    
    diosmosis's avatar
    diosmosis a validé
        }
    
    
    DatabaseTestCase::$fixture = new Fixture();