Chris@18: 'value', Chris@18: 'key2' => 'no, val you', Chris@18: 'π' => 3.14159, Chris@18: TRUE => 42, Chris@18: 'nested' => [ Chris@18: 'bird' => 'robin', Chris@18: 'doll' => 'Russian', Chris@18: ], Chris@18: ]; Chris@18: Chris@18: /** Chris@18: * {@inheritdoc} Chris@18: */ Chris@18: protected function setUpAuthorization($method) { Chris@18: $this->grantPermissionsToTestedRole(['administer entity_test content']); Chris@18: } Chris@18: Chris@18: /** Chris@18: * {@inheritdoc} Chris@18: */ Chris@18: protected function createEntity() { Chris@18: $entity = EntityTestMapField::create([ Chris@18: 'name' => 'Llama', Chris@18: 'type' => 'entity_test_map_field', Chris@18: 'data' => [ Chris@18: static::$mapValue, Chris@18: ], Chris@18: ]); Chris@18: $entity->setOwnerId(0); Chris@18: $entity->save(); Chris@18: return $entity; Chris@18: } Chris@18: Chris@18: /** Chris@18: * {@inheritdoc} Chris@18: */ Chris@18: protected function getExpectedDocument() { Chris@18: $self_url = Url::fromUri('base:/jsonapi/entity_test_map_field/entity_test_map_field/' . $this->entity->uuid())->setAbsolute()->toString(TRUE)->getGeneratedUrl(); Chris@18: $author = User::load(0); Chris@18: return [ Chris@18: 'jsonapi' => [ Chris@18: 'meta' => [ Chris@18: 'links' => [ Chris@18: 'self' => ['href' => 'http://jsonapi.org/format/1.0/'], Chris@18: ], Chris@18: ], Chris@18: 'version' => '1.0', Chris@18: ], Chris@18: 'links' => [ Chris@18: 'self' => ['href' => $self_url], Chris@18: ], Chris@18: 'data' => [ Chris@18: 'id' => $this->entity->uuid(), Chris@18: 'type' => 'entity_test_map_field--entity_test_map_field', Chris@18: 'links' => [ Chris@18: 'self' => ['href' => $self_url], Chris@18: ], Chris@18: 'attributes' => [ Chris@18: 'created' => (new \DateTime())->setTimestamp($this->entity->get('created')->value)->setTimezone(new \DateTimeZone('UTC'))->format(\DateTime::RFC3339), Chris@18: 'langcode' => 'en', Chris@18: 'name' => 'Llama', Chris@18: 'data' => static::$mapValue, Chris@18: 'drupal_internal__id' => 1, Chris@18: ], Chris@18: 'relationships' => [ Chris@18: 'user_id' => [ Chris@18: 'data' => [ Chris@18: 'id' => $author->uuid(), Chris@18: 'type' => 'user--user', Chris@18: ], Chris@18: 'links' => [ Chris@18: 'related' => ['href' => $self_url . '/user_id'], Chris@18: 'self' => ['href' => $self_url . '/relationships/user_id'], Chris@18: ], Chris@18: ], Chris@18: ], Chris@18: ], Chris@18: ]; Chris@18: } Chris@18: Chris@18: /** Chris@18: * {@inheritdoc} Chris@18: */ Chris@18: protected function getPostDocument() { Chris@18: return [ Chris@18: 'data' => [ Chris@18: 'type' => 'entity_test_map_field--entity_test_map_field', Chris@18: 'attributes' => [ Chris@18: 'name' => 'Dramallama', Chris@18: 'data' => static::$mapValue, Chris@18: ], Chris@18: ], Chris@18: ]; Chris@18: } Chris@18: Chris@18: /** Chris@18: * {@inheritdoc} Chris@18: */ Chris@18: protected function getExpectedUnauthorizedAccessMessage($method) { Chris@18: return "The 'administer entity_test content' permission is required."; Chris@18: } Chris@18: Chris@18: /** Chris@18: * {@inheritdoc} Chris@18: */ Chris@18: protected function getSparseFieldSets() { Chris@18: // EntityTestMapField's owner field name is `user_id`, not `uid`, which Chris@18: // breaks nested sparse fieldset tests. Chris@18: return array_diff_key(parent::getSparseFieldSets(), array_flip([ Chris@18: 'nested_empty_fieldset', Chris@18: 'nested_fieldset_with_owner_fieldset', Chris@18: ])); Chris@18: } Chris@18: Chris@18: }