X-Git-Url: https://yaffs.net/gitweb/?a=blobdiff_plain;f=web%2Fcore%2Fmodules%2Fserialization%2Ftests%2Fsrc%2FUnit%2FNormalizer%2FContentEntityNormalizerTest.php;fp=web%2Fcore%2Fmodules%2Fserialization%2Ftests%2Fsrc%2FUnit%2FNormalizer%2FContentEntityNormalizerTest.php;h=e5d02fae74d87bb5a0833d8c9a2fb4e5b954ba0c;hb=af6d1fb995500ae68849458ee10d66abbdcfb252;hp=4beecf420dbb8a7a156eda4cbe3b468fb268fc5d;hpb=680c79a86e3ed402f263faeac92e89fb6d9edcc0;p=yaffs-website diff --git a/web/core/modules/serialization/tests/src/Unit/Normalizer/ContentEntityNormalizerTest.php b/web/core/modules/serialization/tests/src/Unit/Normalizer/ContentEntityNormalizerTest.php index 4beecf420..e5d02fae7 100644 --- a/web/core/modules/serialization/tests/src/Unit/Normalizer/ContentEntityNormalizerTest.php +++ b/web/core/modules/serialization/tests/src/Unit/Normalizer/ContentEntityNormalizerTest.php @@ -2,6 +2,9 @@ namespace Drupal\Tests\serialization\Unit\Normalizer; +use Drupal\Core\Session\AccountInterface; +use Drupal\Core\TypedData\ComplexDataInterface; +use Drupal\Core\TypedData\DataDefinitionInterface; use Drupal\serialization\Normalizer\ContentEntityNormalizer; use Drupal\Tests\UnitTestCase; @@ -67,16 +70,20 @@ class ContentEntityNormalizerTest extends UnitTestCase { ->will($this->returnValue('test')); $definitions = [ - 'field_1' => $this->createMockFieldListItem(), - 'field_2' => $this->createMockFieldListItem(FALSE), + 'field_accessible_external' => $this->createMockFieldListItem(TRUE, FALSE), + 'field_non-accessible_external' => $this->createMockFieldListItem(FALSE, FALSE), + 'field_accessible_internal' => $this->createMockFieldListItem(TRUE, TRUE), + 'field_non-accessible_internal' => $this->createMockFieldListItem(FALSE, TRUE), ]; $content_entity_mock = $this->createMockForContentEntity($definitions); $normalized = $this->contentEntityNormalizer->normalize($content_entity_mock, 'test_format'); - $this->assertArrayHasKey('field_1', $normalized); - $this->assertEquals('test', $normalized['field_1']); - $this->assertArrayNotHasKey('field_2', $normalized); + $this->assertArrayHasKey('field_accessible_external', $normalized); + $this->assertEquals('test', $normalized['field_accessible_external']); + $this->assertArrayNotHasKey('field_non-accessible_external', $normalized); + $this->assertArrayNotHasKey('field_accessible_internal', $normalized); + $this->assertArrayNotHasKey('field_non-accessible_internal', $normalized); } /** @@ -99,8 +106,8 @@ class ContentEntityNormalizerTest extends UnitTestCase { // The mock account should get passed directly into the access() method on // field items from $context['account']. $definitions = [ - 'field_1' => $this->createMockFieldListItem(TRUE, $mock_account), - 'field_2' => $this->createMockFieldListItem(FALSE, $mock_account), + 'field_1' => $this->createMockFieldListItem(TRUE, FALSE, $mock_account), + 'field_2' => $this->createMockFieldListItem(FALSE, FALSE, $mock_account), ]; $content_entity_mock = $this->createMockForContentEntity($definitions); @@ -121,11 +128,15 @@ class ContentEntityNormalizerTest extends UnitTestCase { public function createMockForContentEntity($definitions) { $content_entity_mock = $this->getMockBuilder('Drupal\Core\Entity\ContentEntityBase') ->disableOriginalConstructor() - ->setMethods(['getFields']) + ->setMethods(['getTypedData']) ->getMockForAbstractClass(); - $content_entity_mock->expects($this->once()) - ->method('getFields') - ->will($this->returnValue($definitions)); + $typed_data = $this->prophesize(ComplexDataInterface::class); + $typed_data->getProperties(TRUE) + ->willReturn($definitions) + ->shouldBeCalled(); + $content_entity_mock->expects($this->any()) + ->method('getTypedData') + ->will($this->returnValue($typed_data->reveal())); return $content_entity_mock; } @@ -134,16 +145,26 @@ class ContentEntityNormalizerTest extends UnitTestCase { * Creates a mock field list item. * * @param bool $access + * @param bool $internal + * @param \Drupal\Core\Session\AccountInterface $user_context * * @return \Drupal\Core\Field\FieldItemListInterface|\PHPUnit_Framework_MockObject_MockObject */ - protected function createMockFieldListItem($access = TRUE, $user_context = NULL) { + protected function createMockFieldListItem($access, $internal, AccountInterface $user_context = NULL) { + $data_definition = $this->prophesize(DataDefinitionInterface::class); $mock = $this->getMock('Drupal\Core\Field\FieldItemListInterface'); $mock->expects($this->once()) - ->method('access') - ->with('view', $user_context) - ->will($this->returnValue($access)); - + ->method('getDataDefinition') + ->will($this->returnValue($data_definition->reveal())); + $data_definition->isInternal() + ->willReturn($internal) + ->shouldBeCalled(); + if (!$internal) { + $mock->expects($this->once()) + ->method('access') + ->with('view', $user_context) + ->will($this->returnValue($access)); + } return $mock; }