Commit 02f199f6 authored by webchick's avatar webchick

Issue #1400256 by mahaprasad, David_Rothstein, amcgowanca: Tests for field info cache.

parent 13b929b6
......@@ -297,7 +297,6 @@ function testFieldMap() {
$this->assertEqual($map, $expected);
}
/**
* Test that the field_info settings convenience functions work.
*/
......@@ -323,6 +322,31 @@ function testSettingsInfo() {
}
}
/**
* Tests that the field info cache can be built correctly.
*/
function testFieldInfoCache() {
// Create a test field and ensure it's in the array returned by
// field_info_fields().
$field_name = drupal_strtolower($this->randomName());
$field = array(
'field_name' => $field_name,
'type' => 'test_field',
);
field_create_field($field);
$fields = field_info_fields();
$this->assertTrue(isset($fields[$field_name]), 'The test field is initially found in the array returned by field_info_fields().');
// Now rebuild the field info cache, and set a variable which will cause
// the cache to be cleared while it's being rebuilt; see
// field_test_entity_info(). Ensure the test field is still in the returned
// array.
field_info_cache_clear();
state()->set('field_test.clear_info_cache_in_hook_entity_info', TRUE);
$fields = field_info_fields();
$this->assertTrue(isset($fields[$field_name]), 'The test field is found in the array returned by field_info_fields() even if its cache is cleared while being rebuilt.');
}
/**
* Test that the widget definition functions work.
*/
......
......@@ -8,6 +8,17 @@
use Drupal\Core\Entity\EntityInterface;
use Drupal\field_test\Plugin\Core\Entity\TestEntity;
/**
* Implements hook_entity_info().
*/
function field_test_entity_info() {
// If requested, clear the field cache while this is being called. See
// Drupal\field\Tests\FieldInfoTest::testFieldInfoCache().
if (state()->get('field_test.clear_info_cache_in_hook_entity_info')) {
field_info_cache_clear();
}
}
/**
* Implements hook_entity_info_alter().
*/
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment