class FieldTestBase
Same name in this branch
- 9 core/modules/field/tests/src/Functional/Views/FieldTestBase.php \Drupal\Tests\field\Functional\Views\FieldTestBase
Same name and namespace in other branches
- 8.9.x core/modules/field/src/Tests/Views/FieldTestBase.php \Drupal\field\Tests\Views\FieldTestBase
- 8.9.x core/modules/field/src/Tests/FieldTestBase.php \Drupal\field\Tests\FieldTestBase
- 11.x core/modules/field/tests/src/Functional/Views/FieldTestBase.php \Drupal\Tests\field\Functional\Views\FieldTestBase
- 11.x core/modules/field/tests/src/Functional/FieldTestBase.php \Drupal\Tests\field\Functional\FieldTestBase
- 10 core/modules/field/tests/src/Functional/Views/FieldTestBase.php \Drupal\Tests\field\Functional\Views\FieldTestBase
- 10 core/modules/field/tests/src/Functional/FieldTestBase.php \Drupal\Tests\field\Functional\FieldTestBase
- 8.9.x core/modules/field/tests/src/Functional/Views/FieldTestBase.php \Drupal\Tests\field\Functional\Views\FieldTestBase
- 8.9.x core/modules/field/tests/src/Functional/FieldTestBase.php \Drupal\Tests\field\Functional\FieldTestBase
Parent class for Field API tests.
Hierarchy
- class \Drupal\Tests\BrowserTestBase uses \Drupal\Core\Test\FunctionalTestSetupTrait, \Drupal\Tests\UiHelperTrait, \Drupal\Core\Test\TestSetupTrait, \Drupal\Tests\block\Traits\BlockCreationTrait, \Drupal\FunctionalTests\AssertLegacyTrait, \Drupal\Tests\RandomGeneratorTrait, \Drupal\Tests\node\Traits\NodeCreationTrait, \Drupal\Tests\node\Traits\ContentTypeCreationTrait, \Drupal\Tests\ConfigTestTrait, \Drupal\Tests\TestRequirementsTrait, \Drupal\Tests\user\Traits\UserCreationTrait, \Drupal\Tests\XdebugRequestTrait, \Drupal\Tests\Traits\PhpUnitWarnings, \Drupal\Tests\PhpUnitCompatibilityTrait, \Symfony\Bridge\PhpUnit\ExpectDeprecationTrait, \Drupal\Tests\ExtensionListTestTrait extends \PHPUnit\Framework\TestCase
- class \Drupal\Tests\field\Functional\FieldTestBase extends \Drupal\Tests\BrowserTestBase
Expanded class hierarchy of FieldTestBase
4 files declare their use of FieldTestBase
- OptionsDynamicValuesTestBase.php in core/
modules/ options/ tests/ src/ Functional/ OptionsDynamicValuesTestBase.php - OptionsFieldUITest.php in core/
modules/ options/ tests/ src/ Functional/ OptionsFieldUITest.php - OptionsFloatFieldImportTest.php in core/
modules/ options/ tests/ src/ Functional/ OptionsFloatFieldImportTest.php - OptionsWidgetsTest.php in core/
modules/ options/ tests/ src/ Functional/ OptionsWidgetsTest.php
File
-
core/
modules/ field/ tests/ src/ Functional/ FieldTestBase.php, line 13
Namespace
Drupal\Tests\field\FunctionalView source
abstract class FieldTestBase extends BrowserTestBase {
/**
* Generate random values for a field_test field.
*
* @param $cardinality
* Number of values to generate.
*
* @return array
* An array of random values, in the format expected for field values.
*/
public function _generateTestFieldValues($cardinality) {
$values = [];
for ($i = 0; $i < $cardinality; $i++) {
// field_test fields treat 0 as 'empty value'.
$values[$i]['value'] = mt_rand(1, 127);
}
return $values;
}
/**
* Assert that a field has the expected values in an entity.
*
* This function only checks a single column in the field values.
*
* @param \Drupal\Core\Entity\EntityInterface $entity
* The entity to test.
* @param $field_name
* The name of the field to test
* @param $expected_values
* The array of expected values.
* @param $langcode
* (Optional) The language code for the values. Defaults to
* \Drupal\Core\Language\LanguageInterface::LANGCODE_DEFAULT.
* @param $column
* (Optional) The name of the column to check. Defaults to 'value'.
*/
public function assertFieldValues(EntityInterface $entity, $field_name, $expected_values, $langcode = LanguageInterface::LANGCODE_DEFAULT, $column = 'value') {
// Re-load the entity to make sure we have the latest changes.
$storage = $this->container
->get('entity_type.manager')
->getStorage($entity->getEntityTypeId());
$storage->resetCache([
$entity->id(),
]);
$e = $storage->load($entity->id());
$field = $values = $e->getTranslation($langcode)->{$field_name};
// Filter out empty values so that they don't mess with the assertions.
$field->filterEmptyItems();
$values = $field->getValue();
$this->assertSameSize($expected_values, $values, 'Expected number of values were saved.');
foreach ($expected_values as $key => $value) {
$this->assertEquals($value, $values[$key][$column], new FormattableMarkup('Value @value was saved correctly.', [
'@value' => $value,
]));
}
}
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.