diff --git a/core/modules/action/action.permissions.yml b/core/modules/action/action.permissions.yml
deleted file mode 100644
index 03b5a449ea6829e1a16b88cf34bafc9bab23f062..0000000000000000000000000000000000000000
--- a/core/modules/action/action.permissions.yml
+++ /dev/null
@@ -1,3 +0,0 @@
-administer actions:
-  title: 'Administer actions'
-  restrict access: true
diff --git a/core/modules/action/tests/src/Functional/Jsonapi/ActionTest.php b/core/modules/jsonapi/tests/src/Functional/ActionTest.php
similarity index 93%
rename from core/modules/action/tests/src/Functional/Jsonapi/ActionTest.php
rename to core/modules/jsonapi/tests/src/Functional/ActionTest.php
index 1e76cc34877c438596ca59643828640ac5c7a207..a2bbb75b7a423f044324230d655aa43e0b31a951 100644
--- a/core/modules/action/tests/src/Functional/Jsonapi/ActionTest.php
+++ b/core/modules/jsonapi/tests/src/Functional/ActionTest.php
@@ -2,26 +2,24 @@
 
 declare(strict_types=1);
 
-namespace Drupal\Tests\action\Functional\Jsonapi;
+namespace Drupal\Tests\jsonapi\Functional;
 
 use Drupal\Core\Url;
-use Drupal\Tests\jsonapi\Functional\ConfigEntityResourceTestBase;
 use Drupal\system\Entity\Action;
 use Drupal\user\RoleInterface;
 
 /**
  * JSON:API integration test for the "Action" config entity type.
  *
- * @group action
+ * @group Action
  * @group #slow
- * @group legacy
  */
 class ActionTest extends ConfigEntityResourceTestBase {
 
   /**
    * {@inheritdoc}
    */
-  protected static $modules = ['action'];
+  protected static $modules = [];
 
   /**
    * {@inheritdoc}
diff --git a/core/modules/system/system.permissions.yml b/core/modules/system/system.permissions.yml
index d5c6c6b1d6f338bfc7cf3241f4eb78e9080519c5..a487f3c64c65fe8122d558c237ef3e1675d791d8 100644
--- a/core/modules/system/system.permissions.yml
+++ b/core/modules/system/system.permissions.yml
@@ -29,3 +29,6 @@ link to any page:
   description: 'This allows to bypass access checking when linking to internal paths.'
 administer menu:
   title: 'Administer menus and menu links'
+administer actions:
+  title: 'Administer actions'
+  restrict access: true
diff --git a/core/modules/action/tests/src/Functional/Rest/ActionJsonAnonTest.php b/core/modules/system/tests/src/Functional/Rest/ActionJsonAnonTest.php
similarity index 83%
rename from core/modules/action/tests/src/Functional/Rest/ActionJsonAnonTest.php
rename to core/modules/system/tests/src/Functional/Rest/ActionJsonAnonTest.php
index cdd6e4c88f37d6048596fc7f62c8eccbfba0455f..ad2ffe85c8a35d04bb5fdc300eb866185ae3ff05 100644
--- a/core/modules/action/tests/src/Functional/Rest/ActionJsonAnonTest.php
+++ b/core/modules/system/tests/src/Functional/Rest/ActionJsonAnonTest.php
@@ -2,13 +2,12 @@
 
 declare(strict_types=1);
 
-namespace Drupal\Tests\action\Functional\Rest;
+namespace Drupal\Tests\system\Functional\Rest;
 
 use Drupal\Tests\rest\Functional\AnonResourceTestTrait;
 
 /**
- * @group action
- * @group legacy
+ * @group Action
  */
 class ActionJsonAnonTest extends ActionResourceTestBase {
 
diff --git a/core/modules/action/tests/src/Functional/Rest/ActionJsonBasicAuthTest.php b/core/modules/system/tests/src/Functional/Rest/ActionJsonBasicAuthTest.php
similarity index 87%
rename from core/modules/action/tests/src/Functional/Rest/ActionJsonBasicAuthTest.php
rename to core/modules/system/tests/src/Functional/Rest/ActionJsonBasicAuthTest.php
index efbc0350303e2565ecfd3d1c831c3b0558d9da3f..fa535ec063ee00cac9eba9c6c993214f822ea29f 100644
--- a/core/modules/action/tests/src/Functional/Rest/ActionJsonBasicAuthTest.php
+++ b/core/modules/system/tests/src/Functional/Rest/ActionJsonBasicAuthTest.php
@@ -2,13 +2,12 @@
 
 declare(strict_types=1);
 
-namespace Drupal\Tests\action\Functional\Rest;
+namespace Drupal\Tests\system\Functional\Rest;
 
 use Drupal\Tests\rest\Functional\BasicAuthResourceTestTrait;
 
 /**
- * @group action
- * @group legacy
+ * @group Action
  */
 class ActionJsonBasicAuthTest extends ActionResourceTestBase {
 
diff --git a/core/modules/action/tests/src/Functional/Rest/ActionJsonCookieTest.php b/core/modules/system/tests/src/Functional/Rest/ActionJsonCookieTest.php
similarity index 85%
rename from core/modules/action/tests/src/Functional/Rest/ActionJsonCookieTest.php
rename to core/modules/system/tests/src/Functional/Rest/ActionJsonCookieTest.php
index 1fab66e231a1a88700945a0ae7bc796c838502b8..31508ca3e1197dddbc6a2436afe008536103b083 100644
--- a/core/modules/action/tests/src/Functional/Rest/ActionJsonCookieTest.php
+++ b/core/modules/system/tests/src/Functional/Rest/ActionJsonCookieTest.php
@@ -2,13 +2,12 @@
 
 declare(strict_types=1);
 
-namespace Drupal\Tests\action\Functional\Rest;
+namespace Drupal\Tests\system\Functional\Rest;
 
 use Drupal\Tests\rest\Functional\CookieResourceTestTrait;
 
 /**
- * @group action
- * @group legacy
+ * @group Action
  */
 class ActionJsonCookieTest extends ActionResourceTestBase {
 
diff --git a/core/modules/action/tests/src/Functional/Rest/ActionResourceTestBase.php b/core/modules/system/tests/src/Functional/Rest/ActionResourceTestBase.php
similarity index 88%
rename from core/modules/action/tests/src/Functional/Rest/ActionResourceTestBase.php
rename to core/modules/system/tests/src/Functional/Rest/ActionResourceTestBase.php
index 7864b199a79cd35753e25ee30f5844e1691def9f..8cd01e2643d785533ebeddac19f68bd1bcd84196 100644
--- a/core/modules/action/tests/src/Functional/Rest/ActionResourceTestBase.php
+++ b/core/modules/system/tests/src/Functional/Rest/ActionResourceTestBase.php
@@ -2,7 +2,7 @@
 
 declare(strict_types=1);
 
-namespace Drupal\Tests\action\Functional\Rest;
+namespace Drupal\Tests\system\Functional\Rest;
 
 use Drupal\Tests\rest\Functional\EntityResource\ConfigEntityResourceTestBase;
 use Drupal\system\Entity\Action;
@@ -13,7 +13,7 @@ abstract class ActionResourceTestBase extends ConfigEntityResourceTestBase {
   /**
    * {@inheritdoc}
    */
-  protected static $modules = ['action', 'user'];
+  protected static $modules = ['user'];
 
   /**
    * {@inheritdoc}
@@ -80,4 +80,13 @@ protected function getNormalizedPostEntity() {
     return [];
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  protected function getExpectedCacheContexts() {
+    return [
+      'user.permissions',
+    ];
+  }
+
 }
diff --git a/core/modules/action/tests/src/Functional/Rest/ActionXmlAnonTest.php b/core/modules/system/tests/src/Functional/Rest/ActionXmlAnonTest.php
similarity index 86%
rename from core/modules/action/tests/src/Functional/Rest/ActionXmlAnonTest.php
rename to core/modules/system/tests/src/Functional/Rest/ActionXmlAnonTest.php
index 28a99c08096d67d4439b24417e86a4d45b582095..cedd76fd9f48a8e24678a3bbc9cef504b85c8281 100644
--- a/core/modules/action/tests/src/Functional/Rest/ActionXmlAnonTest.php
+++ b/core/modules/system/tests/src/Functional/Rest/ActionXmlAnonTest.php
@@ -2,14 +2,13 @@
 
 declare(strict_types=1);
 
-namespace Drupal\Tests\action\Functional\Rest;
+namespace Drupal\Tests\system\Functional\Rest;
 
 use Drupal\Tests\rest\Functional\AnonResourceTestTrait;
 use Drupal\Tests\rest\Functional\EntityResource\XmlEntityNormalizationQuirksTrait;
 
 /**
- * @group action
- * @group legacy
+ * @group Action
  */
 class ActionXmlAnonTest extends ActionResourceTestBase {
 
diff --git a/core/modules/action/tests/src/Functional/Rest/ActionXmlBasicAuthTest.php b/core/modules/system/tests/src/Functional/Rest/ActionXmlBasicAuthTest.php
similarity index 89%
rename from core/modules/action/tests/src/Functional/Rest/ActionXmlBasicAuthTest.php
rename to core/modules/system/tests/src/Functional/Rest/ActionXmlBasicAuthTest.php
index 546baa482913a8b3ed64355248b19491bfe8378d..7e0b89a8bc0904cf7254e5321e05a65eea09f48c 100644
--- a/core/modules/action/tests/src/Functional/Rest/ActionXmlBasicAuthTest.php
+++ b/core/modules/system/tests/src/Functional/Rest/ActionXmlBasicAuthTest.php
@@ -2,14 +2,13 @@
 
 declare(strict_types=1);
 
-namespace Drupal\Tests\action\Functional\Rest;
+namespace Drupal\Tests\system\Functional\Rest;
 
 use Drupal\Tests\rest\Functional\BasicAuthResourceTestTrait;
 use Drupal\Tests\rest\Functional\EntityResource\XmlEntityNormalizationQuirksTrait;
 
 /**
- * @group action
- * @group legacy
+ * @group Action
  */
 class ActionXmlBasicAuthTest extends ActionResourceTestBase {
 
diff --git a/core/modules/action/tests/src/Functional/Rest/ActionXmlCookieTest.php b/core/modules/system/tests/src/Functional/Rest/ActionXmlCookieTest.php
similarity index 88%
rename from core/modules/action/tests/src/Functional/Rest/ActionXmlCookieTest.php
rename to core/modules/system/tests/src/Functional/Rest/ActionXmlCookieTest.php
index 497da8c4fe3eb51e04a311ab7e5ff41b66743a38..5577cc441a3ce96367040b3fd76a9e784c238728 100644
--- a/core/modules/action/tests/src/Functional/Rest/ActionXmlCookieTest.php
+++ b/core/modules/system/tests/src/Functional/Rest/ActionXmlCookieTest.php
@@ -2,14 +2,13 @@
 
 declare(strict_types=1);
 
-namespace Drupal\Tests\action\Functional\Rest;
+namespace Drupal\Tests\system\Functional\Rest;
 
 use Drupal\Tests\rest\Functional\CookieResourceTestTrait;
 use Drupal\Tests\rest\Functional\EntityResource\XmlEntityNormalizationQuirksTrait;
 
 /**
- * @group action
- * @group legacy
+ * @group Action
  */
 class ActionXmlCookieTest extends ActionResourceTestBase {
 
diff --git a/core/modules/user/tests/src/Kernel/Migrate/d7/MigrateUserRoleTest.php b/core/modules/user/tests/src/Kernel/Migrate/d7/MigrateUserRoleTest.php
index 2d1e2c63ff1e6276d2b366032e54d191c5eaa7b1..b9ed7aa03c2955e747b17ec8da8161b5ed07a57a 100644
--- a/core/modules/user/tests/src/Kernel/Migrate/d7/MigrateUserRoleTest.php
+++ b/core/modules/user/tests/src/Kernel/Migrate/d7/MigrateUserRoleTest.php
@@ -55,6 +55,7 @@ public function testUserRole() {
       'access site in maintenance mode',
       'access site reports',
       'access user profiles',
+      'administer actions',
       'administer menu',
       'administer modules',
       'administer permissions',
@@ -141,7 +142,6 @@ public function testUserRole() {
       'access toolbar',
       'access user contact forms',
       'add content to books',
-      'administer actions',
       'administer blocks',
       'administer book outlines',
       'administer comments',