public function TypedDataResolverTest::testGetContextFromProperty in Chaos Tool Suite (ctools) 8.3
Tests context extraction from properties.
File
- tests/
src/ Kernel/ TypedDataResolverTest.php, line 47
Class
- TypedDataResolverTest
- @coversDefaultClass \Drupal\ctools\TypedDataResolver
Namespace
Drupal\Tests\ctools\KernelCode
public function testGetContextFromProperty() {
// Create a user and test entity to extract context from.
$user = User::create([
'uid' => 2,
'name' => 'username',
'mail' => 'mail@example.org',
]);
$user
->enforceIsNew(TRUE);
$user
->save();
$entity_test = EntityTest::create([
'user_id' => $user
->id(),
'name' => 'Test name',
]);
// Test the language property.
$property_context = $this
->assertPropertyPath($entity_test, 'langcode:language', 'language');
$this
->assertEquals('en', $property_context
->getContextValue()
->getId());
// Test the reference to the user.
$property_context = $this
->assertPropertyPath($entity_test, 'user_id:entity', 'entity:user');
$this
->assertEquals($user
->id(), $property_context
->getContextValue()
->id());
// Test the reference to the name.
$property_context = $this
->assertPropertyPath($entity_test, 'name:value', 'string');
$this
->assertEquals('Test name', $property_context
->getContextValue());
// Test explicitly specifying the delta.
$property_context = $this
->assertPropertyPath($entity_test, 'name:0:value', 'string');
$this
->assertEquals('Test name', $property_context
->getContextValue());
// Test following the reference.
$property_context = $this
->assertPropertyPath($entity_test, 'user_id:entity:mail:value', 'email');
$this
->assertEquals('mail@example.org', $property_context
->getContextValue());
}