diff --git a/core/modules/media/tests/src/Functional/MediaSettingsTest.php b/core/modules/media/tests/src/Functional/MediaSettingsTest.php index 64b85db250..06df4a9f9a 100644 --- a/core/modules/media/tests/src/Functional/MediaSettingsTest.php +++ b/core/modules/media/tests/src/Functional/MediaSettingsTest.php @@ -2,6 +2,8 @@ namespace Drupal\Tests\media\Functional; +use Drupal\Core\Url; + /** * Testing the media settings. * @@ -19,7 +21,10 @@ class MediaSettingsTest extends MediaFunctionalTestBase { */ protected function setUp(): void { parent::setUp(); - $this->drupalLogin($this->createUser(['administer site configuration'])); + $this->drupalLogin($this->createUser([ + 'administer site configuration', + 'administer media', + ])); } /** @@ -37,4 +42,25 @@ public function testStatusPage() { $assert_session->pageTextContains('It is potentially insecure to display oEmbed content in a frame'); } + /** + * Tests that the media settings form stores a `null` iFrame domain. + */ + public function testSettingsForm(): void { + $assert_session = $this->assertSession(); + + $this->assertNull($this->config('media.settings')->get('iframe_domain')); + $this->drupalGet(Url::fromRoute('media.settings')); + $assert_session->fieldExists('iframe_domain'); + + // Explicitly submitting an empty string does not result in the + // `iframe_domain` property getting set to the empty string: it is converted + // to `null` to comply with the config schema. + // @see \Drupal\media\Form\MediaSettingsForm::submitForm() + $this->submitForm([ + 'iframe_domain' => '', + ], 'Save configuration'); + $assert_session->statusMessageContains('The configuration options have been saved.', 'status'); + $this->assertNull($this->config('media.settings')->get('iframe_domain')); + } + }