You are here

public function FieldUIRouteTest::testFieldUIRoutes in Drupal 9

Same name and namespace in other branches
  1. 8 core/modules/field_ui/tests/src/Functional/FieldUIRouteTest.php \Drupal\Tests\field_ui\Functional\FieldUIRouteTest::testFieldUIRoutes()

Ensures that entity types with bundles do not break following entity types.

File

core/modules/field_ui/tests/src/Functional/FieldUIRouteTest.php, line 41

Class

FieldUIRouteTest
Tests the functionality of the Field UI route subscriber.

Namespace

Drupal\Tests\field_ui\Functional

Code

public function testFieldUIRoutes() {
  $this
    ->drupalGet('entity_test_no_id/structure/entity_test/fields');
  $this
    ->assertSession()
    ->pageTextContains('No fields are present yet.');
  $this
    ->drupalGet('admin/config/people/accounts/fields');
  $this
    ->assertSession()
    ->titleEquals('Manage fields | Drupal');
  $this
    ->assertLocalTasks();

  // Test manage display tabs and titles.
  $this
    ->drupalGet('admin/config/people/accounts/display/compact');
  $this
    ->assertSession()
    ->statusCodeEquals(403);
  $this
    ->drupalGet('admin/config/people/accounts/display');
  $this
    ->assertSession()
    ->titleEquals('Manage display | Drupal');
  $this
    ->assertLocalTasks();
  $edit = [
    'display_modes_custom[compact]' => TRUE,
  ];
  $this
    ->submitForm($edit, 'Save');
  $this
    ->drupalGet('admin/config/people/accounts/display/compact');
  $this
    ->assertSession()
    ->titleEquals('Manage display | Drupal');
  $this
    ->assertLocalTasks();

  // Test manage form display tabs and titles.
  $this
    ->drupalGet('admin/config/people/accounts/form-display/register');
  $this
    ->assertSession()
    ->statusCodeEquals(403);
  $this
    ->drupalGet('admin/config/people/accounts/form-display');
  $this
    ->assertSession()
    ->titleEquals('Manage form display | Drupal');
  $this
    ->assertLocalTasks();
  $edit = [
    'display_modes_custom[register]' => TRUE,
  ];
  $this
    ->submitForm($edit, 'Save');
  $this
    ->assertSession()
    ->statusCodeEquals(200);
  $this
    ->drupalGet('admin/config/people/accounts/form-display/register');
  $this
    ->assertSession()
    ->titleEquals('Manage form display | Drupal');
  $this
    ->assertLocalTasks();

  // Test that default secondary tab is in first position.
  $this
    ->assertSession()
    ->elementsCount('xpath', "//ul/li[1]/a[contains(text(), 'Default')]", 1);

  // Create new view mode and verify it's available on the Manage Display
  // screen after enabling it.
  EntityViewMode::create([
    'id' => 'user.test',
    'label' => 'Test',
    'targetEntityType' => 'user',
  ])
    ->save();
  $this->container
    ->get('router.builder')
    ->rebuildIfNeeded();
  $edit = [
    'display_modes_custom[test]' => TRUE,
  ];
  $this
    ->drupalGet('admin/config/people/accounts/display');
  $this
    ->submitForm($edit, 'Save');
  $this
    ->assertSession()
    ->linkExists('Test');

  // Create new form mode and verify it's available on the Manage Form
  // Display screen after enabling it.
  EntityFormMode::create([
    'id' => 'user.test',
    'label' => 'Test',
    'targetEntityType' => 'user',
  ])
    ->save();
  $this->container
    ->get('router.builder')
    ->rebuildIfNeeded();
  $edit = [
    'display_modes_custom[test]' => TRUE,
  ];
  $this
    ->drupalGet('admin/config/people/accounts/form-display');
  $this
    ->submitForm($edit, 'Save');
  $this
    ->assertSession()
    ->linkExists('Test');
}