function RulesUiTestCase::testComponentPermissions

Tests setting component permissions in the UI.

See also

https://www.drupal.org/project/rules/issues/2340505

File

rules_admin/tests/rules_admin.test, line 214

Class

RulesUiTestCase
Tests for creating rules through the UI.

Code

public function testComponentPermissions() {
    // Create a simple user account with permission to create a rule.
    $user = $this->drupalCreateUser(array(
        'access administration pages',
        'administer rules',
        'bypass rules access',
    ));
    $this->drupalLogin($user);
    // The rules_test module defines the component 'rules_test_action_set'.
    // Verify that this code-provided component appears in the UI.
    $this->drupalGet('admin/config/workflow/rules/components');
    $this->assertText('rules_test_action_set', 'Test component is defined.');
    // Visit the component edit page.
    $this->clickLink('rules_test_action_set');
    $this->assertText('Configure access for using this component with a permission.', 'Enable component permission checkbox is present.');
    $this->assertText('Use Rules component rules_test_action_set', 'Permission configuration form is present.');
    // Try to enable permissions on this component and set a component
    // permission at the same time.
    $edit = array(
        'settings[access][access_exposed]' => TRUE,
        'settings[access][permissions][matrix][checkboxes][1][use Rules component rules_test_action_set]' => TRUE,
    );
    $this->drupalPost(NULL, $edit, 'Save changes');
}