function UiPageTest::testDeleteEvent
Tests that an event can be deleted.
File
-
tests/
src/ Functional/ UiPageTest.php, line 199
Class
- UiPageTest
- Tests that the Reaction Rules list builder pages work.
Namespace
Drupal\Tests\rules\FunctionalCode
public function testDeleteEvent() {
// Create a rule with two events.
$rule = $this->storage
->create([
'id' => 'test_rule',
'label' => 'Test rule',
'events' => [
[
'event_name' => 'rules_entity_insert:node',
],
[
'event_name' => 'rules_entity_update:node',
],
],
]);
$rule->save();
/** @var \Drupal\Tests\WebAssert $assert */
$assert = $this->assertSession();
// Login and go to the rule edit page.
$this->drupalLogin($this->adminUser);
$this->drupalGet('admin/config/workflow/rules/reactions/edit/test_rule');
// Click delete button for second event.
$this->clickLinkByHref('event-delete/rules_entity_update');
// Assert we are on the delete page.
$assert->pageTextContains('Are you sure you want to delete the event After updating a content item entity from Test rule?');
// And confirm the delete.
$this->pressButton('Delete');
$assert->pageTextContains('Deleted event After updating a content item entity from Test rule.');
// We need to reload the container because the container can get rebuilt
// when saving a rule.
$this->resetAll();
$this->storage = $this->container
->get('entity_type.manager')
->getStorage('rules_reaction_rule');
/** @var \Drupal\rules\Entity\ReactionRuleConfig $rule */
$rule = $this->storage
->loadUnchanged('test_rule');
// Assert that the event is really deleted.
$this->assertSame([
'rules_entity_insert:node',
], $rule->getEventNames());
}