View source
<?php
namespace Drupal\Tests\webform_access\Functional;
use Drupal\webform\Entity\WebformSubmission;
class WebformAccessTokensTest extends WebformAccessBrowserTestBase {
public function testWebformAccessTokens() {
foreach ($this->users as $account) {
$this->groups['employee']
->addUserId($account
->id());
}
$employee_admin_user = $this
->drupalCreateUser([], 'employee_admin_user');
$this->groups['employee']
->addAdminId($employee_admin_user
->id());
$this->groups['employee']
->addEmail('employee_admin_custom@test.com');
$this->groups['employee']
->save();
$other_user = $this
->drupalCreateUser([], 'other_user');
$this->groups['manager']
->addUserId($other_user
->id());
$manager_admin_user = $this
->drupalCreateUser([], 'manager_admin_user');
$this->groups['manager']
->addAdminId($manager_admin_user
->id());
$this->groups['manager']
->addEmail('manager_admin_custom@test.com');
$this->groups['manager']
->save();
$edit = [
'name' => 'name',
'email' => 'name@example.com',
'subject' => 'subject',
'message' => 'message',
];
$sid = $this
->postNodeSubmission($this->nodes['contact_01'], $edit);
$webform_submission = WebformSubmission::load($sid);
$token_manager = \Drupal::service('webform.token_manager');
$token_data['webform_access'] = $webform_submission;
$result = $token_manager
->replace('[webform_access:type:employee]', $webform_submission, $token_data);
$this
->assertEqual('customer_user@example.com,employee_user@example.com,manager_user@example.com,employee_admin_custom@test.com', $result);
$result = $token_manager
->replace('[webform_access:type:employee:users]', $webform_submission, $token_data);
$this
->assertEqual('customer_user@example.com,employee_user@example.com,manager_user@example.com', $result);
$result = $token_manager
->replace('[webform_access:type:employee:emails]', $webform_submission, $token_data);
$this
->assertEqual('employee_admin_custom@test.com', $result);
$result = $token_manager
->replace('[webform_access:type:employee:admins]', $webform_submission, $token_data);
$this
->assertEqual('employee_admin_user@example.com', $result);
$result = $token_manager
->replace('[webform_access:type:employee:all]', $webform_submission, $token_data);
$this
->assertEqual('employee_admin_user@example.com,customer_user@example.com,employee_user@example.com,manager_user@example.com,employee_admin_custom@test.com', $result);
$result = $token_manager
->replace('[webform_access:type:manager]', $webform_submission, $token_data);
$this
->assertEqual('other_user@example.com,manager_admin_custom@test.com', $result);
$result = $token_manager
->replace('[webform_access:type]', $webform_submission, $token_data);
$this
->assertEqual('customer_user@example.com,employee_user@example.com,manager_user@example.com,other_user@example.com,employee_admin_custom@test.com,manager_admin_custom@test.com', $result);
$result = $token_manager
->replace('[webform_access:admins]', $webform_submission, $token_data);
$this
->assertEqual('employee_admin_user@example.com,manager_admin_user@example.com', $result);
$result = $token_manager
->replace('[webform_access:users]', $webform_submission, $token_data);
$this
->assertEqual('customer_user@example.com,employee_user@example.com,manager_user@example.com,other_user@example.com', $result);
$result = $token_manager
->replace('[webform_access:emails]', $webform_submission, $token_data);
$this
->assertEqual('employee_admin_custom@test.com,manager_admin_custom@test.com', $result);
$result = $token_manager
->replace('[webform_access:all]', $webform_submission, $token_data);
$this
->assertEqual('employee_admin_user@example.com,manager_admin_user@example.com,customer_user@example.com,employee_user@example.com,manager_user@example.com,other_user@example.com,employee_admin_custom@test.com,manager_admin_custom@test.com', $result);
}
}