diff --git a/tests/src/Functional/ResourceTestBase.php b/tests/src/Functional/ResourceTestBase.php index 0b0ae01..02d977e 100644 --- a/tests/src/Functional/ResourceTestBase.php +++ b/tests/src/Functional/ResourceTestBase.php @@ -2607,13 +2607,13 @@ abstract class ResourceTestBase extends BrowserTestBase { // Add a field to modify in order to test revisions. $field_storage = FieldStorageConfig::create([ 'entity_type' => static::$entityTypeId, - 'field_name' => 'field_revisionable_text', - 'type' => 'text', + 'field_name' => 'field_revisionable_number', + 'type' => 'integer', ])->setCardinality(1); $field_storage->save(); $field_config = FieldConfig::create([ 'entity_type' => static::$entityTypeId, - 'field_name' => 'field_revisionable_text', + 'field_name' => 'field_revisionable_number', 'bundle' => $this->entity->bundle(), ])->setLabel('Revisionable text field')->setTranslatable(FALSE); $field_config->save(); @@ -2626,20 +2626,12 @@ abstract class ResourceTestBase extends BrowserTestBase { } // Set up test data. - $star_trek_salutation = 'Live long and prosper.'; - $star_wars_salutation = 'May the force be with you.'; /* @var \Drupal\Core\Entity\FieldableEntityInterface $entity */ - $entity->set('field_revisionable_text', [ - 'value' => $star_trek_salutation, - 'format' => 'plain_text', - ]); + $entity->set('field_revisionable_number', 42); $entity->save(); $original_revision_id = (int) $entity->getRevisionId(); - $entity->set('field_revisionable_text', [ - 'value' => $star_wars_salutation, - 'format' => 'plain_text', - ]); + $entity->set('field_revisionable_number', 99); $entity->setNewRevision(); $entity->save(); $latest_revision_id = (int) $entity->getRevisionId(); @@ -2655,6 +2647,8 @@ abstract class ResourceTestBase extends BrowserTestBase { $latest_version_url->setOption('query', ['resource_version' => 'rel:latest-version']); $working_copy_url = clone $url; $working_copy_url->setOption('query', ['resource_version' => 'rel:working-copy']); + $revision_id_key = $this->entity->getEntityType()->getKey('revision'); + $published_key = $this->entity->getEntityType()->getKey('published'); $request_options = []; $request_options[RequestOptions::HEADERS]['Accept'] = 'application/vnd.api+json'; @@ -2682,14 +2676,10 @@ abstract class ResourceTestBase extends BrowserTestBase { $actual_response = $this->request('GET', $url, $request_options); $expected_document = $this->getExpectedDocument(); // Resource objects always link to their specific revision by revision ID. - $expected_document['data']['attributes']['vid'] = $latest_revision_id; - $expected_document['data']['attributes']['field_revisionable_text'] = [ - 'value' => $star_wars_salutation, - 'format' => 'plain_text', - 'processed' => "
$star_wars_salutation
\n", - ]; - $expected_cache_tags = array_merge(['config:filter.format.plain_text'], $this->getExpectedCacheTags()); - $expected_cache_contexts = array_merge(['languages:language_interface', 'theme'], $this->getExpectedCacheContexts()); + $expected_document['data']['attributes'][$revision_id_key] = $latest_revision_id; + $expected_document['data']['attributes']['field_revisionable_number'] = 99; + $expected_cache_tags = $this->getExpectedCacheTags(); + $expected_cache_contexts = $this->getExpectedCacheContexts(); $this->assertResourceResponse(200, $expected_document, $actual_response, $expected_cache_tags, $expected_cache_contexts, FALSE, 'MISS'); // Fetch the same revision using its revision ID. $actual_response = $this->request('GET', $latest_url, $request_options); @@ -2716,12 +2706,8 @@ abstract class ResourceTestBase extends BrowserTestBase { // Fetch the prior revision. $actual_response = $this->request('GET', $original_url, $request_options); - $expected_document['data']['attributes']['vid'] = $original_revision_id; - $expected_document['data']['attributes']['field_revisionable_text'] = [ - 'value' => $star_trek_salutation, - 'format' => 'plain_text', - 'processed' => "$star_trek_salutation
\n", - ]; + $expected_document['data']['attributes'][$revision_id_key] = $original_revision_id; + $expected_document['data']['attributes']['field_revisionable_number'] = 42; $expected_document['links']['self']['href'] = $original_url->setAbsolute()->toString(); $this->assertResourceResponse(200, $expected_document, $actual_response, $expected_cache_tags, $expected_cache_contexts, FALSE, 'MISS'); @@ -2748,13 +2734,10 @@ abstract class ResourceTestBase extends BrowserTestBase { // relation type negotiator. With content_moderation, this is now the most // recent revision where the moderation state was the 'default' one. $actual_response = $this->request('GET', $latest_version_url, $request_options); - $expected_document['data']['attributes']['vid'] = $published_revision_id; + $expected_document['data']['attributes'][$revision_id_key] = $published_revision_id; $expected_document['data']['attributes']['moderation_state'] = 'published'; - $expected_document['data']['attributes']['field_revisionable_text'] = [ - 'value' => $star_wars_salutation, - 'format' => 'plain_text', - 'processed' => "$star_wars_salutation
\n", - ]; + $expected_document['data']['attributes'][$published_key] = TRUE; + $expected_document['data']['attributes']['field_revisionable_number'] = 99; $expected_document['links']['self']['href'] = $latest_version_url->setAbsolute()->toString(); // @todo: determine if this is the correct field value for revision_translation_affected. $expected_document['data']['attributes']['revision_translation_affected'] = NULL; @@ -2767,10 +2750,7 @@ abstract class ResourceTestBase extends BrowserTestBase { $this->assertResourceResponse(200, $expected_document, $actual_response, $expected_cache_tags, $expected_cache_contexts, FALSE, 'MISS'); // Set the 'draft' moderation state on the test entity. - $entity->set('field_revisionable_text', [ - 'value' => $star_trek_salutation, - 'format' => 'plain_text', - ]); + $entity->set('field_revisionable_number', 42); $entity->set('moderation_state', 'draft'); $entity->setNewRevision(); $entity->save(); @@ -2795,14 +2775,10 @@ abstract class ResourceTestBase extends BrowserTestBase { // Now, the `working-copy` link should be latest revision. $actual_response = $this->request('GET', $working_copy_url, $request_options); - $expected_document['data']['attributes']['vid'] = $draft_revision_id; + $expected_document['data']['attributes'][$revision_id_key] = $draft_revision_id; $expected_document['data']['attributes']['moderation_state'] = 'draft'; - $expected_document['data']['attributes'][$entity->getEntityType()->getKey('published')] = FALSE; - $expected_document['data']['attributes']['field_revisionable_text'] = [ - 'value' => $star_trek_salutation, - 'format' => 'plain_text', - 'processed' => "$star_trek_salutation
\n", - ]; + $expected_document['data']['attributes'][$published_key] = FALSE; + $expected_document['data']['attributes']['field_revisionable_number'] = 42; $expected_document['links']['self']['href'] = $working_copy_url->setAbsolute()->toString(); // @todo: determine if this is the correct field value for revision_translation_affected. $expected_document['data']['attributes']['revision_translation_affected'] = TRUE;