You are here

public function DisplayBlockTest::testViewsBlockForm in Drupal 10

Same name and namespace in other branches
  1. 8 core/modules/block/tests/src/Functional/Views/DisplayBlockTest.php \Drupal\Tests\block\Functional\Views\DisplayBlockTest::testViewsBlockForm()
  2. 9 core/modules/block/tests/src/Functional/Views/DisplayBlockTest.php \Drupal\Tests\block\Functional\Views\DisplayBlockTest::testViewsBlockForm()

Tests the block form for a Views block.

File

core/modules/block/tests/src/Functional/Views/DisplayBlockTest.php, line 199

Class

DisplayBlockTest
Tests the block display plugin.

Namespace

Drupal\Tests\block\Functional\Views

Code

public function testViewsBlockForm() {
  $this
    ->drupalLogin($this
    ->drupalCreateUser([
    'administer blocks',
  ]));
  $default_theme = $this
    ->config('system.theme')
    ->get('default');
  $this
    ->drupalGet('admin/structure/block/add/views_block:test_view_block-block_1/' . $default_theme);
  $this
    ->assertSession()
    ->fieldNotExists('label');

  // Test that the machine name field is hidden from display and has been
  // saved as expected from the default value.
  $this
    ->assertSession()
    ->fieldNotExists('edit-machine-name', NULL);

  // Save the block.
  $edit = [
    'region' => 'content',
  ];
  $this
    ->submitForm($edit, 'Save block');
  $storage = $this->container
    ->get('entity_type.manager')
    ->getStorage('block');
  $block = $storage
    ->load('views_block__test_view_block_block_1');

  // This will only return a result if our new block has been created with the
  // expected machine name.
  $this
    ->assertNotEmpty($block, 'The expected block was loaded.');
  for ($i = 2; $i <= 3; $i++) {

    // Place the same block again and make sure we have a new ID.
    $this
      ->drupalGet('admin/structure/block/add/views_block:test_view_block-block_1/' . $default_theme);
    $this
      ->submitForm($edit, 'Save block');
    $block = $storage
      ->load('views_block__test_view_block_block_1_' . $i);

    // This will only return a result if our new block has been created with the
    // expected machine name.
    $this
      ->assertNotEmpty($block, 'The expected block was loaded.');
  }

  // Tests the override capability of items per page.
  $this
    ->drupalGet('admin/structure/block/add/views_block:test_view_block-block_1/' . $default_theme);
  $edit = [
    'region' => 'content',
  ];
  $edit['settings[override][items_per_page]'] = 10;
  $this
    ->drupalGet('admin/structure/block/add/views_block:test_view_block-block_1/' . $default_theme);
  $this
    ->submitForm($edit, 'Save block');
  $block = $storage
    ->load('views_block__test_view_block_block_1_4');
  $config = $block
    ->getPlugin()
    ->getConfiguration();
  $this
    ->assertEquals(10, $config['items_per_page'], "'Items per page' is properly saved.");
  $edit['settings[override][items_per_page]'] = 5;
  $this
    ->drupalGet('admin/structure/block/manage/views_block__test_view_block_block_1_4');
  $this
    ->submitForm($edit, 'Save block');
  $block = $storage
    ->load('views_block__test_view_block_block_1_4');
  $config = $block
    ->getPlugin()
    ->getConfiguration();
  $this
    ->assertEquals(5, $config['items_per_page'], "'Items per page' is properly saved.");

  // Tests the override of the label capability.
  $edit = [
    'region' => 'content',
  ];
  $edit['settings[views_label_checkbox]'] = 1;
  $edit['settings[views_label]'] = 'Custom title';
  $this
    ->drupalGet('admin/structure/block/add/views_block:test_view_block-block_1/' . $default_theme);
  $this
    ->submitForm($edit, 'Save block');
  $block = $storage
    ->load('views_block__test_view_block_block_1_5');
  $config = $block
    ->getPlugin()
    ->getConfiguration();
  $this
    ->assertEquals('Custom title', $config['views_label'], "'Label' is properly saved.");
}