/** * @covers Alchemy\Phrasea\Border\Manager::unregisterChecker */ public function testUnregisterChecker() { $this->assertEquals([], $this->object->getCheckers()); $shaChecker = new Sha256(self::$DI['app']); $uuidChecker = new UUID(self::$DI['app']); $filenameChecker = new Filename(self::$DI['app']); $this->object->registerCheckers([$shaChecker, $uuidChecker, $filenameChecker]); $this->assertEquals([$shaChecker, $uuidChecker, $filenameChecker], $this->object->getCheckers()); $this->object->unregisterChecker($uuidChecker); $this->assertEquals([$shaChecker, $filenameChecker], $this->object->getCheckers()); }
public function register(Application $app) { $app['border-manager'] = $app->share(function (Application $app) { $borderManager = new Manager($app); try { $borderManager->setPdfToText($app['xpdf.pdftotext']); } catch (BinaryNotFoundException $e) { } $options = $app['conf']->get('border-manager'); $registeredCheckers = []; if ($options['enabled']) { foreach ($options['checkers'] as $checker) { if (!isset($checker['type'])) { continue; } if (isset($checker['enabled']) && $checker['enabled'] !== true) { continue; } $className = sprintf('\\Alchemy\\Phrasea\\Border\\%s', $checker['type']); if (!class_exists($className)) { $app['monolog']->error(sprintf('Border manager checker, invalid checker %s', $checker['type'])); continue; } $options = []; if (isset($checker['options']) && is_array($checker['options'])) { $options = $checker['options']; } try { $checkerObj = new $className($app, $options); if (isset($checker['databoxes'])) { $databoxes = []; foreach ($checker['databoxes'] as $sbas_id) { try { $databoxes[] = $app['phraseanet.appbox']->get_databox($sbas_id); } catch (\Exception $e) { throw new \InvalidArgumentException('Invalid databox option'); } } $checkerObj->restrictToDataboxes($databoxes); } if (isset($checker['collections'])) { $collections = []; foreach ($checker['collections'] as $base_id) { try { $collections[] = \collection::get_from_base_id($app, $base_id); } catch (\Exception $e) { throw new \InvalidArgumentException('Invalid collection option'); } } $checkerObj->restrictToCollections($collections); } $registeredCheckers[] = $checkerObj; } catch (\InvalidArgumentException $e) { $app['monolog']->error(sprintf('Border manager checker InvalidArgumentException : %s', $e->getMessage())); } catch (\LogicException $e) { $app['monolog']->error(sprintf('Border manager checker LogicException : %s', $e->getMessage())); } } $borderManager->registerCheckers($registeredCheckers); } return $borderManager; }); $app['border-manager.mime-guesser-configuration'] = $app->share(function (Application $app) { return new MimeGuesserConfiguration($app['conf']); }); }