diff --git a/core/modules/update/tests/modules/update_test/lib/Drupal/update_test/Controller/UpdateTestController.php b/core/modules/update/tests/modules/update_test/lib/Drupal/update_test/Controller/UpdateTestController.php index a2b459f..600d8bf 100644 --- a/core/modules/update/tests/modules/update_test/lib/Drupal/update_test/Controller/UpdateTestController.php +++ b/core/modules/update/tests/modules/update_test/lib/Drupal/update_test/Controller/UpdateTestController.php @@ -6,13 +6,15 @@ */ namespace Drupal\update_test\Controller; + +use Drupal\Core\Controller\ControllerBase; use Symfony\Component\HttpFoundation\Response; +use Symfony\Component\HttpFoundation\BinaryFileResponse; /** * Provides different routes of the update_test module. */ -class UpdateTestController { - +class UpdateTestController extends ControllerBase { /** * Displays an Error 503 (Service unavailable) page. @@ -29,10 +31,51 @@ public function updateError() { } /** - * @todo Remove update_test_mock_page(). + * Page callback: Prints mock XML for the Update Manager module. + * + * The specific XML file to print depends on two things: the project we're + * trying to fetch data for, and the desired "availability scenario" for that + * project which we're trying to test. Before attempting to fetch this data (by + * checking for updates on the available updates report), callers need to define + * the 'update_test_xml_map' variable as an array, keyed by project name, + * indicating which availability scenario to use for that project. + * + * @param string $project_name + * The project short name the update manager is trying to fetch data for (the + * fetch URLs are of the form: [base_url]/[project_name]/[core_version]). + * @param string $version + * The version of Drupal core. + * + * @return BinaryFileResponse|Response + * A BinaryFileResponse object containing the content of the XML release file + * for the specified project if one is available; a Response object with no + * content otherwise. */ public function updateTest($project_name, $version) { - return update_test_mock_page($project_name, $version); + $xml_map = $this->config('update_test.settings')->get('xml_map'); + if (isset($xml_map[$project_name])) { + $availability_scenario = $xml_map[$project_name]; + } + elseif (isset($xml_map['#all'])) { + $availability_scenario = $xml_map['#all']; + } + else { + // The test didn't specify (for example, the webroot has other modules and + // themes installed but they're disabled by the version of the site + // running the test. So, we default to a file we know won't exist, so at + // least we'll get an empty xml response instead of a bunch of Drupal page + // output. + $availability_scenario = '#broken#'; + } + + $path = drupal_get_path('module', 'update_test'); + $file = "$path/$project_name.$availability_scenario.xml"; + $headers = array('Content-Type' => 'text/xml; charset=utf-8'); + if (!is_file($file)) { + // Return an empty response. + return new Response('', 200, $headers); + } + return new BinaryFileResponse($file, 200, $headers); } } diff --git a/core/modules/update/tests/modules/update_test/update_test.module b/core/modules/update/tests/modules/update_test/update_test.module index 249ad83..5c230a5 100644 --- a/core/modules/update/tests/modules/update_test/update_test.module +++ b/core/modules/update/tests/modules/update_test/update_test.module @@ -66,56 +66,6 @@ function update_test_update_status_alter(&$projects) { } /** - * Page callback: Prints mock XML for the Update Manager module. - * - * The specific XML file to print depends on two things: the project we're - * trying to fetch data for, and the desired "availability scenario" for that - * project which we're trying to test. Before attempting to fetch this data (by - * checking for updates on the available updates report), callers need to define - * the 'update_test_xml_map' variable as an array, keyed by project name, - * indicating which availability scenario to use for that project. - * - * @param $project_name - * The project short name the update manager is trying to fetch data for (the - * fetch URLs are of the form: [base_url]/[project_name]/[core_version]). - * - * @return BinaryFileResponse|Response - * A BinaryFileResponse object containing the content of the XML release file - * for the specified project if one is available; a Response object with no - * content otherwise. - * - * @see update_test_menu() - * - * @deprecated \Drupal\update_test\Controller\UpdateTestController::updateTest() - */ -function update_test_mock_page($project_name) { - $xml_map = \Drupal::config('update_test.settings')->get('xml_map'); - if (isset($xml_map[$project_name])) { - $availability_scenario = $xml_map[$project_name]; - } - elseif (isset($xml_map['#all'])) { - $availability_scenario = $xml_map['#all']; - } - else { - // The test didn't specify (for example, the webroot has other modules and - // themes installed but they're disabled by the version of the site - // running the test. So, we default to a file we know won't exist, so at - // least we'll get an empty xml response instead of a bunch of Drupal page - // output. - $availability_scenario = '#broken#'; - } - - $path = drupal_get_path('module', 'update_test'); - $file = "$path/$project_name.$availability_scenario.xml"; - $headers = array('Content-Type' => 'text/xml; charset=utf-8'); - if (!is_file($file)) { - // Return an empty response. - return new Response('', 200, $headers); - } - return new BinaryFileResponse($file, 200, $headers); -} - -/** * Implements hook_archiver_info_alter(). */ function update_test_archiver_info_alter(&$definitions) {