diff --git a/modules/video_embed_wysiwyg/config/install/image.style.video_embed_wysiwyg_preview.yml b/modules/video_embed_wysiwyg/config/install/image.style.video_embed_wysiwyg_preview.yml
index e9b142f..1079547 100644
--- a/modules/video_embed_wysiwyg/config/install/image.style.video_embed_wysiwyg_preview.yml
+++ b/modules/video_embed_wysiwyg/config/install/image.style.video_embed_wysiwyg_preview.yml
@@ -1,9 +1,5 @@
 langcode: en
 status: true
-dependencies:
-  enforced:
-    module:
-      - video_embed_wysiwyg
 name: video_embed_wysiwyg_preview
 label: 'Video Embed Wysiwyg: Thumbnail Preview'
 effects:
diff --git a/tests/src/Functional/InstallationTest.php b/tests/src/Functional/InstallationTest.php
new file mode 100644
index 0000000..e421a02
--- /dev/null
+++ b/tests/src/Functional/InstallationTest.php
@@ -0,0 +1,79 @@
+<?php
+
+namespace Drupal\Tests\video_embed_field\Functional;
+
+use Drupal\local_testing\LocalTestingTrait;
+use Drupal\Tests\BrowserTestBase;
+
+/**
+ * Test the modules install and uninstall cleanly.
+ */
+class InstallationTest extends BrowserTestBase {
+
+  use AdminUserTrait;
+  use LocalTestingTrait;
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setUp() {
+    parent::setUp();
+    $this->drupalLogin($this->createAdminUser());
+  }
+
+  /**
+   * Test the installation and uninstallation of the the modules.
+   */
+  public function testInstallation() {
+    $this->assertInstallationStatus(FALSE);
+    $this->installModules();
+    $this->assertInstallationStatus(TRUE);
+    $this->uninstallModules();
+    $this->assertInstallationStatus(FALSE);
+    $this->installModules();
+    $this->assertInstallationStatus(TRUE);
+  }
+
+  /**
+   * Assert the installation status of the modules.
+   *
+   * @param bool $installed
+   *   If the modules should be installed or not.
+   */
+  protected function assertInstallationStatus($installed) {
+    $this->drupalGet('admin/modules');
+    foreach (['video_embed_field', 'video_embed_media', 'video_embed_wyswiyg'] as $module) {
+      $this->getSession()->getPage()->{$installed ? 'hasCheckedField' : 'hasUncheckedField'}('modules[Video Embed Field][' . $module . '][enable]');
+    }
+  }
+
+  /**
+   * Uninstall the module using the UI.
+   */
+  protected function uninstallModules() {
+    $this->drupalPostForm('admin/modules/uninstall', [
+      'uninstall[video_embed_wysiwyg]' => TRUE,
+      'uninstall[video_embed_media]' => TRUE,
+    ], 'Uninstall');
+    $this->getSession()->getPage()->pressButton('Uninstall');
+    $this->drupalPostForm('admin/modules/uninstall', [
+      'uninstall[video_embed_field]' => TRUE,
+    ], 'Uninstall');
+    $this->getSession()->getPage()->pressButton('Uninstall');
+  }
+
+  /**
+   * Install the modules using the UI.
+   */
+  protected function installModules() {
+    $this->drupalPostForm('admin/modules', [
+      'modules[Video Embed Field][video_embed_field][enable]' => TRUE,
+      'modules[Video Embed Field][video_embed_media][enable]' => TRUE,
+      'modules[Video Embed Field][video_embed_wysiwyg][enable]' => TRUE,
+    ], 'Install');
+    if ($button = $this->getSession()->getPage()->findButton('Continue')) {
+      $button->press();
+    }
+  }
+
+}
