diff options
author | Dries Buytaert <dries@buytaert.net> | 2010-03-12 19:51:40 +0000 |
---|---|---|
committer | Dries Buytaert <dries@buytaert.net> | 2010-03-12 19:51:40 +0000 |
commit | 8e39e9abb12189c9f8963919de95040be3abef0c (patch) | |
tree | 7789e0d9b0b10396eec8167bdf9a71aaee190632 /modules/field/tests | |
parent | 2c3c1a93030bf62ccc2d4a3386b756f01b672d94 (diff) | |
download | brdo-8e39e9abb12189c9f8963919de95040be3abef0c.tar.gz brdo-8e39e9abb12189c9f8963919de95040be3abef0c.tar.bz2 |
- Patch #612894 by yched, David_Rothstein: field_format() is just a pile of code that doesn't work.
Diffstat (limited to 'modules/field/tests')
-rw-r--r-- | modules/field/tests/field.test | 88 | ||||
-rw-r--r-- | modules/field/tests/field_test.field.inc | 8 |
2 files changed, 90 insertions, 6 deletions
diff --git a/modules/field/tests/field.test b/modules/field/tests/field.test index f1bc28c71..dc56f4eb5 100644 --- a/modules/field/tests/field.test +++ b/modules/field/tests/field.test @@ -925,7 +925,7 @@ class FieldAttachOtherTestCase extends FieldAttachTestCase { $this->instance['display'] = array( 'full' => array( 'label' => 'above', - 'type' => 'field_test_needs_additional_data', + 'type' => 'field_test_with_prepare_view', 'settings' => array( 'test_formatter_setting_additional' => $formatter_setting, ) @@ -1805,7 +1805,7 @@ class FieldDisplayAPITestCase extends FieldTestCase { /** * Test the field_view_field() function. */ - function testFieldBuildField() { + function testFieldViewField() { // No display settings: check that default display settings are used. $output = field_view_field('test_entity', $this->entity, $this->field_name); $this->drupalSetContent(drupal_render($output)); @@ -1834,6 +1834,23 @@ class FieldDisplayAPITestCase extends FieldTestCase { } $this->assertText($setting . '|' . implode('|', $array), t('Values were displayed with expected setting.')); + // Check the prepare_view steps are invoked. + $display = array( + 'label' => 'hidden', + 'type' => 'field_test_with_prepare_view', + 'settings' => array( + 'test_formatter_setting_additional' => $this->randomName(), + ), + ); + $output = field_view_field('test_entity', $this->entity, $this->field_name, $display); + $view = drupal_render($output); + $this->drupalSetContent($view); + $setting = $display['settings']['test_formatter_setting_additional']; + $this->assertNoText($this->label, t('Label was not displayed.')); + foreach ($this->values as $delta => $value) { + $this->assertText($setting . '|' . $value['value'] . '|' . ($value['value'] + 1), t('Value @delta was displayed with expected setting.', array('@delta' => $delta))); + } + // View mode: check that display settings specified in the instance are // used. $output = field_view_field('test_entity', $this->entity, $this->field_name, 'full'); @@ -1854,6 +1871,73 @@ class FieldDisplayAPITestCase extends FieldTestCase { $this->assertText($setting . '|' . $value['value'], t('Value @delta was displayed with expected setting.', array('@delta' => $delta))); } } + + /** + * Test the field_view_value() function. + */ + function testFieldViewValue() { + // No display settings: check that default display settings are used. + $settings = field_info_formatter_settings('field_test_default'); + $setting = $settings['test_formatter_setting']; + foreach ($this->values as $delta => $value) { + $item = $this->entity->{$this->field_name}[LANGUAGE_NONE][$delta]; + $output = field_view_value('test_entity', $this->entity, $this->field_name, $item); + $this->drupalSetContent(drupal_render($output)); + $this->assertText($setting . '|' . $value['value'], t('Value @delta was displayed with expected setting.', array('@delta' => $delta))); + } + + // Check that explicit display settings are used. + $display = array( + 'type' => 'field_test_multiple', + 'settings' => array( + 'test_formatter_setting_multiple' => $this->randomName(), + ), + ); + $setting = $display['settings']['test_formatter_setting_multiple']; + $array = array(); + foreach ($this->values as $delta => $value) { + $item = $this->entity->{$this->field_name}[LANGUAGE_NONE][$delta]; + $output = field_view_value('test_entity', $this->entity, $this->field_name, $item, $display); + $this->drupalSetContent(drupal_render($output)); + $this->assertText($setting . '|0:' . $value['value'], t('Value @delta was displayed with expected setting.', array('@delta' => $delta))); + } + + // Check that prepare_view steps are invoked. + $display = array( + 'type' => 'field_test_with_prepare_view', + 'settings' => array( + 'test_formatter_setting_additional' => $this->randomName(), + ), + ); + $setting = $display['settings']['test_formatter_setting_additional']; + $array = array(); + foreach ($this->values as $delta => $value) { + $item = $this->entity->{$this->field_name}[LANGUAGE_NONE][$delta]; + $output = field_view_value('test_entity', $this->entity, $this->field_name, $item, $display); + $this->drupalSetContent(drupal_render($output)); + $this->assertText($setting . '|' . $value['value'] . '|' . ($value['value'] + 1), t('Value @delta was displayed with expected setting.', array('@delta' => $delta))); + } + + // View mode: check that display settings specified in the instance are + // used. + $setting = $this->instance['display']['full']['settings']['test_formatter_setting']; + foreach ($this->values as $delta => $value) { + $item = $this->entity->{$this->field_name}[LANGUAGE_NONE][$delta]; + $output = field_view_value('test_entity', $this->entity, $this->field_name, $item, 'full'); + $this->drupalSetContent(drupal_render($output)); + $this->assertText($setting . '|' . $value['value'], t('Value @delta was displayed with expected setting.', array('@delta' => $delta))); + } + + // Unknown view mode: check that display settings for 'full' view mode + // are used. + $setting = $this->instance['display']['full']['settings']['test_formatter_setting']; + foreach ($this->values as $delta => $value) { + $item = $this->entity->{$this->field_name}[LANGUAGE_NONE][$delta]; + $output = field_view_value('test_entity', $this->entity, $this->field_name, $item, 'unknown_view_mode'); + $this->drupalSetContent(drupal_render($output)); + $this->assertText($setting . '|' . $value['value'], t('Value @delta was displayed with expected setting.', array('@delta' => $delta))); + } + } } class FieldCrudTestCase extends FieldTestCase { diff --git a/modules/field/tests/field_test.field.inc b/modules/field/tests/field_test.field.inc index 1213d4d4d..faf1b1469 100644 --- a/modules/field/tests/field_test.field.inc +++ b/modules/field/tests/field_test.field.inc @@ -248,7 +248,7 @@ function field_test_field_formatter_info() { 'test_formatter_setting_multiple' => 'dummy test string', ), ), - 'field_test_needs_additional_data' => array( + 'field_test_with_prepare_view' => array( 'label' => t('Tests hook_field_formatter_prepare_view()'), 'field types' => array('test_field'), 'settings' => array( @@ -264,8 +264,8 @@ function field_test_field_formatter_info() { function field_test_field_formatter_prepare_view($entity_type, $entities, $field, $instances, $langcode, &$items, $displays) { foreach ($items as $id => $item) { // To keep the test non-intrusive, only act on the - // 'field_test_needs_additional_data' formatter. - if ($displays[$id]['type'] == 'field_test_needs_additional_data') { + // 'field_test_with_prepare_view' formatter. + if ($displays[$id]['type'] == 'field_test_with_prepare_view') { foreach ($item as $delta => $value) { // Don't add anything on empty values. if ($value) { @@ -290,7 +290,7 @@ function field_test_field_formatter_view($entity_type, $entity, $field, $instanc } break; - case 'field_test_needs_additional_data': + case 'field_test_with_prepare_view': foreach ($items as $delta => $item) { $element[$delta] = array('#markup' => $settings['test_formatter_setting_additional'] . '|' . $item['value'] . '|' . $item['additional_formatter_value']); } |