Simpletest Coverage - modules/field/field.default.inc

1 <?php
2 // $Id: field.default.inc,v 1.14 2009/08/13 01:50:00 webchick Exp $
3
4 /**
5 * @file
6 * Default 'implementations' of hook_field_*(): common field housekeeping.
7 *
8 * Those implementations are special, as field.module does not define any field
9 * types. Those functions take care of default stuff common to all field types.
10 * They are called through the _field_invoke_default() iterator, generally in
11 * the corresponding field_attach_[operation]() function.
12 */
13
14 function field_default_extract_form_values($obj_type, $object, $field, $instance, &$items, $form, &$form_state) {
15 $field_name = $field['field_name'];
16
17 if (isset($form_state['values'][$field_name])) {
18 $items = $form_state['values'][$field_name];
19 // Remove the 'value' of the 'add more' button.
20 unset($items[$field_name . '_add_more']);
21 }
22 }
23
24 function field_default_submit($obj_type, $object, $field, $instance, &$items, $form, &$form_state) {
25 $field_name = $field['field_name'];
26
27 // Reorder items to account for drag-n-drop reordering.
28 if (field_behaviors_widget('multiple values', $instance) == FIELD_BEHAVIOR_DEFAULT) {
29 $items = _field_sort_items($field, $items);
30 }
31
32 // Filter out empty values.
33 $items = field_set_empty($field, $items);
34 }
35
36 /**
37 * Default field 'insert' operation.
38 *
39 * Insert default value if no $object->$field_name entry was provided.
40 * This can happen with programmatic saves, or on form-based creation where
41 * the current user doesn't have 'edit' permission for the field.
42 */
43 function field_default_insert($obj_type, $object, $field, $instance, &$items) {
44 // _field_invoke() populates $items with an empty array if the $object has no
45 // entry for the field, so we check on the $object itself.
46 if (!property_exists($object, $field['field_name']) && !empty($instance['default_value_function'])) {
47 $function = $instance['default_value_function'];
48 if (drupal_function_exists($function)) {
49 $items = $function($obj_type, $object, $field, $instance);
50 }
51 }
52 }
53 /**
54 * Default field 'view' operation.
55 *
56 * @see field_attach_view()
57 */
58 function field_default_view($obj_type, $object, $field, $instance, $items, $build_mode) {
59 list($id, $vid, $bundle) = field_attach_extract_ids($obj_type, $object);
60
61 $addition = array();
62 $display = $instance['display'][$build_mode];
63
64 if ($display['type'] !== 'hidden') {
65 $theme = 'field_formatter_' . $display['type'];
66 $single = (field_behaviors_formatter('multiple values', $display) == FIELD_BEHAVIOR_DEFAULT);
67
68 $label_display = $display['label'];
69 if ($build_mode == 'search_index') {
70 $label_display = 'hidden';
71 }
72
73 $info = array(
74 '#field_name' => $field['field_name'],
75 '#bundle' => $bundle,
76 '#object' => $object,
77 '#object_type' => $obj_type,
78 );
79
80 $element = $info + array(
81 '#theme' => 'field',
82 '#weight' => $display['weight'],
83 '#title' => check_plain(t($instance['label'])),
84 '#access' => field_access('view', $field),
85 '#label_display' => $label_display,
86 '#build_mode' => $build_mode,
87 '#single' => $single,
88 'items' => array(),
89 );
90
91 // Fill-in items.
92 foreach ($items as $delta => $item) {
93 $element['items'][$delta] = array(
94 '#item' => $item,
95 '#weight' => $delta,
96 );
97 }
98
99 // Append formatter information either on each item ('single-value' formatter)
100 // or at the upper 'items' level ('multiple-value' formatter)
101 $format_info = $info + array(
102 '#formatter' => $display['type'],
103 '#settings' => $display['settings'],
104 '#theme' => $theme,
105 );
106
107 if ($single) {
108 foreach ($items as $delta => $item) {
109 $element['items'][$delta] += $format_info;
110 $element['items'][$delta]['#item']['#delta'] = $delta;
111 }
112 }
113 else {
114 $element['items'] += $format_info;
115 }
116
117 $addition = array($field['field_name'] => $element);
118 }
119
120 return $addition;
121 }
122
123 function field_default_prepare_translation($obj_type, $object, $field, $instance, &$items) {
124 $addition = array();
125 if (isset($object->translation_source->$field['field_name'])) {
126 $addition[$field['field_name']] = $object->translation_source->$field['field_name'];
127 }
128 return $addition;
129 }
130

Legend

Missed
lines code that were not excersized during program execution.
Covered
lines code were excersized during program execution.
Comment/non executable
Comment or non-executable line of code.
Dead
lines of code that according to xdebug could not be executed. This is counted as coverage code because in almost all cases it is code that runnable.