Commit 02611753 authored by alexpott's avatar alexpott

Issue #1957748 by larowlan, Berdir, amateescu | yoroy: Fixed...

Issue #1957748 by larowlan, Berdir, amateescu | yoroy: Fixed hook_field_prepare_view() is passed empty field values for EntityNG Entities.
parent bb1817e5
<?php
/**
* @file
* Contains \Drupal\custom_block\Tests\CustomBlockFieldTest.
*/
namespace Drupal\custom_block\Tests;
/**
* Tests the block edit functionality.
*
* @todo Consider removing this test when https://drupal.org/node/1822000 is
* fixed.
*/
class CustomBlockFieldTest extends CustomBlockTestBase {
/**
* Modules to enable.
*
* @var array
*/
public static $modules = array('block', 'custom_block', 'link');
/**
* The created field.
*
* @var array
*/
protected $field;
/**
* The created instance
*
* @var array
*/
protected $instance;
/**
* The block type.
*
* @var \Drupal\custom_block\Plugin\Core\Entity\CustomBlockType
*/
protected $blockType;
/**
* Declares test information.
*/
public static function getInfo() {
return array(
'name' => 'Custom Block field test',
'description' => 'Test block fieldability.',
'group' => 'Custom Block',
);
}
/**
* Checks block edit functionality.
*/
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,
),
'widget' => array(
'type' => 'link_default',
),
);
$display_options = array(
'type' => 'link',
'label' => 'hidden',
);
field_create_instance($this->instance);
entity_get_display('custom_block', 'link', 'default')
->setComponent($this->field['field_name'], $display_options)
->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']),
'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');
}
}
......@@ -1337,12 +1337,12 @@ function field_attach_prepare_view($entity_type, array $entities, array $display
$prepare = array();
foreach ($entities as $id => $entity) {
if (empty($entity->_field_view_prepared)) {
// Add this entity to the items to be prepared.
$prepare[$id] = $entity;
// Enable BC if necessary.
$entity = $entity->getBCEntity();
// Add this entity to the items to be prepared.
$prepare[$id] = $entity;
// Determine the actual language code to display for each field, given the
// language codes available in the field data.
$options['langcode'][$id] = field_language($entity, NULL, $langcode);
......
......@@ -94,12 +94,9 @@ public function setValue($values) {
}
unset($values['fid'], $values['entity']);
// @todo These properties are sometimes set due to being present in form
// values. Needs to be cleaned up somewhere.
unset($values['display'], $values['description'], $values['upload_button'], $values['remove_button'], $values['upload']);
if ($values) {
throw new \InvalidArgumentException('Property ' . key($values) . ' is unknown.');
}
// @todo: Throw an exception for invalid values once conversion is
// totally completed.
$this->extraValues = $values;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment