class MultipleBlockFormTest

Same name and namespace in other branches
  1. 11.x core/tests/Drupal/KernelTests/Core/Block/MultipleBlockFormTest.php \Drupal\KernelTests\Core\Block\MultipleBlockFormTest
  2. 10 core/tests/Drupal/KernelTests/Core/Block/MultipleBlockFormTest.php \Drupal\KernelTests\Core\Block\MultipleBlockFormTest
  3. 8.9.x core/tests/Drupal/KernelTests/Core/Block/MultipleBlockFormTest.php \Drupal\KernelTests\Core\Block\MultipleBlockFormTest

Tests that blocks can have multiple forms.

@group block

Hierarchy

Expanded class hierarchy of MultipleBlockFormTest

File

core/tests/Drupal/KernelTests/Core/Block/MultipleBlockFormTest.php, line 13

Namespace

Drupal\KernelTests\Core\Block
View source
class MultipleBlockFormTest extends KernelTestBase {
  
  /**
   * {@inheritdoc}
   */
  protected static $modules = [
    'system',
    'block',
    'block_test',
  ];
  
  /**
   * Tests that blocks can have multiple forms.
   */
  public function testMultipleForms() {
    $configuration = [
      'label' => 'A very cool block',
    ];
    $block = \Drupal::service('plugin.manager.block')->createInstance('test_multiple_forms_block', $configuration);
    $form_object1 = \Drupal::service('plugin_form.factory')->createInstance($block, 'configure');
    $form_object2 = \Drupal::service('plugin_form.factory')->createInstance($block, 'secondary');
    // Assert that the block itself is used for the default form.
    $this->assertSame($block, $form_object1);
    // Ensure that EmptyBlockForm is used and the plugin is set.
    $this->assertInstanceOf(EmptyBlockForm::class, $form_object2);
    $this->assertEquals($block, $form_object2->plugin);
  }

}

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