public function CustomBlockFieldTest::testBlockFields

Checks block edit functionality.

File

drupal/core/modules/block/custom_block/lib/Drupal/custom_block/Tests/CustomBlockFieldTest.php, line 61
Contains \Drupal\custom_block\Tests\CustomBlockFieldTest.

Class

CustomBlockFieldTest
Tests the block edit functionality.

Namespace

Drupal\custom_block\Tests

Code

public function testBlockFields() {
  $this
    ->drupalLogin($this->adminUser);
  $this->blockType = $this
    ->createCustomBlockType('link');

  // Create a field with settings to validate.
  $this->field = array(
    'field_name' => drupal_strtolower($this
      ->randomName()),
    'type' => 'link',
    'cardinality' => 2,
  );
  field_create_field($this->field);
  $this->instance = array(
    'field_name' => $this->field['field_name'],
    'entity_type' => 'custom_block',
    'bundle' => 'link',
    'settings' => array(
      'title' => DRUPAL_OPTIONAL,
    ),
  );
  field_create_instance($this->instance);
  entity_get_form_display('custom_block', 'link', 'default')
    ->setComponent($this->field['field_name'], array(
    'type' => 'link_default',
  ))
    ->save();
  entity_get_display('custom_block', 'link', 'default')
    ->setComponent($this->field['field_name'], array(
    'type' => 'link',
    'label' => 'hidden',
  ))
    ->save();

  // Create a block.
  $this
    ->drupalGet('block/add/link');
  $edit = array(
    'info' => $this
      ->randomName(8),
    $this->field['field_name'] . '[und][0][url]' => 'http://example.com',
    $this->field['field_name'] . '[und][0][title]' => 'Example.com',
  );
  $this
    ->drupalPost(NULL, $edit, t('Save'));

  // Place the block.
  $instance = array(
    'machine_name' => drupal_strtolower($edit['info']),
    'settings[label]' => $edit['info'],
    'region' => 'sidebar_first',
  );
  $this
    ->drupalPost(NULL, $instance, t('Save block'));

  // Navigate to home page.
  $this
    ->drupalGet('<front>');
  $this
    ->assertLinkByHref('http://example.com');
  $this
    ->assertText('Example.com');
}