public static function tearDownAfterClass()
 {
     $app = new Application('test');
     \phrasea::reset_sbasDatas($app['phraseanet.appbox']);
     \phrasea::reset_baseDatas($app['phraseanet.appbox']);
     parent::tearDownAfterClass();
 }
 public function testInstall()
 {
     $app = new Application(Application::ENV_TEST);
     \phrasea::reset_sbasDatas($app['phraseanet.appbox']);
     \phrasea::reset_baseDatas($app['phraseanet.appbox']);
     $app->bindRoutes();
     $parser = new Parser();
     $config = $parser->parse(file_get_contents(__DIR__ . '/../../../../../config/configuration.yml'));
     $credentials = $config['main']['database'];
     $configFile = __DIR__ . '/configuration.yml';
     $compiledFile = __DIR__ . '/configuration.yml.php';
     @unlink($configFile);
     @unlink($compiledFile);
     $app['configuration.store'] = $app->share(function () use($configFile, $compiledFile) {
         return new Configuration(new Yaml(), new Compiler(), $configFile, $compiledFile, true);
     });
     $app['conf'] = $app->share(function () use($app) {
         return new PropertyAccess($app['configuration.store']);
     });
     $app['phraseanet.appbox'] = $app->share(function () use($app) {
         return new \appbox($app);
     });
     $abInfo = ['host' => $credentials['host'], 'port' => $credentials['port'], 'user' => $credentials['user'], 'password' => $credentials['password'], 'dbname' => 'ab_setup_test'];
     $abConn = $app['dbal.provider']($abInfo);
     $dbConn = $app['dbal.provider'](['host' => $credentials['host'], 'port' => $credentials['port'], 'user' => $credentials['user'], 'password' => $credentials['password'], 'dbname' => 'db_setup_test']);
     $key = $app['orm.add']($abInfo);
     $app['orm.ems.default'] = $key;
     $dataPath = __DIR__ . '/../../../../../datas/';
     $installer = new Installer($app);
     $installer->install(uniqid('admin') . '@example.com', 'sdfsdsd', $abConn, 'http://local.phrasea.test.installer/', $dataPath, $dbConn, 'en');
     $this->assertTrue($app['configuration.store']->isSetup());
     $this->assertTrue($app['phraseanet.configuration-tester']->isUpToDate());
     $databox = current($app->getDataboxes());
     $this->assertContains('<path>' . realpath($dataPath) . '/db_setup_test/subdefs</path>', $databox->get_structure());
     $conf = $app['configuration.store']->getConfig();
     $this->assertArrayHasKey('main', $conf);
     $this->assertArrayHasKey('key', $conf['main']);
     $this->assertGreaterThan(10, strlen($conf['main']['key']));
     @unlink($configFile);
     @unlink($compiledFile);
     $app['connection.pool.manager']->closeAll();
 }
Exemple #3
0
 public function delete_data_from_cache($option = null)
 {
     $appbox = $this->get_base_type() == self::APPLICATION_BOX ? $this : $this->get_appbox();
     if ($option === appbox::CACHE_LIST_BASES) {
         $keys = [$this->get_cache_key(appbox::CACHE_LIST_BASES)];
         phrasea::reset_sbasDatas($appbox);
         phrasea::reset_baseDatas($appbox);
         phrasea::clear_sbas_params($this->app);
         $keys[] = $this->get_cache_key(appbox::CACHE_SBAS_IDS);
         return $this->get_cache()->deleteMulti($keys);
     }
     if (is_array($option)) {
         foreach ($option as $key => $value) {
             $option[$key] = $this->get_cache_key($value);
         }
         return $this->get_cache()->deleteMulti($option);
     } else {
         return $this->get_cache()->delete($this->get_cache_key($option));
     }
 }
Exemple #4
0
 public static function mount_collection(Application $app, databox $databox, $coll_id, User $user)
 {
     $sql = "INSERT INTO bas (base_id, active, server_coll_id, sbas_id, aliases, ord)\n            VALUES\n            (null, 1, :server_coll_id, :sbas_id, '', :ord)";
     $stmt = $databox->get_appbox()->get_connection()->prepare($sql);
     $stmt->execute([':server_coll_id' => $coll_id, ':sbas_id' => $databox->get_sbas_id(), ':ord' => self::getNewOrder($databox->get_appbox()->get_connection(), $databox->get_sbas_id())]);
     $stmt->closeCursor();
     $new_bas = $databox->get_appbox()->get_connection()->lastInsertId();
     $databox->get_appbox()->delete_data_from_cache(appbox::CACHE_LIST_BASES);
     $databox->delete_data_from_cache(databox::CACHE_COLLECTIONS);
     cache_databox::update($app, $databox->get_sbas_id(), 'structure');
     phrasea::reset_baseDatas($databox->get_appbox());
     $coll = self::get_from_base_id($app, $new_bas);
     $coll->set_admin($new_bas, $user);
     return $new_bas;
 }