diff --git a/konamicode.info.yml b/konamicode.info.yml index 6f7e96468c52ff32b2aaca069896e6d7fa2af413..b2e98766ef14543f7eb8d9072ca951425dd0e152 100644 --- a/konamicode.info.yml +++ b/konamicode.info.yml @@ -2,6 +2,6 @@ name: Konami Code type: module description: Performs special actions when the user enters the Konami Code. package: Other -core_version_requirement: ^8.8 || ^9 || ^10 || ^11 +core_version_requirement: ^10.2 || ^11 configure: konamicode.configuration diff --git a/konamicode.module b/konamicode.module index de4fd11307e3110a5774bef2bf259721b902b86c..462881a290c2adcbbbfac8071381789bf36b1938 100644 --- a/konamicode.module +++ b/konamicode.module @@ -20,9 +20,9 @@ function konamicode_help($route_name, RouteMatchInterface $route_match) { <h3>Instructions</h3> <p>Install the module like any other module in the <em>modules/contrib</em> folder and enable in <strong>/admin/modules</strong>.</p> <p>Then, visit <strong>/admin/config/user-interface/konamicode</strong> to configure the different <em>actions</em> and options for each of the actions.</p> - <p>Last, visit any page and enter the configured Konami code.</p> + <p>Last, visit any page and enter the configured Konami code.</p> <h3>Documentation</h3> - <p>The complete documentation guide can be found at the dedicated <a href="https://www.drupal.org/docs/8/modules/konami-code">documentation</a> page.</p> + <p>The complete documentation guide can be found at the dedicated <a href="https://www.drupal.org/docs/8/modules/konami-code">documentation</a> page.</p> '); } } @@ -64,7 +64,7 @@ function konamicode_page_attachments(array &$page) { $raw_configuration = $config->getRawData(); // Fetch the Konami Code settings. - $main_configuration_class = new KonamicodeMainConfiguration(\Drupal::configFactory()); + $main_configuration_class = \Drupal::service('konamicode.main_configuration'); $actions = $main_configuration_class->getAllActions(); // Loop over all the actions. diff --git a/konamicode.services.yml b/konamicode.services.yml new file mode 100644 index 0000000000000000000000000000000000000000..ff1b29200e48f4df56259e616eae8ec8bcd5139b --- /dev/null +++ b/konamicode.services.yml @@ -0,0 +1,4 @@ +services: + konamicode.main_configuration: + class: Drupal\konamicode\Form\KonamicodeMainConfiguration + arguments: [ '@config.factory', '@config.typed' ] diff --git a/src/Form/KonamicodeActionAlertConfiguration.php b/src/Form/KonamicodeActionAlertConfiguration.php index a17a71767720a665a18a3e2509698bd5de540d48..a59d8ae5a7fe47aae0fd3d4196669ac46243096d 100644 --- a/src/Form/KonamicodeActionAlertConfiguration.php +++ b/src/Form/KonamicodeActionAlertConfiguration.php @@ -3,6 +3,7 @@ namespace Drupal\konamicode\Form; use Drupal\Core\Config\ConfigFactoryInterface; +use Drupal\Core\Config\TypedConfigManagerInterface; use Drupal\Core\Form\FormStateInterface; /** @@ -16,8 +17,8 @@ class KonamicodeActionAlertConfiguration extends KonamicodeActionBaseConfigurati /** * {@inheritdoc} */ - public function __construct(ConfigFactoryInterface $config_factory) { - parent::__construct($config_factory, self::$name, self::$machineName); + public function __construct(ConfigFactoryInterface $config_factory, TypedConfigManagerInterface $typed_config_manager) { + parent::__construct($config_factory, $typed_config_manager, self::$name, self::$machineName); } /** diff --git a/src/Form/KonamicodeActionAsteroidsConfiguration.php b/src/Form/KonamicodeActionAsteroidsConfiguration.php index 10bfe01c5f8e55fb75990fb99e0f1f5de1e1385d..683f6be2aa27d63473219829714c9ce6fadcc4d8 100644 --- a/src/Form/KonamicodeActionAsteroidsConfiguration.php +++ b/src/Form/KonamicodeActionAsteroidsConfiguration.php @@ -3,6 +3,7 @@ namespace Drupal\konamicode\Form; use Drupal\Core\Config\ConfigFactoryInterface; +use Drupal\Core\Config\TypedConfigManagerInterface; use Drupal\Core\Form\FormStateInterface; /** @@ -17,8 +18,8 @@ class KonamicodeActionAsteroidsConfiguration extends KonamicodeActionBaseConfigu /** * {@inheritdoc} */ - public function __construct(ConfigFactoryInterface $config_factory) { - parent::__construct($config_factory, self::$name, self::$machineName, self::$dependencies); + public function __construct(ConfigFactoryInterface $config_factory, TypedConfigManagerInterface $typed_config_manager) { + parent::__construct($config_factory, $typed_config_manager, self::$name, self::$machineName, self::$dependencies); } /** diff --git a/src/Form/KonamicodeActionBaseConfiguration.php b/src/Form/KonamicodeActionBaseConfiguration.php index 340079dc6516e381c8ac53a9eb62ef2c55a0bf8c..1b9d56d81f7e2d206e166014345dff0e7761efd4 100644 --- a/src/Form/KonamicodeActionBaseConfiguration.php +++ b/src/Form/KonamicodeActionBaseConfiguration.php @@ -3,6 +3,7 @@ namespace Drupal\konamicode\Form; use Drupal\Core\Config\ConfigFactoryInterface; +use Drupal\Core\Config\TypedConfigManagerInterface; use Drupal\Core\Form\FormStateInterface; /** @@ -51,6 +52,8 @@ class KonamicodeActionBaseConfiguration extends KonamicodeMainConfiguration { * * @param Drupal\Core\Config\ConfigFactoryInterface $config_factory * The ConfigFactoryInterface. + * @param \Drupal\Core\Config\TypedConfigManagerInterface $typedConfigManager + * The typed config manager. * @param string $name * Action name. * @param string $machine_name @@ -59,11 +62,11 @@ class KonamicodeActionBaseConfiguration extends KonamicodeMainConfiguration { * Optional: An array of dependencies. The dependency name must match the * name set in the konamicode.libraries.yml file. */ - public function __construct(ConfigFactoryInterface $config_factory, $name, $machine_name, array $dependencies = []) { + public function __construct(ConfigFactoryInterface $config_factory, TypedConfigManagerInterface $typed_config_manager, $name, $machine_name, array $dependencies = []) { $this->setName($name); $this->setMachineName($machine_name); $this->setDependencies($dependencies); - parent::__construct($config_factory); + parent::__construct($config_factory, $typed_config_manager); } /** diff --git a/src/Form/KonamicodeActionFlipTextConfiguration.php b/src/Form/KonamicodeActionFlipTextConfiguration.php index dca7b12cfab39daafca84e1b606678bf77a2d892..a30d9a118288e8957ad19be5a2a87f28ed13b7ef 100644 --- a/src/Form/KonamicodeActionFlipTextConfiguration.php +++ b/src/Form/KonamicodeActionFlipTextConfiguration.php @@ -3,6 +3,7 @@ namespace Drupal\konamicode\Form; use Drupal\Core\Config\ConfigFactoryInterface; +use Drupal\Core\Config\TypedConfigManagerInterface; use Drupal\Core\Form\FormStateInterface; /** @@ -17,8 +18,8 @@ class KonamicodeActionFlipTextConfiguration extends KonamicodeActionBaseConfigur /** * {@inheritdoc} */ - public function __construct(ConfigFactoryInterface $config_factory) { - parent::__construct($config_factory, self::$name, self::$machineName, self::$dependencies); + public function __construct(ConfigFactoryInterface $config_factory, TypedConfigManagerInterface $typed_config_manager) { + parent::__construct($config_factory, $typed_config_manager, self::$name, self::$machineName, self::$dependencies); } /** diff --git a/src/Form/KonamicodeActionImageSpawnConfiguration.php b/src/Form/KonamicodeActionImageSpawnConfiguration.php index 5a5861371b6b09059bdca6e4514e2d67643e4af6..de87bef4cce7b16da26b7e620c187207173638fe 100644 --- a/src/Form/KonamicodeActionImageSpawnConfiguration.php +++ b/src/Form/KonamicodeActionImageSpawnConfiguration.php @@ -3,6 +3,7 @@ namespace Drupal\konamicode\Form; use Drupal\Core\Config\ConfigFactoryInterface; +use Drupal\Core\Config\TypedConfigManagerInterface; use Drupal\Core\Form\FormStateInterface; /** @@ -17,8 +18,8 @@ class KonamicodeActionImageSpawnConfiguration extends KonamicodeActionBaseConfig /** * {@inheritdoc} */ - public function __construct(ConfigFactoryInterface $config_factory) { - parent::__construct($config_factory, self::$name, self::$machineName, self::$dependencies); + public function __construct(ConfigFactoryInterface $config_factory, TypedConfigManagerInterface $typed_config_manager) { + parent::__construct($config_factory, $typed_config_manager, self::$name, self::$machineName, self::$dependencies); } /** diff --git a/src/Form/KonamicodeActionRaptorizeConfiguration.php b/src/Form/KonamicodeActionRaptorizeConfiguration.php index 87ac67ae8ba53993d8beaf05a41cf026eddb0463..5f572f4b9ae029864da2f5b141e0e2ce7d3114c9 100644 --- a/src/Form/KonamicodeActionRaptorizeConfiguration.php +++ b/src/Form/KonamicodeActionRaptorizeConfiguration.php @@ -3,6 +3,7 @@ namespace Drupal\konamicode\Form; use Drupal\Core\Config\ConfigFactoryInterface; +use Drupal\Core\Config\TypedConfigManagerInterface; use Drupal\Core\Form\FormStateInterface; /** @@ -17,8 +18,8 @@ class KonamicodeActionRaptorizeConfiguration extends KonamicodeActionBaseConfigu /** * {@inheritdoc} */ - public function __construct(ConfigFactoryInterface $config_factory) { - parent::__construct($config_factory, self::$name, self::$machineName, self::$dependencies); + public function __construct(ConfigFactoryInterface $config_factory, TypedConfigManagerInterface $typed_config_manager) { + parent::__construct($config_factory, $typed_config_manager, self::$name, self::$machineName, self::$dependencies); } /** diff --git a/src/Form/KonamicodeActionRedirectConfiguration.php b/src/Form/KonamicodeActionRedirectConfiguration.php index c2667b9ffadb8bee7036a5e7b0cd4b6528df856e..60590ff5779abbccd83877eef82789e4ff85aff5 100644 --- a/src/Form/KonamicodeActionRedirectConfiguration.php +++ b/src/Form/KonamicodeActionRedirectConfiguration.php @@ -3,6 +3,7 @@ namespace Drupal\konamicode\Form; use Drupal\Core\Config\ConfigFactoryInterface; +use Drupal\Core\Config\TypedConfigManagerInterface; use Drupal\Core\Form\FormStateInterface; /** @@ -16,8 +17,8 @@ class KonamicodeActionRedirectConfiguration extends KonamicodeActionBaseConfigur /** * {@inheritdoc} */ - public function __construct(ConfigFactoryInterface $config_factory) { - parent::__construct($config_factory, self::$name, self::$machineName); + public function __construct(ConfigFactoryInterface $config_factory, TypedConfigManagerInterface $typed_config_manager) { + parent::__construct($config_factory, $typed_config_manager, self::$name, self::$machineName); } /** diff --git a/src/Form/KonamicodeActionReplaceImagesConfiguration.php b/src/Form/KonamicodeActionReplaceImagesConfiguration.php index b29fb3ec4daea365c51ba3f37df284052c2e6131..8c972e299e34838dbecb86773d0b76262563c895 100644 --- a/src/Form/KonamicodeActionReplaceImagesConfiguration.php +++ b/src/Form/KonamicodeActionReplaceImagesConfiguration.php @@ -3,6 +3,7 @@ namespace Drupal\konamicode\Form; use Drupal\Core\Config\ConfigFactoryInterface; +use Drupal\Core\Config\TypedConfigManagerInterface; use Drupal\Core\Form\FormStateInterface; /** @@ -16,8 +17,8 @@ class KonamicodeActionReplaceImagesConfiguration extends KonamicodeActionBaseCon /** * {@inheritdoc} */ - public function __construct(ConfigFactoryInterface $config_factory) { - parent::__construct($config_factory, self::$name, self::$machineName); + public function __construct(ConfigFactoryInterface $config_factory, TypedConfigManagerInterface $typed_config_manager) { + parent::__construct($config_factory, $typed_config_manager, self::$name, self::$machineName); } /** diff --git a/src/Form/KonamicodeActionSnowfallConfiguration.php b/src/Form/KonamicodeActionSnowfallConfiguration.php index 69839dc83fe55cff9b39507493eacd3a11fa347e..14c43852ff93a56a4a47e3aa595d2a0beff774a2 100644 --- a/src/Form/KonamicodeActionSnowfallConfiguration.php +++ b/src/Form/KonamicodeActionSnowfallConfiguration.php @@ -3,6 +3,7 @@ namespace Drupal\konamicode\Form; use Drupal\Core\Config\ConfigFactoryInterface; +use Drupal\Core\Config\TypedConfigManagerInterface; use Drupal\Core\Form\FormStateInterface; use Drupal\Core\Link; use Drupal\Core\Url; @@ -19,8 +20,8 @@ class KonamicodeActionSnowfallConfiguration extends KonamicodeActionBaseConfigur /** * {@inheritdoc} */ - public function __construct(ConfigFactoryInterface $config_factory) { - parent::__construct($config_factory, self::$name, self::$machineName, self::$dependencies); + public function __construct(ConfigFactoryInterface $config_factory, TypedConfigManagerInterface $typed_config_manager) { + parent::__construct($config_factory, $typed_config_manager, self::$name, self::$machineName, self::$dependencies); } /** diff --git a/src/Form/KonamicodeMainConfiguration.php b/src/Form/KonamicodeMainConfiguration.php index 1692bc6abdc61c3ab900c9bf3d558e4a742aeeb0..291dadc289468c45c243eb768c9cf431530d0925 100644 --- a/src/Form/KonamicodeMainConfiguration.php +++ b/src/Form/KonamicodeMainConfiguration.php @@ -109,14 +109,14 @@ class KonamicodeMainConfiguration extends ConfigFormBase { */ public function getAllActions() { return [ - new KonamicodeActionRedirectConfiguration($this->configFactory), - new KonamicodeActionAlertConfiguration($this->configFactory), - new KonamicodeActionRaptorizeConfiguration($this->configFactory), - new KonamicodeActionFlipTextConfiguration($this->configFactory), - new KonamicodeActionImageSpawnConfiguration($this->configFactory), - new KonamicodeActionReplaceImagesConfiguration($this->configFactory), - new KonamicodeActionSnowfallConfiguration($this->configFactory), - new KonamicodeActionAsteroidsConfiguration($this->configFactory), + new KonamicodeActionRedirectConfiguration($this->configFactory, $this->typedConfigManager), + new KonamicodeActionAlertConfiguration($this->configFactory, $this->typedConfigManager), + new KonamicodeActionRaptorizeConfiguration($this->configFactory, $this->typedConfigManager), + new KonamicodeActionFlipTextConfiguration($this->configFactory, $this->typedConfigManager), + new KonamicodeActionImageSpawnConfiguration($this->configFactory, $this->typedConfigManager), + new KonamicodeActionReplaceImagesConfiguration($this->configFactory, $this->typedConfigManager), + new KonamicodeActionSnowfallConfiguration($this->configFactory, $this->typedConfigManager), + new KonamicodeActionAsteroidsConfiguration($this->configFactory, $this->typedConfigManager), ]; } diff --git a/tests/src/Unit/KonamicodeHexColorTest.php b/tests/src/Unit/KonamicodeHexColorTest.php index 798404270a9a0537d2c592a49ff915c03ebef129..b4f400e674f9cbfb3c301bc30fc0321c83575813 100644 --- a/tests/src/Unit/KonamicodeHexColorTest.php +++ b/tests/src/Unit/KonamicodeHexColorTest.php @@ -19,6 +19,13 @@ class KonamicodeHexColorTest extends UnitTestCase { */ protected $configFactory; + /** + * The typed config manager. + * + * @var \Drupal\Core\Config\TypedConfigManager + */ + protected $typedConfigManager; + /** * The action class used to trigger the functions. * @@ -32,9 +39,10 @@ class KonamicodeHexColorTest extends UnitTestCase { public function setUp(): void { parent::setUp(); $this->configFactory = $this->createMock('Drupal\Core\Config\ConfigFactory'); + $this->typedConfigManager = $this->createMock('Drupal\Core\Config\TypedConfigManager'); // Mock that we are the snowfall class. - $this->actionClass = new KonamicodeActionSnowfallConfiguration($this->configFactory); + $this->actionClass = new KonamicodeActionSnowfallConfiguration($this->configFactory, $this->typedConfigManager); } /** diff --git a/tests/src/Unit/KonamicodeKeyCodeSequenceTest.php b/tests/src/Unit/KonamicodeKeyCodeSequenceTest.php index d4d948aae950de0309b23faacc6f902a9a8ee1dd..30b6ae24d248f99c9b30bf5248917d9b3d13f274 100644 --- a/tests/src/Unit/KonamicodeKeyCodeSequenceTest.php +++ b/tests/src/Unit/KonamicodeKeyCodeSequenceTest.php @@ -18,6 +18,13 @@ class KonamicodeKeyCodeSequenceTest extends UnitTestCase { * @var \Drupal\Core\Config\ConfigFactory */ protected $configFactory; + + /** + * The typed config manager. + * + * @var \Drupal\Core\Config\TypedConfigManager + */ + protected $typedConfigManager; /** * The action class used to trigger the functions. @@ -32,10 +39,11 @@ class KonamicodeKeyCodeSequenceTest extends UnitTestCase { public function setUp(): void { parent::setUp(); $this->configFactory = $this->createMock('Drupal\Core\Config\ConfigFactory'); + $this->typedConfigManager = $this->createMock('Drupal\Core\Config\TypedConfigManager'); // Just mock that we are one of the action classes in order to be able to // call the validation function of the base class. - $this->actionClass = new KonamicodeActionAlertConfiguration($this->configFactory); + $this->actionClass = new KonamicodeActionAlertConfiguration($this->configFactory, $this->typedConfigManager); } /**