/** * Tests register and unregister widgets with hook */ public function testCanRegisterAndUnregisterTypeWithHook() { $service = new \Elgg\WidgetsService(array($this, 'elgg_set_config')); $this->assertFalse($service->validateType('hook_widget')); _elgg_services()->hooks->registerHandler('handlers', 'widgets', [$this, 'registerWidgetsHookHandler']); $this->assertArrayHasKey('hook_widget', $service->getTypes(['context' => 'from_hook'])); _elgg_services()->hooks->unregisterHandler('handlers', 'widgets', [$this, 'registerWidgetsHookHandler']); $this->assertArrayNotHasKey('hook_widget', $service->getTypes(['context' => 'from_hook'])); _elgg_services()->hooks->registerHandler('handlers', 'widgets', [$this, 'registerWidgetsHookHandler']); $this->assertArrayHasKey('hook_widget', $service->getTypes(['context' => 'from_hook'])); _elgg_services()->hooks->registerHandler('handlers', 'widgets', [$this, 'unregisterWidgetsHookHandler']); $this->assertArrayNotHasKey('hook_widget', $service->getTypes(['context' => 'from_hook'])); _elgg_services()->hooks->unregisterHandler('handlers', 'widgets', [$this, 'registerWidgetsHookHandler']); _elgg_services()->hooks->unregisterHandler('handlers', 'widgets', [$this, 'unregisterWidgetsHookHandler']); }
/** * Tests register, exists and unregisrer */ public function testCanRegisterType() { $service = new \Elgg\WidgetsService(array($this, 'elgg_set_config')); $this->assertFalse($service->validateType('widget_type')); $this->assertFalse($service->validateType('not_registered_widget')); $this->assertTrue($service->registerType('widget_type', 'Widget name1', 'Widget description1')); $this->assertTrue($service->registerType('widget_type_con', 'Widget name2', 'Widget description2', array('dashboard', 'profile'))); $this->assertTrue($service->registerType('widget_type_mul', 'Widget name3', 'Widget description3', array('all'), true)); $this->assertTrue($service->registerType('widget_type_con_mul', 'Widget name4', 'Widget description4', array('dashboard', 'settings'), true)); //overwrite $this->assertTrue($service->registerType('widget_type_con_mul', 'Widget name5', 'Widget description5', array('dashboard', 'settings'), true)); $this->assertTrue($service->validateType('widget_type')); $this->assertTrue($service->validateType('widget_type_con')); $this->assertTrue($service->validateType('widget_type_mul')); $this->assertTrue($service->validateType('widget_type_con_mul')); $this->assertFalse($service->validateType('not_registered_widget')); return $service; }