You are here

public function UserBlocksTest::testUserLoginBlockVisibility in Drupal 8

Same name and namespace in other branches
  1. 9 core/modules/user/tests/src/Functional/UserBlocksTest.php \Drupal\Tests\user\Functional\UserBlocksTest::testUserLoginBlockVisibility()
  2. 10 core/modules/user/tests/src/Functional/UserBlocksTest.php \Drupal\Tests\user\Functional\UserBlocksTest::testUserLoginBlockVisibility()

Tests that user login block is hidden from user/login.

File

core/modules/user/tests/src/Functional/UserBlocksTest.php, line 47

Class

UserBlocksTest
Tests user blocks.

Namespace

Drupal\Tests\user\Functional

Code

public function testUserLoginBlockVisibility() {

  // Array keyed list where key being the URL address and value being expected
  // visibility as boolean type.
  $paths = [
    'node' => TRUE,
    'user/login' => FALSE,
    'user/register' => TRUE,
    'user/password' => TRUE,
  ];
  foreach ($paths as $path => $expected_visibility) {
    $this
      ->drupalGet($path);
    $elements = $this
      ->xpath('//div[contains(@class,"block-user-login-block") and @role="form"]');
    if ($expected_visibility) {
      $this
        ->assertTrue(!empty($elements), 'User login block in path "' . $path . '" should be visible');
    }
    else {
      $this
        ->assertTrue(empty($elements), 'User login block in path "' . $path . '" should not be visible');
    }
  }
}