You are here

public function PanelizerUserFunctionalTest::testPanelizerDefault in Panelizer 8.4

Same name and namespace in other branches
  1. 8.5 tests/src/Functional/PanelizerUserFunctionalTest.php \Drupal\Tests\panelizer\Functional\PanelizerUserFunctionalTest::testPanelizerDefault()

Tests rendering a user with Panelizer default.

File

tests/src/Functional/PanelizerUserFunctionalTest.php, line 81

Class

PanelizerUserFunctionalTest
Basic functional tests of using Panelizer with user entities.

Namespace

Drupal\Tests\panelizer\Functional

Code

public function testPanelizerDefault() {

  /** @var \Drupal\panelizer\PanelizerInterface $panelizer */
  $panelizer = \Drupal::service('panelizer');
  $displays = $panelizer
    ->getDefaultPanelsDisplays('user', 'user', 'default');
  $display = $displays['default'];
  $display
    ->addBlock([
    'id' => 'panelizer_test',
    'label' => 'Panelizer test',
    'provider' => 'block_content',
    'region' => 'content',
  ]);
  $panelizer
    ->setDefaultPanelsDisplay('default', 'user', 'user', 'default', $display);

  // Create a user, and check that the IPE is visible on it.
  $account = $this
    ->drupalCreateUser();

  // Check the user entity page.
  $out = $this
    ->drupalGet('user/' . $account
    ->id());
  $this
    ->assertResponse(200);
  $this
    ->verbose($out);

  // Verify that
  $elements = $this
    ->xpath('//*[@id="panels-ipe-content"]');
  if (is_array($elements)) {
    $this
      ->assertIdentical(count($elements), 1);
  }
  else {
    $this
      ->fail('Could not parse page content.');
  }

  // Check that the block we added is visible.
  $this
    ->assertText('Panelizer test');
  $this
    ->assertText('Abracadabra');
}