performSetUp(); * } * * public function tearDown() * { * parent::tearDown(); * self::$fixture->performTearDown(); * } */ public static function setUpBeforeClass() { static::configureFixture(static::$fixture); parent::setUpBeforeClass(); static::beforeTableDataCached(); self::$tableData = self::getDbTablesWithData(); } public static function tearDownAfterClass() { self::$tableData = array(); } /** * Setup the database and create the base tables for all tests */ public function setUp() { parent::setUp(); static::$fixture->extraDefinitions = array_merge(static::provideContainerConfigBeforeClass(), $this->provideContainerConfig()); static::$fixture->createEnvironmentInstance(); Db::createDatabaseObject(); Fixture::loadAllPlugins(new TestingEnvironmentVariables(), get_class($this), self::$fixture->extraPluginsToLoad); Access::getInstance()->setSuperUserAccess(true); if (!empty(self::$tableData)) { self::restoreDbTables(self::$tableData); } PiwikCache::getEagerCache()->flushAll(); PiwikCache::getTransientCache()->flushAll(); MenuAbstract::clearMenus(); } /** * Resets all caches and drops the database */ public function tearDown() { static::$fixture->clearInMemoryCaches(); static::$fixture->destroyEnvironment(); parent::tearDown(); } protected static function configureFixture($fixture) { $fixture->createSuperUser = false; $fixture->configureComponents = false; $fixture->extraTestEnvVars['loadRealTranslations'] = false; } protected static function beforeTableDataCached() { // empty } /** * Use this method to return custom container configuration that you want to apply for the tests. * This configuration will override Fixture config and config specified in SystemTestCase::provideContainerConfig(). * * @return array */ public function provideContainerConfig() { return array(); } } IntegrationTestCase::$fixture = new Fixture();