diff --git a/core/modules/field/lib/Drupal/field/Tests/ExtraFieldsTest.php b/core/modules/field/lib/Drupal/field/Tests/ExtraFieldsTest.php new file mode 100644 index 0000000..dd2f6b9 --- /dev/null +++ b/core/modules/field/lib/Drupal/field/Tests/ExtraFieldsTest.php @@ -0,0 +1,51 @@ + 'Field extra fields tests', + 'description' => 'Tests pseudo-fields on entities.', + 'group' => 'Field API', + ); + } + + public function setUp() { + parent::setUp(); + $this->drupalCreateContentType(array('type' => 'article', 'name' => 'Article')); + } + + + /** + * Tests the default visibility of extra fields. + */ + function testDefaultVisibility() { + // Assert that the extra fields show up as per the visibility settings. + $node = $this->drupalCreateNode(array('type' => 'article')); + $this->drupalGet('node/' . $node->nid); + $this->assertText('The visible extra field content.'); + $this->assertNoText('The hidden extra field content.'); + $this->assertText('The unspecified extra field content.'); + } +} diff --git a/core/modules/field/tests/modules/field_test/field_test.module b/core/modules/field/tests/modules/field_test/field_test.module index 832f21c..93e4331 100644 --- a/core/modules/field/tests/modules/field_test/field_test.module +++ b/core/modules/field/tests/modules/field_test/field_test.module @@ -279,3 +279,48 @@ function field_test_field_formatter_settings_form_alter(&$element, &$form_state, function field_test_field_formatter_settings_summary_alter(&$summary, $context) { $summary .= '
field_test_field_formatter_settings_summary_alter'; } + +/** + * Implements hook_field_extra_fields(). + */ +function field_test_field_extra_fields() { + $extra['node']['article'] = array( + 'display' => array( + 'field_test_extra_field_default_visible' => array( + 'label' => 'Visible extra field', + 'description' => 'This extra field is visible by default.', + 'weight' => 0, + 'visible' => TRUE, + ), + 'field_test_extra_field_default_hidden' => array( + 'label' => 'Hidden extra field', + 'description' => 'This extra field is hidden by default.', + 'weight' => 0, + 'visible' => FALSE, + ), + 'field_test_extra_field_default_unspecified' => array( + 'label' => 'Extra field with unspecified visibility', + 'description' => 'This extra field is visible by default.', + 'weight' => 0, + ), + ), + ); + return $extra; +} + +/** + * Implements hook_node_view(). + */ +function field_test_node_view($node, $view_mode, $langcode) { + if ($node->type == 'article') { + $node->content['field_test_extra_field_default_visible'] = array( + '#markup' => 'The visible extra field content.', + ); + $node->content['field_test_extra_field_default_hidden'] = array( + '#markup' => 'The hidden extra field content.', + ); + $node->content['field_test_extra_field_default_unspecified'] = array( + '#markup' => 'The unspecified extra field content.', + ); + } +}