public function ContactLinkTest::testContactLink in Drupal 9
Same name and namespace in other branches
- 8 core/modules/contact/tests/src/Functional/Views/ContactLinkTest.php \Drupal\Tests\contact\Functional\Views\ContactLinkTest::testContactLink()
Tests contact link.
File
- core/
modules/ contact/ tests/ src/ Functional/ Views/ ContactLinkTest.php, line 58
Class
- ContactLinkTest
- Tests the contact link field.
Namespace
Drupal\Tests\contact\Functional\ViewsCode
public function testContactLink() {
$accounts = [];
$accounts['root'] = User::load(1);
// Create an account with access to all contact pages.
$admin_account = $this
->drupalCreateUser([
'administer users',
]);
$accounts['admin'] = $admin_account;
// Create an account with no access to contact pages.
$no_contact_account = $this
->drupalCreateUser();
$accounts['no_contact'] = $no_contact_account;
// Create an account with access to contact pages.
$contact_account = $this
->drupalCreateUser([
'access user contact forms',
]);
$accounts['contact'] = $contact_account;
$this
->drupalLogin($admin_account);
$this
->drupalGet('test-contact-link');
// The admin user has access to all contact links beside their own.
$this
->assertContactLinks($accounts, [
'root',
'no_contact',
'contact',
]);
$this
->drupalLogin($no_contact_account);
$this
->drupalGet('test-contact-link');
// Ensure that the user without the permission doesn't see any link.
$this
->assertContactLinks($accounts, []);
$this
->drupalLogin($contact_account);
$this
->drupalGet('test-contact-link');
$this
->assertContactLinks($accounts, [
'root',
'admin',
'no_contact',
]);
// Disable contact link for no_contact.
$this->userData
->set('contact', $no_contact_account
->id(), 'enabled', FALSE);
// @todo Remove cache invalidation in https://www.drupal.org/node/2477903.
Cache::invalidateTags($no_contact_account
->getCacheTagsToInvalidate());
$this
->drupalGet('test-contact-link');
$this
->assertContactLinks($accounts, [
'root',
'admin',
]);
}