diff --git a/core/modules/jsonapi/tests/src/Functional/JsonApiRegressionTest.php b/core/modules/jsonapi/tests/src/Functional/JsonApiRegressionTest.php index ee50246048d711b9f0a1b5f69b249625659fa81e..f17fba164ba0a66fece4a34c8d45861405a3663a 100644 --- a/core/modules/jsonapi/tests/src/Functional/JsonApiRegressionTest.php +++ b/core/modules/jsonapi/tests/src/Functional/JsonApiRegressionTest.php @@ -1027,43 +1027,6 @@ public function testRecursionDetectedWhenResponseContainsViolationsFrom3042124() $this->assertSame(sprintf('title: This value should not be null.'), $data['errors'][0]['detail']); } - /** - * Ensure that child comments can be retrieved via JSON:API. - */ - public function testLeakedCacheMetadataViaRdfFromIssue3053827() { - $this->assertTrue($this->container->get('module_installer')->install(['comment', 'rdf'], TRUE), 'Installed modules.'); - $this->addDefaultCommentField('node', 'article', 'comment', CommentItemInterface::OPEN, 'comment'); - $this->rebuildAll(); - - // Create data. - Node::create([ - 'title' => 'Commented Node', - 'type' => 'article', - ])->save(); - $default_values = [ - 'entity_id' => 1, - 'entity_type' => 'node', - 'field_name' => 'comment', - 'status' => 1, - ]; - $parent = Comment::create(['subject' => 'Marlin'] + $default_values); - $parent->save(); - $child = Comment::create(['subject' => 'Nemo', 'pid' => $parent->id()] + $default_values); - $child->save(); - - // Test. - $user = $this->drupalCreateUser(['access comments']); - $request_options = [ - RequestOptions::AUTH => [ - $user->getAccountName(), - $user->pass_raw, - ], - ]; - // Requesting the comment collection should succeed. - $response = $this->request('GET', Url::fromUri('internal:/jsonapi/comment/comment'), $request_options); - $this->assertSame(200, $response->getStatusCode()); - } - /** * Ensure non-translatable entities can be PATCHed with an alternate language. * diff --git a/core/modules/migrate_drupal_ui/tests/src/Functional/d6/Upgrade6Test.php b/core/modules/migrate_drupal_ui/tests/src/Functional/d6/Upgrade6Test.php index 6a1dfc721430196a1442dc9f9ae759290d84cc29..fb85520432ba3d569b588648b7ebbd399aa7a194 100644 --- a/core/modules/migrate_drupal_ui/tests/src/Functional/d6/Upgrade6Test.php +++ b/core/modules/migrate_drupal_ui/tests/src/Functional/d6/Upgrade6Test.php @@ -25,7 +25,6 @@ class Upgrade6Test extends MigrateUpgradeExecuteTestBase { 'forum', 'language', 'migrate_drupal_ui', - 'rdf', 'statistics', 'telephone', 'update', @@ -54,9 +53,6 @@ protected function setUp(): void { $this->nodeStorage->delete($this->nodeStorage->loadMultiple()); $this->loadFixture($this->getModulePath('migrate_drupal') . '/tests/fixtures/drupal6.php'); - - // @todo Remove this in https://www.drupal.org/node/3267515 - \Drupal::service('module_installer')->uninstall(['rdf']); } /** diff --git a/core/modules/migrate_drupal_ui/tests/src/Functional/d7/MultilingualReviewPageTest.php b/core/modules/migrate_drupal_ui/tests/src/Functional/d7/MultilingualReviewPageTest.php index 50013aec856ee723cfc84ee60d4738c03684811d..80937f4765100385ab18a3246ecd097cef634086 100644 --- a/core/modules/migrate_drupal_ui/tests/src/Functional/d7/MultilingualReviewPageTest.php +++ b/core/modules/migrate_drupal_ui/tests/src/Functional/d7/MultilingualReviewPageTest.php @@ -26,7 +26,6 @@ class MultilingualReviewPageTest extends MultilingualReviewPageTestBase { 'telephone', 'book', 'forum', - 'rdf', 'statistics', 'syslog', 'update', @@ -41,9 +40,6 @@ class MultilingualReviewPageTest extends MultilingualReviewPageTestBase { protected function setUp(): void { parent::setUp(); $this->loadFixture($this->getModulePath('migrate_drupal') . '/tests/fixtures/drupal7.php'); - - // @todo Remove this in https://www.drupal.org/node/3267515 - \Drupal::service('module_installer')->uninstall(['rdf']); } /** diff --git a/core/modules/migrate_drupal_ui/tests/src/Functional/d7/NoMultilingualReviewPageTest.php b/core/modules/migrate_drupal_ui/tests/src/Functional/d7/NoMultilingualReviewPageTest.php index e3a5545b8f6057ffa6c13d69e4933b2c91d9e95c..1b15ca01845715aef8b4da86a2ca550a78b61145 100644 --- a/core/modules/migrate_drupal_ui/tests/src/Functional/d7/NoMultilingualReviewPageTest.php +++ b/core/modules/migrate_drupal_ui/tests/src/Functional/d7/NoMultilingualReviewPageTest.php @@ -27,7 +27,6 @@ class NoMultilingualReviewPageTest extends NoMultilingualReviewPageTestBase { 'forum', 'language', 'migrate_drupal_ui', - 'rdf', 'statistics', 'telephone', ]; @@ -38,9 +37,6 @@ class NoMultilingualReviewPageTest extends NoMultilingualReviewPageTestBase { protected function setUp(): void { parent::setUp(); $this->loadFixture($this->getModulePath('migrate_drupal') . '/tests/fixtures/drupal7.php'); - - // @todo Remove this in https://www.drupal.org/node/3267515 - \Drupal::service('module_installer')->uninstall(['rdf']); } /** diff --git a/core/modules/migrate_drupal_ui/tests/src/Functional/d7/Upgrade7Test.php b/core/modules/migrate_drupal_ui/tests/src/Functional/d7/Upgrade7Test.php index 68db192ff960d9869ab7ec7e79f861ca8883b802..894e718db29bc516aa67f360442bc0fa69df6a1e 100644 --- a/core/modules/migrate_drupal_ui/tests/src/Functional/d7/Upgrade7Test.php +++ b/core/modules/migrate_drupal_ui/tests/src/Functional/d7/Upgrade7Test.php @@ -28,7 +28,6 @@ class Upgrade7Test extends MigrateUpgradeExecuteTestBase { 'forum', 'language', 'migrate_drupal_ui', - 'rdf', 'statistics', 'telephone', ]; @@ -57,9 +56,6 @@ protected function setUp(): void { $this->nodeStorage->delete($this->nodeStorage->loadMultiple()); $this->loadFixture($this->getModulePath('migrate_drupal') . '/tests/fixtures/drupal7.php'); - - // @todo Remove this in https://www.drupal.org/node/3267515 - \Drupal::service('module_installer')->uninstall(['rdf']); } /** diff --git a/core/modules/node/tests/modules/node_display_configurable_test/node_display_configurable_test.info.yml b/core/modules/rdf/tests/node_display_configurable_test/node_display_configurable_test.info.yml similarity index 100% rename from core/modules/node/tests/modules/node_display_configurable_test/node_display_configurable_test.info.yml rename to core/modules/rdf/tests/node_display_configurable_test/node_display_configurable_test.info.yml diff --git a/core/modules/node/tests/modules/node_display_configurable_test/node_display_configurable_test.module b/core/modules/rdf/tests/node_display_configurable_test/node_display_configurable_test.module similarity index 100% rename from core/modules/node/tests/modules/node_display_configurable_test/node_display_configurable_test.module rename to core/modules/rdf/tests/node_display_configurable_test/node_display_configurable_test.module diff --git a/core/modules/rdf/tests/src/Functional/Jsonapi/JsonApiRegressionTest.php b/core/modules/rdf/tests/src/Functional/Jsonapi/JsonApiRegressionTest.php new file mode 100644 index 0000000000000000000000000000000000000000..6abc4f6ac0582df96bad71c86fed58950fd5ffad --- /dev/null +++ b/core/modules/rdf/tests/src/Functional/Jsonapi/JsonApiRegressionTest.php @@ -0,0 +1,66 @@ +<?php + +namespace Drupal\Tests\rdf\Functional\Jsonapi; + +use Drupal\comment\Entity\Comment; +use Drupal\comment\Tests\CommentTestTrait; +use Drupal\Core\Url; +use Drupal\node\Entity\Node; +use Drupal\Tests\jsonapi\Functional\JsonApiFunctionalTestBase; +use GuzzleHttp\RequestOptions; + +/** + * JSON:API regression tests. + * + * @group jsonapi + * @group rdf + */ +class JsonApiRegressionTest extends JsonApiFunctionalTestBase { + + use CommentTestTrait; + + /** + * {@inheritdoc} + */ + protected static $modules = [ + 'basic_auth', + 'comment', + 'rdf', + ]; + + /** + * Ensure that child comments can be retrieved via JSON:API. + */ + public function testLeakedCacheMetadataViaRdfFromIssue3053827(): void { + $this->addDefaultCommentField('node', 'article'); + $this->rebuildAll(); + + Node::create([ + 'title' => 'Commented Node', + 'type' => 'article', + ])->save(); + $default_values = [ + 'entity_id' => 1, + 'entity_type' => 'node', + 'field_name' => 'comment', + 'status' => 1, + ]; + $parent = Comment::create(['subject' => 'Marlin'] + $default_values); + $parent->save(); + $child = Comment::create(['subject' => 'Nemo', 'pid' => $parent->id()] + $default_values); + $child->save(); + + $user = $this->drupalCreateUser(['access comments']); + $request_options = [ + RequestOptions::AUTH => [ + $user->getAccountName(), + $user->pass_raw, + ], + ]; + + // Requesting the comment collection should succeed. + $response = $this->request('GET', Url::fromUri('internal:/jsonapi/comment/comment'), $request_options); + $this->assertSame(200, $response->getStatusCode()); + } + +} diff --git a/core/modules/jsonapi/tests/src/Functional/RdfMappingTest.php b/core/modules/rdf/tests/src/Functional/Jsonapi/RdfMappingTest.php similarity index 96% rename from core/modules/jsonapi/tests/src/Functional/RdfMappingTest.php rename to core/modules/rdf/tests/src/Functional/Jsonapi/RdfMappingTest.php index 61e0f378ee1e5b6b80faf4ee4ab2b1fc470a1488..5906406863f243d19a4939475fe778c9adc09b72 100644 --- a/core/modules/jsonapi/tests/src/Functional/RdfMappingTest.php +++ b/core/modules/rdf/tests/src/Functional/Jsonapi/RdfMappingTest.php @@ -1,15 +1,17 @@ <?php -namespace Drupal\Tests\jsonapi\Functional; +namespace Drupal\Tests\rdf\Functional\Jsonapi; use Drupal\Core\Url; use Drupal\node\Entity\NodeType; use Drupal\rdf\Entity\RdfMapping; +use Drupal\Tests\jsonapi\Functional\ConfigEntityResourceTestBase; /** * JSON:API integration test for the "RdfMapping" config entity type. * * @group jsonapi + * @group rdf */ class RdfMappingTest extends ConfigEntityResourceTestBase { diff --git a/core/modules/node/tests/src/Functional/NodeDisplayConfigurableTest.php b/core/modules/rdf/tests/src/Functional/Node/NodeDisplayConfigurableTest.php similarity index 97% rename from core/modules/node/tests/src/Functional/NodeDisplayConfigurableTest.php rename to core/modules/rdf/tests/src/Functional/Node/NodeDisplayConfigurableTest.php index 9bec874fb1a3b92bb2d5128efa15ffb2d940c3c8..ae5d979011547a7deac95a15afe5e4dd3857e1af 100644 --- a/core/modules/node/tests/src/Functional/NodeDisplayConfigurableTest.php +++ b/core/modules/rdf/tests/src/Functional/Node/NodeDisplayConfigurableTest.php @@ -1,15 +1,17 @@ <?php -namespace Drupal\Tests\node\Functional; +namespace Drupal\Tests\rdf\Functional\Node; use Drupal\Core\Entity\Entity\EntityViewDisplay; use Drupal\node\NodeInterface; +use Drupal\Tests\node\Functional\NodeTestBase; use Drupal\user\UserInterface; /** * Tests making node base fields' displays configurable. * * @group node + * @group rdf */ class NodeDisplayConfigurableTest extends NodeTestBase { @@ -54,7 +56,7 @@ protected function setUp(): void { * * @dataProvider provideThemes */ - public function testDisplayConfigurable(string $theme, string $metadata_region, bool $field_classes) { + public function testDisplayConfigurable(string $theme, string $metadata_region, bool $field_classes): void { // Change the node type setting to show submitted by information. $node_type = \Drupal::entityTypeManager()->getStorage('node_type')->load('page'); $node_type->setDisplaySubmitted(TRUE); diff --git a/core/modules/system/tests/modules/entity_test/entity_test.module b/core/modules/system/tests/modules/entity_test/entity_test.module index 68b33b2ff7ff88891b93da937bd7acc5de90d3a5..52867f8508c9cb7032faeab6b5c8d814513e49c9 100644 --- a/core/modules/system/tests/modules/entity_test/entity_test.module +++ b/core/modules/system/tests/modules/entity_test/entity_test.module @@ -693,14 +693,18 @@ function entity_test_entity_prepare_view($entity_type, array $entities, array $d foreach ($entities as $entity) { /** @var \Drupal\Core\Entity\ContentEntityInterface $entity */ - // Add a dummy field item attribute on field_test_text if it exists. + // Add field item attributes on field_test_text if it exists. + // See \Drupal\Tests\system\Functional\Entity\EntityViewControllerTest::testFieldItemAttributes(). if ($entity->hasField('field_test_text') && $displays[$entity->bundle()]->getComponent('field_test_text')) { foreach ($entity->get('field_test_text') as $item) { - $item->_attributes += ['data-field-item-attr' => 'foobar']; + $item->_attributes += [ + 'data-field-item-attr' => 'foobar', + 'property' => 'schema:text', + ]; } } - // Add a dummy field item attribute on daterange fields if they exist. + // Add an item attribute on daterange fields if they exist. $fields = $entity->getFieldDefinitions(); foreach ($fields as $field) { if ($field->getType() === 'daterange') { diff --git a/core/modules/system/tests/src/Functional/Entity/EntityViewControllerTest.php b/core/modules/system/tests/src/Functional/Entity/EntityViewControllerTest.php index 8ec23e044b3542745e33bcd2299e7b53fad486bd..363340f8e836ec65e13feae7dad20ae1f6f57a59 100644 --- a/core/modules/system/tests/src/Functional/Entity/EntityViewControllerTest.php +++ b/core/modules/system/tests/src/Functional/Entity/EntityViewControllerTest.php @@ -104,22 +104,6 @@ public function testFieldItemAttributes() { // Browse to the entity and verify that the attribute is rendered in the // field item HTML markup. $this->drupalGet('entity_test/' . $entity->id()); - $this->assertSession()->elementTextEquals('xpath', '//div[@data-field-item-attr="foobar"]/p', $test_value); - - // Enable the RDF module to ensure that two modules can add attributes to - // the same field item. - \Drupal::service('module_installer')->install(['rdf']); - $this->resetAll(); - - // Set an RDF mapping for the field_test_text field. This RDF mapping will - // be turned into RDFa attributes in the field item output. - $mapping = rdf_get_mapping('entity_test', 'entity_test'); - $mapping->setFieldMapping('field_test_text', [ - 'properties' => ['schema:text'], - ])->save(); - // Browse to the entity and verify that the attributes from both modules - // are rendered in the field item HTML markup. - $this->drupalGet('entity_test/' . $entity->id()); $this->assertSession()->elementTextEquals('xpath', '//div[@data-field-item-attr="foobar" and @property="schema:text"]/p', $test_value); }