diff --git a/core/modules/block/custom_block/lib/Drupal/custom_block/Tests/CustomBlockFieldTest.php b/core/modules/block/custom_block/lib/Drupal/custom_block/Tests/CustomBlockFieldTest.php new file mode 100644 index 0000000..8d49349 --- /dev/null +++ b/core/modules/block/custom_block/lib/Drupal/custom_block/Tests/CustomBlockFieldTest.php @@ -0,0 +1,114 @@ + '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(''); + $this->assertLinkByHref('http://example.com'); + $this->assertText('Example.com'); + } + +} diff --git a/core/modules/field/field.attach.inc b/core/modules/field/field.attach.inc index 9b24d94..de035d2 100644 --- a/core/modules/field/field.attach.inc +++ b/core/modules/field/field.attach.inc @@ -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); diff --git a/core/modules/image/lib/Drupal/image/Type/ImageItem.php b/core/modules/image/lib/Drupal/image/Type/ImageItem.php index 72bf09c..5417b1e 100644 --- a/core/modules/image/lib/Drupal/image/Type/ImageItem.php +++ b/core/modules/image/lib/Drupal/image/Type/ImageItem.php @@ -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; } }