WebformHandlerExcludedTest.php in Webform 8.5
File
tests/src/Functional/Handler/WebformHandlerExcludedTest.php
View source
<?php
namespace Drupal\Tests\webform\Functional\Handler;
use Drupal\Tests\webform\Functional\WebformBrowserTestBase;
class WebformHandlerExcludedTest extends WebformBrowserTestBase {
public static $modules = [
'block',
'webform',
];
protected function setUp() {
parent::setUp();
$this
->drupalPlaceBlock('local_actions_block');
}
public function testExcludeHandlers() {
$this
->drupalLogin($this->rootUser);
$handler_manager = $this->container
->get('plugin.manager.webform.handler');
$this
->drupalGet('/admin/structure/webform/manage/contact/handlers');
$this
->assertLink('Add email');
$this
->assertLink('Add handler');
$this
->drupalGet('/admin/structure/webform/manage/contact/handlers/add/email');
$this
->assertResponse(200);
\Drupal::configFactory()
->getEditable('webform.settings')
->set('handler.excluded_handlers', [
'email' => 'email',
])
->save();
$this
->drupalGet('/admin/structure/webform/manage/contact/handlers');
$this
->assertNoLink('Add email');
$this
->assertLink('Add handler');
$this
->drupalGet('/admin/structure/webform/manage/contact/handlers/add/email');
$this
->assertResponse(403);
\Drupal::configFactory()
->getEditable('webform.settings')
->set('handler.excluded_handlers', [
'action' => 'action',
'broken' => 'broken',
'debug' => 'debug',
'email' => 'email',
'remote_post' => 'remote_post',
'settings' => 'settings',
])
->save();
$this
->drupalGet('/admin/structure/webform/manage/contact/handlers');
$this
->assertNoLink('Add email');
$this
->assertNoLink('Add handler');
$definitions = $handler_manager
->getDefinitions();
$definitions = $handler_manager
->removeExcludeDefinitions($definitions);
$this
->assertEqual(array_keys($definitions), []);
}
}