diff --git a/core/modules/simpletest/simpletest.info.yml b/core/modules/simpletest/simpletest.info.yml
index 232680e..415817a 100644
--- a/core/modules/simpletest/simpletest.info.yml
+++ b/core/modules/simpletest/simpletest.info.yml
@@ -1,6 +1,6 @@
 name: Testing
 type: module
-description: 'Provides a framework for unit and functional testing.'
+description: 'Provides a framework for unit and functional testing. Requires the PHP cURL library to be installed on the server.'
 package: Core
 version: VERSION
 core: 8.x
diff --git a/core/modules/system/src/Form/ModulesListForm.php b/core/modules/system/src/Form/ModulesListForm.php
index e8a6cea..76c9ffa 100644
--- a/core/modules/system/src/Form/ModulesListForm.php
+++ b/core/modules/system/src/Form/ModulesListForm.php
@@ -419,6 +419,18 @@ protected function buildModuleList(FormStateInterface $form_state) {
   /**
    * {@inheritdoc}
    */
+  public function validateForm(array &$form, FormStateInterface $form_state) {
+    // If required extension not enabled then do not enable module.
+    $form_state_values = $form_state->getValues();
+    $has_curl = function_exists('curl_init');
+    if (!$has_curl && $form_state_values['modules']['Core']['simpletest'] === 1) {
+      $form_state->setError('modules', t('The PHP <a href="@curl_url">cURL</a> library needs to be installed on the server. You should check the cURL status in PHP via phpinfo() or in the command line via `php -m | grep curl`. On Unix, you have to install the php5-curl extension. On Windows XAMPP, you have to enable the cURL extension by removing the ";" before "extension=php_curl.dll". Apache/nginx must be restarted after applying changes to the server.', array('@curl_url' => 'http://php.net/manual/curl.setup.php')));
+    }
+  }
+
+  /**
+   * {@inheritdoc}
+   */
   public function submitForm(array &$form, FormStateInterface $form_state) {
     // Retrieve a list of modules to install and their dependencies.
     $modules = $this->buildModuleList($form_state);
