diff options
Diffstat (limited to 'modules/update/tests/update_test.module')
-rw-r--r-- | modules/update/tests/update_test.module | 30 |
1 files changed, 25 insertions, 5 deletions
diff --git a/modules/update/tests/update_test.module b/modules/update/tests/update_test.module index 54e497415..f95a5cb9a 100644 --- a/modules/update/tests/update_test.module +++ b/modules/update/tests/update_test.module @@ -41,10 +41,30 @@ function update_test_system_info_alter(&$info, $file) { /** * Page callback, prints mock XML for the update 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 update.module is trying to fetch data for (the + * fetch URLs are of the form: [base_url]/[project_name]/[core_version]). */ -function update_test_mock_page() { - $xml = variable_get('update_test_xml', FALSE); - // Note: this will cause an exception to occur if no variable was set and - // $file is FALSE. - readfile(drupal_get_path('module', 'update_test') . "/$xml"); +function update_test_mock_page($project_name) { + $xml_map = variable_get('update_test_xml_map', FALSE); + if (isset($xml_map[$project_name])) { + $availability_scenario = $xml_map[$project_name]; + } + elseif (isset($xml_map['#all'])) { + $availability_scenario = $xml_map['#all']; + } + else { + return FALSE; + } + + $path = drupal_get_path('module', 'update_test'); + readfile("$path/$project_name.$availability_scenario.xml"); } |