function EntityAddUITest::testAddPageWithoutBundleEntities

Same name and namespace in other branches
  1. 9 core/modules/system/tests/src/Functional/Entity/EntityAddUITest.php \Drupal\Tests\system\Functional\Entity\EntityAddUITest::testAddPageWithoutBundleEntities()
  2. 8.9.x core/modules/system/tests/src/Functional/Entity/EntityAddUITest.php \Drupal\Tests\system\Functional\Entity\EntityAddUITest::testAddPageWithoutBundleEntities()
  3. 10 core/modules/system/tests/src/Functional/Entity/EntityAddUITest.php \Drupal\Tests\system\Functional\Entity\EntityAddUITest::testAddPageWithoutBundleEntities()

Tests the add page for an entity type not using bundle entities.

File

core/modules/system/tests/src/Functional/Entity/EntityAddUITest.php, line 139

Class

EntityAddUITest
Tests the /add and /add/{type} controllers.

Namespace

Drupal\Tests\system\Functional\Entity

Code

public function testAddPageWithoutBundleEntities() : void {
    $admin_user = $this->drupalCreateUser([
        'administer entity_test content',
    ]);
    $this->drupalLogin($admin_user);
    entity_test_create_bundle('test', 'Test label', 'entity_test_mul');
    // Delete the default bundle, so that we can rely on our own. The form
    // display has to be deleted first to prevent schema errors when fields
    // attached to the deleted bundle are themselves deleted, which triggers
    // an update of the form display.
    $this->container
        ->get('entity_display.repository')
        ->getFormDisplay('entity_test_mul', 'entity_test_mul')
        ->delete();
    entity_test_delete_bundle('entity_test_mul', 'entity_test_mul');
    // One bundle exists, confirm redirection to the add-form.
    $this->drupalGet('/entity_test_mul/add');
    $this->assertSession()
        ->addressEquals('/entity_test_mul/add/test');
    // Two bundles exist, confirm both are shown.
    entity_test_create_bundle('test2', 'Test2 label', 'entity_test_mul');
    $this->drupalGet('/entity_test_mul/add');
    $this->assertSession()
        ->linkExists('Test label');
    $this->assertSession()
        ->linkExists('Test2 label');
    $this->clickLink('Test2 label');
    $this->drupalGet('/entity_test_mul/add/test2');
    $this->submitForm([
        'name[0][value]' => 'test name',
    ], 'Save');
    $entity = EntityTestMul::load(1);
    $this->assertEquals('test name', $entity->label());
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.