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 4ecd1a9..ec70d46 100644
--- a/core/modules/field/tests/modules/field_test/field_test.module
+++ b/core/modules/field/tests/modules/field_test/field_test.module
@@ -299,3 +299,48 @@ function field_test_module_implements_alter(&$implementations, $hook) {
     }
   }
 }
+
+/**
+ * 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.',
+    );
+  }
+}
