diff --git a/tests/search_api_test_no_ui/search_api_test_no_ui.info.yml b/tests/search_api_test_no_ui/search_api_test_no_ui.info.yml
new file mode 100644
index 00000000..84579726
--- /dev/null
+++ b/tests/search_api_test_no_ui/search_api_test_no_ui.info.yml
@@ -0,0 +1,8 @@
+name: 'Search API Test no UI'
+type: module
+description: 'Support module for Search API tests (No UI plugins)'
+package: Search
+dependencies:
+  - search_api:search_api
+core: 8.x
+hidden: true
diff --git a/tests/search_api_test_no_ui/src/Plugin/search_api/processor/NoUiTest.php b/tests/search_api_test_no_ui/src/Plugin/search_api/processor/NoUiTest.php
new file mode 100644
index 00000000..88bb433c
--- /dev/null
+++ b/tests/search_api_test_no_ui/src/Plugin/search_api/processor/NoUiTest.php
@@ -0,0 +1,33 @@
+<?php
+
+namespace Drupal\search_api_test_no_ui\Plugin\search_api\processor;
+
+use Drupal\search_api\IndexInterface;
+use Drupal\search_api\Processor\ProcessorPluginBase;
+
+/**
+ * Provides a processor with dependencies, for the dependency removal tests.
+ *
+ * @SearchApiProcessor(
+ *   id = "search_api_test",
+ *   label = @Translation("No UI processor"),
+ *   no_ui = true
+ * )
+ */
+class NoUiTest extends ProcessorPluginBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  public static function supportsIndex(IndexInterface $index) {
+    return TRUE;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function supportsStage($stage_identifier) {
+    return TRUE;
+  }
+
+}
diff --git a/tests/src/Functional/ProcessorIntegrationTest.php b/tests/src/Functional/ProcessorIntegrationTest.php
index 3f24e8ec..b2cf64c9 100644
--- a/tests/src/Functional/ProcessorIntegrationTest.php
+++ b/tests/src/Functional/ProcessorIntegrationTest.php
@@ -30,6 +30,7 @@ class ProcessorIntegrationTest extends SearchApiBrowserTestBase {
   public static $modules = [
     'filter',
     'taxonomy',
+    'search_api_test_no_ui',
   ];
 
   /**
@@ -305,6 +306,14 @@ class ProcessorIntegrationTest extends SearchApiBrowserTestBase {
     $this->assertSession()->pageTextNotContains('Stopwords');
   }
 
+  /**
+   * Tests no_ui for UI selectable plugins.
+   */
+  public function testNoUiPlugins() {
+    $this->loadProcessorsTab();
+    $this->assertSession()->pageTextNotContains('No UI processor');
+  }
+
   /**
    * Tests the integration of the "Aggregated fields" processor.
    */
