protected static function populateDb() { $client = static::createClient(array('environment' => 'rkcms_test', 'debug' => true)); $connection = \Propel::getConnection(); $configuration = $connection->getConfiguration(); $adapter = $configuration->getParameter('datasources.default.adapter'); switch ($adapter) { case "mysql": $queries = array('SET FOREIGN_KEY_CHECKS=0;', 'TRUNCATE al_block;', 'TRUNCATE al_configuration;', 'TRUNCATE al_language;', 'TRUNCATE al_locked_resource;', 'TRUNCATE al_page;', 'TRUNCATE al_seo;', 'TRUNCATE al_role;', 'TRUNCATE al_user;', 'INSERT INTO al_language (language_name) VALUES(\'-\');', 'INSERT INTO al_page (page_name) VALUES(\'-\');', 'INSERT INTO al_configuration (parameter, value) VALUES(\'language\', \'en\');', 'SET FOREIGN_KEY_CHECKS=1;'); break; case "pgsql": $queries = array('TRUNCATE al_configuration RESTART IDENTITY;', 'TRUNCATE al_page RESTART IDENTITY CASCADE;', 'TRUNCATE al_language RESTART IDENTITY CASCADE;', 'TRUNCATE al_block RESTART IDENTITY CASCADE;', 'TRUNCATE al_locked_resource RESTART IDENTITY;', 'TRUNCATE al_seo RESTART IDENTITY CASCADE;', 'TRUNCATE al_user RESTART IDENTITY CASCADE;', 'TRUNCATE al_role RESTART IDENTITY CASCADE;', 'INSERT INTO al_language (language_name) VALUES(\'-\');', 'INSERT INTO al_page (page_name) VALUES(\'-\');', 'INSERT INTO al_configuration (parameter, value) VALUES(\'language\', \'en\');'); break; case "sqlite": $queries = array('DELETE FROM al_block;', 'DELETE FROM al_configuration;', 'DELETE FROM al_language;', 'DELETE FROM al_locked_resource;', 'DELETE FROM al_page;', 'DELETE FROM al_seo;', 'DELETE FROM al_role;', 'DELETE FROM al_user;', 'INSERT INTO al_language (language_name) VALUES(\'-\');', 'INSERT INTO al_page (page_name) VALUES(\'-\');', 'INSERT INTO al_configuration (parameter, value) VALUES(\'language\', \'en\');'); break; } foreach ($queries as $query) { $statement = $connection->prepare($query); $statement->execute(); } $factoryRepository = new FactoryRepository('Propel'); $themes = $client->getContainer()->get('red_kite_labs_theme_engine.themes'); $theme = $themes->getTheme('BootbusinessThemeBundle'); $template = $theme->getTemplate('home'); $eventsHandler = $client->getContainer()->get('red_kite_cms.events_handler'); $pageBlocks = new PageBlocks($factoryRepository); $templateManager = new TemplateManager($eventsHandler, $factoryRepository, $client->getContainer()->get('red_kite_cms.block_manager_factory')); $templateManager->refresh($theme->getThemeSlots(), $template, $pageBlocks); $alLanguageManager = new LanguageManager($eventsHandler, $factoryRepository, new Validator\ParametersValidatorLanguageManager($factoryRepository)); foreach (self::$languages as $language) { $alLanguageManager->set(null)->save($language); } $alPageManager = new PageManager($eventsHandler, $templateManager, $factoryRepository, new Validator\ParametersValidatorPageManager($factoryRepository)); foreach (self::$pages as $page) { if (isset($page["TemplateName"])) { $templateManager->refresh($theme->getThemeSlots(), $theme->getTemplate($page["TemplateName"]), $pageBlocks); $alPageManager->setTemplateManager($templateManager); } $alPageManager->set(null)->save($page); } $roles = array('ROLE_USER', 'ROLE_ADMIN', 'ROLE_SUPER_ADMIN'); foreach ($roles as $role) { $alRole = new Role(); $alRole->setRole($role); $alRole->save(); self::$roles[$role] = $alRole->getId(); } self::addUser('admin', 'admin', self::$roles['ROLE_ADMIN']); }