protected function tearDown() { CRM_Utils_Hook::singleton()->reset(); CRM_Core_DAO_AllCoreTables::init(1); parent::tearDown(); }
/** * @param array $apiRequest * Array(entity=>$,action=>$,params=>$,expectedResults=>$). * @param array $rules * Whitelist - list of allowed API calls/patterns. * @param bool $expectSuccess * TRUE if the call should succeed. * Success implies that the 'expectedResults' are returned. * Failure implies that the standard error message is returned. * @dataProvider restrictionCases */ public function testEach($apiRequest, $rules, $expectSuccess) { \CRM_Core_DAO_AllCoreTables::init(TRUE); $recs = $this->getFixtures(); \CRM_Core_DAO_AllCoreTables::registerEntityType('Widget', 'CRM_Fake_DAO_Widget', 'fake_widget'); $widgetProvider = new \Civi\API\Provider\StaticProvider(3, 'Widget', array('id', 'widget_type', 'provider', 'title'), array(), $recs['widget']); \CRM_Core_DAO_AllCoreTables::registerEntityType('Sprocket', 'CRM_Fake_DAO_Sprocket', 'fake_sprocket'); $sprocketProvider = new \Civi\API\Provider\StaticProvider(3, 'Sprocket', array('id', 'sprocket_type', 'widget_id', 'provider', 'title', 'comment'), array(), $recs['sprocket']); $whitelist = WhitelistRule::createAll($rules); $dispatcher = new EventDispatcher(); $kernel = new Kernel($dispatcher); $kernel->registerApiProvider($sprocketProvider); $kernel->registerApiProvider($widgetProvider); $dispatcher->addSubscriber(new WhitelistSubscriber($whitelist)); $dispatcher->addSubscriber(new ChainSubscriber()); $apiRequest['params']['debug'] = 1; $apiRequest['params']['check_permissions'] = 'whitelist'; $result = $kernel->run($apiRequest['entity'], $apiRequest['action'], $apiRequest['params']); if ($expectSuccess) { $this->assertAPISuccess($result); $this->assertTrue(is_array($apiRequest['expectedResults'])); $this->assertTreeEquals($apiRequest['expectedResults'], $result['values']); } else { $this->assertAPIFailure($result); $this->assertRegExp('/The request does not match any active API authorizations./', $result['error_message']); } }
protected function tearDown() { parent::tearDown(); \CRM_Core_DAO_AllCoreTables::init(TRUE); }