X-Git-Url: http://aleph1.co.uk/gitweb/?a=blobdiff_plain;f=web%2Fcore%2Ftests%2FDrupal%2FTests%2FCore%2FEntity%2FBaseFieldDefinitionTest.php;h=616f6ba0a32b4417a751f01210c626e36b586cbd;hb=9917807b03b64faf00f6a1f29dcb6eafc454efa5;hp=341ed9cf8ceb4bddc1ef81ba84a90e48e6308a27;hpb=a2bd1bf0c2c1f1a17d188f4dc0726a45494cefae;p=yaffs-website diff --git a/web/core/tests/Drupal/Tests/Core/Entity/BaseFieldDefinitionTest.php b/web/core/tests/Drupal/Tests/Core/Entity/BaseFieldDefinitionTest.php index 341ed9cf8..616f6ba0a 100644 --- a/web/core/tests/Drupal/Tests/Core/Entity/BaseFieldDefinitionTest.php +++ b/web/core/tests/Drupal/Tests/Core/Entity/BaseFieldDefinitionTest.php @@ -194,6 +194,52 @@ class BaseFieldDefinitionTest extends UnitTestCase { $this->assertEquals([], $definition->getDefaultValue($entity)); } + /** + * Tests field initial value. + * + * @covers ::getInitialValue + * @covers ::setInitialValue + */ + public function testFieldInitialValue() { + $definition = BaseFieldDefinition::create($this->fieldType); + $default_value = [ + 'value' => $this->randomMachineName(), + ]; + $expected_default_value = [$default_value]; + $definition->setInitialValue($default_value); + $entity = $this->getMockBuilder('Drupal\Core\Entity\ContentEntityBase') + ->disableOriginalConstructor() + ->getMock(); + // Set the field item list class to be used to avoid requiring the typed + // data manager to retrieve it. + $definition->setClass('Drupal\Core\Field\FieldItemList'); + $this->assertEquals($expected_default_value, $definition->getInitialValue($entity)); + + $data_definition = $this->getMockBuilder('Drupal\Core\TypedData\DataDefinition') + ->disableOriginalConstructor() + ->getMock(); + $data_definition->expects($this->any()) + ->method('getClass') + ->will($this->returnValue('Drupal\Core\Field\FieldItemBase')); + $definition->setItemDefinition($data_definition); + + // Set default value only with a literal. + $definition->setInitialValue($default_value['value']); + $this->assertEquals($expected_default_value, $definition->getInitialValue($entity)); + + // Set default value with an indexed array. + $definition->setInitialValue($expected_default_value); + $this->assertEquals($expected_default_value, $definition->getInitialValue($entity)); + + // Set default value with an empty array. + $definition->setInitialValue([]); + $this->assertEquals([], $definition->getInitialValue($entity)); + + // Set default value with NULL. + $definition->setInitialValue(NULL); + $this->assertEquals([], $definition->getInitialValue($entity)); + } + /** * Tests field translatable methods. *