Index: modules/simpletest/tests/field_test.module =================================================================== RCS file: /cvs/drupal/drupal/modules/simpletest/tests/field_test.module,v retrieving revision 1.9 diff -u -r1.9 field_test.module --- modules/simpletest/tests/field_test.module 27 May 2009 18:34:00 -0000 1.9 +++ modules/simpletest/tests/field_test.module 18 Jun 2009 16:52:39 -0000 @@ -365,6 +365,27 @@ ); } +function field_test_memorize($tag = NULL, $args = NULL) { + $memorize =& drupal_static(__FUNCTION__, NULL); + + if (is_null($tag)) { + $ret = $memorize; + $memorize = array(); + return $ret; + } + if (is_array($memorize)) { + $memorize[$tag][] = $args; + } +} + +/** + * Memorize calls to hook_field_create_field(). + */ +function field_test_field_create_field($field) { + $args = func_get_args(); + field_test_memorize(__FUNCTION__, $args); +} + /** * Implement hook_field_validate(). * Index: modules/field/field.crud.inc =================================================================== RCS file: /cvs/drupal/drupal/modules/field/field.crud.inc,v retrieving revision 1.15 diff -u -r1.15 field.crud.inc --- modules/field/field.crud.inc 12 Jun 2009 08:39:36 -0000 1.15 +++ modules/field/field.crud.inc 18 Jun 2009 16:52:38 -0000 @@ -275,6 +275,9 @@ // Clear caches field_cache_clear(TRUE); + // Invoke external hooks after the cache is cleared for API consistency. + module_invoke_all('field_create_field', $field); + return $field; } Index: modules/field/field.test =================================================================== RCS file: /cvs/drupal/drupal/modules/field/field.test,v retrieving revision 1.27 diff -u -r1.27 field.test --- modules/field/field.test 16 Jun 2009 08:40:18 -0000 1.27 +++ modules/field/field.test 18 Jun 2009 16:52:39 -0000 @@ -1336,8 +1336,10 @@ 'field_name' => 'field_2', 'type' => 'test_field', ); + field_test_memorize(); $field_definition = field_create_field($field_definition); - + $mem = field_test_memorize(); + $this->assertEqual(count($mem['field_test_field_create_field']), 1, 'Called hook_field_create_field() in successful field_create_field() call.'); $field = field_read_field($field_definition['field_name']); // Ensure that basic properties are preserved.