public function ContentEntityExampleTest::testContentEntityExample in Examples for Developers 8
Same name and namespace in other branches
- 3.x modules/content_entity_example/tests/src/Functional/ContentEntityExampleTest.php \Drupal\Tests\content_entity_example\Functional\ContentEntityExampleTest::testContentEntityExample()
Basic tests for Content Entity Example.
File
- content_entity_example/
tests/ src/ Functional/ ContentEntityExampleTest.php, line 35
Class
- ContentEntityExampleTest
- Tests the basic functions of the Content Entity Example module.
Namespace
Drupal\Tests\content_entity_example\FunctionalCode
public function testContentEntityExample() {
$assert = $this
->assertSession();
$web_user = $this
->drupalCreateUser([
'add contact entity',
'edit contact entity',
'view contact entity',
'delete contact entity',
'administer contact entity',
'administer content_entity_example_contact display',
'administer content_entity_example_contact fields',
'administer content_entity_example_contact form display',
]);
// Anonymous User should not see the link to the listing.
$assert
->pageTextNotContains('Content Entity Example');
$this
->drupalLogin($web_user);
// Web_user user has the right to view listing.
$assert
->linkExists('Content Entity Example');
$this
->clickLink('Content Entity Example');
// WebUser can add entity content.
$assert
->linkExists('Add contact');
$this
->clickLink($this
->t('Add contact'));
$assert
->fieldValueEquals('name[0][value]', '');
$assert
->fieldValueEquals('name[0][value]', '');
$assert
->fieldValueEquals('name[0][value]', '');
$assert
->fieldValueEquals('name[0][value]', '');
$user_ref = $web_user->name->value . ' (' . $web_user
->id() . ')';
$assert
->fieldValueEquals('user_id[0][target_id]', $user_ref);
// Post content, save an instance. Go back to list after saving.
$edit = [
'name[0][value]' => 'test name',
'first_name[0][value]' => 'test first name',
'role' => 'administrator',
];
$this
->drupalPostForm(NULL, $edit, 'Save');
// Entity listed.
$assert
->linkExists('Edit');
$assert
->linkExists('Delete');
$this
->clickLink('test name');
// Entity shown.
$assert
->pageTextContains('test name');
$assert
->pageTextContains('test first name');
$assert
->pageTextContains('administrator');
$assert
->linkExists('Add contact');
$assert
->linkExists('Edit');
$assert
->linkExists('Delete');
// Delete the entity.
$this
->clickLink('Delete');
// Confirm deletion.
$assert
->linkExists('Cancel');
$this
->drupalPostForm(NULL, [], 'Delete');
// Back to list, must be empty.
$assert
->pageTextNotContains('test name');
// Settings page.
$this
->drupalGet('admin/structure/content_entity_example_contact_settings');
$assert
->pageTextContains('Contact Settings');
// Make sure the field manipulation links are available.
$assert
->linkExists('Settings');
$assert
->linkExists('Manage fields');
$assert
->linkExists('Manage form display');
$assert
->linkExists('Manage display');
}