From 5c884e835ef1315bf9da29c516be3cf27907bba0 Mon Sep 17 00:00:00 2001 From: "Eloy Lafuente (stronk7)" Date: Fri, 1 Jul 2022 16:43:34 +0200 Subject: [PATCH] MDL-75111 phpunit: Move tests to use correct names and ns (take#4) Applied the following changes to various testcase classes: - Namespaced with component[\level2-API] - Moved to level2-API subdirectory when required. - Fixed incorrect use statements with leading backslash. - Remove file phpdoc block - Remove MOODLE_INTERNAL if not needed. - Changed code to point to global scope when needed. - Fix some relative paths and comments here and there. - All them passing individually. - Complete runs passing too. Special mention to: - The following task tests have been moved within the level2 directory: - \core\adhoc_task_test => \core\task\adhoc_task_test - \core\scheduled_task_test => \core\task\scheduled_task_test - \core\calendar_cron_task_test => \core\task\calendar_cron_task_test - \core\h5p_get_content_types_task_test => \core\task\h5p_get_content_types_task_test - \core\task_database_logger_test => \core\task\database_logger_test - \core\task_logging_test => \core\task\logging_test - The following event tests have been moved within level2 directory: - \core\event_context_locked_test => \core\event\context_locked_test - \core\event_deprecated_test => \core\event\deprecated_test - \core\event_grade_deleted_test => \core\event\grade_deleted_test - \core\event_profile_field_test => \core\event\profile_field_test - \core\event_unknown_logged_test => \core\event\unknown_logged_test - \core\event_user_graded_test => \core\event\user_graded_test - \core\event_user_password_updated_test => \core\event\user_password_updated_test - The following output tests have been moved within level2 directory: - \core\mustache_template_finder_test => \core\output\mustache_template_finder_test - \core\mustache_template_source_loader_test => \core\output\mustache_template_source_loader_test - \core\output_mustache_helper_collection_test => \core\output\mustache_helper_collection_test - The following tests have been moved to their correct tests directories: - lib/tests/time_splittings_test.php => analytics/tests/time_splittings_test.php - All the classes and tests under lib/filebrowser and lib/filestorage belong to core, not to core_files. Some day we should move them to their correct subsystem. - All the classes and tests under lib/grade belong to core, not to core_grades. Some day we should move them to their correct subsystem. - The core_grades_external class and its \core\grades_external_test unit test should belong to the grades subsystem or, alternatively, to \core\external, they both should be moved together. - The core_grading_external class and its \core\grading_external_test unit test should belong to the grading subsystem or, alternatively, to \core\external, they both should be moved together. - The \core\message\message and \core\message\inbound (may be others) classes, and their associated tests should go to the core_message subsystem. - The core_user class, and its associated tests should go to the core_user subsystem. - The \core\update namespace is plain wrong (update is not valid API) and needs action 1) create it or 2) move elsewhere. --- analytics/tests/analysis_test.php | 19 +- analytics/tests/calculation_info_test.php | 21 +- analytics/tests/dataset_manager_test.php | 12 +- analytics/tests/indicator_test.php | 12 +- analytics/tests/model_test.php | 18 +- analytics/tests/prediction_actions_test.php | 10 +- analytics/tests/prediction_test.php | 30 +- analytics/tests/stats_test.php | 13 +- .../tests/time_splittings_test.php | 28 +- lib/ddl/tests/ddl_test.php | 152 +++++----- lib/dml/tests/dml_table_test.php | 26 +- lib/dml/tests/dml_test.php | 265 +++++++++--------- lib/dml/tests/recordset_walk_test.php | 19 +- .../sqlsrv_native_moodle_database_test.php | 16 +- lib/editor/tinymce/tests/editor_test.php | 16 +- lib/filebrowser/tests/file_browser_test.php | 41 ++- lib/filestorage/tests/file_storage_test.php | 86 +++--- .../tests/file_system_filedir_test.php | 113 ++++---- lib/filestorage/tests/file_system_test.php | 72 +++-- lib/filestorage/tests/mbz_packer_test.php | 21 +- lib/filestorage/tests/tgz_packer_test.php | 32 ++- lib/filestorage/tests/zip_packer_test.php | 39 +-- lib/form/tests/autocomplete_test.php | 14 +- lib/form/tests/dateselector_test.php | 15 +- lib/form/tests/datetimeselector_test.php | 15 +- lib/form/tests/duration_test.php | 17 +- lib/form/tests/float_test.php | 14 +- lib/grade/tests/grade_category_test.php | 193 ++++++------- lib/grade/tests/grade_grade_test.php | 164 +++++------ lib/grade/tests/grade_item_test.php | 219 ++++++++------- lib/grade/tests/grade_object_test.php | 23 +- lib/grade/tests/grade_outcome_test.php | 36 +-- lib/grade/tests/grade_scale_test.php | 44 +-- lib/phpunit/tests/advanced_test.php | 56 ++-- lib/phpunit/tests/basic_test.php | 24 +- lib/phpunit/tests/util_test.php | 20 +- lib/tests/adminlib_test.php | 12 +- lib/tests/admintree_test.php | 37 ++- lib/tests/ajaxlib_test.php | 11 +- lib/tests/analysers_test.php | 20 +- lib/tests/authlib_test.php | 32 +-- lib/tests/check_test.php | 16 +- lib/tests/collator_test.php | 16 +- lib/tests/componentlib_test.php | 20 +- lib/tests/configonlylib_test.php | 13 +- lib/tests/core_media_player_native_test.php | 27 +- .../core_renderer_template_exploit_test.php | 12 +- lib/tests/cronlib_test.php | 21 +- lib/tests/csslib_test.php | 16 +- lib/tests/csvclass_test.php | 22 +- lib/tests/curl_security_helper_test.php | 16 +- lib/tests/customcontext_test.php | 95 ++++--- .../datalib_update_with_unique_index_test.php | 19 +- lib/tests/date_legacy_test.php | 25 +- lib/tests/editorlib_test.php | 11 +- lib/tests/environment_test.php | 13 +- .../context_locked_test.php} | 21 +- .../deprecated_test.php} | 19 +- .../grade_deleted_test.php} | 19 +- .../profile_field_test.php} | 15 +- .../unknown_logged_test.php} | 17 +- .../user_graded_test.php} | 47 ++-- .../user_password_updated_test.php} | 19 +- lib/tests/exporter_test.php | 36 +-- lib/tests/filelib_test.php | 173 ++++++------ lib/tests/filestorage_zip_archive_test.php | 16 +- lib/tests/filetypes_test.php | 32 +-- lib/tests/filter_manager_test.php | 16 +- lib/tests/filterlib_test.php | 84 +++--- lib/tests/formslib_test.php | 24 +- lib/tests/gdlib_test.php | 16 +- lib/tests/googlelib_test.php | 7 +- lib/tests/gradelib_test.php | 55 ++-- ...llib_test.php => grades_external_test.php} | 54 ++-- ...lib_test.php => grading_external_test.php} | 32 ++- lib/tests/grouplib_test.php | 34 +-- lib/tests/html2text_test.php | 11 +- lib/tests/htmlpurifier_test.php | 16 +- lib/tests/ip_utils_test.php | 11 +- lib/tests/jquery_test.php | 16 +- lib/tests/ldaplib_test.php | 19 +- lib/tests/lock_config_test.php | 20 +- lib/tests/lock_test.php | 14 +- lib/tests/markdown_test.php | 16 +- lib/tests/mathslib_test.php | 18 +- lib/tests/medialib_test.php | 75 ++--- lib/tests/message_test.php | 79 +++--- lib/tests/messageinbound_test.php | 26 +- lib/tests/minify_test.php | 21 +- lib/tests/moodle_page_test.php | 105 +++---- lib/tests/moodle_url_test.php | 105 ++++--- lib/tests/myprofilelib_test.php | 30 +- lib/tests/navigationlib_test.php | 63 +++-- lib/tests/notification_test.php | 22 +- .../mustache_helper_collection_test.php} | 17 +- .../mustache_template_finder_test.php | 22 +- .../mustache_template_source_loader_test.php | 22 +- lib/tests/outputcomponents_test.php | 80 +++--- lib/tests/outputfactories_test.php | 20 +- lib/tests/outputrequirementslib_test.php | 35 +-- lib/tests/pdflib_test.php | 12 +- lib/tests/plugin_manager_test.php | 24 +- lib/tests/qrcode_test.php | 13 +- lib/tests/regex_test.php | 13 +- lib/tests/requirejs_test.php | 17 +- lib/tests/session_manager_test.php | 49 ++-- lib/tests/session_redis_test.php | 22 +- lib/tests/sessionlib_test.php | 38 +-- lib/tests/setuplib_test.php | 39 ++- lib/tests/statslib_test.php | 44 ++- lib/tests/string_manager_standard_test.php | 12 +- lib/tests/tablelib_test.php | 18 +- lib/tests/{ => task}/adhoc_task_test.php | 227 ++++++++------- .../{ => task}/calendar_cron_task_test.php | 18 +- .../database_logger_test.php} | 23 +- .../h5p_get_content_types_task_test.php | 12 +- .../logging_test.php} | 127 +++++---- lib/tests/{ => task}/scheduled_task_test.php | 153 +++++----- lib/tests/update_api_test.php | 13 +- lib/tests/update_checker_test.php | 16 +- lib/tests/update_code_manager_test.php | 15 +- lib/tests/update_validator_test.php | 15 +- lib/tests/upgrade_util_test.php | 10 +- lib/tests/user_menu_test.php | 4 +- lib/tests/user_test.php | 254 ++++++++--------- 125 files changed, 2430 insertions(+), 2726 deletions(-) rename {lib => analytics}/tests/time_splittings_test.php (95%) rename lib/tests/{event_context_locked_test.php => event/context_locked_test.php} (85%) rename lib/tests/{event_deprecated_test.php => event/deprecated_test.php} (77%) rename lib/tests/{event_grade_deleted_test.php => event/grade_deleted_test.php} (80%) rename lib/tests/{event_profile_field_test.php => event/profile_field_test.php} (97%) rename lib/tests/{event_unknown_logged_test.php => event/unknown_logged_test.php} (88%) rename lib/tests/{event_user_graded_test.php => event/user_graded_test.php} (84%) rename lib/tests/{event_user_password_updated_test.php => event/user_password_updated_test.php} (85%) rename lib/tests/{grades_externallib_test.php => grades_external_test.php} (90%) rename lib/tests/{grading_externallib_test.php => grading_external_test.php} (96%) rename lib/tests/{output_mustache_helper_collection_test.php => output/mustache_helper_collection_test.php} (97%) rename lib/tests/{ => output}/mustache_template_finder_test.php (95%) rename lib/tests/{ => output}/mustache_template_source_loader_test.php (97%) rename lib/tests/{ => task}/adhoc_task_test.php (62%) rename lib/tests/{ => task}/calendar_cron_task_test.php (83%) rename lib/tests/{task_database_logger_test.php => task/database_logger_test.php} (97%) rename lib/tests/{ => task}/h5p_get_content_types_task_test.php (87%) rename lib/tests/{task_logging_test.php => task/logging_test.php} (80%) rename lib/tests/{ => task}/scheduled_task_test.php (83%) diff --git a/analytics/tests/analysis_test.php b/analytics/tests/analysis_test.php index 3ceb40e0c24..9d458a3aa57 100644 --- a/analytics/tests/analysis_test.php +++ b/analytics/tests/analysis_test.php @@ -14,17 +14,7 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Unit tests for the analysis class. - * - * @package core_analytics - * @copyright 2019 David Monllaó {@link http://www.davidmonllao.com} - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ - -defined('MOODLE_INTERNAL') || die(); - -require_once(__DIR__ . '/fixtures/test_timesplitting_upcoming_seconds.php'); +namespace core_analytics; /** * Unit tests for the analysis class. @@ -33,18 +23,19 @@ require_once(__DIR__ . '/fixtures/test_timesplitting_upcoming_seconds.php'); * @copyright 2019 David Monllaó {@link http://www.davidmonllao.com} * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class analytics_analysis_testcase extends advanced_testcase { +class analysis_test extends \advanced_testcase { /** * Test fill_firstanalyses_cache. * @return null */ public function test_fill_firstanalyses_cache() { + require_once(__DIR__ . '/fixtures/test_timesplitting_upcoming_seconds.php'); $this->resetAfterTest(); $modelid = 1; - $params = ['startdate' => (new DateTimeImmutable('-5 seconds'))->getTimestamp()]; + $params = ['startdate' => (new \DateTimeImmutable('-5 seconds'))->getTimestamp()]; $course1 = $this->getDataGenerator()->create_course($params); $course2 = $this->getDataGenerator()->create_course($params); $analysable1 = new \core_analytics\course($course1); @@ -72,7 +63,7 @@ class analytics_analysis_testcase extends advanced_testcase { $this->assertEquals($earliest, $firstanalyses[$modelid . '_' . $course1->id]); // Upcoming periodic time-splitting methods can read and process the cached data. - $seconds = new test_timesplitting_upcoming_seconds(); + $seconds = new \test_timesplitting_upcoming_seconds(); $seconds->set_modelid($modelid); $seconds->set_analysable($analysable1); diff --git a/analytics/tests/calculation_info_test.php b/analytics/tests/calculation_info_test.php index 4212705828e..84051ad3b7c 100644 --- a/analytics/tests/calculation_info_test.php +++ b/analytics/tests/calculation_info_test.php @@ -14,18 +14,7 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Unit tests for the calculation info cache. - * - * @package core_analytics - * @copyright 2019 David Monllaó {@link http://www.davidmonllao.com} - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ - -defined('MOODLE_INTERNAL') || die(); - -require_once(__DIR__ . '/fixtures/test_indicator_max.php'); -require_once(__DIR__ . '/fixtures/test_indicator_min.php'); +namespace core_analytics; /** * Unit tests for the calculation info cache. @@ -34,7 +23,7 @@ require_once(__DIR__ . '/fixtures/test_indicator_min.php'); * @copyright 2017 David Monllaó {@link http://www.davidmonllao.com} * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class analytics_calculation_info_testcase extends advanced_testcase { +class calculation_info_test extends \advanced_testcase { /** * test_calculation_info description @@ -47,12 +36,14 @@ class analytics_calculation_info_testcase extends advanced_testcase { * @return null */ public function test_calculation_info_add_pull($info1, $info2, $info3, $info4) { + require_once(__DIR__ . '/fixtures/test_indicator_max.php'); + require_once(__DIR__ . '/fixtures/test_indicator_min.php'); $this->resetAfterTest(); $atimesplitting = new \core\analytics\time_splitting\quarters(); - $indicator1 = new test_indicator_min(); - $indicator2 = new test_indicator_max(); + $indicator1 = new \test_indicator_min(); + $indicator2 = new \test_indicator_max(); $calculationinfo = new \core_analytics\calculation_info(); $calculationinfo->add_shared(111, [111 => $info1]); diff --git a/analytics/tests/dataset_manager_test.php b/analytics/tests/dataset_manager_test.php index b877e72bdb3..8c051117767 100644 --- a/analytics/tests/dataset_manager_test.php +++ b/analytics/tests/dataset_manager_test.php @@ -14,15 +14,7 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Unit tests for the dataset manager. - * - * @package core_analytics - * @copyright 2017 David Monllaó {@link http://www.davidmonllao.com} - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ - -defined('MOODLE_INTERNAL') || die(); +namespace core_analytics; /** * Unit tests for the dataset manager. @@ -31,7 +23,7 @@ defined('MOODLE_INTERNAL') || die(); * @copyright 2017 David Monllaó {@link http://www.davidmonllao.com} * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class dataset_manager_testcase extends advanced_testcase { +class dataset_manager_test extends \advanced_testcase { /** * setUp diff --git a/analytics/tests/indicator_test.php b/analytics/tests/indicator_test.php index 06b4b7a15c3..82966cb04c9 100644 --- a/analytics/tests/indicator_test.php +++ b/analytics/tests/indicator_test.php @@ -14,13 +14,7 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Unit tests for the indicator API. - * - * @package core_analytics - * @copyright 2019 David Monllaó {@link http://www.davidmonllao.com} - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ +namespace core_analytics; defined('MOODLE_INTERNAL') || die(); @@ -35,7 +29,7 @@ require_once(__DIR__ . '/fixtures/test_indicator_min.php'); * @copyright 2017 David Monllaó {@link http://www.davidmonllao.com} * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class analytics_indicator_testcase extends advanced_testcase { +class indicator_test extends \advanced_testcase { /** * test_validate_calculated_value @@ -79,7 +73,7 @@ class analytics_indicator_testcase extends advanced_testcase { ->onlyMethods(['calculate_sample']) ->getMock(); $indicatormock->method('calculate_sample')->willReturn($willreturn); - $this->expectException(coding_exception::class); + $this->expectException(\coding_exception::class); list($values, $unused) = $indicatormock->calculate([1], 'notrelevanthere'); } diff --git a/analytics/tests/model_test.php b/analytics/tests/model_test.php index c4a5c5cdfaf..239ff5d26d9 100644 --- a/analytics/tests/model_test.php +++ b/analytics/tests/model_test.php @@ -22,6 +22,8 @@ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ +namespace core_analytics; + defined('MOODLE_INTERNAL') || die(); require_once(__DIR__ . '/fixtures/test_indicator_max.php'); @@ -39,7 +41,7 @@ require_once(__DIR__ . '/fixtures/test_analysis.php'); * @copyright 2017 David Monllaó {@link http://www.davidmonllao.com} * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class analytics_model_testcase extends advanced_testcase { +class model_test extends \advanced_testcase { public function setUp(): void { @@ -183,7 +185,7 @@ class analytics_model_testcase extends advanced_testcase { global $DB; $this->resetAfterTest(); - $statictarget = new test_static_target_shortname(); + $statictarget = new \test_static_target_shortname(); $indicators['test_indicator_max'] = \core_analytics\manager::get_indicator('test_indicator_max'); $model = \core_analytics\model::create($statictarget, $indicators, '\core\analytics\time_splitting\quarters'); $modelobj = $model->get_model_obj(); @@ -301,11 +303,11 @@ class analytics_model_testcase extends advanced_testcase { $courses[$analysable->get_id()] = $course; } - $target = new test_target_course_level_shortname(); + $target = new \test_target_course_level_shortname(); $analyser = new \core\analytics\analyser\courses(1, $target, [], [], []); $result = new \core_analytics\local\analysis\result_array(1, false, []); - $analysis = new test_analysis($analyser, false, $result); + $analysis = new \test_analysis($analyser, false, $result); // Each analysable element takes 0.5 secs minimum (test_analysis), so the max (and likely) number of analysable // elements that will be processed is 2. @@ -342,7 +344,7 @@ class analytics_model_testcase extends advanced_testcase { // Training and prediction data do not get mixed. $result = new \core_analytics\local\analysis\result_array(1, false, []); - $analysis = new test_analysis($analyser, false, $result); + $analysis = new \test_analysis($analyser, false, $result); $analysis->run(); $params = array('modelid' => 1, 'action' => 'training'); $this->assertLessThanOrEqual(2, $DB->count_records('analytics_used_analysables', $params)); @@ -402,7 +404,7 @@ class analytics_model_testcase extends advanced_testcase { $this->model->update(true, [], false); $this->assertFalse($this->model->can_export_configuration()); - $statictarget = new test_static_target_shortname(); + $statictarget = new \test_static_target_shortname(); $indicators['test_indicator_max'] = \core_analytics\manager::get_indicator('test_indicator_max'); $model = \core_analytics\model::create($statictarget, $indicators, '\\core\\analytics\\time_splitting\\quarters'); $this->assertFalse($model->can_export_configuration()); @@ -418,7 +420,7 @@ class analytics_model_testcase extends advanced_testcase { $modelconfig = new \core_analytics\model_config($this->model); - $method = new ReflectionMethod('\\core_analytics\\model_config', 'export_model_data'); + $method = new \ReflectionMethod('\\core_analytics\\model_config', 'export_model_data'); $method->setAccessible(true); $modeldata = $method->invoke($modelconfig); @@ -566,7 +568,7 @@ class analytics_model_testcase extends advanced_testcase { private function add_fake_log() { global $DB, $USER; - $log = new stdClass(); + $log = new \stdClass(); $log->modelid = $this->modelobj->id; $log->version = $this->modelobj->version; $log->target = $this->modelobj->target; diff --git a/analytics/tests/prediction_actions_test.php b/analytics/tests/prediction_actions_test.php index 8aa6c2408b9..adfd8fe19bb 100644 --- a/analytics/tests/prediction_actions_test.php +++ b/analytics/tests/prediction_actions_test.php @@ -14,13 +14,7 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Unit tests for prediction actions. - * - * @package core_analytics - * @copyright 2017 David Monllaó {@link http://www.davidmonllao.com} - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ +namespace core_analytics; defined('MOODLE_INTERNAL') || die(); @@ -34,7 +28,7 @@ require_once(__DIR__ . '/fixtures/test_target_shortname.php'); * @copyright 2017 David Monllaó {@link http://www.davidmonllao.com} * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class analytics_prediction_actions_testcase extends advanced_testcase { +class prediction_actions_test extends \advanced_testcase { /** * Common startup tasks diff --git a/analytics/tests/prediction_test.php b/analytics/tests/prediction_test.php index 30b57e4bc95..08aa1c0f300 100644 --- a/analytics/tests/prediction_test.php +++ b/analytics/tests/prediction_test.php @@ -14,21 +14,7 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Unit tests for evaluation, training and prediction. - * - * NOTE: in order to execute this test using a separate server for the - * python ML backend you need to define these variables in your config.php file: - * - * define('TEST_MLBACKEND_PYTHON_HOST', '127.0.0.1'); - * define('TEST_MLBACKEND_PYTHON_PORT', 5000); - * define('TEST_MLBACKEND_PYTHON_USERNAME', 'default'); - * define('TEST_MLBACKEND_PYTHON_PASSWORD', 'sshhhh'); - * - * @package core_analytics - * @copyright 2017 David Monllaó {@link http://www.davidmonllao.com} - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ +namespace core_analytics; defined('MOODLE_INTERNAL') || die(); @@ -48,11 +34,19 @@ require_once(__DIR__ . '/../../course/lib.php'); /** * Unit tests for evaluation, training and prediction. * + * NOTE: in order to execute this test using a separate server for the + * python ML backend you need to define these variables in your config.php file: + * + * define('TEST_MLBACKEND_PYTHON_HOST', '127.0.0.1'); + * define('TEST_MLBACKEND_PYTHON_PORT', 5000); + * define('TEST_MLBACKEND_PYTHON_USERNAME', 'default'); + * define('TEST_MLBACKEND_PYTHON_PASSWORD', 'sshhhh'); + * * @package core_analytics * @copyright 2017 David Monllaó {@link http://www.davidmonllao.com} * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class core_analytics_prediction_testcase extends advanced_testcase { +class prediction_test extends \advanced_testcase { /** * Purge all the mlbackend outputs. @@ -746,7 +740,7 @@ class core_analytics_prediction_testcase extends advanced_testcase { $samples, $ranges ); - $dataset = phpunit_util::call_internal_method($analysis, 'calculate_indicators', $params, + $dataset = \phpunit_util::call_internal_method($analysis, 'calculate_indicators', $params, '\core_analytics\analysis'); $this->assertArrayHasKey('123-0', $dataset); $this->assertArrayHasKey('123-1', $dataset); @@ -770,7 +764,7 @@ class core_analytics_prediction_testcase extends advanced_testcase { $samples, $ranges ); - $dataset = phpunit_util::call_internal_method($analysis, 'calculate_indicators', $params, + $dataset = \phpunit_util::call_internal_method($analysis, 'calculate_indicators', $params, '\core_analytics\analysis'); $this->assertArrayNotHasKey('123-0', $dataset); $this->assertArrayNotHasKey('123-1', $dataset); diff --git a/analytics/tests/stats_test.php b/analytics/tests/stats_test.php index 5d3cb030251..5d8f3019c5c 100644 --- a/analytics/tests/stats_test.php +++ b/analytics/tests/stats_test.php @@ -14,14 +14,7 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Provides the {@link analytics_stats_testcase} class. - * - * @package core_analytics - * @category test - * @copyright 2019 David Mudrák - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ +namespace core_analytics; defined('MOODLE_INTERNAL') || die(); @@ -31,10 +24,12 @@ require_once(__DIR__ . '/fixtures/test_target_shortname.php'); /** * Unit tests for the analytics stats. * + * @package core_analytics + * @category test * @copyright 2019 David Mudrák * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class analytics_stats_testcase extends advanced_testcase { +class stats_test extends \advanced_testcase { /** * Set up the test environment. diff --git a/lib/tests/time_splittings_test.php b/analytics/tests/time_splittings_test.php similarity index 95% rename from lib/tests/time_splittings_test.php rename to analytics/tests/time_splittings_test.php index 224fbeb8ba1..8292eca83c5 100644 --- a/lib/tests/time_splittings_test.php +++ b/analytics/tests/time_splittings_test.php @@ -14,30 +14,26 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Unit tests for core time splitting methods. - * - * @package core - * @category analytics - * @copyright 2017 David Monllaó {@link http://www.davidmonllao.com} - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ +namespace core_analytics; + +use test_timesplitting_seconds; +use test_timesplitting_upcoming_seconds; defined('MOODLE_INTERNAL') || die(); -require_once(__DIR__ . '/../../analytics/tests/fixtures/test_timesplitting_seconds.php'); -require_once(__DIR__ . '/../../analytics/tests/fixtures/test_timesplitting_upcoming_seconds.php'); +require_once(__DIR__ . '/fixtures/test_timesplitting_seconds.php'); +require_once(__DIR__ . '/fixtures/test_timesplitting_upcoming_seconds.php'); require_once(__DIR__ . '/../../lib/enrollib.php'); /** * Unit tests for core time splitting methods. * * @package core - * @category analytics + * @category test * @copyright 2017 David Monllaó {@link http://www.davidmonllao.com} * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class core_analytics_time_splittings_testcase extends advanced_testcase { +class time_splittings_test extends \advanced_testcase { /** * setUp @@ -214,7 +210,7 @@ class core_analytics_time_splittings_testcase extends advanced_testcase { // We now use an ongoing course not yet ready to generate predictions. - $threedaysago = new DateTime('-3 days'); + $threedaysago = new \DateTime('-3 days'); $params = array( 'startdate' => $threedaysago->getTimestamp(), ); @@ -229,7 +225,7 @@ class core_analytics_time_splittings_testcase extends advanced_testcase { // We now use a ready-to-predict ongoing course. - $onemonthago = new DateTime('-30 days'); + $onemonthago = new \DateTime('-30 days'); $params = array( 'startdate' => $onemonthago->getTimestamp(), ); @@ -284,10 +280,10 @@ class core_analytics_time_splittings_testcase extends advanced_testcase { // We now check how new ranges get added as time passes. - $fewsecsago = new DateTime('-5 seconds'); + $fewsecsago = new \DateTime('-5 seconds'); $params = array( 'startdate' => $fewsecsago->getTimestamp(), - 'enddate' => (new DateTimeImmutable('+1 year'))->getTimestamp(), + 'enddate' => (new \DateTimeImmutable('+1 year'))->getTimestamp(), ); $course = $this->getDataGenerator()->create_course($params); $analysable = new \core_analytics\course($course); diff --git a/lib/ddl/tests/ddl_test.php b/lib/ddl/tests/ddl_test.php index 9cb6dad71fb..e7916a28753 100644 --- a/lib/ddl/tests/ddl_test.php +++ b/lib/ddl/tests/ddl_test.php @@ -14,18 +14,26 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . +namespace core; + +use database_column_info; +use moodle_database; +use sql_generator; +use xmldb_field; +use xmldb_index; +use xmldb_key; +use xmldb_structure; +use xmldb_table; + /** * DDL layer tests. * * @package core_ddl - * @category phpunit + * @category test * @copyright 2008 Nicolas Connault * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ - -defined('MOODLE_INTERNAL') || die(); - -class core_ddl_testcase extends database_driver_testcase { +class ddl_test extends \database_driver_testcase { /** @var xmldb_table[] keys are table name. Created in setUp. */ private $tables = array(); /** @var array table name => array of stdClass test records loaded into that table. Created in setUp. */ @@ -165,7 +173,7 @@ class core_ddl_testcase extends database_driver_testcase { try { $result = $DB->get_records('test_table0'); - } catch (dml_exception $e) { + } catch (\dml_exception $e) { $result = false; } $this->resetDebugging(); @@ -187,7 +195,7 @@ class core_ddl_testcase extends database_driver_testcase { try { $result = $DB->get_records('test_table0'); - } catch (dml_exception $e) { + } catch (\dml_exception $e) { $result = false; } $this->resetDebugging(); @@ -274,7 +282,7 @@ class core_ddl_testcase extends database_driver_testcase { try { $dbman->create_table($table); $this->fail('Exception expected'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('ddl_exception', $e); } @@ -289,7 +297,7 @@ class core_ddl_testcase extends database_driver_testcase { try { $dbman->create_table($table); $this->fail('Exception expected'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('ddl_exception', $e); } @@ -320,7 +328,7 @@ class core_ddl_testcase extends database_driver_testcase { try { $dbman->create_table($table); $this->fail('Exception expected'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('coding_exception', $e); } @@ -336,7 +344,7 @@ class core_ddl_testcase extends database_driver_testcase { try { $dbman->create_table($table); $this->fail('Exception expected'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('coding_exception', $e); } @@ -365,7 +373,7 @@ class core_ddl_testcase extends database_driver_testcase { try { $dbman->create_table($table); $this->fail('Exception expected'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('coding_exception', $e); } @@ -381,7 +389,7 @@ class core_ddl_testcase extends database_driver_testcase { try { $dbman->create_table($table); $this->fail('Exception expected'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('coding_exception', $e); } @@ -397,7 +405,7 @@ class core_ddl_testcase extends database_driver_testcase { try { $dbman->create_table($table); $this->fail('Exception expected'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('coding_exception', $e); } @@ -413,7 +421,7 @@ class core_ddl_testcase extends database_driver_testcase { try { $dbman->create_table($table); $this->fail('Exception expected'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('coding_exception', $e); } @@ -429,7 +437,7 @@ class core_ddl_testcase extends database_driver_testcase { try { $dbman->create_table($table); $this->fail('Exception expected'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('coding_exception', $e); } @@ -445,7 +453,7 @@ class core_ddl_testcase extends database_driver_testcase { try { $dbman->create_table($table); $this->fail('Exception expected'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('coding_exception', $e); } @@ -461,7 +469,7 @@ class core_ddl_testcase extends database_driver_testcase { try { $dbman->create_table($table); $this->fail('Exception expected'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('coding_exception', $e); } @@ -477,7 +485,7 @@ class core_ddl_testcase extends database_driver_testcase { try { $dbman->create_table($table); $this->fail('Exception expected'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('coding_exception', $e); } @@ -493,7 +501,7 @@ class core_ddl_testcase extends database_driver_testcase { try { $dbman->create_table($table); $this->fail('Exception expected'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('coding_exception', $e); } @@ -509,7 +517,7 @@ class core_ddl_testcase extends database_driver_testcase { try { $dbman->create_table($table); $this->fail('Exception expected'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('coding_exception', $e); } @@ -525,7 +533,7 @@ class core_ddl_testcase extends database_driver_testcase { try { $dbman->create_table($table); $this->fail('Exception expected'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('coding_exception', $e); } @@ -541,7 +549,7 @@ class core_ddl_testcase extends database_driver_testcase { try { $dbman->create_table($table); $this->fail('Exception expected'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('coding_exception', $e); } } @@ -558,7 +566,7 @@ class core_ddl_testcase extends database_driver_testcase { $text = str_repeat('š', 1333); - $data = new stdClass(); + $data = new \stdClass(); $data->name = 'test'; $table = new xmldb_table('test_innodb'); $table->add_field('id', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, XMLDB_SEQUENCE, null); @@ -575,7 +583,7 @@ class core_ddl_testcase extends database_driver_testcase { $expected = (array)$data; $expected['id'] = (string)$id; $this->assertEqualsCanonicalizing($expected, (array)$DB->get_record('test_innodb', array('id' => $id))); - } catch (dml_exception $e) { + } catch (\dml_exception $e) { // Give some nice error message when known problematic MySQL with InnoDB detected. if ($DB->get_dbfamily() === 'mysql') { $engine = strtolower($DB->get_dbengine()); @@ -590,7 +598,7 @@ class core_ddl_testcase extends database_driver_testcase { $dbman->drop_table($table); - $data = new stdClass(); + $data = new \stdClass(); $data->name = 'test'; $table = new xmldb_table('test_innodb'); $table->add_field('id', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, XMLDB_SEQUENCE, null); @@ -613,7 +621,7 @@ class core_ddl_testcase extends database_driver_testcase { $dbman->drop_table($table); // MySQL VARCHAR fields may hit a different 65535 row size limit when creating tables. - $data = new stdClass(); + $data = new \stdClass(); $data->name = 'test'; $table = new xmldb_table('test_innodb'); $table->add_field('id', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, XMLDB_SEQUENCE, null); @@ -695,7 +703,7 @@ class core_ddl_testcase extends database_driver_testcase { try { $dbman->rename_table($sourcetable, $targettable->getName()); $this->fail('Exception expected'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('ddl_exception', $e); $this->assertEquals('Table "test_table1" already exists (can not rename table)', $e->getMessage()); } @@ -714,7 +722,7 @@ class core_ddl_testcase extends database_driver_testcase { try { $dbman->field_exists('nonexistenttable', 'id'); $this->fail('Exception expected'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('moodle_exception', $e); } @@ -732,7 +740,7 @@ class core_ddl_testcase extends database_driver_testcase { try { $dbman->field_exists($nonexistenttable, $realfield); $this->fail('Exception expected'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('moodle_exception', $e); } @@ -751,13 +759,13 @@ class core_ddl_testcase extends database_driver_testcase { try { $this->assertFalse($dbman->field_exists($nonexistenttable, 'id')); $this->fail('Exception expected'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('moodle_exception', $e); } try { $this->assertFalse($dbman->field_exists('nonexistenttable', $realfield)); $this->fail('Exception expected'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('moodle_exception', $e); } // Non existing fields (return false). @@ -783,7 +791,7 @@ class core_ddl_testcase extends database_driver_testcase { try { $dbman->add_field($table, $field); $this->fail('Exception expected'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('ddl_exception', $e); } @@ -793,7 +801,7 @@ class core_ddl_testcase extends database_driver_testcase { try { $dbman->add_field($table, $field); $this->fail('Exception expected'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('ddl_exception', $e); } @@ -948,7 +956,7 @@ class core_ddl_testcase extends database_driver_testcase { try { $dbman->drop_field($table, $field); $this->fail('Exception expected'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('ddl_dependency_exception', $e); } $this->assertTrue($dbman->field_exists($table, 'type')); // Continues existing, drop aborted. @@ -959,7 +967,7 @@ class core_ddl_testcase extends database_driver_testcase { try { $dbman->drop_field($table, $field); $this->fail('Exception expected'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('ddl_dependency_exception', $e); } $this->assertTrue($dbman->field_exists($table, $field)); // Continues existing, drop aborted. @@ -970,7 +978,7 @@ class core_ddl_testcase extends database_driver_testcase { try { $dbman->drop_field($table, $field); $this->fail('Exception expected'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('ddl_field_missing_exception', $e); } @@ -1004,7 +1012,7 @@ class core_ddl_testcase extends database_driver_testcase { $table->add_index('onenumber', XMLDB_INDEX_NOTUNIQUE, array('onenumber')); $dbman->create_table($table); - $record = new stdClass(); + $record = new \stdClass(); $record->onenumber = 2; $record->anothernumber = 4; $recoriginal = $DB->insert_record('test_table_cust0', $record); @@ -1015,7 +1023,7 @@ class core_ddl_testcase extends database_driver_testcase { try { $dbman->change_field_type($table, $field); $this->fail('Exception expected'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('ddl_dependency_exception', $e); } // Column continues being integer 10 not null default 2. @@ -1051,7 +1059,7 @@ class core_ddl_testcase extends database_driver_testcase { // TODO: check the rest of attributes. // Insert one string value and try to convert to integer. Must throw exception. - $record = new stdClass(); + $record = new \stdClass(); $record->onenumber = 7; $record->anothernumber = 'string value'; $rectodrop = $DB->insert_record('test_table_cust0', $record); @@ -1060,7 +1068,7 @@ class core_ddl_testcase extends database_driver_testcase { try { $dbman->change_field_type($table, $field); $this->fail('Exception expected'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('ddl_change_structure_exception', $e); } // Column continues being char 30 not null default "test'n drop" now. @@ -1182,7 +1190,7 @@ class core_ddl_testcase extends database_driver_testcase { try { $dbman->change_field_precision($table, $field); $this->fail('Exception expected'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('ddl_change_structure_exception', $e); } // No changes in field specs at all. @@ -1216,7 +1224,7 @@ class core_ddl_testcase extends database_driver_testcase { // TODO: check the rest of attributes. // Insert one record with 6-digit field. - $record = new stdClass(); + $record = new \stdClass(); $record->course = 10; $record->secondname = 'third record'; $record->intro = 'third record'; @@ -1228,7 +1236,7 @@ class core_ddl_testcase extends database_driver_testcase { try { $dbman->change_field_precision($table, $field); $this->fail('Exception expected'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('ddl_change_structure_exception', $e); } // No changes in field specs at all. @@ -1242,7 +1250,7 @@ class core_ddl_testcase extends database_driver_testcase { try { $dbman->change_field_precision($table, $field); $this->fail('Exception expected'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('ddl_dependency_exception', $e); } // No changes in field specs at all. @@ -1261,12 +1269,12 @@ class core_ddl_testcase extends database_driver_testcase { $table->add_key('primary', XMLDB_KEY_PRIMARY, array('id')); $dbman->create_table($table); - $record = new stdClass(); + $record = new \stdClass(); $record->name = null; try { $result = $DB->insert_record('test_table_cust0', $record, false); - } catch (dml_exception $e) { + } catch (\dml_exception $e) { $result = false; } $this->resetDebugging(); @@ -1287,7 +1295,7 @@ class core_ddl_testcase extends database_driver_testcase { try { $result = $DB->insert_record('test_table_cust0', $record, false); - } catch (dml_exception $e) { + } catch (\dml_exception $e) { $result = false; } $this->resetDebugging(); @@ -1311,7 +1319,7 @@ class core_ddl_testcase extends database_driver_testcase { $field->set_attributes(XMLDB_TYPE_CHAR, '30', null, XMLDB_NOTNULL, null, 'Moodle2'); $dbman->change_field_default($table, $field); - $record = new stdClass(); + $record = new \stdClass(); $record->onenumber = 666; $id = $DB->insert_record('test_table_cust0', $record); @@ -1322,7 +1330,7 @@ class core_ddl_testcase extends database_driver_testcase { $field->set_attributes(XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, 666); $dbman->change_field_default($table, $field); - $record = new stdClass(); + $record = new \stdClass(); $record->name = 'something'; $id = $DB->insert_record('test_table_cust0', $record); @@ -1343,7 +1351,7 @@ class core_ddl_testcase extends database_driver_testcase { $table->add_key('primary', XMLDB_KEY_PRIMARY, array('id')); $dbman->create_table($table); - $record = new stdClass(); + $record = new \stdClass(); $record->onenumber = 666; $record->name = 'something'; $DB->insert_record('test_table_cust0', $record, false); @@ -1354,7 +1362,7 @@ class core_ddl_testcase extends database_driver_testcase { try { $result = $DB->insert_record('test_table_cust0', $record, false); - } catch (dml_exception $e) { + } catch (\dml_exception $e) { $result = false; } $this->resetDebugging(); @@ -1375,7 +1383,7 @@ class core_ddl_testcase extends database_driver_testcase { try { $dbman->add_index($table, $index); $this->fail('Exception expected for duplicate indexes'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('ddl_exception', $e); } @@ -1384,7 +1392,7 @@ class core_ddl_testcase extends database_driver_testcase { try { $dbman->add_index($table, $index); $this->fail('Exception expected for duplicate indexes'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('ddl_exception', $e); } @@ -1398,7 +1406,7 @@ class core_ddl_testcase extends database_driver_testcase { try { $table->add_index('onenumber', XMLDB_INDEX_NOTUNIQUE, array('onenumber')); $this->fail('Coding exception expected'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('coding_exception', $e); } @@ -1412,7 +1420,7 @@ class core_ddl_testcase extends database_driver_testcase { try { $table->add_key('onenumber', XMLDB_KEY_FOREIGN, array('onenumber')); $this->fail('Coding exception expected'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('coding_exception', $e); } @@ -1614,7 +1622,7 @@ class core_ddl_testcase extends database_driver_testcase { try { $dbman->delete_tables_from_xmldb_file('fpsoiudfposui'); $this->fail('Exception expected'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->resetDebugging(); $this->assertInstanceOf('moodle_exception', $e); } @@ -1622,7 +1630,7 @@ class core_ddl_testcase extends database_driver_testcase { try { $dbman->delete_tables_from_xmldb_file(__DIR__ . '/fixtures/invalid.xml'); $this->fail('Exception expected'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->resetDebugging(); $this->assertInstanceOf('moodle_exception', $e); } @@ -1645,7 +1653,7 @@ class core_ddl_testcase extends database_driver_testcase { try { $dbman->install_from_xmldb_file('fpsoiudfposui'); $this->fail('Exception expected'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->resetDebugging(); $this->assertInstanceOf('moodle_exception', $e); } @@ -1653,7 +1661,7 @@ class core_ddl_testcase extends database_driver_testcase { try { $dbman->install_from_xmldb_file(__DIR__ . '/fixtures/invalid.xml'); $this->fail('Exception expected'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->resetDebugging(); $this->assertInstanceOf('moodle_exception', $e); } @@ -1680,7 +1688,7 @@ class core_ddl_testcase extends database_driver_testcase { try { $dbman->create_temp_table($dupetable); $this->fail('Exception expected'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('ddl_exception', $e); } @@ -1689,7 +1697,7 @@ class core_ddl_testcase extends database_driver_testcase { try { $dbman->create_table($dupetable); $this->fail('Exception expected'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('ddl_exception', $e); } @@ -1726,7 +1734,7 @@ class core_ddl_testcase extends database_driver_testcase { try { $dbman->drop_table($noetable); $this->fail('Exception expected'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('ddl_table_missing_exception', $e); } @@ -1875,7 +1883,7 @@ class core_ddl_testcase extends database_driver_testcase { $dbman->drop_table($table0); - $rc = new ReflectionClass('moodle_database'); + $rc = new \ReflectionClass('moodle_database'); $rcm = $rc->getMethod('get_temp_tables_cache'); $rcm->setAccessible(true); $metacachetemp = $rcm->invokeArgs($DB, []); @@ -1886,7 +1894,7 @@ class core_ddl_testcase extends database_driver_testcase { // Data of test_table1 should be intact. $this->assertEquals(true, $metacachetemp->has('test_table1')); - $rc = new ReflectionClass('moodle_database'); + $rc = new \ReflectionClass('moodle_database'); $rcm = $rc->getMethod('get_metacache'); $rcm->setAccessible(true); $metacache = $rcm->invokeArgs($DB, []); @@ -2009,7 +2017,7 @@ class core_ddl_testcase extends database_driver_testcase { $tablename = $table->getName(); $this->tables[$tablename] = $table; - $rec = new stdClass(); + $rec = new \stdClass(); $rec->name = $maxstr; $id = $DB->insert_record($tablename, $rec); @@ -2029,7 +2037,7 @@ class core_ddl_testcase extends database_driver_testcase { try { $dbman->create_table($table); $this->fail('Exception expected'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('coding_exception', $e); } } @@ -2062,7 +2070,7 @@ class core_ddl_testcase extends database_driver_testcase { $tablename = $table->getName(); $this->tables[$tablename] = $table; - $rec = new stdClass(); + $rec = new \stdClass(); $rec->name1 = $maxstr; $rec->name2 = $reststr; @@ -2088,7 +2096,7 @@ class core_ddl_testcase extends database_driver_testcase { try { $dbman->create_table($table); $this->fail('Exception expected'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('coding_exception', $e); } } @@ -2116,7 +2124,7 @@ class core_ddl_testcase extends database_driver_testcase { $maxstr .= 'a'; // Ascii only. } - $rec = new stdClass(); + $rec = new \stdClass(); $rec->name = $maxstr; $id = $DB->insert_record($tablename, $rec); @@ -2131,7 +2139,7 @@ class core_ddl_testcase extends database_driver_testcase { $maxstr .= '言'; // Random long string that should fix exactly the limit for one char column. } - $rec = new stdClass(); + $rec = new \stdClass(); $rec->name = $maxstr; try { @@ -2163,7 +2171,7 @@ class core_ddl_testcase extends database_driver_testcase { try { $dbman->create_table($table); $this->fail('Exception expected'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('coding_exception', $e); } } diff --git a/lib/dml/tests/dml_table_test.php b/lib/dml/tests/dml_table_test.php index 7ce85d344fe..49da717dddf 100644 --- a/lib/dml/tests/dml_table_test.php +++ b/lib/dml/tests/dml_table_test.php @@ -14,27 +14,21 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * DML Table tests. - * - * @package core_dml - * @category phpunit - * @copyright 2019 Andrew Nicols - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ +namespace core; -defined('MOODLE_INTERNAL') || die(); - -use \core\dml\table; +use core\dml\table; +use xmldb_table; /** * DML Table tests. * + * @package core + * @category test * @copyright 2019 Andrew Nicols * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @coversDefaultClass \core\dml\table */ -class core_dml_table_testcase extends database_driver_testcase { +class dml_table_test extends \database_driver_testcase { /** * Data provider for various \core\dml\table method tests. @@ -162,15 +156,15 @@ class core_dml_table_testcase extends database_driver_testcase { * @param array $fieldlist The list of fields * @param string $primarykey The name of the primary key * @param string $fieldprefix The prefix to use for each field - * @param stdClass $result The result of the get_records_sql - * @param stdClass $expected The expected output + * @param \stdClass $result The result of the get_records_sql + * @param \stdClass $expected The expected output */ public function test_extract_fields_from_result( array $fieldlist, string $primarykey, string $fieldprefix, - stdClass $result, - stdClass $expected + \stdClass $result, + \stdClass $expected ) { $dbman = $this->tdb->get_manager(); diff --git a/lib/dml/tests/dml_test.php b/lib/dml/tests/dml_test.php index 23f9b7a3bfa..95341605a15 100644 --- a/lib/dml/tests/dml_test.php +++ b/lib/dml/tests/dml_test.php @@ -18,22 +18,33 @@ * DML layer tests. * * @package core - * @subpackage dml + * @category test * @copyright 2008 Nicolas Connault * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ +namespace core; + +use dml_exception; +use dml_missing_record_exception; +use dml_multiple_records_exception; +use moodle_database; +use moodle_transaction; +use xmldb_key; +use xmldb_table; + defined('MOODLE_INTERNAL') || die(); /** * DML layer tests. * * @package core - * @subpackage dml + * @category test * @copyright 2008 Nicolas Connault * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + * @coversDefaultClass \moodle_database */ -class dml_test extends database_driver_testcase { +class dml_test extends \database_driver_testcase { protected function setUp(): void { parent::setUp(); @@ -220,7 +231,7 @@ class dml_test extends database_driver_testcase { try { list($usql, $params) = $DB->get_in_or_equal($in_values, SQL_PARAMS_DOLLAR, 'param', false); $this->fail('An Exception is missing, expected due to not supported SQL_PARAMS_DOLLAR'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('dml_exception', $e); $this->assertSame('typenotimplement', $e->errorcode); } @@ -230,7 +241,7 @@ class dml_test extends database_driver_testcase { try { list($usql, $params) = $DB->get_in_or_equal($in_values, SQL_PARAMS_NAMED, 'param', false); $this->fail('An Exception is missing, expected due to empty array of items'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('coding_exception', $e); } @@ -362,7 +373,7 @@ class dml_test extends database_driver_testcase { try { $DB->fix_sql_params($sql, $params); $this->fail("Expecting an exception, none occurred"); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('dml_exception', $e); } @@ -372,7 +383,7 @@ class dml_test extends database_driver_testcase { try { $DB->fix_sql_params($sql, $params); $this->fail("Expecting an exception, none occurred"); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('dml_exception', $e); } @@ -382,7 +393,7 @@ class dml_test extends database_driver_testcase { try { $DB->fix_sql_params($sql, $params); $this->fail("Expecting an exception, none occurred"); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('dml_exception', $e); } @@ -399,7 +410,7 @@ class dml_test extends database_driver_testcase { try { $DB->fix_sql_params($sql, $params); $this->fail("Expecting an exception, none occurred"); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('dml_exception', $e); } @@ -410,7 +421,7 @@ class dml_test extends database_driver_testcase { try { $DB->fix_sql_params($sql, $params); $this->fail("Expecting an exception, none occurred"); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('dml_exception', $e); } @@ -427,7 +438,7 @@ class dml_test extends database_driver_testcase { try { $DB->fix_sql_params($sql, $params); $this->fail("Expecting an exception, none occurred"); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('coding_exception', $e); } @@ -467,7 +478,7 @@ class dml_test extends database_driver_testcase { $DB = $this->tdb; require_once($CFG->dirroot . '/lib/dml/tests/fixtures/test_dml_sql_debugging_fixture.php'); - $fixture = new test_dml_sql_debugging_fixture($this); + $fixture = new \test_dml_sql_debugging_fixture($this); $sql = "SELECT * FROM {users}"; @@ -501,7 +512,7 @@ SELECT * FROM {users} -- line 74 of /lib/dml/tests/fixtures/test_dml_sql_debugging_fixture.php: call to test_dml_sql_debugging_fixture->one() -- line 83 of /lib/dml/tests/fixtures/test_dml_sql_debugging_fixture.php: call to test_dml_sql_debugging_fixture->two() -- line 92 of /lib/dml/tests/fixtures/test_dml_sql_debugging_fixture.php: call to test_dml_sql_debugging_fixture->three() --- line 497 of /lib/dml/tests/dml_test.php: call to test_dml_sql_debugging_fixture->four() +-- line 508 of /lib/dml/tests/dml_test.php: call to test_dml_sql_debugging_fixture->four() EOD; $this->assertEquals($this->unix_to_os_dirsep($expected), $out); @@ -557,7 +568,7 @@ EOD; $this->assertTrue($dbman->table_exists($tablename)); // Test insert record. - $rec1 = new stdClass(); + $rec1 = new \stdClass(); $rec1->long_int_columnname_with_28c = 28; $rec1->long_dec_columnname_with_28c = 28.28; $rec1->long_str_columnname_with_28c = '28'; @@ -1015,7 +1026,7 @@ EOD; try { $DB->execute($sql); $this->fail("Expecting an exception, none occurred"); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('dml_exception', $e); } @@ -1146,7 +1157,7 @@ EOD; try { $rs = $DB->get_recordset($tablename, $conditions); $this->fail('An Exception is missing, expected due to equating of text fields'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('dml_exception', $e); $this->assertSame('textconditionsnotallowed', $e->errorcode); } @@ -1554,7 +1565,7 @@ EOD; // Only in debug mode - hopefully all devs test code in debug mode... $this->fail('An Exception is missing, expected due to equating of text fields'); } - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('dml_exception', $e); $this->assertSame('textconditionsnotallowed', $e->errorcode); } @@ -1564,7 +1575,7 @@ EOD; try { $records = $DB->get_records('xxxx', array('id' => 0)); $this->fail('An Exception is missing, expected due to query against non-existing table'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('dml_exception', $e); if (debugging()) { // Information for developers only, normal users get general error message. @@ -1575,7 +1586,7 @@ EOD; try { $records = $DB->get_records('xxxx', array('id' => '1')); $this->fail('An Exception is missing, expected due to query against non-existing table'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('dml_exception', $e); if (debugging()) { // Information for developers only, normal users get general error message. @@ -1587,7 +1598,7 @@ EOD; try { $records = $DB->get_records($tablename, array('xxxx' => 0)); $this->fail('An Exception is missing, expected due to query against non-existing column'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('dml_exception', $e); if (debugging()) { // Information for developers only, normal users get general error message. @@ -1855,7 +1866,7 @@ EOD; $DB->insert_record($tablename, array('course' => 2)); $record = $DB->get_record($tablename, array('id' => 2)); - $this->assertInstanceOf('stdClass', $record); + $this->assertInstanceOf(\stdClass::class, $record); $this->assertEquals(2, $record->course); $this->assertEquals(2, $record->id); @@ -1878,7 +1889,7 @@ EOD; $DB->insert_record($tablename, array('course' => 2)); $record = $DB->get_record_select($tablename, "id = ?", array(2)); - $this->assertInstanceOf('stdClass', $record); + $this->assertInstanceOf(\stdClass::class, $record); $this->assertEquals(2, $record->course); @@ -1902,7 +1913,7 @@ EOD; // Standard use. $record = $DB->get_record_sql("SELECT * FROM {{$tablename}} WHERE id = ?", array(2)); - $this->assertInstanceOf('stdClass', $record); + $this->assertInstanceOf(\stdClass::class, $record); $this->assertEquals(2, $record->course); $this->assertEquals(2, $record->id); @@ -1983,7 +1994,7 @@ EOD; // Only in debug mode - hopefully all devs test code in debug mode... $this->fail('An Exception is missing, expected due to equating of text fields'); } - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('dml_exception', $e); $this->assertSame('textconditionsnotallowed', $e->errorcode); } @@ -2106,7 +2117,7 @@ EOD; $this->assertEquals($record, $before); $record = $DB->get_record($tablename, array('course' => 1)); - $this->assertInstanceOf('stdClass', $record); + $this->assertInstanceOf(\stdClass::class, $record); $this->assertSame('xx', $record->onechar); $result = $DB->insert_record_raw($tablename, array('course' => 2, 'onechar' => 'yy'), false); @@ -2115,21 +2126,21 @@ EOD; // Note: bulk not implemented yet. $DB->insert_record_raw($tablename, array('course' => 3, 'onechar' => 'zz'), true, true); $record = $DB->get_record($tablename, array('course' => 3)); - $this->assertInstanceOf('stdClass', $record); + $this->assertInstanceOf(\stdClass::class, $record); $this->assertSame('zz', $record->onechar); // Custom sequence (id) - returnid is ignored. $result = $DB->insert_record_raw($tablename, array('id' => 10, 'course' => 3, 'onechar' => 'bb'), true, false, true); $this->assertTrue($result); $record = $DB->get_record($tablename, array('id' => 10)); - $this->assertInstanceOf('stdClass', $record); + $this->assertInstanceOf(\stdClass::class, $record); $this->assertSame('bb', $record->onechar); // Custom sequence - missing id error. try { $DB->insert_record_raw($tablename, array('course' => 3, 'onechar' => 'bb'), true, false, true); $this->fail('Exception expected due to missing record'); - } catch (coding_exception $ex) { + } catch (\coding_exception $ex) { $this->assertTrue(true); } @@ -2192,7 +2203,7 @@ EOD; $this->assertEquals(99, $record->course); // Check nulls are set properly for all types. - $record = new stdClass(); + $record = new \stdClass(); $record->oneint = null; $record->onenum = null; $record->onechar = null; @@ -2208,7 +2219,7 @@ EOD; $this->assertNull($record->onebinary); // Check zeros are set properly for all types. - $record = new stdClass(); + $record = new \stdClass(); $record->oneint = 0; $record->onenum = 0; $recid = $DB->insert_record($tablename, $record); @@ -2217,7 +2228,7 @@ EOD; $this->assertEquals(0, $record->onenum); // Check booleans are set properly for all types. - $record = new stdClass(); + $record = new \stdClass(); $record->oneint = true; // Trues. $record->onenum = true; $record->onechar = true; @@ -2229,7 +2240,7 @@ EOD; $this->assertEquals(1, $record->onechar); $this->assertEquals(1, $record->onetext); - $record = new stdClass(); + $record = new \stdClass(); $record->oneint = false; // Falses. $record->onenum = false; $record->onechar = false; @@ -2242,34 +2253,34 @@ EOD; $this->assertEquals(0, $record->onetext); // Check string data causes exception in numeric types. - $record = new stdClass(); + $record = new \stdClass(); $record->oneint = 'onestring'; $record->onenum = 0; try { $DB->insert_record($tablename, $record); $this->fail("Expecting an exception, none occurred"); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('dml_exception', $e); } - $record = new stdClass(); + $record = new \stdClass(); $record->oneint = 0; $record->onenum = 'onestring'; try { $DB->insert_record($tablename, $record); $this->fail("Expecting an exception, none occurred"); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('dml_exception', $e); } // Check empty string data is stored as 0 in numeric datatypes. - $record = new stdClass(); + $record = new \stdClass(); $record->oneint = ''; // Empty string. $record->onenum = 0; $recid = $DB->insert_record($tablename, $record); $record = $DB->get_record($tablename, array('id' => $recid)); $this->assertTrue(is_numeric($record->oneint) && $record->oneint == 0); - $record = new stdClass(); + $record = new \stdClass(); $record->oneint = 0; $record->onenum = ''; // Empty string. $recid = $DB->insert_record($tablename, $record); @@ -2277,7 +2288,7 @@ EOD; $this->assertTrue(is_numeric($record->onenum) && $record->onenum == 0); // Check empty strings are set properly in string types. - $record = new stdClass(); + $record = new \stdClass(); $record->oneint = 0; $record->onenum = 0; $record->onechar = ''; @@ -2288,7 +2299,7 @@ EOD; $this->assertTrue($record->onetext === ''); // Check operation ((210.10 + 39.92) - 150.02) against numeric types. - $record = new stdClass(); + $record = new \stdClass(); $record->oneint = ((210.10 + 39.92) - 150.02); $record->onenum = ((210.10 + 39.92) - 150.02); $recid = $DB->insert_record($tablename, $record); @@ -2303,7 +2314,7 @@ EOD; 'backslashes and quotes sequences (even): \\"\\" \\\'\\\'', 'backslashes and quotes sequences (odd): \\"\\"\\" \\\'\\\'\\\''); foreach ($teststrings as $teststring) { - $record = new stdClass(); + $record = new \stdClass(); $record->onechar = $teststring; $record->onetext = $teststring; $recid = $DB->insert_record($tablename, $record); @@ -2315,7 +2326,7 @@ EOD; // Check LOBs in text/binary columns. $clob = file_get_contents(__DIR__ . '/fixtures/clob.txt'); $blob = file_get_contents(__DIR__ . '/fixtures/randombinary'); - $record = new stdClass(); + $record = new \stdClass(); $record->onetext = $clob; $record->onebinary = $blob; $recid = $DB->insert_record($tablename, $record); @@ -2328,7 +2339,7 @@ EOD; // And "small" LOBs too, just in case. $newclob = substr($clob, 0, 500); $newblob = substr($blob, 0, 250); - $record = new stdClass(); + $record = new \stdClass(); $record->onetext = $newclob; $record->onebinary = $newblob; $recid = $DB->insert_record($tablename, $record); @@ -2342,7 +2353,7 @@ EOD; // And "diagnostic" LOBs too, just in case. $newclob = '\'"\\;/ěščřžýáíé'; $newblob = '\'"\\;/ěščřžýáíé'; - $record = new stdClass(); + $record = new \stdClass(); $record->onetext = $newclob; $record->onebinary = $newblob; $recid = $DB->insert_record($tablename, $record); @@ -2354,7 +2365,7 @@ EOD; $this->assertEquals(false, $rs->key()); // Ensure recordset key() method to be working ok after closing. // Test data is not modified. - $record = new stdClass(); + $record = new \stdClass(); $record->id = -1; // Has to be ignored. $record->course = 3; $record->lalala = 'lalal'; // Unused. @@ -2417,7 +2428,7 @@ EOD; try { $DB->insert_record($tablename, $record, false); $this->fail("Expecting an exception, none occurred"); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('dml_exception', $e); } @@ -2425,7 +2436,7 @@ EOD; try { $DB->insert_record($tablename, $record, true); $this->fail("Expecting an exception, none occurred"); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('dml_exception', $e); } @@ -2433,7 +2444,7 @@ EOD; try { $DB->insert_record('nonexistenttable', $record, true); $this->fail("Expecting an exception, none occurred"); - } catch (exception $e) { + } catch (\Exception $e) { $this->assertTrue($e instanceof dml_exception); } } @@ -2456,7 +2467,7 @@ EOD; $this->assertCount(0, $DB->get_records($tablename)); - $record = new stdClass(); + $record = new \stdClass(); $record->id = '1'; $record->course = '1'; $record->oneint = null; @@ -2514,7 +2525,7 @@ EOD; try { $DB->insert_records($tablename, $records); $this->fail('coding_exception expected when insert_records receives different object data structures'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('coding_exception', $e); } @@ -2525,7 +2536,7 @@ EOD; try { $DB->insert_records($tablename, $records); $this->fail('coding_exception expected when insert_records receives different object data structures'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('coding_exception', $e); } @@ -2533,7 +2544,7 @@ EOD; try { $DB->insert_records($tablename, $records); $this->fail('coding_exception expected when insert_records receives non-traversable data'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('coding_exception', $e); } @@ -2541,7 +2552,7 @@ EOD; try { $DB->insert_records($tablename, $records); $this->fail('coding_exception expected when insert_records receives non-objet record'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('coding_exception', $e); } } @@ -2572,7 +2583,7 @@ EOD; try { $DB->insert_record($tablename, (object) ['notnull1' => 1, 'nullable1' => 1, 'nullable2' => 1]); $this->fail('dml_write_exception expected when a record violates a unique index'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('dml_write_exception', $e); } @@ -2646,7 +2657,7 @@ EOD; $this->assertEquals(2, $records[13]->course); // Check nulls are set properly for all types. - $record = new stdClass(); + $record = new \stdClass(); $record->id = 20; $record->oneint = null; $record->onenum = null; @@ -2663,7 +2674,7 @@ EOD; $this->assertNull($record->onebinary); // Check zeros are set properly for all types. - $record = new stdClass(); + $record = new \stdClass(); $record->id = 23; $record->oneint = 0; $record->onenum = 0; @@ -2673,29 +2684,29 @@ EOD; $this->assertEquals(0, $record->onenum); // Check string data causes exception in numeric types. - $record = new stdClass(); + $record = new \stdClass(); $record->id = 32; $record->oneint = 'onestring'; $record->onenum = 0; try { $DB->import_record($tablename, $record); $this->fail("Expecting an exception, none occurred"); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('dml_exception', $e); } - $record = new stdClass(); + $record = new \stdClass(); $record->id = 35; $record->oneint = 0; $record->onenum = 'onestring'; try { $DB->import_record($tablename, $record); $this->fail("Expecting an exception, none occurred"); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('dml_exception', $e); } // Check empty strings are set properly in string types. - $record = new stdClass(); + $record = new \stdClass(); $record->id = 44; $record->oneint = 0; $record->onenum = 0; @@ -2707,7 +2718,7 @@ EOD; $this->assertTrue($record->onetext === ''); // Check operation ((210.10 + 39.92) - 150.02) against numeric types. - $record = new stdClass(); + $record = new \stdClass(); $record->id = 47; $record->oneint = ((210.10 + 39.92) - 150.02); $record->onenum = ((210.10 + 39.92) - 150.02); @@ -2724,7 +2735,7 @@ EOD; 'backslashes and quotes sequences (even): \\"\\" \\\'\\\'', 'backslashes and quotes sequences (odd): \\"\\"\\" \\\'\\\'\\\''); foreach ($teststrings as $teststring) { - $record = new stdClass(); + $record = new \stdClass(); $record->id = $i; $record->onechar = $teststring; $record->onetext = $teststring; @@ -2737,7 +2748,7 @@ EOD; // Check LOBs in text/binary columns. $clob = file_get_contents(__DIR__ . '/fixtures/clob.txt'); - $record = new stdClass(); + $record = new \stdClass(); $record->id = 70; $record->onetext = $clob; $record->onebinary = ''; @@ -2748,7 +2759,7 @@ EOD; $this->assertEquals($clob, $record->onetext, 'Test CLOB insert (full contents output disabled)'); $blob = file_get_contents(__DIR__ . '/fixtures/randombinary'); - $record = new stdClass(); + $record = new \stdClass(); $record->id = 71; $record->onetext = ''; $record->onebinary = $blob; @@ -2761,7 +2772,7 @@ EOD; // And "small" LOBs too, just in case. $newclob = substr($clob, 0, 500); $newblob = substr($blob, 0, 250); - $record = new stdClass(); + $record = new \stdClass(); $record->id = 73; $record->onetext = $newclob; $record->onebinary = $newblob; @@ -2801,7 +2812,7 @@ EOD; try { $DB->update_record_raw($tablename, $record); $this->fail("Expecting an exception, none occurred"); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('moodle_exception', $e); } @@ -2810,7 +2821,7 @@ EOD; try { $DB->update_record_raw($tablename, $record); $this->fail("Expecting an exception, none occurred"); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('coding_exception', $e); } } @@ -2900,7 +2911,7 @@ EOD; try { $DB->update_record($tablename, $record); $this->fail("Expecting an exception, none occurred"); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('dml_exception', $e); } $record->oneint = 0; @@ -2908,7 +2919,7 @@ EOD; try { $DB->update_record($tablename, $record); $this->fail("Expecting an exception, none occurred"); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('dml_exception', $e); } @@ -3070,7 +3081,7 @@ EOD; // Only in debug mode - hopefully all devs test code in debug mode... $this->fail('An Exception is missing, expected due to equating of text fields'); } - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('dml_exception', $e); $this->assertSame('textconditionsnotallowed', $e->errorcode); } @@ -3176,13 +3187,13 @@ EOD; try { $DB->set_field_select($tablename, 'oneint', 'onestring', 'id = ?', array(1)); $this->fail("Expecting an exception, none occurred"); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('dml_exception', $e); } try { $DB->set_field_select($tablename, 'onenum', 'onestring', 'id = ?', array(1)); $this->fail("Expecting an exception, none occurred"); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('dml_exception', $e); } @@ -3285,7 +3296,7 @@ EOD; // Only in debug mode - hopefully all devs test code in debug mode... $this->fail('An Exception is missing, expected due to equating of text fields'); } - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('dml_exception', $e); $this->assertSame('textconditionsnotallowed', $e->errorcode); } @@ -3338,14 +3349,14 @@ EOD; try { $DB->count_records_sql("SELECT onechar FROM {{$tablename}} WHERE course = ?", array(3)); $this->fail('Exception expected when non-number field used in count_records_sql'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('coding_exception', $e); } try { $DB->count_records_sql("SELECT course FROM {{$tablename}} WHERE 1 = 2"); $this->fail('Exception expected when non-number field used in count_records_sql'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('coding_exception', $e); } } @@ -3378,7 +3389,7 @@ EOD; // Only in debug mode - hopefully all devs test code in debug mode... $this->fail('An Exception is missing, expected due to equating of text fields'); } - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('dml_exception', $e); $this->assertSame('textconditionsnotallowed', $e->errorcode); } @@ -3529,7 +3540,7 @@ EOD; // Only in debug mode - hopefully all devs test code in debug mode... $this->fail('An Exception is missing, expected due to equating of text fields'); } - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('dml_exception', $e); $this->assertSame('textconditionsnotallowed', $e->errorcode); } @@ -3542,7 +3553,7 @@ EOD; // Only in debug mode - hopefully all devs test code in debug mode... $this->fail('An Exception is missing, expected due to equating of text fields'); } - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('dml_exception', $e); $this->assertSame('textconditionsnotallowed', $e->errorcode); } @@ -3625,11 +3636,11 @@ EOD; $table->add_key('primary', XMLDB_KEY_PRIMARY, array('id')); $dbman->create_table($table); - $o = new stdClass(); // Objects without __toString - never worked. + $o = new \stdClass(); // Objects without __toString - never worked. try { $DB->fix_sql_params("SELECT {{$tablename}} WHERE course = ? ", array($o)); $this->fail('coding_exception expected'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('coding_exception', $e); } @@ -3638,89 +3649,89 @@ EOD; try { $DB->fix_sql_params("SELECT {{$tablename}} WHERE course = ? ", array($o)); $this->fail('coding_exception expected'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('coding_exception', $e); } try { $DB->execute("SELECT {{$tablename}} WHERE course = ? ", array($o)); $this->fail('coding_exception expected'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('coding_exception', $e); } try { $DB->get_recordset_sql("SELECT {{$tablename}} WHERE course = ? ", array($o)); $this->fail('coding_exception expected'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('coding_exception', $e); } try { $DB->get_records_sql("SELECT {{$tablename}} WHERE course = ? ", array($o)); $this->fail('coding_exception expected'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('coding_exception', $e); } try { - $record = new stdClass(); + $record = new \stdClass(); $record->course = $o; $DB->insert_record_raw($tablename, $record); $this->fail('coding_exception expected'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('coding_exception', $e); } try { - $record = new stdClass(); + $record = new \stdClass(); $record->course = $o; $DB->insert_record($tablename, $record); $this->fail('coding_exception expected'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('coding_exception', $e); } try { - $record = new stdClass(); + $record = new \stdClass(); $record->course = $o; $DB->import_record($tablename, $record); $this->fail('coding_exception expected'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('coding_exception', $e); } try { - $record = new stdClass(); + $record = new \stdClass(); $record->id = 1; $record->course = $o; $DB->update_record_raw($tablename, $record); $this->fail('coding_exception expected'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('coding_exception', $e); } try { - $record = new stdClass(); + $record = new \stdClass(); $record->id = 1; $record->course = $o; $DB->update_record($tablename, $record); $this->fail('coding_exception expected'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('coding_exception', $e); } try { $DB->set_field_select($tablename, 'course', 1, "course = ? ", array($o)); $this->fail('coding_exception expected'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('coding_exception', $e); } try { $DB->delete_records_select($tablename, "course = ? ", array($o)); $this->fail('coding_exception expected'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('coding_exception', $e); } } @@ -4032,7 +4043,7 @@ EOD; try { $DB->insert_record($tablename, array('name'=>'AAA')); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { // TODO: ignore case insensitive uniqueness problems for now. // $this->fail("Unique index is case sensitive - this may cause problems in some tables"); } @@ -4041,7 +4052,7 @@ EOD; $DB->insert_record($tablename, array('name'=>'aäa')); $DB->insert_record($tablename, array('name'=>'aáa')); $this->assertTrue(true); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $family = $DB->get_dbfamily(); if ($family === 'mysql' or $family === 'mssql') { $this->fail("Unique index is accent insensitive, this may cause problems for non-ascii languages. This is usually caused by accent insensitive default collation."); @@ -4575,9 +4586,9 @@ EOD; // Silence php warning. @$DB->sql_substr("name"); $this->fail("Expecting an exception, none occurred"); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('coding_exception', $e); - } catch (Error $error) { + } catch (\Error $error) { // PHP 7.1 throws Error even earlier. $this->assertMatchesRegularExpression('/Too few arguments to function/', $error->getMessage()); } @@ -5053,7 +5064,7 @@ EOD; $long = '1234567890123456789'; $DB->replace_all_text($tablename, $columns['name'], 'kk', $long); $result = $DB->get_records($tablename, array(), 'id ASC'); - $expected[$id5]->name = core_text::substr($long.'llll', 0, 20); + $expected[$id5]->name = \core_text::substr($long.'llll', 0, 20); $this->assertEquals($expected, $result); $DB->replace_all_text($tablename, $columns['intro'], 'kk', $long); @@ -5103,7 +5114,7 @@ EOD; $this->assertEquals(1, $DB->count_records($tablename)); try { $DB->insert_record($tablename, (object)array('course'=>1)); - } catch (Exception $e) { + } catch (\Exception $e) { // This must be ignored and it must not roll back the whole transaction. } $DB->insert_record($tablename, (object)array('course'=>2)); @@ -5120,7 +5131,7 @@ EOD; $this->assertEquals(1, $DB->count_records($tablename)); try { $DB->get_records_sql('s e l e c t'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { // This must be ignored and it must not roll back the whole transaction. } $DB->insert_record($tablename, (object)array('course'=>2)); @@ -5137,7 +5148,7 @@ EOD; $this->assertEquals(1, $DB->count_records($tablename)); try { $DB->execute('xxxx'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { // This must be ignored and it must not roll back the whole transaction. } $DB->insert_record($tablename, (object)array('course'=>2)); @@ -5154,7 +5165,7 @@ EOD; $this->assertEquals(1, $DB->count_records($tablename)); try { $DB->change_database_structure('xxxx'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { // This must be ignored and it must not roll back the whole transaction. } $DB->insert_record($tablename, (object)array('course'=>2)); @@ -5186,9 +5197,9 @@ EOD; $DB->insert_record($tablename, $data); $this->assertEquals(1, $DB->count_records($tablename)); try { - $transaction->rollback(new Exception('test')); + $transaction->rollback(new \Exception('test')); $this->fail('transaction rollback must rethrow exception'); - } catch (Exception $e) { + } catch (\Exception $e) { // Ignored. } $this->assertEquals(0, $DB->count_records($tablename)); @@ -5232,9 +5243,9 @@ EOD; $DB->insert_record($tablename, $data); $transaction2->allow_commit(); try { - $transaction1->rollback(new Exception('test')); + $transaction1->rollback(new \Exception('test')); $this->fail('transaction rollback must rethrow exception'); - } catch (Exception $e) { + } catch (\Exception $e) { $this->assertEquals(get_class($e), 'Exception'); } $this->assertEquals(0, $DB->count_records($tablename)); @@ -5249,15 +5260,15 @@ EOD; $data = (object)array('course'=>4); $DB->insert_record($tablename, $data); try { - $transaction2->rollback(new Exception('test')); + $transaction2->rollback(new \Exception('test')); $this->fail('transaction rollback must rethrow exception'); - } catch (Exception $e) { + } catch (\Exception $e) { $this->assertEquals(get_class($e), 'Exception'); } $this->assertEquals(2, $DB->count_records($tablename)); // Not rolled back yet. try { $transaction1->allow_commit(); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('dml_transaction_exception', $e); } $this->assertEquals(2, $DB->count_records($tablename)); // Not rolled back yet. @@ -5355,7 +5366,7 @@ EOD; $DB->insert_record($tablename, $data); try { $DB->transactions_forbidden(); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('dml_transaction_exception', $e); } // The previous test does not force rollback. @@ -5386,13 +5397,13 @@ EOD; try { $transaction1->allow_commit(); $this->fail('wrong order of commits must throw exception'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('dml_transaction_exception', $e); } try { $transaction2->allow_commit(); $this->fail('first wrong commit forces rollback'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('dml_transaction_exception', $e); } // This is done in default exception handler usually. @@ -5411,18 +5422,18 @@ EOD; $DB->insert_record($tablename, $data); try { // This first rollback should prevent all other rollbacks. - $transaction1->rollback(new Exception('test')); - } catch (Exception $e) { + $transaction1->rollback(new \Exception('test')); + } catch (\Exception $e) { $this->assertEquals(get_class($e), 'Exception'); } try { - $transaction2->rollback(new Exception('test')); - } catch (Exception $e) { + $transaction2->rollback(new \Exception('test')); + } catch (\Exception $e) { $this->assertEquals(get_class($e), 'Exception'); } try { - $transaction1->rollback(new Exception('test')); - } catch (moodle_exception $e) { + $transaction1->rollback(new \Exception('test')); + } catch (\moodle_exception $e) { $this->assertInstanceOf('dml_transaction_exception', $e); } // This is done in default exception handler usually. @@ -5438,13 +5449,13 @@ EOD; try { $transaction2->allow_commit(); $this->fail('foreign transaction must fail'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('dml_transaction_exception', $e); } try { $transaction1->allow_commit(); $this->fail('first wrong commit forces rollback'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('dml_transaction_exception', $e); } $DB->force_transaction_rollback(); @@ -5549,7 +5560,7 @@ EOD; $DB2->get_session_lock($rowid, $timeout); $DB2->release_session_lock($rowid); // Should not be executed, but here for safety. $this->fail('An Exception is missing, expected due to session lock acquired.'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('dml_sessionwait_exception', $e); $DB->release_session_lock($rowid); // Release lock on connection1. } @@ -5884,7 +5895,7 @@ EOD; // Inserts counts as writes. - $rec1 = new stdClass(); + $rec1 = new \stdClass(); $rec1->fieldvalue = 11; $rec1->id = $DB->insert_record($tablename, $rec1); $this->assertEquals($initwrites + 1, $DB->perf_get_writes()); @@ -5895,7 +5906,7 @@ EOD; $this->assertGreaterThanOrEqual($previousqueriestime, $lastqueriestime); $previousqueriestime = $lastqueriestime; - $rec2 = new stdClass(); + $rec2 = new \stdClass(); $rec2->fieldvalue = 22; $rec2->id = $DB->insert_record($tablename, $rec2); $this->assertEquals($initwrites + 2, $DB->perf_get_writes()); diff --git a/lib/dml/tests/recordset_walk_test.php b/lib/dml/tests/recordset_walk_test.php index 17b58df1034..79a452de7bb 100644 --- a/lib/dml/tests/recordset_walk_test.php +++ b/lib/dml/tests/recordset_walk_test.php @@ -14,26 +14,17 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Test \core\dml\recordset_walk. - * - * @package core - * @category dml - * @copyright 2015 David Monllao - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ - -defined('MOODLE_INTERNAL') || die(); +namespace core; /** * Test case for recordset_walk. * * @package core - * @category dml + * @category test * @copyright 2015 David Monllao * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class core_recordset_walk_testcase extends advanced_testcase { +class recordset_walk_test extends \advanced_testcase { public function setUp(): void { parent::setUp(); @@ -113,7 +104,7 @@ class core_recordset_walk_testcase extends advanced_testcase { /** * Simple callback requiring 1 row fields. * - * @param stdClass $data + * @param \stdClass $data * @return \Traversable */ public function simple_callback($data, $nothing = 'notpassed') { @@ -126,7 +117,7 @@ class core_recordset_walk_testcase extends advanced_testcase { /** * Callback requiring 1 row fields + other params. * - * @param stdClass $data + * @param \stdClass $data * @param mixed $extra * @return \Traversable */ diff --git a/lib/dml/tests/sqlsrv_native_moodle_database_test.php b/lib/dml/tests/sqlsrv_native_moodle_database_test.php index e5f08e8ed9d..9e0f34b9f7e 100644 --- a/lib/dml/tests/sqlsrv_native_moodle_database_test.php +++ b/lib/dml/tests/sqlsrv_native_moodle_database_test.php @@ -15,14 +15,18 @@ // along with Moodle. If not, see . /** - * Test sqlsrv dml support. + * Test case for sqlsrv dml support. * * @package core - * @category dml + * @category test * @copyright 2017 John Okely * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ +namespace core; + +use sqlsrv_native_moodle_database; + defined('MOODLE_INTERNAL') || die(); global $CFG; @@ -32,11 +36,11 @@ require_once($CFG->dirroot.'/lib/dml/sqlsrv_native_moodle_database.php'); * Test case for sqlsrv dml support. * * @package core - * @category dml + * @category test * @copyright 2017 John Okely * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class sqlsrv_native_moodle_database_testcase extends advanced_testcase { +class sqlsrv_native_moodle_database_test extends \advanced_testcase { public function setUp(): void { parent::setUp(); @@ -118,7 +122,7 @@ class sqlsrv_native_moodle_database_testcase extends advanced_testcase { public function test_add_no_lock_to_temp_tables($input, $expected) { $sqlsrv = new sqlsrv_native_moodle_database(); - $reflector = new ReflectionObject($sqlsrv); + $reflector = new \ReflectionObject($sqlsrv); $method = $reflector->getMethod('add_no_lock_to_temp_tables'); $method->setAccessible(true); @@ -247,7 +251,7 @@ EOT $this->assertSame($expectedmainquery, $mainquery); // The has_query_order_by static method is protected. Use Reflection to call the method. - $method = new ReflectionMethod('sqlsrv_native_moodle_database', 'has_query_order_by'); + $method = new \ReflectionMethod('sqlsrv_native_moodle_database', 'has_query_order_by'); $method->setAccessible(true); $result = $method->invoke(null, $sql); $this->assertSame($expectedresult, $result); diff --git a/lib/editor/tinymce/tests/editor_test.php b/lib/editor/tinymce/tests/editor_test.php index d2358db1801..a60d9ed7072 100644 --- a/lib/editor/tinymce/tests/editor_test.php +++ b/lib/editor/tinymce/tests/editor_test.php @@ -18,23 +18,27 @@ * TinyMCE tests. * * @package editor_tinymce - * @category phpunit + * @category test * @copyright 2012 Petr Skoda {@link http://skodak.org} * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -defined('MOODLE_INTERNAL') || die(); +namespace editor_tinymce; +use editor_tinymce_plugin; +use tinymce_texteditor; + +defined('MOODLE_INTERNAL') || die(); /** * TinyMCE tests. * * @package editor_tinymce - * @category phpunit + * @category test * @copyright 2012 Petr Skoda {@link http://skodak.org} * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class editor_tinymce_testcase extends advanced_testcase { +class editor_test extends \advanced_testcase { public function test_autoloading() { // Note: This test core_frankestyle calssloader. @@ -163,7 +167,7 @@ class editor_tinymce_testcase extends advanced_testcase { * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class tinymce_testplugin extends editor_tinymce_plugin { - protected function update_init_params(array &$params, context $context, array $options = null) { + protected function update_init_params(array &$params, \context $context, array $options = null) { // Empty function just to make a class not abstract. } @@ -182,4 +186,4 @@ class tinymce_testplugin extends editor_tinymce_plugin { public function test_add_button_before(array &$params, $row, $button, $before = '', $alwaysadd = true) { return parent::add_button_before($params, $row, $button, $before, $alwaysadd); } -} \ No newline at end of file +} diff --git a/lib/filebrowser/tests/file_browser_test.php b/lib/filebrowser/tests/file_browser_test.php index 064140854bf..48a768fc058 100644 --- a/lib/filebrowser/tests/file_browser_test.php +++ b/lib/filebrowser/tests/file_browser_test.php @@ -14,24 +14,21 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Unit tests for file browser - * - * @package core_files - * @copyright 2017 Marina Glancy - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ +namespace core; -defined('MOODLE_INTERNAL') || die(); +use file_info_context_course; +use file_info_context_coursecat; +use file_info_context_module; +use file_info_stored; /** * Unit tests for file browser * - * @package core_files + * @package core * @copyright 2017 Marina Glancy * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class file_browser_testcase extends advanced_testcase { +class file_browser_test extends \advanced_testcase { /** @var int */ protected $initialnonempty; @@ -66,7 +63,7 @@ class file_browser_testcase extends advanced_testcase { $this->setAdminUser(); $browser = get_file_browser(); - $fileinfo = $browser->get_file_info(context_system::instance()); + $fileinfo = $browser->get_file_info(\context_system::instance()); $this->initialnonempty = $fileinfo->count_non_empty_children(); $this->initialcategories = count(array_filter($fileinfo->get_children(), function($a) { return $a instanceof file_info_context_coursecat; @@ -83,7 +80,7 @@ class file_browser_testcase extends advanced_testcase { $this->course2 = $this->getDataGenerator()->create_course(); // Add a file to course1 summary. - $coursecontext1 = context_course::instance($this->course1->id); + $coursecontext1 = \context_course::instance($this->course1->id); $this->course1filerecord = array('contextid' => $coursecontext1->id, 'component' => 'course', 'filearea' => 'summary', @@ -116,7 +113,7 @@ class file_browser_testcase extends advanced_testcase { // There is one non-empty category child and two category children. $browser = get_file_browser(); - $fileinfo = $browser->get_file_info(context_system::instance()); + $fileinfo = $browser->get_file_info(\context_system::instance()); $this->assertNotEmpty($fileinfo->count_non_empty_children()); $this->assertEquals($this->initialnonempty + 1, count($fileinfo->get_non_empty_children())); $categorychildren = array_filter($fileinfo->get_children(), function($a) { @@ -131,11 +128,11 @@ class file_browser_testcase extends advanced_testcase { public function test_file_info_context_system_hidden() { // Hide the course category that contains our two courses. Teacher does not have cap to view hidden categories. - core_course_category::get($this->course1->category)->update(['visible' => 0]); + \core_course_category::get($this->course1->category)->update(['visible' => 0]); // We should have two non-empty children in system context (courses). $browser = get_file_browser(); - $fileinfo = $browser->get_file_info(context_system::instance()); + $fileinfo = $browser->get_file_info(\context_system::instance()); $this->assertNotEmpty($fileinfo->count_non_empty_children()); $this->assertEquals($this->initialnonempty + 2, count($fileinfo->get_non_empty_children())); @@ -160,7 +157,7 @@ class file_browser_testcase extends advanced_testcase { // There are two non-empty courses. $browser = get_file_browser(); - $fileinfo = $browser->get_file_info(context_coursecat::instance($this->course2->category)); + $fileinfo = $browser->get_file_info(\context_coursecat::instance($this->course2->category)); $this->assertNotEmpty($fileinfo->count_non_empty_children()); $this->assertEquals(2, count($fileinfo->get_non_empty_children())); $coursechildren = array_filter($fileinfo->get_children(), function($a) { @@ -177,7 +174,7 @@ class file_browser_testcase extends advanced_testcase { // There is one non-empty category child and two category children. $browser = get_file_browser(); - $fileinfo = $browser->get_file_info(context_system::instance()); + $fileinfo = $browser->get_file_info(\context_system::instance()); $this->assertNotEmpty($fileinfo->count_non_empty_children(['.jpg'])); $this->assertEquals($this->initialjpg + 1, count($fileinfo->get_non_empty_children(['.jpg']))); } @@ -188,7 +185,7 @@ class file_browser_testcase extends advanced_testcase { public function test_file_info_context_course_1() { $browser = get_file_browser(); - $fileinfo = $browser->get_file_info(context_course::instance($this->course1->id)); + $fileinfo = $browser->get_file_info(\context_course::instance($this->course1->id)); // Fileinfo element has only one non-empty child - "Course summary" file area. $this->assertNotEmpty($fileinfo->count_non_empty_children()); $nonemptychildren = $fileinfo->get_non_empty_children(); @@ -209,7 +206,7 @@ class file_browser_testcase extends advanced_testcase { // Admin can see seven course-level file areas. $this->setAdminUser(); - $fileinfo = $browser->get_file_info(context_course::instance($this->course1->id)); + $fileinfo = $browser->get_file_info(\context_course::instance($this->course1->id)); $this->assertEquals(7, count($fileinfo->get_children())); } @@ -220,7 +217,7 @@ class file_browser_testcase extends advanced_testcase { // 2. Start from the course level. $browser = get_file_browser(); - $fileinfo = $browser->get_file_info(context_course::instance($this->course2->id)); + $fileinfo = $browser->get_file_info(\context_course::instance($this->course2->id)); $this->assertNotEmpty($fileinfo->count_non_empty_children()); $nonemptychildren = $fileinfo->get_non_empty_children(); $this->assertEquals(1, count($nonemptychildren)); @@ -240,7 +237,7 @@ class file_browser_testcase extends advanced_testcase { */ public function test_file_info_context_module_1() { - $module1context = context_module::instance($this->module1->cmid); + $module1context = \context_module::instance($this->module1->cmid); $browser = get_file_browser(); $fileinfo = $browser->get_file_info($module1context); $this->assertEquals($this->module1->name . ' (File)', $fileinfo->get_visible_name()); @@ -256,7 +253,7 @@ class file_browser_testcase extends advanced_testcase { */ public function test_file_info_context_module_2() { - $module2context = context_module::instance($this->module2->cmid); + $module2context = \context_module::instance($this->module2->cmid); $browser = get_file_browser(); $fileinfo = $browser->get_file_info($module2context); $this->assertEquals($this->module2->name.' (Assignment)', $fileinfo->get_visible_name()); diff --git a/lib/filestorage/tests/file_storage_test.php b/lib/filestorage/tests/file_storage_test.php index 35e7ed7af0c..8bd2ce6a7ca 100644 --- a/lib/filestorage/tests/file_storage_test.php +++ b/lib/filestorage/tests/file_storage_test.php @@ -17,12 +17,20 @@ /** * Unit tests for /lib/filestorage/file_storage.php * - * @package core_files - * @category phpunit + * @package core + * @category test * @copyright 2012 David Mudrak * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ +namespace core; + +use file_exception; +use file_reference_exception; +use repository; +use stored_file; +use stored_file_creation_exception; + defined('MOODLE_INTERNAL') || die(); global $CFG; @@ -33,11 +41,13 @@ require_once($CFG->libdir . '/filestorage/stored_file.php'); /** * Unit tests for /lib/filestorage/file_storage.php * + * @package core + * @category test * @copyright 2012 David Mudrak * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @coversDefaultClass \file_storage */ -class core_files_file_storage_testcase extends advanced_testcase { +class file_storage_test extends \advanced_testcase { /** * Files can be created from strings. @@ -53,7 +63,7 @@ class core_files_file_storage_testcase extends advanced_testcase { $installedfiles = $DB->count_records('files', array()); $content = 'abcd'; - $syscontext = context_system::instance(); + $syscontext = \context_system::instance(); $filerecord = array( 'contextid' => $syscontext->id, 'component' => 'core', @@ -126,7 +136,7 @@ class core_files_file_storage_testcase extends advanced_testcase { $installedfiles = $DB->count_records('files', array()); $filepath = $CFG->dirroot.'/lib/filestorage/tests/fixtures/testimage.jpg'; - $syscontext = context_system::instance(); + $syscontext = \context_system::instance(); $filerecord = array( 'contextid' => $syscontext->id, 'component' => 'core', @@ -189,7 +199,7 @@ class core_files_file_storage_testcase extends advanced_testcase { try { $fs->create_file_from_pathname($filerecord, $filepath.'nonexistent'); $this->fail('Exception expected when trying to add non-existent stored file.'); - } catch (Exception $e) { + } catch (\Exception $e) { $this->assertInstanceOf('file_exception', $e); } } @@ -205,7 +215,7 @@ class core_files_file_storage_testcase extends advanced_testcase { $this->resetAfterTest(false); $filepath = $CFG->dirroot.'/lib/filestorage/tests/fixtures/testimage.jpg'; - $syscontext = context_system::instance(); + $syscontext = \context_system::instance(); $filerecord = array( 'contextid' => $syscontext->id, 'component' => 'core', @@ -264,7 +274,7 @@ class core_files_file_storage_testcase extends advanced_testcase { */ public function test_get_file_preview_nonimage() { $this->resetAfterTest(true); - $syscontext = context_system::instance(); + $syscontext = \context_system::instance(); $filerecord = array( 'contextid' => $syscontext->id, 'component' => 'core', @@ -294,7 +304,7 @@ class core_files_file_storage_testcase extends advanced_testcase { $this->resetAfterTest(); $fs = get_file_storage(); - $syscontext = context_system::instance(); + $syscontext = \context_system::instance(); $component = 'core'; $filearea = 'unittest'; $itemid = 0; @@ -343,8 +353,8 @@ class core_files_file_storage_testcase extends advanced_testcase { $generator = $this->getDataGenerator(); $user = $generator->create_user(); $this->setUser($user); - $usercontext = context_user::instance($user->id); - $syscontext = context_system::instance(); + $usercontext = \context_user::instance($user->id); + $syscontext = \context_system::instance(); $fs = get_file_storage(); @@ -429,8 +439,8 @@ class core_files_file_storage_testcase extends advanced_testcase { $generator = $this->getDataGenerator(); $user = $generator->create_user(); $this->setUser($user); - $usercontext = context_user::instance($user->id); - $syscontext = context_system::instance(); + $usercontext = \context_user::instance($user->id); + $syscontext = \context_system::instance(); $fs = get_file_storage(); @@ -495,9 +505,9 @@ class core_files_file_storage_testcase extends advanced_testcase { $generator = $this->getDataGenerator(); $user = $generator->create_user(); $this->setUser($user->id); - $usercontext = context_user::instance($user->id); + $usercontext = \context_user::instance($user->id); // Create a user private file. - $file1 = new stdClass; + $file1 = new \stdClass; $file1->contextid = $usercontext->id; $file1->component = 'user'; $file1->filearea = 'private'; @@ -782,7 +792,7 @@ class core_files_file_storage_testcase extends advanced_testcase { */ public function test_create_directory_component_invalid() { $fs = get_file_storage(); - $syscontext = context_system::instance(); + $syscontext = \context_system::instance(); $this->expectException('file_exception'); $fs->create_directory($syscontext->id, 'bad/component', 'unittest', 0, '/'); @@ -795,7 +805,7 @@ class core_files_file_storage_testcase extends advanced_testcase { */ public function test_create_directory_filearea_invalid() { $fs = get_file_storage(); - $syscontext = context_system::instance(); + $syscontext = \context_system::instance(); $this->expectException('file_exception'); $fs->create_directory($syscontext->id, 'core', 'bad-filearea', 0, '/'); @@ -808,7 +818,7 @@ class core_files_file_storage_testcase extends advanced_testcase { */ public function test_create_directory_itemid_negative() { $fs = get_file_storage(); - $syscontext = context_system::instance(); + $syscontext = \context_system::instance(); $this->expectException('file_exception'); $fs->create_directory($syscontext->id, 'core', 'unittest', -1, '/'); @@ -821,7 +831,7 @@ class core_files_file_storage_testcase extends advanced_testcase { */ public function test_create_directory_itemid_invalid() { $fs = get_file_storage(); - $syscontext = context_system::instance(); + $syscontext = \context_system::instance(); $this->expectException('file_exception'); $fs->create_directory($syscontext->id, 'core', 'unittest', 'notanint', '/'); @@ -834,7 +844,7 @@ class core_files_file_storage_testcase extends advanced_testcase { */ public function test_create_directory_filepath_invalid() { $fs = get_file_storage(); - $syscontext = context_system::instance(); + $syscontext = \context_system::instance(); $this->expectException('file_exception'); $fs->create_directory($syscontext->id, 'core', 'unittest', 0, '/not-with-trailing/or-leading-slash'); @@ -931,7 +941,7 @@ class core_files_file_storage_testcase extends advanced_testcase { 'filename' => 'another-alias-to-1.txt' ); - $reference = file_storage::pack_reference(array( + $reference = \file_storage::pack_reference(array( 'contextid' => $user->ctxid, 'component' => 'user', 'filearea' => 'private', @@ -1062,7 +1072,7 @@ class core_files_file_storage_testcase extends advanced_testcase { public function test_create_file_from_url() { $this->resetAfterTest(true); - $syscontext = context_system::instance(); + $syscontext = \context_system::instance(); $filerecord = array( 'contextid' => $syscontext->id, 'component' => 'core', @@ -1133,7 +1143,7 @@ class core_files_file_storage_testcase extends advanced_testcase { // Create a course with a page resource. $course = $this->getDataGenerator()->create_course(); $page1 = $this->getDataGenerator()->create_module('page', array('course'=>$course->id)); - $page1context = context_module::instance($page1->cmid); + $page1context = \context_module::instance($page1->cmid); // Add a file to the page. $fs = get_file_storage(); @@ -1155,7 +1165,7 @@ class core_files_file_storage_testcase extends advanced_testcase { // Create a new page. $page2 = $this->getDataGenerator()->create_module('page', array('course'=>$course->id)); - $page2context = context_module::instance($page2->cmid); + $page2context = \context_module::instance($page2->cmid); // Newly created page area is empty. $this->assertTrue($fs->is_area_empty($page2context->id, 'mod_page', 'content')); @@ -1187,7 +1197,7 @@ class core_files_file_storage_testcase extends advanced_testcase { $this->resetAfterTest(false); $filepath = $CFG->dirroot.'/lib/filestorage/tests/fixtures/testimage.jpg'; - $syscontext = context_system::instance(); + $syscontext = \context_system::instance(); $filerecord = array( 'contextid' => $syscontext->id, 'component' => 'core', @@ -1220,7 +1230,7 @@ class core_files_file_storage_testcase extends advanced_testcase { $this->resetAfterTest(false); $filepath = $CFG->dirroot.'/lib/filestorage/tests/fixtures/testimage.png'; - $syscontext = context_system::instance(); + $syscontext = \context_system::instance(); $filerecord = array( 'contextid' => $syscontext->id, 'component' => 'core', @@ -1278,8 +1288,8 @@ class core_files_file_storage_testcase extends advanced_testcase { } private function generate_file_record() { - $syscontext = context_system::instance(); - $filerecord = new stdClass(); + $syscontext = \context_system::instance(); + $filerecord = new \stdClass(); $filerecord->contextid = $syscontext->id; $filerecord->component = 'core'; $filerecord->filearea = 'phpunit'; @@ -1490,9 +1500,9 @@ class core_files_file_storage_testcase extends advanced_testcase { public function test_create_file_from_storedfile() { $this->resetAfterTest(true); - $syscontext = context_system::instance(); + $syscontext = \context_system::instance(); - $filerecord = new stdClass(); + $filerecord = new \stdClass(); $filerecord->contextid = $syscontext->id; $filerecord->component = 'core'; $filerecord->filearea = 'phpunit'; @@ -1840,7 +1850,7 @@ class core_files_file_storage_testcase extends advanced_testcase { } /** - * Calling stored_file::delete_reference() on a non-reference file throws coding_exception + * Calling \stored_file::delete_reference() on a non-reference file throws coding_exception * * @covers \stored_file::delete_reference */ @@ -1867,7 +1877,7 @@ class core_files_file_storage_testcase extends advanced_testcase { } /** - * Calling stored_file::delete_reference() on a reference file does not affect other + * Calling \stored_file::delete_reference() on a reference file does not affect other * symlinks to the same original * * @covers \stored_file::delete_reference @@ -2047,14 +2057,14 @@ class core_files_file_storage_testcase extends advanced_testcase { $fs = get_file_storage(); $this->setAdminUser(); - $contextid = context_user::instance($USER->id)->id; + $contextid = \context_user::instance($USER->id)->id; $component = 'user'; $filearea = 'private'; $itemid = 0; $filepath = '/'; // Create some private files. - $file = new stdClass; + $file = new \stdClass; $file->contextid = $contextid; $file->component = 'user'; $file->filearea = 'private'; @@ -2110,7 +2120,7 @@ class core_files_file_storage_testcase extends advanced_testcase { * @covers ::mimetype */ public function test_mimetype_not_found() { - $mimetype = file_storage::mimetype('/path/to/nonexistent/file'); + $mimetype = \file_storage::mimetype('/path/to/nonexistent/file'); $this->assertEquals('document/unknown', $mimetype); } @@ -2142,7 +2152,7 @@ class core_files_file_storage_testcase extends advanced_testcase { * @dataProvider filepath_mimetype_provider */ public function test_mimetype_known(string $filepath, string $expectedmimetype): void { - $mimetype = file_storage::mimetype($filepath); + $mimetype = \file_storage::mimetype($filepath); $this->assertEquals($expectedmimetype, $mimetype); } @@ -2153,7 +2163,7 @@ class core_files_file_storage_testcase extends advanced_testcase { * @covers ::mimetype_from_file */ public function test_mimetype_from_file_not_found() { - $mimetype = file_storage::mimetype_from_file('/path/to/nonexistent/file'); + $mimetype = \file_storage::mimetype_from_file('/path/to/nonexistent/file'); $this->assertEquals('document/unknown', $mimetype); } @@ -2173,7 +2183,7 @@ class core_files_file_storage_testcase extends advanced_testcase { * @dataProvider filepath_mimetype_provider */ public function test_mimetype_from_file_known(string $filepath, string $expectedmimetype): void { - $mimetype = file_storage::mimetype_from_file($filepath); + $mimetype = \file_storage::mimetype_from_file($filepath); $this->assertEquals($expectedmimetype, $mimetype); } diff --git a/lib/filestorage/tests/file_system_filedir_test.php b/lib/filestorage/tests/file_system_filedir_test.php index f65378f460b..e75fdc9fdef 100644 --- a/lib/filestorage/tests/file_system_filedir_test.php +++ b/lib/filestorage/tests/file_system_filedir_test.php @@ -14,14 +14,9 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Unit tests for file_system_filedir. - * - * @package core_files - * @category phpunit - * @copyright 2017 Andrew Nicols - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ +namespace core; + +use file_system_filedir; defined('MOODLE_INTERNAL') || die(); @@ -32,13 +27,13 @@ require_once($CFG->libdir . '/filestorage/file_system_filedir.php'); /** * Unit tests for file_system_filedir. * - * @package core_files - * @category files + * @package core + * @category test * @copyright 2017 Andrew Nicols * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @coversDefaultClass \file_system_filedir */ -class core_files_file_system_filedir_testcase extends advanced_testcase { +class file_system_filedir_test extends \advanced_testcase { /** * Shared test setUp. @@ -100,12 +95,12 @@ class core_files_file_system_filedir_testcase extends advanced_testcase { * @return stored_file */ protected function get_stored_file($filecontent, $filename = null, $mockedmethods = []) { - $contenthash = file_storage::hash_from_string($filecontent); + $contenthash = \file_storage::hash_from_string($filecontent); if (empty($filename)) { $filename = $contenthash; } - $file = $this->getMockBuilder(stored_file::class) + $file = $this->getMockBuilder(\stored_file::class) ->onlyMethods($mockedmethods) ->setConstructorArgs([ get_file_storage(), @@ -210,7 +205,7 @@ class core_files_file_system_filedir_testcase extends advanced_testcase { */ public function test_get_remote_path_from_hash() { $filecontent = 'example content'; - $contenthash = file_storage::hash_from_string($filecontent); + $contenthash = \file_storage::hash_from_string($filecontent); $expectedresult = (object) []; $fs = $this->get_testable_mock([ @@ -222,7 +217,7 @@ class core_files_file_system_filedir_testcase extends advanced_testcase { ->with($this->equalTo($contenthash), $this->equalTo(false)) ->willReturn($expectedresult); - $method = new ReflectionMethod(file_system_filedir::class, 'get_remote_path_from_hash'); + $method = new \ReflectionMethod(file_system_filedir::class, 'get_remote_path_from_hash'); $method->setAccessible(true); $result = $method->invokeArgs($fs, [$contenthash]); @@ -298,7 +293,7 @@ class core_files_file_system_filedir_testcase extends advanced_testcase { global $CFG; $fs = new file_system_filedir(); - $method = new ReflectionMethod(file_system_filedir::class, 'get_fulldir_from_hash'); + $method = new \ReflectionMethod(file_system_filedir::class, 'get_fulldir_from_hash'); $method->setAccessible(true); $result = $method->invokeArgs($fs, array($hash)); @@ -330,7 +325,7 @@ class core_files_file_system_filedir_testcase extends advanced_testcase { $file->method('get_contenthash')->willReturn($hash); $fs = new file_system_filedir(); - $method = new ReflectionMethod('file_system_filedir', 'get_fulldir_from_storedfile'); + $method = new \ReflectionMethod('file_system_filedir', 'get_fulldir_from_storedfile'); $method->setAccessible(true); $result = $method->invokeArgs($fs, array($file)); @@ -349,7 +344,7 @@ class core_files_file_system_filedir_testcase extends advanced_testcase { * @covers ::get_contentdir_from_hash */ public function test_get_contentdir_from_hash($hash, $hashdir) { - $method = new ReflectionMethod(file_system_filedir::class, 'get_contentdir_from_hash'); + $method = new \ReflectionMethod(file_system_filedir::class, 'get_contentdir_from_hash'); $method->setAccessible(true); $fs = new file_system_filedir(); @@ -369,7 +364,7 @@ class core_files_file_system_filedir_testcase extends advanced_testcase { * @covers ::get_contentpath_from_hash */ public function test_get_contentpath_from_hash($hash, $hashdir) { - $method = new ReflectionMethod(file_system_filedir::class, 'get_contentpath_from_hash'); + $method = new \ReflectionMethod(file_system_filedir::class, 'get_contentpath_from_hash'); $method->setAccessible(true); $fs = new file_system_filedir(); @@ -393,7 +388,7 @@ class core_files_file_system_filedir_testcase extends advanced_testcase { global $CFG; $fs = new file_system_filedir(); - $method = new ReflectionMethod(file_system_filedir::class, 'get_trash_fullpath_from_hash'); + $method = new \ReflectionMethod(file_system_filedir::class, 'get_trash_fullpath_from_hash'); $method->setAccessible(true); $result = $method->invokeArgs($fs, array($hash)); @@ -415,7 +410,7 @@ class core_files_file_system_filedir_testcase extends advanced_testcase { global $CFG; $fs = new file_system_filedir(); - $method = new ReflectionMethod(file_system_filedir::class, 'get_trash_fulldir_from_hash'); + $method = new \ReflectionMethod(file_system_filedir::class, 'get_trash_fulldir_from_hash'); $method->setAccessible(true); $result = $method->invokeArgs($fs, array($hash)); @@ -433,7 +428,7 @@ class core_files_file_system_filedir_testcase extends advanced_testcase { global $CFG; $filecontent = 'example content'; - $contenthash = file_storage::hash_from_string($filecontent); + $contenthash = \file_storage::hash_from_string($filecontent); $filedircontent = [ $contenthash => $filecontent, ]; @@ -446,7 +441,7 @@ class core_files_file_system_filedir_testcase extends advanced_testcase { ]) ->getMock(); - $file = $this->getMockBuilder(stored_file::class) + $file = $this->getMockBuilder(\stored_file::class) ->disableOriginalConstructor() ->getMock(); @@ -472,7 +467,7 @@ class core_files_file_system_filedir_testcase extends advanced_testcase { // Setup the filedir. // This contains a virtual file which has a cache mismatch. $filecontent = 'example content'; - $contenthash = file_storage::hash_from_string($filecontent); + $contenthash = \file_storage::hash_from_string($filecontent); $trashdircontent = [ '0f' => [ @@ -484,13 +479,13 @@ class core_files_file_system_filedir_testcase extends advanced_testcase { $vfileroot = $this->setup_vfile_root([], $trashdircontent); - $file = new stored_file(get_file_storage(), (object) [ + $file = new \stored_file(get_file_storage(), (object) [ 'contenthash' => $contenthash, 'filesize' => strlen($filecontent), ]); $fs = new file_system_filedir(); - $method = new ReflectionMethod(file_system_filedir::class, 'recover_file'); + $method = new \ReflectionMethod(file_system_filedir::class, 'recover_file'); $method->setAccessible(true); $result = $method->invokeArgs($fs, array($file)); @@ -512,7 +507,7 @@ class core_files_file_system_filedir_testcase extends advanced_testcase { // Setup the filedir. // This contains a virtual file which has a cache mismatch. $filecontent = 'example content'; - $contenthash = file_storage::hash_from_string($filecontent); + $contenthash = \file_storage::hash_from_string($filecontent); $filedircontent = $trashdircontent = [ '0f' => [ @@ -524,13 +519,13 @@ class core_files_file_system_filedir_testcase extends advanced_testcase { $vfileroot = $this->setup_vfile_root($filedircontent, $trashdircontent); - $file = new stored_file(get_file_storage(), (object) [ + $file = new \stored_file(get_file_storage(), (object) [ 'contenthash' => $contenthash, 'filesize' => strlen($filecontent), ]); $fs = new file_system_filedir(); - $method = new ReflectionMethod(file_system_filedir::class, 'recover_file'); + $method = new \ReflectionMethod(file_system_filedir::class, 'recover_file'); $method->setAccessible(true); $result = $method->invokeArgs($fs, array($file)); @@ -551,7 +546,7 @@ class core_files_file_system_filedir_testcase extends advanced_testcase { // Setup the filedir. // This contains a virtual file which has a cache mismatch. $filecontent = 'example content'; - $contenthash = file_storage::hash_from_string($filecontent); + $contenthash = \file_storage::hash_from_string($filecontent); $trashdircontent = [ '0f' => [ @@ -562,13 +557,13 @@ class core_files_file_system_filedir_testcase extends advanced_testcase { ]; $vfileroot = $this->setup_vfile_root([], $trashdircontent); - $file = new stored_file(get_file_storage(), (object) [ + $file = new \stored_file(get_file_storage(), (object) [ 'contenthash' => $contenthash, 'filesize' => strlen($filecontent) + 1, ]); $fs = new file_system_filedir(); - $method = new ReflectionMethod(file_system_filedir::class, 'recover_file'); + $method = new \ReflectionMethod(file_system_filedir::class, 'recover_file'); $method->setAccessible(true); $result = $method->invokeArgs($fs, array($file)); @@ -588,7 +583,7 @@ class core_files_file_system_filedir_testcase extends advanced_testcase { // Setup the filedir. // This contains a virtual file which has a cache mismatch. $filecontent = 'example content'; - $contenthash = file_storage::hash_from_string($filecontent); + $contenthash = \file_storage::hash_from_string($filecontent); $trashdircontent = [ '0f' => [ @@ -599,13 +594,13 @@ class core_files_file_system_filedir_testcase extends advanced_testcase { ]; $vfileroot = $this->setup_vfile_root([], $trashdircontent); - $file = new stored_file(get_file_storage(), (object) [ + $file = new \stored_file(get_file_storage(), (object) [ 'contenthash' => $contenthash . " different", 'filesize' => strlen($filecontent), ]); $fs = new file_system_filedir(); - $method = new ReflectionMethod(file_system_filedir::class, 'recover_file'); + $method = new \ReflectionMethod(file_system_filedir::class, 'recover_file'); $method->setAccessible(true); $result = $method->invokeArgs($fs, array($file)); @@ -626,20 +621,20 @@ class core_files_file_system_filedir_testcase extends advanced_testcase { // Setup the filedir. // This contains a virtual file which has a cache mismatch. $filecontent = 'example content'; - $contenthash = file_storage::hash_from_string($filecontent); + $contenthash = \file_storage::hash_from_string($filecontent); $trashdircontent = [ $contenthash => $filecontent, ]; $vfileroot = $this->setup_vfile_root([], $trashdircontent); - $file = new stored_file(get_file_storage(), (object) [ + $file = new \stored_file(get_file_storage(), (object) [ 'contenthash' => $contenthash, 'filesize' => strlen($filecontent), ]); $fs = new file_system_filedir(); - $method = new ReflectionMethod(file_system_filedir::class, 'recover_file'); + $method = new \ReflectionMethod(file_system_filedir::class, 'recover_file'); $method->setAccessible(true); $result = $method->invokeArgs($fs, array($file)); @@ -659,7 +654,7 @@ class core_files_file_system_filedir_testcase extends advanced_testcase { $this->resetAfterTest(); $filecontent = 'example content'; - $contenthash = file_storage::hash_from_string($filecontent); + $contenthash = \file_storage::hash_from_string($filecontent); $filedircontent = [ '0f' => [], ]; @@ -673,13 +668,13 @@ class core_files_file_system_filedir_testcase extends advanced_testcase { ->chmod(0444) ->chown(\org\bovigo\vfs\vfsStream::OWNER_USER_2); - $file = new stored_file(get_file_storage(), (object) [ + $file = new \stored_file(get_file_storage(), (object) [ 'contenthash' => $contenthash, 'filesize' => strlen($filecontent), ]); $fs = new file_system_filedir(); - $method = new ReflectionMethod(file_system_filedir::class, 'recover_file'); + $method = new \ReflectionMethod(file_system_filedir::class, 'recover_file'); $method->setAccessible(true); $result = $method->invokeArgs($fs, array($file)); @@ -699,7 +694,7 @@ class core_files_file_system_filedir_testcase extends advanced_testcase { // Setup the filedir. // This contains a virtual file which has a cache mismatch. $filecontent = 'example content'; - $contenthash = file_storage::hash_from_string($filecontent); + $contenthash = \file_storage::hash_from_string($filecontent); $sourcedircontent = [ 'file' => $filecontent, ]; @@ -716,7 +711,7 @@ class core_files_file_system_filedir_testcase extends advanced_testcase { // Test the output. $this->assertEquals($contenthash, $result[0]); - $this->assertEquals(core_text::strlen($filecontent), $result[1]); + $this->assertEquals(\core_text::strlen($filecontent), $result[1]); $this->assertTrue($result[2]); $this->assertEquals($filecontent, $vfileroot->getChild('filedir/0f/f3/' . $contenthash)->getContent()); @@ -752,7 +747,7 @@ class core_files_file_system_filedir_testcase extends advanced_testcase { $this->resetAfterTest(); $filecontent = 'example content'; - $contenthash = file_storage::hash_from_string($filecontent); + $contenthash = \file_storage::hash_from_string($filecontent); $sourcedir = [ 'file' => $filecontent, ]; @@ -774,7 +769,7 @@ class core_files_file_system_filedir_testcase extends advanced_testcase { $this->resetAfterTest(); $filecontent = 'example content'; - $contenthash = file_storage::hash_from_string($filecontent); + $contenthash = \file_storage::hash_from_string($filecontent); $filedircontent = [ '0f' => [ 'f3' => [ @@ -798,7 +793,7 @@ class core_files_file_system_filedir_testcase extends advanced_testcase { // Test the output. $this->assertEquals($contenthash, $result[0]); - $this->assertEquals(core_text::strlen($filecontent), $result[1]); + $this->assertEquals(\core_text::strlen($filecontent), $result[1]); $this->assertFalse($result[2]); // Fetch the new file structure. @@ -819,7 +814,7 @@ class core_files_file_system_filedir_testcase extends advanced_testcase { $this->resetAfterTest(); $filecontent = 'example content'; - $contenthash = file_storage::hash_from_string($filecontent); + $contenthash = \file_storage::hash_from_string($filecontent); $filedircontent = [ '0f' => [], ]; @@ -853,7 +848,7 @@ class core_files_file_system_filedir_testcase extends advanced_testcase { global $CFG; $filecontent = 'example content'; - $contenthash = file_storage::hash_from_string($filecontent); + $contenthash = \file_storage::hash_from_string($filecontent); $vfileroot = $this->setup_vfile_root(); // Note, the vfs file system does not support locks - prevent file locking here. @@ -865,7 +860,7 @@ class core_files_file_system_filedir_testcase extends advanced_testcase { // Test the output. $this->assertEquals($contenthash, $result[0]); - $this->assertEquals(core_text::strlen($filecontent), $result[1]); + $this->assertEquals(\core_text::strlen($filecontent), $result[1]); $this->assertTrue($result[2]); } @@ -879,7 +874,7 @@ class core_files_file_system_filedir_testcase extends advanced_testcase { $this->resetAfterTest(); $filecontent = 'example content'; - $contenthash = file_storage::hash_from_string($filecontent); + $contenthash = \file_storage::hash_from_string($filecontent); $filedircontent = [ '0f' => [], @@ -911,7 +906,7 @@ class core_files_file_system_filedir_testcase extends advanced_testcase { global $CFG; $filecontent = 'example content'; - $contenthash = file_storage::hash_from_string($filecontent); + $contenthash = \file_storage::hash_from_string($filecontent); $filedircontent = [ '0f' => [ 'f3' => [ @@ -931,7 +926,7 @@ class core_files_file_system_filedir_testcase extends advanced_testcase { // Test the output. $this->assertEquals($contenthash, $result[0]); - $this->assertEquals(core_text::strlen($filecontent), $result[1]); + $this->assertEquals(\core_text::strlen($filecontent), $result[1]); $this->assertFalse($result[2]); } @@ -944,7 +939,7 @@ class core_files_file_system_filedir_testcase extends advanced_testcase { $this->resetAfterTest(); $filecontent = 'example content'; - $contenthash = file_storage::hash_from_string($filecontent); + $contenthash = \file_storage::hash_from_string($filecontent); $vfileroot = $this->setup_vfile_root(); $fs = new file_system_filedir(); @@ -967,7 +962,7 @@ class core_files_file_system_filedir_testcase extends advanced_testcase { $this->resetAfterTest(); $filecontent = 'example content'; - $contenthash = file_storage::hash_from_string($filecontent); + $contenthash = \file_storage::hash_from_string($filecontent); $filedircontent = $trashdircontent = [ '0f' => [ @@ -1005,7 +1000,7 @@ class core_files_file_system_filedir_testcase extends advanced_testcase { $fs = new file_system_filedir(); - $result = $fs->remove_file(file_storage::hash_from_string('')); + $result = $fs->remove_file(\file_storage::hash_from_string('')); $this->assertNull($result); } @@ -1020,7 +1015,7 @@ class core_files_file_system_filedir_testcase extends advanced_testcase { global $DB; $filecontent = 'example content'; - $contenthash = file_storage::hash_from_string($filecontent); + $contenthash = \file_storage::hash_from_string($filecontent); $filedircontent = [ '0f' => [ 'f3' => [ @@ -1053,7 +1048,7 @@ class core_files_file_system_filedir_testcase extends advanced_testcase { global $DB; $filecontent = 'example content'; - $contenthash = file_storage::hash_from_string($filecontent); + $contenthash = \file_storage::hash_from_string($filecontent); $filedircontent = [ '0f' => [ 'f3' => [ @@ -1084,7 +1079,7 @@ class core_files_file_system_filedir_testcase extends advanced_testcase { $this->resetAfterTest(); $filecontent = 'example content'; - $contenthash = file_storage::hash_from_string($filecontent); + $contenthash = \file_storage::hash_from_string($filecontent); $filedircontent = $trashdircontent = [ '0f' => [ @@ -1096,7 +1091,7 @@ class core_files_file_system_filedir_testcase extends advanced_testcase { $vfileroot = $this->setup_vfile_root($filedircontent, $trashdircontent); $fs = new file_system_filedir(); - $method = new ReflectionMethod(file_system_filedir::class, 'empty_trash'); + $method = new \ReflectionMethod(file_system_filedir::class, 'empty_trash'); $method->setAccessible(true); $result = $method->invoke($fs); diff --git a/lib/filestorage/tests/file_system_test.php b/lib/filestorage/tests/file_system_test.php index 1ab6acc4e65..94433665e04 100644 --- a/lib/filestorage/tests/file_system_test.php +++ b/lib/filestorage/tests/file_system_test.php @@ -14,14 +14,12 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Unit tests for file_system. - * - * @package core_files - * @category phpunit - * @copyright 2017 Andrew Nicols - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ +namespace core; + +use file_archive; +use file_packer; +use file_system; +use file_system_filedir; defined('MOODLE_INTERNAL') || die(); @@ -31,13 +29,13 @@ require_once($CFG->libdir . '/filestorage/file_system.php'); /** * Unit tests for file_system. * - * @package core_files - * @category phpunit + * @package core + * @category test * @copyright 2017 Andrew Nicols * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @coversDefaultClass \file_system */ -class core_files_file_system_testcase extends advanced_testcase { +class file_system_test extends \advanced_testcase { public function setUp(): void { get_file_storage(true); @@ -71,12 +69,12 @@ class core_files_file_system_testcase extends advanced_testcase { * @return stored_file */ protected function get_stored_file($filecontent, $filename = null, $mockedmethods = []) { - $contenthash = file_storage::hash_from_string($filecontent); + $contenthash = \file_storage::hash_from_string($filecontent); if (empty($filename)) { $filename = $contenthash; } - $file = $this->getMockBuilder(stored_file::class) + $file = $this->getMockBuilder(\stored_file::class) ->onlyMethods($mockedmethods) ->setConstructorArgs([ get_file_storage(), @@ -111,7 +109,7 @@ class core_files_file_system_testcase extends advanced_testcase { * */ public function test_not_cloneable() { - $reflection = new ReflectionClass('file_system'); + $reflection = new \ReflectionClass('file_system'); $this->assertFalse($reflection->isCloneable()); } @@ -239,7 +237,7 @@ class core_files_file_system_testcase extends advanced_testcase { ]); $fs->expects($this->once()) ->method('get_local_path_from_hash') - ->with($this->equalTo(file_storage::hash_from_string($filecontent)), $this->equalTo($fetch)) + ->with($this->equalTo(\file_storage::hash_from_string($filecontent)), $this->equalTo($fetch)) ->willReturn($filepath); $file = $this->get_stored_file($filecontent); @@ -266,7 +264,7 @@ class core_files_file_system_testcase extends advanced_testcase { $fs->expects($this->once()) ->method('get_remote_path_from_hash') - ->with($this->equalTo(file_storage::hash_from_string($filecontent)), $this->equalTo(false)) + ->with($this->equalTo(\file_storage::hash_from_string($filecontent)), $this->equalTo(false)) ->willReturn($filepath); $file = $this->get_stored_file($filecontent); @@ -288,7 +286,7 @@ class core_files_file_system_testcase extends advanced_testcase { */ public function test_is_file_readable_locally_by_hash() { $filecontent = 'example content'; - $contenthash = file_storage::hash_from_string($filecontent); + $contenthash = \file_storage::hash_from_string($filecontent); $filepath = __FILE__; $fs = $this->get_testable_mock([ @@ -309,7 +307,7 @@ class core_files_file_system_testcase extends advanced_testcase { */ public function test_is_file_readable_locally_by_hash_empty() { $filecontent = ''; - $contenthash = file_storage::hash_from_string($filecontent); + $contenthash = \file_storage::hash_from_string($filecontent); $fs = $this->get_testable_mock([ 'get_local_path_from_hash', @@ -328,7 +326,7 @@ class core_files_file_system_testcase extends advanced_testcase { */ public function test_is_file_readable_remotely_by_hash() { $filecontent = 'example content'; - $contenthash = file_storage::hash_from_string($filecontent); + $contenthash = \file_storage::hash_from_string($filecontent); $fs = $this->get_testable_mock([ 'get_remote_path_from_hash', @@ -348,7 +346,7 @@ class core_files_file_system_testcase extends advanced_testcase { */ public function test_is_file_readable_remotely_by_hash_empty() { $filecontent = ''; - $contenthash = file_storage::hash_from_string($filecontent); + $contenthash = \file_storage::hash_from_string($filecontent); $fs = $this->get_testable_mock([ 'get_remote_path_from_hash', @@ -367,7 +365,7 @@ class core_files_file_system_testcase extends advanced_testcase { */ public function test_is_file_readable_remotely_by_hash_not_found() { $filecontent = 'example content'; - $contenthash = file_storage::hash_from_string($filecontent); + $contenthash = \file_storage::hash_from_string($filecontent); $fs = $this->get_testable_mock([ 'get_remote_path_from_hash', @@ -493,9 +491,9 @@ class core_files_file_system_testcase extends advanced_testcase { */ public function test_is_file_removable_empty() { $filecontent = ''; - $contenthash = file_storage::hash_from_string($filecontent); + $contenthash = \file_storage::hash_from_string($filecontent); - $method = new ReflectionMethod(file_system::class, 'is_file_removable'); + $method = new \ReflectionMethod(file_system::class, 'is_file_removable'); $method->setAccessible(true); $result = $method->invokeArgs(null, [$contenthash]); $this->assertFalse($result); @@ -511,14 +509,14 @@ class core_files_file_system_testcase extends advanced_testcase { global $DB; $filecontent = 'example content'; - $contenthash = file_storage::hash_from_string($filecontent); + $contenthash = \file_storage::hash_from_string($filecontent); $DB = $this->getMockBuilder(\moodle_database::class) ->onlyMethods(['record_exists']) ->getMockForAbstractClass(); $DB->method('record_exists')->willReturn(true); - $method = new ReflectionMethod(file_system::class, 'is_file_removable'); + $method = new \ReflectionMethod(file_system::class, 'is_file_removable'); $method->setAccessible(true); $result = $method->invokeArgs(null, [$contenthash]); @@ -535,14 +533,14 @@ class core_files_file_system_testcase extends advanced_testcase { global $DB; $filecontent = 'example content'; - $contenthash = file_storage::hash_from_string($filecontent); + $contenthash = \file_storage::hash_from_string($filecontent); $DB = $this->getMockBuilder(\moodle_database::class) ->onlyMethods(['record_exists']) ->getMockForAbstractClass(); $DB->method('record_exists')->willReturn(false); - $method = new ReflectionMethod(file_system::class, 'is_file_removable'); + $method = new \ReflectionMethod(file_system::class, 'is_file_removable'); $method->setAccessible(true); $result = $method->invokeArgs(null, [$contenthash]); @@ -911,7 +909,7 @@ class core_files_file_system_testcase extends advanced_testcase { // Get the filesystem mock. $fs = $this->get_testable_mock(); - $method = new ReflectionMethod(file_system::class, 'get_imageinfo_from_path'); + $method = new \ReflectionMethod(file_system::class, 'get_imageinfo_from_path'); $method->setAccessible(true); $result = $method->invokeArgs($fs, [$filepath]); @@ -933,7 +931,7 @@ class core_files_file_system_testcase extends advanced_testcase { // Get the filesystem mock. $fs = $this->get_testable_mock(); - $method = new ReflectionMethod(file_system::class, 'get_imageinfo_from_path'); + $method = new \ReflectionMethod(file_system::class, 'get_imageinfo_from_path'); $method->setAccessible(true); $result = $method->invokeArgs($fs, [$filepath]); @@ -950,7 +948,7 @@ class core_files_file_system_testcase extends advanced_testcase { // Get the filesystem mock. $fs = $this->get_testable_mock(); - $method = new ReflectionMethod(file_system::class, 'get_imageinfo_from_path'); + $method = new \ReflectionMethod(file_system::class, 'get_imageinfo_from_path'); $method->setAccessible(true); $result = $method->invokeArgs($fs, [$filepath]); @@ -972,7 +970,7 @@ class core_files_file_system_testcase extends advanced_testcase { // Get the filesystem mock. $fs = $this->get_testable_mock(); - $method = new ReflectionMethod(file_system::class, 'get_imageinfo_from_path'); + $method = new \ReflectionMethod(file_system::class, 'get_imageinfo_from_path'); $method->setAccessible(true); $result = $method->invokeArgs($fs, [$filepath]); @@ -994,7 +992,7 @@ class core_files_file_system_testcase extends advanced_testcase { // Get the filesystem mock. $fs = $this->get_testable_mock(); - $method = new ReflectionMethod(file_system::class, 'get_imageinfo_from_path'); + $method = new \ReflectionMethod(file_system::class, 'get_imageinfo_from_path'); $method->setAccessible(true); $result = $method->invokeArgs($fs, [$filepath]); @@ -1016,7 +1014,7 @@ class core_files_file_system_testcase extends advanced_testcase { // Get the filesystem mock. $fs = $this->get_testable_mock(); - $method = new ReflectionMethod(file_system::class, 'get_imageinfo_from_path'); + $method = new \ReflectionMethod(file_system::class, 'get_imageinfo_from_path'); $method->setAccessible(true); $result = $method->invokeArgs($fs, [$filepath]); @@ -1057,7 +1055,7 @@ class core_files_file_system_testcase extends advanced_testcase { ->willReturn(__DIR__ . "/fixtures/test.tgz"); // Note: We are unable to determine the mode in which the $fh was opened. - $fh = $fs->get_content_file_handle($file, stored_file::FILE_HANDLE_GZOPEN); + $fh = $fs->get_content_file_handle($file, \stored_file::FILE_HANDLE_GZOPEN); $this->assertTrue(is_resource($fh)); gzclose($fh); } @@ -1089,7 +1087,7 @@ class core_files_file_system_testcase extends advanced_testcase { $filepath = '/path/to/file/not/currently/on/disk'; $filecontent = 'example content'; $filename = 'test.jpg'; - $contenthash = file_storage::hash_from_string($filecontent); + $contenthash = \file_storage::hash_from_string($filecontent); $fs = $this->get_testable_mock(['get_remote_path_from_hash']); $fs->method('get_remote_path_from_hash')->willReturn($filepath); @@ -1106,7 +1104,7 @@ class core_files_file_system_testcase extends advanced_testcase { */ public function test_mimetype_from_hash_using_file_content() { $filecontent = 'example content'; - $contenthash = file_storage::hash_from_string($filecontent); + $contenthash = \file_storage::hash_from_string($filecontent); $filename = 'example'; $filepath = __DIR__ . "/fixtures/testimage.jpg"; @@ -1126,7 +1124,7 @@ class core_files_file_system_testcase extends advanced_testcase { public function test_mimetype_from_hash_using_file_content_remote() { $filepath = '/path/to/file/not/currently/on/disk'; $filecontent = 'example content'; - $contenthash = file_storage::hash_from_string($filecontent); + $contenthash = \file_storage::hash_from_string($filecontent); $filename = 'example'; $filepath = __DIR__ . "/fixtures/testimage.jpg"; diff --git a/lib/filestorage/tests/mbz_packer_test.php b/lib/filestorage/tests/mbz_packer_test.php index 2b7ef995568..affed9f5f48 100644 --- a/lib/filestorage/tests/mbz_packer_test.php +++ b/lib/filestorage/tests/mbz_packer_test.php @@ -14,20 +14,21 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Unit tests for /lib/filestorage/mbz_packer.php. - * - * @package core_files - * @copyright 2013 The Open University - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ +namespace core; defined('MOODLE_INTERNAL') || die(); global $CFG; require_once($CFG->libdir . '/filestorage/file_progress.php'); -class core_files_mbz_packer_testcase extends advanced_testcase { +/** + * Unit tests for /lib/filestorage/mbz_packer.php. + * + * @package core + * @copyright 2013 The Open University + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +class mbz_packer_test extends \advanced_testcase { public function test_archive_with_both_options() { global $CFG; @@ -44,7 +45,7 @@ class core_files_mbz_packer_testcase extends advanced_testcase { $CFG->usezipbackups = true; $filefalse = $CFG->tempdir . '/false.mbz'; $this->assertNotEmpty($packer->archive_to_pathname($files, $filefalse)); - $context = context_system::instance(); + $context = \context_system::instance(); $this->assertNotEmpty($storagefalse = $packer->archive_to_storage( $files, $context->id, 'phpunit', 'data', 0, '/', 'false.mbz')); @@ -52,7 +53,7 @@ class core_files_mbz_packer_testcase extends advanced_testcase { $CFG->usezipbackups = false; $filetrue = $CFG->tempdir . '/true.mbz'; $this->assertNotEmpty($packer->archive_to_pathname($files, $filetrue)); - $context = context_system::instance(); + $context = \context_system::instance(); $this->assertNotEmpty($storagetrue = $packer->archive_to_storage( $files, $context->id, 'phpunit', 'data', 0, '/', 'true.mbz')); diff --git a/lib/filestorage/tests/tgz_packer_test.php b/lib/filestorage/tests/tgz_packer_test.php index f12668e38c1..22ca0f1505b 100644 --- a/lib/filestorage/tests/tgz_packer_test.php +++ b/lib/filestorage/tests/tgz_packer_test.php @@ -14,20 +14,24 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Unit tests for /lib/filestorage/tgz_packer.php and tgz_extractor.php. - * - * @package core_files - * @copyright 2013 The Open University - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ +namespace core; + +use file_progress; +use tgz_packer; defined('MOODLE_INTERNAL') || die(); global $CFG; require_once($CFG->libdir . '/filestorage/file_progress.php'); -class core_files_tgz_packer_testcase extends advanced_testcase implements file_progress { +/** + * Unit tests for /lib/filestorage/tgz_packer.php and tgz_extractor.php. + * + * @package core + * @copyright 2013 The Open University + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +class tgz_packer_test extends \advanced_testcase implements file_progress { /** * @var array Progress information passed to the progress reporter */ @@ -68,7 +72,7 @@ class core_files_tgz_packer_testcase extends advanced_testcase implements file_p $filelist['out2'] = $CFG->tempdir . '/dir1'; // Moodle stored_file. - $context = context_system::instance(); + $context = \context_system::instance(); $filerecord = array('contextid' => $context->id, 'component' => 'phpunit', 'filearea' => 'data', 'itemid' => 0, 'filepath' => '/', 'filename' => 'file4.txt', 'timemodified' => 1377993604); @@ -159,7 +163,7 @@ class core_files_tgz_packer_testcase extends advanced_testcase implements file_p // Archive files. $files = $this->prepare_file_list(); $archivefile = $CFG->tempdir . '/test.tar.gz'; - $context = context_system::instance(); + $context = \context_system::instance(); $sf = $packer->archive_to_storage($files, $context->id, 'phpunit', 'archive', 1, '/', 'archive.tar.gz'); $this->assertInstanceOf('stored_file', $sf); @@ -293,7 +297,7 @@ class core_files_tgz_packer_testcase extends advanced_testcase implements file_p $filelist = $this->prepare_file_list(); $packer = get_file_packer('application/x-gzip'); $archive = "$CFG->tempdir/archive.tgz"; - $context = context_system::instance(); + $context = \context_system::instance(); // Archive to pathname. $this->progress = array(); @@ -355,7 +359,7 @@ class core_files_tgz_packer_testcase extends advanced_testcase implements file_p $packer = get_file_packer('application/x-gzip'); $result = $packer->archive_to_pathname($filelist, $archive, true, $this); $this->assertTrue($result); - $hashwith = file_storage::hash_from_path($archive); + $hashwith = \file_storage::hash_from_path($archive); // List files. $files = $packer->list_files($archive); @@ -382,7 +386,7 @@ class core_files_tgz_packer_testcase extends advanced_testcase implements file_p $packer->set_include_index(false); $result = $packer->archive_to_pathname($filelist, $archive, true, $this); $this->assertTrue($result); - $hashwithout = file_storage::hash_from_path($archive); + $hashwithout = \file_storage::hash_from_path($archive); $files = $packer->list_files($archive); $this->assertEquals($expectedinfo, self::convert_info_for_assert($files)); @@ -420,7 +424,7 @@ class core_files_tgz_packer_testcase extends advanced_testcase implements file_p $archive2 = "$CFG->tempdir/archive.zip"; // Archive in tgz and zip format. - $context = context_system::instance(); + $context = \context_system::instance(); $archive1 = $packer1->archive_to_storage($filelist, $context->id, 'phpunit', 'test', 0, '/', 'archive.tgz', null, true, $this); $this->assertInstanceOf('stored_file', $archive1); diff --git a/lib/filestorage/tests/zip_packer_test.php b/lib/filestorage/tests/zip_packer_test.php index 6d95e8a8c7f..1060fb0003c 100644 --- a/lib/filestorage/tests/zip_packer_test.php +++ b/lib/filestorage/tests/zip_packer_test.php @@ -14,21 +14,26 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Unit tests for /lib/filestorage/zip_packer.php and zip_archive.php - * - * @package core_files - * @category phpunit - * @copyright 2012 Petr Skoda - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ +namespace core; + +use file_archive; +use file_progress; +use zip_archive; defined('MOODLE_INTERNAL') || die(); global $CFG; require_once($CFG->libdir . '/filestorage/file_progress.php'); -class core_files_zip_packer_testcase extends advanced_testcase implements file_progress { +/** + * Unit tests for /lib/filestorage/zip_packer.php and zip_archive.php + * + * @package core + * @category test + * @copyright 2012 Petr Skoda + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +class zip_packer_test extends \advanced_testcase implements file_progress { protected $testfile; protected $files; @@ -43,7 +48,7 @@ class core_files_zip_packer_testcase extends advanced_testcase implements file_p $this->testfile = __DIR__.'/fixtures/test.txt'; $fs = get_file_storage(); - $context = context_system::instance(); + $context = \context_system::instance(); if (!$file = $fs->get_file($context->id, 'phpunit', 'data', 0, '/', 'test.txt')) { $file = $fs->create_file_from_pathname( array('contextid'=>$context->id, 'component'=>'phpunit', 'filearea'=>'data', 'itemid'=>0, 'filepath'=>'/', 'filename'=>'test.txt'), @@ -198,7 +203,7 @@ class core_files_zip_packer_testcase extends advanced_testcase implements file_p $packer = get_file_packer('application/zip'); $fs = get_file_storage(); - $context = context_system::instance(); + $context = \context_system::instance(); $this->assertFalse($fs->file_exists($context->id, 'phpunit', 'test', 0, '/', 'archive.zip')); $result = $packer->archive_to_storage($this->files, $context->id, 'phpunit', 'test', 0, '/', 'archive.zip'); @@ -223,7 +228,7 @@ class core_files_zip_packer_testcase extends advanced_testcase implements file_p $packer = get_file_packer('application/zip'); $fs = get_file_storage(); - $context = context_system::instance(); + $context = \context_system::instance(); $target = "$CFG->tempdir/test/"; $testcontent = file_get_contents($this->testfile); @@ -337,7 +342,7 @@ class core_files_zip_packer_testcase extends advanced_testcase implements file_p $packer = get_file_packer('application/zip'); $fs = get_file_storage(); - $context = context_system::instance(); + $context = \context_system::instance(); $target = "$CFG->tempdir/onlyfiles/"; $testcontent = file_get_contents($this->testfile); @@ -412,7 +417,7 @@ class core_files_zip_packer_testcase extends advanced_testcase implements file_p $packer = get_file_packer('application/zip'); $fs = get_file_storage(); - $context = context_system::instance(); + $context = \context_system::instance(); $testcontent = file_get_contents($this->testfile); @@ -534,7 +539,7 @@ class core_files_zip_packer_testcase extends advanced_testcase implements file_p try { // Old PHP versions were not printing any warning. $result = $zip_archive->close(); - } catch (Exception $e) { + } catch (\Exception $e) { // New PHP versions print PHP Warning. $this->assertInstanceOf('PHPUnit\Framework\Error\Warning', $e); $this->assertStringContainsString('ZipArchive::close', $e->getMessage()); @@ -543,7 +548,7 @@ class core_files_zip_packer_testcase extends advanced_testcase implements file_p try { // And some PHP versions do return correctly false (5.4.25, 5.6.14...) $this->assertFalse($result); - } catch (Exception $e) { + } catch (\Exception $e) { // But others do insist into returning true (5.6.13...). Only can accept them. $this->assertInstanceOf('PHPUnit\Framework\ExpectationFailedException', $e); $this->assertTrue($result); @@ -626,7 +631,7 @@ class core_files_zip_packer_testcase extends advanced_testcase implements file_p $this->resetAfterTest(true); $packer = get_file_packer('application/zip'); $archive = "$CFG->tempdir/archive.zip"; - $context = context_system::instance(); + $context = \context_system::instance(); // Archive to pathname. $this->progress = array(); diff --git a/lib/form/tests/autocomplete_test.php b/lib/form/tests/autocomplete_test.php index a3b3cf88513..40f3ea79714 100644 --- a/lib/form/tests/autocomplete_test.php +++ b/lib/form/tests/autocomplete_test.php @@ -14,15 +14,9 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Unit tests for autocomplete forms element. - * - * This file contains all unit test related to autocomplete forms element. - * - * @package core_form - * @copyright 2015 Damyon Wiese - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ +namespace core_form; + +use MoodleQuickForm_autocomplete; defined('MOODLE_INTERNAL') || die(); @@ -38,7 +32,7 @@ require_once($CFG->libdir . '/form/autocomplete.php'); * @copyright 2015 Damyon Wiese * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class core_form_autocomplete_testcase extends basic_testcase { +class autocomplete_test extends \basic_testcase { /** * Testcase for validation */ diff --git a/lib/form/tests/dateselector_test.php b/lib/form/tests/dateselector_test.php index 96052209f2b..d5f751b0a13 100644 --- a/lib/form/tests/dateselector_test.php +++ b/lib/form/tests/dateselector_test.php @@ -15,16 +15,21 @@ // along with Moodle. If not, see . /** - * Unit tests for dateselector form element + * Unit tests for MoodleQuickForm_date_selector * - * This file contains unit test related to dateselector form element + * Contains test cases for testing MoodleQuickForm_date_selector * * @package core_form - * @category phpunit + * @category test * @copyright 2012 Rajesh Taneja * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ +namespace core_form; + +use moodleform; +use MoodleQuickForm_date_selector; + defined('MOODLE_INTERNAL') || die(); global $CFG; @@ -37,11 +42,11 @@ require_once($CFG->libdir.'/formslib.php'); * Contains test cases for testing MoodleQuickForm_date_selector * * @package core_form - * @category phpunit + * @category test * @copyright 2012 Rajesh Taneja * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class core_form_dateselector_testcase extends advanced_testcase { +class dateselector_test extends \advanced_testcase { /** @var MoodleQuickForm Keeps reference of dummy form object */ private $mform; /** @var array test fixtures */ diff --git a/lib/form/tests/datetimeselector_test.php b/lib/form/tests/datetimeselector_test.php index 6e635b35a97..3dc55562d11 100644 --- a/lib/form/tests/datetimeselector_test.php +++ b/lib/form/tests/datetimeselector_test.php @@ -15,16 +15,21 @@ // along with Moodle. If not, see . /** - * Unit tests for datetimeselector form element + * Unit tests for MoodleQuickForm_date_time_selector * - * This file contains unit test related to datetimeselector form element + * Contains test cases for testing MoodleQuickForm_date_time_selector * * @package core_form - * @category phpunit + * @category test * @copyright 2012 Rajesh Taneja * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ +namespace core_form; + +use moodleform; +use MoodleQuickForm_date_time_selector; + defined('MOODLE_INTERNAL') || die(); global $CFG; @@ -37,11 +42,11 @@ require_once($CFG->libdir.'/formslib.php'); * Contains test cases for testing MoodleQuickForm_date_time_selector * * @package core_form - * @category phpunit + * @category test * @copyright 2012 Rajesh Taneja * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class core_form_datetimeselector_testcase extends advanced_testcase { +class datetimeselector_test extends \advanced_testcase { /** @var MoodleQuickForm Keeps reference of dummy form object */ private $mform; /** @var array test fixtures */ diff --git a/lib/form/tests/duration_test.php b/lib/form/tests/duration_test.php index d5d8db9b38a..a19ce851e20 100644 --- a/lib/form/tests/duration_test.php +++ b/lib/form/tests/duration_test.php @@ -15,16 +15,21 @@ // along with Moodle. If not, see . /** - * Unit tests for forms lib. + * Unit tests for MoodleQuickForm_duration * - * This file contains all unit test related to forms library. + * Contains test cases for testing MoodleQuickForm_duration * * @package core_form - * @category phpunit + * @category test * @copyright 2009 Tim Hunt * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ +namespace core_form; + +use moodleform; +use MoodleQuickForm; + defined('MOODLE_INTERNAL') || die(); global $CFG; @@ -36,11 +41,11 @@ require_once($CFG->libdir . '/form/duration.php'); * Contains test cases for testing MoodleQuickForm_duration * * @package core_form - * @category phpunit + * @category test * @copyright 2009 Tim Hunt * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class core_form_duration_testcase extends basic_testcase { +class duration_test extends \basic_testcase { /** * Get a form that can be used for testing. @@ -69,7 +74,7 @@ class core_form_duration_testcase extends basic_testcase { public function test_constructor_rejects_invalid_unit(): void { // Test trying to create with an invalid unit. $mform = $this->get_test_form(); - $this->expectException(coding_exception::class); + $this->expectException(\coding_exception::class); $mform->addElement('duration', 'testel', null, ['defaultunit' => 123, 'optional' => false]); } diff --git a/lib/form/tests/float_test.php b/lib/form/tests/float_test.php index edb72fb1e87..6f769dd032c 100644 --- a/lib/form/tests/float_test.php +++ b/lib/form/tests/float_test.php @@ -14,14 +14,9 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Unit tests for float form element. - * - * @package core_form - * @category test - * @copyright 2019 Shamim Rezaie - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ +namespace core_form; + +use MoodleQuickForm_float; defined('MOODLE_INTERNAL') || die(); @@ -34,10 +29,11 @@ require_once($CFG->libdir . '/form/float.php'); * Contains test cases for testing MoodleQuickForm_float * * @package core_form + * @category test * @copyright 2019 Shamim Rezaie * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class core_form_float_testcase extends advanced_testcase { +class float_test extends \advanced_testcase { /** * Define a local decimal separator. diff --git a/lib/grade/tests/grade_category_test.php b/lib/grade/tests/grade_category_test.php index f995310251c..3644cc6ff66 100644 --- a/lib/grade/tests/grade_category_test.php +++ b/lib/grade/tests/grade_category_test.php @@ -14,19 +14,22 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * @package core_grades - * @category phpunit - * @copyright nicolas@moodle.com - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ +namespace core; defined('MOODLE_INTERNAL') || die(); require_once(__DIR__.'/fixtures/lib.php'); -class core_grade_category_testcase extends grade_base_testcase { +/** + * Test grade categories + * + * @package core + * @category test + * @copyright nicolas@moodle.com + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +class grade_category_test extends \grade_base_testcase { public function test_grade_category() { $this->sub_test_grade_category_construct(); @@ -77,14 +80,14 @@ class core_grade_category_testcase extends grade_base_testcase { // Adds 3 new grade categories at various depths. protected function sub_test_grade_category_construct() { - $course_category = grade_category::fetch_course_category($this->courseid); + $course_category = \grade_category::fetch_course_category($this->courseid); - $params = new stdClass(); + $params = new \stdClass(); $params->courseid = $this->courseid; $params->fullname = 'unittestcategory4'; - $grade_category = new grade_category($params, false); + $grade_category = new \grade_category($params, false); $grade_category->insert(); $this->grade_categories[] = $grade_category; @@ -97,7 +100,7 @@ class core_grade_category_testcase extends grade_base_testcase { // Test a child category. $params->parent = $grade_category->id; $params->fullname = 'unittestcategory5'; - $grade_category = new grade_category($params, false); + $grade_category = new \grade_category($params, false); $grade_category->insert(); $this->grade_categories[] = $grade_category; @@ -108,7 +111,7 @@ class core_grade_category_testcase extends grade_base_testcase { // Test a third depth category. $params->parent = $grade_category->id; $params->fullname = 'unittestcategory6'; - $grade_category = new grade_category($params, false); + $grade_category = new \grade_category($params, false); $grade_category->insert(); $this->grade_categories[50] = $grade_category;// Going to delete this one later hence the special index. @@ -117,32 +120,32 @@ class core_grade_category_testcase extends grade_base_testcase { } protected function sub_test_grade_category_build_path() { - $grade_category = new grade_category($this->grade_categories[1]); + $grade_category = new \grade_category($this->grade_categories[1]); $this->assertTrue(method_exists($grade_category, 'build_path')); - $path = grade_category::build_path($grade_category); + $path = \grade_category::build_path($grade_category); $this->assertEquals($grade_category->path, $path); } protected function sub_test_grade_category_fetch() { - $grade_category = new grade_category(); + $grade_category = new \grade_category(); $this->assertTrue(method_exists($grade_category, 'fetch')); - $grade_category = grade_category::fetch(array('id'=>$this->grade_categories[0]->id)); + $grade_category = \grade_category::fetch(array('id'=>$this->grade_categories[0]->id)); $this->assertEquals($this->grade_categories[0]->id, $grade_category->id); $this->assertEquals($this->grade_categories[0]->fullname, $grade_category->fullname); } protected function sub_test_grade_category_fetch_all() { - $grade_category = new grade_category(); + $grade_category = new \grade_category(); $this->assertTrue(method_exists($grade_category, 'fetch_all')); - $grade_categories = grade_category::fetch_all(array('courseid'=>$this->courseid)); + $grade_categories = \grade_category::fetch_all(array('courseid'=>$this->courseid)); $this->assertEquals(count($this->grade_categories), count($grade_categories)-1); } protected function sub_test_grade_category_update() { global $DB; - $grade_category = new grade_category($this->grade_categories[0]); + $grade_category = new \grade_category($this->grade_categories[0]); $this->assertTrue(method_exists($grade_category, 'update')); $grade_category->fullname = 'Updated info for this unittest grade_category'; @@ -171,7 +174,7 @@ class core_grade_category_testcase extends grade_base_testcase { protected function sub_test_grade_category_delete() { global $DB; - $grade_category = new grade_category($this->grade_categories[50]); + $grade_category = new \grade_category($this->grade_categories[50]); $this->assertTrue(method_exists($grade_category, 'delete')); $this->assertTrue($grade_category->delete()); @@ -179,9 +182,9 @@ class core_grade_category_testcase extends grade_base_testcase { } protected function sub_test_grade_category_insert() { - $course_category = grade_category::fetch_course_category($this->courseid); + $course_category = \grade_category::fetch_course_category($this->courseid); - $grade_category = new grade_category(); + $grade_category = new \grade_category(); $this->assertTrue(method_exists($grade_category, 'insert')); $grade_category->fullname = 'unittestcategory4'; @@ -210,24 +213,24 @@ class core_grade_category_testcase extends grade_base_testcase { } protected function sub_test_grade_category_qualifies_for_regrading() { - $grade_category = new grade_category($this->grade_categories[1]); + $grade_category = new \grade_category($this->grade_categories[1]); $this->assertTrue(method_exists($grade_category, 'qualifies_for_regrading')); $this->assertFalse($grade_category->qualifies_for_regrading()); $grade_category->aggregation = GRADE_AGGREGATE_MAX; $this->assertTrue($grade_category->qualifies_for_regrading()); - $grade_category = new grade_category($this->grade_categories[1]); + $grade_category = new \grade_category($this->grade_categories[1]); $grade_category->droplow = 99; $this->assertTrue($grade_category->qualifies_for_regrading()); - $grade_category = new grade_category($this->grade_categories[1]); + $grade_category = new \grade_category($this->grade_categories[1]); $grade_category->keephigh = 99; $this->assertTrue($grade_category->qualifies_for_regrading()); } protected function sub_test_grade_category_force_regrading() { - $grade_category = new grade_category($this->grade_categories[1]); + $grade_category = new \grade_category($this->grade_categories[1]); $this->assertTrue(method_exists($grade_category, 'force_regrading')); $grade_category->load_grade_item(); @@ -253,13 +256,13 @@ class core_grade_category_testcase extends grade_base_testcase { // Start of regression test for MDL-51715. // grade_categories [1] and [2] are child categories of [0] // Ensure that grades have been generated with fixture data. - $childcat1 = new grade_category($this->grade_categories[1]); + $childcat1 = new \grade_category($this->grade_categories[1]); $childcat1itemid = $childcat1->load_grade_item()->id; $childcat1->generate_grades(); - $childcat2 = new grade_category($this->grade_categories[2]); + $childcat2 = new \grade_category($this->grade_categories[2]); $childcat2itemid = $childcat2->load_grade_item()->id; $childcat2->generate_grades(); - $parentcat = new grade_category($this->grade_categories[0]); + $parentcat = new \grade_category($this->grade_categories[0]); $parentcat->generate_grades(); // Drop low and and re-generate to produce 'dropped' aggregation status. @@ -311,12 +314,12 @@ class core_grade_category_testcase extends grade_base_testcase { global $DB; // Inserting some special grade items to make testing the final grade calculation easier. - $params = new stdClass(); + $params = new \stdClass(); $params->courseid = $this->courseid; $params->fullname = 'unittestgradecalccategory'; $params->aggregation = GRADE_AGGREGATE_MEAN; $params->aggregateonlygraded = 0; - $grade_category = new grade_category($params, false); + $grade_category = new \grade_category($params, false); $grade_category->insert(); $this->assertTrue(method_exists($grade_category, 'generate_grades')); @@ -330,7 +333,7 @@ class core_grade_category_testcase extends grade_base_testcase { // 3 grade items each with a maximum grade of 10. $grade_items = array(); for ($i=0; $i<3; $i++) { - $grade_items[$i] = new grade_item(); + $grade_items[$i] = new \grade_item(); $grade_items[$i]->courseid = $this->courseid; $grade_items[$i]->categoryid = $grade_category->id; $grade_items[$i]->itemname = 'manual grade_item '.$i; @@ -354,7 +357,7 @@ class core_grade_category_testcase extends grade_base_testcase { // A grade for each grade item. $grade_grades = array(); for ($i=0; $i<3; $i++) { - $grade_grades[$i] = new grade_grade(); + $grade_grades[$i] = new \grade_grade(); $grade_grades[$i]->itemid = $grade_items[$i]->id; $grade_grades[$i]->userid = $this->userid; $grade_grades[$i]->rawgrade = ($i+1)*2; // Produce grade grades of 2, 4 and 6. @@ -462,19 +465,19 @@ class core_grade_category_testcase extends grade_base_testcase { } protected function sub_test_grade_category_aggregate_grades() { - $category = new grade_category($this->grade_categories[0]); + $category = new \grade_category($this->grade_categories[0]); $this->assertTrue(method_exists($category, 'aggregate_grades')); // Tested more fully via test_grade_category_generate_grades(). } protected function sub_test_grade_category_apply_limit_rules() { - $items[$this->grade_items[0]->id] = new grade_item($this->grade_items[0], false); - $items[$this->grade_items[1]->id] = new grade_item($this->grade_items[1], false); - $items[$this->grade_items[2]->id] = new grade_item($this->grade_items[2], false); - $items[$this->grade_items[4]->id] = new grade_item($this->grade_items[4], false); + $items[$this->grade_items[0]->id] = new \grade_item($this->grade_items[0], false); + $items[$this->grade_items[1]->id] = new \grade_item($this->grade_items[1], false); + $items[$this->grade_items[2]->id] = new \grade_item($this->grade_items[2], false); + $items[$this->grade_items[4]->id] = new \grade_item($this->grade_items[4], false); // Test excluding the lowest 2 out of 4 grades from aggregation with no 0 grades. - $category = new grade_category(); + $category = new \grade_category(); $category->droplow = 2; $grades = array($this->grade_items[0]->id=>5.374, $this->grade_items[1]->id=>9.4743, @@ -486,7 +489,7 @@ class core_grade_category_testcase extends grade_base_testcase { $this->assertEquals($grades[$this->grade_items[4]->id], 7.3754); // Test aggregating only the highest 1 out of 4 grades. - $category = new grade_category(); + $category = new \grade_category(); $category->keephigh = 1; $category->droplow = 0; $grades = array($this->grade_items[0]->id=>5.374, @@ -500,7 +503,7 @@ class core_grade_category_testcase extends grade_base_testcase { // Test excluding the lowest 2 out of 4 grades from aggregation with no 0 grades. // An extra credit grade item should be kept even if droplow means it would otherwise be excluded. - $category = new grade_category(); + $category = new \grade_category(); $category->droplow = 2; $category->aggregation = GRADE_AGGREGATE_SUM; $items[$this->grade_items[2]->id]->aggregationcoef = 1; // Mark grade item 2 as "extra credit". @@ -515,7 +518,7 @@ class core_grade_category_testcase extends grade_base_testcase { // Test only aggregating the highest 1 out of 4 grades. // An extra credit grade item is retained in addition to the highest grade. - $category = new grade_category(); + $category = new \grade_category(); $category->keephigh = 1; $category->droplow = 0; $category->aggregation = GRADE_AGGREGATE_SUM; @@ -531,7 +534,7 @@ class core_grade_category_testcase extends grade_base_testcase { // Test excluding the lowest 1 out of 4 grades from aggregation with two 0 grades. $items[$this->grade_items[2]->id]->aggregationcoef = 0; // Undo marking grade item 2 as "extra credit". - $category = new grade_category(); + $category = new \grade_category(); $category->droplow = 1; $category->aggregation = GRADE_AGGREGATE_WEIGHTED_MEAN2; // Simple weighted mean. $grades = array($this->grade_items[0]->id=>0, // 0 out of 110. Should be excluded from aggregation. @@ -545,7 +548,7 @@ class core_grade_category_testcase extends grade_base_testcase { $this->assertEquals($grades[$this->grade_items[4]->id], 0); // Test excluding the lowest 2 out of 4 grades from aggregation with three 0 grades. - $category = new grade_category(); + $category = new \grade_category(); $category->droplow = 2; $category->aggregation = GRADE_AGGREGATE_WEIGHTED_MEAN2; // Simple weighted mean. $grades = array($this->grade_items[0]->id=>0, // 0 out of 110. Should be excluded from aggregation. @@ -559,7 +562,7 @@ class core_grade_category_testcase extends grade_base_testcase { // Test excluding the lowest 5 out of 4 grades from aggregation. // Just to check we handle this sensibly. - $category = new grade_category(); + $category = new \grade_category(); $category->droplow = 5; $category->aggregation = GRADE_AGGREGATE_WEIGHTED_MEAN2; // Simple weighted mean. $grades = array($this->grade_items[0]->id=>0, // 0 out of 110. Should be excluded from aggregation. @@ -570,7 +573,7 @@ class core_grade_category_testcase extends grade_base_testcase { $this->assertEquals(count($grades), 0); // Test excluding the lowest 4 out of 4 grades from aggregation with one marked as extra credit. - $category = new grade_category(); + $category = new \grade_category(); $category->droplow = 4; $category->aggregation = GRADE_AGGREGATE_WEIGHTED_MEAN2; // Simple weighted mean. $items[$this->grade_items[2]->id]->aggregationcoef = 1; // Mark grade item 2 as "extra credit". @@ -583,7 +586,7 @@ class core_grade_category_testcase extends grade_base_testcase { $this->assertEquals($grades[$this->grade_items[2]->id], 6); // MDL-35667 - There was an infinite loop if several items had the same grade and at least one was extra credit. - $category = new grade_category(); + $category = new \grade_category(); $category->droplow = 1; $category->aggregation = GRADE_AGGREGATE_WEIGHTED_MEAN2; // Simple weighted mean. $items[$this->grade_items[1]->id]->aggregationcoef = 1; // Mark grade item 1 as "extra credit". @@ -600,7 +603,7 @@ class core_grade_category_testcase extends grade_base_testcase { } protected function sub_test_grade_category_is_aggregationcoef_used() { - $category = new grade_category(); + $category = new \grade_category(); // Following use aggregationcoef. $category->aggregation = GRADE_AGGREGATE_WEIGHTED_MEAN; $this->assertTrue($category->is_aggregationcoef_used()); @@ -626,28 +629,28 @@ class core_grade_category_testcase extends grade_base_testcase { protected function sub_test_grade_category_aggregation_uses_aggregationcoef() { - $this->assertTrue(grade_category::aggregation_uses_aggregationcoef(GRADE_AGGREGATE_WEIGHTED_MEAN)); - $this->assertTrue(grade_category::aggregation_uses_aggregationcoef(GRADE_AGGREGATE_WEIGHTED_MEAN2)); - $this->assertTrue(grade_category::aggregation_uses_aggregationcoef(GRADE_AGGREGATE_EXTRACREDIT_MEAN)); - $this->assertTrue(grade_category::aggregation_uses_aggregationcoef(GRADE_AGGREGATE_SUM)); + $this->assertTrue(\grade_category::aggregation_uses_aggregationcoef(GRADE_AGGREGATE_WEIGHTED_MEAN)); + $this->assertTrue(\grade_category::aggregation_uses_aggregationcoef(GRADE_AGGREGATE_WEIGHTED_MEAN2)); + $this->assertTrue(\grade_category::aggregation_uses_aggregationcoef(GRADE_AGGREGATE_EXTRACREDIT_MEAN)); + $this->assertTrue(\grade_category::aggregation_uses_aggregationcoef(GRADE_AGGREGATE_SUM)); - $this->assertFalse(grade_category::aggregation_uses_aggregationcoef(GRADE_AGGREGATE_MAX)); - $this->assertFalse(grade_category::aggregation_uses_aggregationcoef(GRADE_AGGREGATE_MEAN)); - $this->assertFalse(grade_category::aggregation_uses_aggregationcoef(GRADE_AGGREGATE_MEDIAN)); - $this->assertFalse(grade_category::aggregation_uses_aggregationcoef(GRADE_AGGREGATE_MIN)); - $this->assertFalse(grade_category::aggregation_uses_aggregationcoef(GRADE_AGGREGATE_MODE)); + $this->assertFalse(\grade_category::aggregation_uses_aggregationcoef(GRADE_AGGREGATE_MAX)); + $this->assertFalse(\grade_category::aggregation_uses_aggregationcoef(GRADE_AGGREGATE_MEAN)); + $this->assertFalse(\grade_category::aggregation_uses_aggregationcoef(GRADE_AGGREGATE_MEDIAN)); + $this->assertFalse(\grade_category::aggregation_uses_aggregationcoef(GRADE_AGGREGATE_MIN)); + $this->assertFalse(\grade_category::aggregation_uses_aggregationcoef(GRADE_AGGREGATE_MODE)); } protected function sub_test_grade_category_fetch_course_tree() { - $category = new grade_category(); + $category = new \grade_category(); $this->assertTrue(method_exists($category, 'fetch_course_tree')); // TODO: add some tests. } protected function sub_test_grade_category_get_children() { - $course_category = grade_category::fetch_course_category($this->courseid); + $course_category = \grade_category::fetch_course_category($this->courseid); - $category = new grade_category($this->grade_categories[0]); + $category = new \grade_category($this->grade_categories[0]); $this->assertTrue(method_exists($category, 'get_children')); $children_array = $category->get_children(0); @@ -664,7 +667,7 @@ class core_grade_category_testcase extends grade_base_testcase { } protected function sub_test_grade_category_load_grade_item() { - $category = new grade_category($this->grade_categories[0]); + $category = new \grade_category($this->grade_categories[0]); $this->assertTrue(method_exists($category, 'load_grade_item')); $this->assertEquals(null, $category->grade_item); $category->load_grade_item(); @@ -672,14 +675,14 @@ class core_grade_category_testcase extends grade_base_testcase { } protected function sub_test_grade_category_get_grade_item() { - $category = new grade_category($this->grade_categories[0]); + $category = new \grade_category($this->grade_categories[0]); $this->assertTrue(method_exists($category, 'get_grade_item')); $grade_item = $category->get_grade_item(); $this->assertEquals($this->grade_items[3]->id, $grade_item->id); } protected function sub_test_grade_category_load_parent_category() { - $category = new grade_category($this->grade_categories[1]); + $category = new \grade_category($this->grade_categories[1]); $this->assertTrue(method_exists($category, 'load_parent_category')); $this->assertEquals(null, $category->parent_category); $category->load_parent_category(); @@ -687,7 +690,7 @@ class core_grade_category_testcase extends grade_base_testcase { } protected function sub_test_grade_category_get_parent_category() { - $category = new grade_category($this->grade_categories[1]); + $category = new \grade_category($this->grade_categories[1]); $this->assertTrue(method_exists($category, 'get_parent_category')); $parent_category = $category->get_parent_category(); $this->assertEquals($this->grade_categories[0]->id, $parent_category->id); @@ -697,7 +700,7 @@ class core_grade_category_testcase extends grade_base_testcase { * Tests the getter of the category fullname with escaped HTML. */ protected function sub_test_grade_category_get_name_escaped() { - $category = new grade_category($this->grade_categories[0]); + $category = new \grade_category($this->grade_categories[0]); $this->assertTrue(method_exists($category, 'get_name')); $this->assertEquals(format_string($this->grade_categories[0]->fullname, true, ['escape' => true]), $category->get_name(true)); @@ -707,60 +710,60 @@ class core_grade_category_testcase extends grade_base_testcase { * Tests the getter of the category fullname with unescaped HTML. */ protected function sub_test_grade_category_get_name_unescaped() { - $category = new grade_category($this->grade_categories[0]); + $category = new \grade_category($this->grade_categories[0]); $this->assertTrue(method_exists($category, 'get_name')); $this->assertEquals(format_string($this->grade_categories[0]->fullname, true, ['escape' => false]), $category->get_name(false)); } protected function sub_test_grade_category_set_parent() { - $category = new grade_category($this->grade_categories[1]); + $category = new \grade_category($this->grade_categories[1]); $this->assertTrue(method_exists($category, 'set_parent')); // TODO: implement detailed tests. - $course_category = grade_category::fetch_course_category($this->courseid); + $course_category = \grade_category::fetch_course_category($this->courseid); $this->assertTrue($category->set_parent($course_category->id)); $this->assertEquals($course_category->id, $category->parent); } protected function sub_test_grade_category_get_final() { - $category = new grade_category($this->grade_categories[0]); + $category = new \grade_category($this->grade_categories[0]); $this->assertTrue(method_exists($category, 'get_final')); $category->load_grade_item(); $this->assertEquals($category->get_final(), $category->grade_item->get_final()); } protected function sub_test_grade_category_get_sortorder() { - $category = new grade_category($this->grade_categories[0]); + $category = new \grade_category($this->grade_categories[0]); $this->assertTrue(method_exists($category, 'get_sortorder')); $category->load_grade_item(); $this->assertEquals($category->get_sortorder(), $category->grade_item->get_sortorder()); } protected function sub_test_grade_category_set_sortorder() { - $category = new grade_category($this->grade_categories[0]); + $category = new \grade_category($this->grade_categories[0]); $this->assertTrue(method_exists($category, 'set_sortorder')); $category->load_grade_item(); $this->assertEquals($category->set_sortorder(10), $category->grade_item->set_sortorder(10)); } protected function sub_test_grade_category_move_after_sortorder() { - $category = new grade_category($this->grade_categories[0]); + $category = new \grade_category($this->grade_categories[0]); $this->assertTrue(method_exists($category, 'move_after_sortorder')); $category->load_grade_item(); $this->assertEquals($category->move_after_sortorder(10), $category->grade_item->move_after_sortorder(10)); } protected function sub_test_grade_category_is_course_category() { - $category = grade_category::fetch_course_category($this->courseid); + $category = \grade_category::fetch_course_category($this->courseid); $this->assertTrue(method_exists($category, 'is_course_category')); $this->assertTrue($category->is_course_category()); } protected function sub_test_grade_category_fetch_course_category() { - $category = new grade_category(); + $category = new \grade_category(); $this->assertTrue(method_exists($category, 'fetch_course_category')); - $category = grade_category::fetch_course_category($this->courseid); + $category = \grade_category::fetch_course_category($this->courseid); $this->assertTrue(empty($category->parent)); } /** @@ -771,14 +774,14 @@ class core_grade_category_testcase extends grade_base_testcase { } protected function sub_test_grade_category_is_locked() { - $category = new grade_category($this->grade_categories[0]); + $category = new \grade_category($this->grade_categories[0]); $this->assertTrue(method_exists($category, 'is_locked')); $category->load_grade_item(); $this->assertEquals($category->is_locked(), $category->grade_item->is_locked()); } protected function sub_test_grade_category_set_locked() { - $category = new grade_category($this->grade_categories[0]); + $category = new \grade_category($this->grade_categories[0]); $this->assertTrue(method_exists($category, 'set_locked')); // Will return false as cannot lock a grade that needs updating. @@ -786,19 +789,19 @@ class core_grade_category_testcase extends grade_base_testcase { grade_regrade_final_grades($this->courseid); // Get the category from the db again. - $category = new grade_category($this->grade_categories[0]); + $category = new \grade_category($this->grade_categories[0]); $this->assertTrue($category->set_locked(1)); } protected function sub_test_grade_category_is_hidden() { - $category = new grade_category($this->grade_categories[0]); + $category = new \grade_category($this->grade_categories[0]); $this->assertTrue(method_exists($category, 'is_hidden')); $category->load_grade_item(); $this->assertEquals($category->is_hidden(), $category->grade_item->is_hidden()); } protected function sub_test_grade_category_set_hidden() { - $category = new grade_category($this->grade_categories[0]); + $category = new \grade_category($this->grade_categories[0]); $this->assertTrue(method_exists($category, 'set_hidden')); $category->set_hidden(1, true); $category->load_grade_item(); @@ -806,13 +809,13 @@ class core_grade_category_testcase extends grade_base_testcase { } protected function sub_test_grade_category_can_control_visibility() { - $category = new grade_category($this->grade_categories[0]); + $category = new \grade_category($this->grade_categories[0]); $this->assertTrue($category->can_control_visibility()); } protected function sub_test_grade_category_insert_course_category() { // Beware: adding a duplicate course category messes up the data in a way that's hard to recover from. - $grade_category = new grade_category(); + $grade_category = new \grade_category(); $this->assertTrue(method_exists($grade_category, 'insert_course_category')); $id = $grade_category->insert_course_category($this->courseid); @@ -825,7 +828,7 @@ class core_grade_category_testcase extends grade_base_testcase { } protected function generate_random_raw_grade($item, $userid) { - $grade = new grade_grade(); + $grade = new \grade_grade(); $grade->itemid = $item->id; $grade->userid = $userid; $grade->grademin = 0; @@ -837,7 +840,7 @@ class core_grade_category_testcase extends grade_base_testcase { } protected function sub_test_grade_category_is_extracredit_used() { - $category = new grade_category(); + $category = new \grade_category(); // Following use aggregationcoef. $category->aggregation = GRADE_AGGREGATE_WEIGHTED_MEAN2; $this->assertTrue($category->is_extracredit_used()); @@ -863,16 +866,16 @@ class core_grade_category_testcase extends grade_base_testcase { protected function sub_test_grade_category_aggregation_uses_extracredit() { - $this->assertTrue(grade_category::aggregation_uses_extracredit(GRADE_AGGREGATE_WEIGHTED_MEAN2)); - $this->assertTrue(grade_category::aggregation_uses_extracredit(GRADE_AGGREGATE_EXTRACREDIT_MEAN)); - $this->assertTrue(grade_category::aggregation_uses_extracredit(GRADE_AGGREGATE_SUM)); + $this->assertTrue(\grade_category::aggregation_uses_extracredit(GRADE_AGGREGATE_WEIGHTED_MEAN2)); + $this->assertTrue(\grade_category::aggregation_uses_extracredit(GRADE_AGGREGATE_EXTRACREDIT_MEAN)); + $this->assertTrue(\grade_category::aggregation_uses_extracredit(GRADE_AGGREGATE_SUM)); - $this->assertFalse(grade_category::aggregation_uses_extracredit(GRADE_AGGREGATE_WEIGHTED_MEAN)); - $this->assertFalse(grade_category::aggregation_uses_extracredit(GRADE_AGGREGATE_MAX)); - $this->assertFalse(grade_category::aggregation_uses_extracredit(GRADE_AGGREGATE_MEAN)); - $this->assertFalse(grade_category::aggregation_uses_extracredit(GRADE_AGGREGATE_MEDIAN)); - $this->assertFalse(grade_category::aggregation_uses_extracredit(GRADE_AGGREGATE_MIN)); - $this->assertFalse(grade_category::aggregation_uses_extracredit(GRADE_AGGREGATE_MODE)); + $this->assertFalse(\grade_category::aggregation_uses_extracredit(GRADE_AGGREGATE_WEIGHTED_MEAN)); + $this->assertFalse(\grade_category::aggregation_uses_extracredit(GRADE_AGGREGATE_MAX)); + $this->assertFalse(\grade_category::aggregation_uses_extracredit(GRADE_AGGREGATE_MEAN)); + $this->assertFalse(\grade_category::aggregation_uses_extracredit(GRADE_AGGREGATE_MEDIAN)); + $this->assertFalse(\grade_category::aggregation_uses_extracredit(GRADE_AGGREGATE_MIN)); + $this->assertFalse(\grade_category::aggregation_uses_extracredit(GRADE_AGGREGATE_MODE)); } /** @@ -880,8 +883,8 @@ class core_grade_category_testcase extends grade_base_testcase { */ protected function sub_test_grade_category_total_visibility() { // 15 is a manual grade item in grade_categories[5]. - $category = new grade_category($this->grade_categories[5], true); - $gradeitem = new grade_item($this->grade_items[15], true); + $category = new \grade_category($this->grade_categories[5], true); + $gradeitem = new \grade_item($this->grade_items[15], true); // Hide grade category. $category->set_hidden(true, true); diff --git a/lib/grade/tests/grade_grade_test.php b/lib/grade/tests/grade_grade_test.php index 488ae73df44..65a301887c1 100644 --- a/lib/grade/tests/grade_grade_test.php +++ b/lib/grade/tests/grade_grade_test.php @@ -14,19 +14,21 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * @package core_grades - * @category phpunit - * @copyright nicolas@moodle.com - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ +namespace core; defined('MOODLE_INTERNAL') || die(); require_once(__DIR__.'/fixtures/lib.php'); - -class core_grade_grade_testcase extends grade_base_testcase { +/** + * Test grade grades + * + * @package core + * @category test + * @copyright nicolas@moodle.com + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +class grade_grade_test extends \grade_base_testcase { public function test_grade_grade() { $this->sub_test_grade_grade_construct(); @@ -44,7 +46,7 @@ class core_grade_grade_testcase extends grade_base_testcase { } protected function sub_test_grade_grade_construct() { - $params = new stdClass(); + $params = new \stdClass(); $params->itemid = $this->grade_items[0]->id; $params->userid = 1; @@ -52,13 +54,13 @@ class core_grade_grade_testcase extends grade_base_testcase { $params->rawgrademax = 110; $params->rawgrademin = 18; - $grade_grade = new grade_grade($params, false); + $grade_grade = new \grade_grade($params, false); $this->assertEquals($params->itemid, $grade_grade->itemid); $this->assertEquals($params->rawgrade, $grade_grade->rawgrade); } protected function sub_test_grade_grade_insert() { - $grade_grade = new grade_grade(); + $grade_grade = new \grade_grade(); $this->assertTrue(method_exists($grade_grade, 'insert')); $grade_grade->itemid = $this->grade_items[0]->id; @@ -87,29 +89,29 @@ class core_grade_grade_testcase extends grade_base_testcase { } protected function sub_test_grade_grade_update() { - $grade_grade = new grade_grade($this->grade_grades[0], false); + $grade_grade = new \grade_grade($this->grade_grades[0], false); $this->assertTrue(method_exists($grade_grade, 'update')); } protected function sub_test_grade_grade_fetch() { - $grade_grade = new grade_grade(); + $grade_grade = new \grade_grade(); $this->assertTrue(method_exists($grade_grade, 'fetch')); - $grades = grade_grade::fetch(array('id'=>$this->grade_grades[0]->id)); + $grades = \grade_grade::fetch(array('id'=>$this->grade_grades[0]->id)); $this->assertEquals($this->grade_grades[0]->id, $grades->id); $this->assertEquals($this->grade_grades[0]->rawgrade, $grades->rawgrade); } protected function sub_test_grade_grade_fetch_all() { - $grade_grade = new grade_grade(); + $grade_grade = new \grade_grade(); $this->assertTrue(method_exists($grade_grade, 'fetch_all')); - $grades = grade_grade::fetch_all(array()); + $grades = \grade_grade::fetch_all(array()); $this->assertEquals(count($this->grade_grades), count($grades)); } protected function sub_test_grade_grade_load_grade_item() { - $grade_grade = new grade_grade($this->grade_grades[0], false); + $grade_grade = new \grade_grade($this->grade_grades[0], false); $this->assertTrue(method_exists($grade_grade, 'load_grade_item')); $this->assertNull($grade_grade->grade_item); $this->assertNotEmpty($grade_grade->itemid); @@ -120,8 +122,8 @@ class core_grade_grade_testcase extends grade_base_testcase { protected function sub_test_grade_grade_standardise_score() { - $this->assertEquals(4, round(grade_grade::standardise_score(6, 0, 7, 0, 5))); - $this->assertEquals(40, grade_grade::standardise_score(50, 30, 80, 0, 100)); + $this->assertEquals(4, round(\grade_grade::standardise_score(6, 0, 7, 0, 5))); + $this->assertEquals(40, \grade_grade::standardise_score(50, 30, 80, 0, 100)); } @@ -129,8 +131,8 @@ class core_grade_grade_testcase extends grade_base_testcase { * Disabling this test: the set_locked() arguments have been modified, rendering these tests useless until they are re-written protected function test_grade_grade_set_locked() { - $grade_item = new grade_item($this->grade_items[0]); - $grade = new grade_grade($grade_item->get_final(1)); + $grade_item = new \grade_item($this->grade_items[0]); + $grade = new \grade_grade($grade_item->get_final(1)); $this->assertTrue(method_exists($grade, 'set_locked')); $this->assertTrue(empty($grade_item->locked)); @@ -142,20 +144,20 @@ class core_grade_grade_testcase extends grade_base_testcase { $this->assertTrue(empty($grade->locked)); $this->assertTrue($grade_item->set_locked(true, true)); - $grade = new grade_grade($grade_item->get_final(1)); + $grade = new \grade_grade($grade_item->get_final(1)); $this->assertFalse(empty($grade->locked)); $this->assertFalse($grade->set_locked(true, false)); $this->assertTrue($grade_item->set_locked(true, false)); - $grade = new grade_grade($grade_item->get_final(1)); + $grade = new \grade_grade($grade_item->get_final(1)); $this->assertTrue($grade->set_locked(true, false)); } */ protected function sub_test_grade_grade_is_locked() { - $grade = new grade_grade($this->grade_grades[0], false); + $grade = new \grade_grade($this->grade_grades[0], false); $this->assertTrue(method_exists($grade, 'is_locked')); $this->assertFalse($grade->is_locked()); @@ -164,8 +166,8 @@ class core_grade_grade_testcase extends grade_base_testcase { } protected function sub_test_grade_grade_set_hidden() { - $grade = new grade_grade($this->grade_grades[0], false); - $grade_item = new grade_item($this->grade_items[0], false); + $grade = new \grade_grade($this->grade_grades[0], false); + $grade_item = new \grade_item($this->grade_items[0], false); $this->assertTrue(method_exists($grade, 'set_hidden')); $this->assertEquals(0, $grade_item->hidden); @@ -182,7 +184,7 @@ class core_grade_grade_testcase extends grade_base_testcase { } protected function sub_test_grade_grade_is_hidden() { - $grade = new grade_grade($this->grade_grades[0], false); + $grade = new \grade_grade($this->grade_grades[0], false); $this->assertTrue(method_exists($grade, 'is_hidden')); $this->assertFalse($grade->is_hidden()); @@ -197,7 +199,7 @@ class core_grade_grade_testcase extends grade_base_testcase { } /** - * Test grade_grade::flatten_dependencies_array() + * Test \grade_grade::flatten_dependencies_array() * * @covers \grade_grade::flatten_dependencies_array() */ @@ -208,14 +210,14 @@ class core_grade_grade_testcase extends grade_base_testcase { $expecteda = array(1 => array(2, 3, 4), 2 => array(), 3 => array(4), 4 => array()); $expectedb = array(1 => 1); - test_grade_grade_flatten_dependencies_array::test_flatten_dependencies_array($a, $b); + \test_grade_grade_flatten_dependencies_array::test_flatten_dependencies_array($a, $b); $this->assertSame($expecteda, $a); $this->assertSame($expectedb, $b); // Edge case - empty arrays. $a = $b = $expecteda = $expectedb = array(); - test_grade_grade_flatten_dependencies_array::test_flatten_dependencies_array($a, $b); + \test_grade_grade_flatten_dependencies_array::test_flatten_dependencies_array($a, $b); $this->assertSame($expecteda, $a); $this->assertSame($expectedb, $b); @@ -224,7 +226,7 @@ class core_grade_grade_testcase extends grade_base_testcase { $b = array(); $expecteda = array(1 => array(1, 2, 3), 2 => array(1, 2, 3), 3 => array(1, 2, 3)); - test_grade_grade_flatten_dependencies_array::test_flatten_dependencies_array($a, $b); + \test_grade_grade_flatten_dependencies_array::test_flatten_dependencies_array($a, $b); $this->assertSame($expecteda, $a); // Note - we don't test the depth when we got circular dependencies - the main thing we wanted to test was that there was // no ka-boom. The result would be hard to understand and doesn't matter. @@ -234,7 +236,7 @@ class core_grade_grade_testcase extends grade_base_testcase { $b = array(); $expecteda = array(1 => array(1, 2, 3, 4), 2 => array(1, 2, 3, 4), 3 => array(1, 2, 3, 4), 4 => array(1, 2, 3, 4)); - test_grade_grade_flatten_dependencies_array::test_flatten_dependencies_array($a, $b); + \test_grade_grade_flatten_dependencies_array::test_flatten_dependencies_array($a, $b); $this->assertSame($expecteda, $a); // Missing first level dependency. @@ -243,7 +245,7 @@ class core_grade_grade_testcase extends grade_base_testcase { $expecteda = array(1 => array(2, 3, 4), 3 => array(4), 4 => array()); $expectedb = array(1 => 1); - test_grade_grade_flatten_dependencies_array::test_flatten_dependencies_array($a, $b); + \test_grade_grade_flatten_dependencies_array::test_flatten_dependencies_array($a, $b); $this->assertSame($expecteda, $a); $this->assertSame($expectedb, $b); @@ -253,7 +255,7 @@ class core_grade_grade_testcase extends grade_base_testcase { $expecteda = array(1 => array(2, 3, 4), 2 => array(), 3 => array(4)); $expectedb = array(1 => 1); - test_grade_grade_flatten_dependencies_array::test_flatten_dependencies_array($a, $b); + \test_grade_grade_flatten_dependencies_array::test_flatten_dependencies_array($a, $b); $this->assertSame($expecteda, $a); $this->assertSame($expectedb, $b); @@ -263,7 +265,7 @@ class core_grade_grade_testcase extends grade_base_testcase { $expecteda = array(1 => array(2, 3, 4), 2 => array(3, 4), 3 => array(4), 4 => array()); $expectedb = array(1 => 2, 2 => 1); - test_grade_grade_flatten_dependencies_array::test_flatten_dependencies_array($a, $b); + \test_grade_grade_flatten_dependencies_array::test_flatten_dependencies_array($a, $b); $this->assertSame($expecteda, $a); $this->assertSame($expectedb, $b); @@ -273,7 +275,7 @@ class core_grade_grade_testcase extends grade_base_testcase { $expecteda = array(1 => array(2, 3, 4), 2 => array(), 3 => array(4), 4 => array()); $expectedb = array(1 => 1); - test_grade_grade_flatten_dependencies_array::test_flatten_dependencies_array($a, $b); + \test_grade_grade_flatten_dependencies_array::test_flatten_dependencies_array($a, $b); $this->assertSame($expecteda, $a); $this->assertSame($expectedb, $b); @@ -283,7 +285,7 @@ class core_grade_grade_testcase extends grade_base_testcase { $expecteda = array(1 => array(2, 3, 4), 2 => array(), 3 => array(4), 4 => array()); $expectedb = array(1 => 1); - test_grade_grade_flatten_dependencies_array::test_flatten_dependencies_array($a, $b); + \test_grade_grade_flatten_dependencies_array::test_flatten_dependencies_array($a, $b); $this->assertSame($expecteda, $a); $this->assertSame($expectedb, $b); @@ -293,7 +295,7 @@ class core_grade_grade_testcase extends grade_base_testcase { $expecteda = array(1 => array(2, 3, 4), 2 => array(), 3 => array(4), 4 => array()); $expectedb = array(1 => 1); - test_grade_grade_flatten_dependencies_array::test_flatten_dependencies_array($a, $b); + \test_grade_grade_flatten_dependencies_array::test_flatten_dependencies_array($a, $b); $this->assertSame($expecteda, $a); $this->assertSame($expectedb, $b); } @@ -307,13 +309,13 @@ class core_grade_grade_testcase extends grade_base_testcase { $user = $this->getDataGenerator()->create_user(); $assignrecord = $this->getDataGenerator()->create_module('assign', array('course' => $course, 'grade' => 100)); $cm = get_coursemodule_from_instance('assign', $assignrecord->id); - $assigncontext = context_module::instance($cm->id); - $assign = new assign($assigncontext, $cm, $course); + $assigncontext = \context_module::instance($cm->id); + $assign = new \assign($assigncontext, $cm, $course); // Fetch the assignment item. $giparams = array('itemtype' => 'mod', 'itemmodule' => 'assign', 'iteminstance' => $assignrecord->id, 'courseid' => $course->id, 'itemnumber' => 0); - $gi = grade_item::fetch($giparams); + $gi = \grade_item::fetch($giparams); $this->assertEquals(0, $gi->grademin); $this->assertEquals(100, $gi->grademax); @@ -323,7 +325,7 @@ class core_grade_grade_testcase extends grade_base_testcase { $assign->update_grade($usergrade); // Check the grade stored in gradebook. - $gg = grade_grade::fetch(array('userid' => $user->id, 'itemid' => $gi->id)); + $gg = \grade_grade::fetch(array('userid' => $user->id, 'itemid' => $gi->id)); $this->assertEquals(10, $gg->rawgrade); $this->assertEquals(0, $gg->get_grade_min()); $this->assertEquals(100, $gg->get_grade_max()); @@ -334,33 +336,33 @@ class core_grade_grade_testcase extends grade_base_testcase { $gi->update(); // Fetch the updated item. - $gi = grade_item::fetch($giparams); + $gi = \grade_item::fetch($giparams); // Now check the grade grade min/max with system setting. $CFG->grade_minmaxtouse = GRADE_MIN_MAX_FROM_GRADE_ITEM; grade_set_setting($course->id, 'minmaxtouse', null); // Ensure no course setting. - $gg = grade_grade::fetch(array('userid' => $user->id, 'itemid' => $gi->id)); + $gg = \grade_grade::fetch(array('userid' => $user->id, 'itemid' => $gi->id)); $this->assertEquals(2, $gg->get_grade_min()); $this->assertEquals(50, $gg->get_grade_max()); // Now with other system setting. $CFG->grade_minmaxtouse = GRADE_MIN_MAX_FROM_GRADE_GRADE; grade_set_setting($course->id, 'minmaxtouse', null); // Ensure no course setting, and reset static cache. - $gg = grade_grade::fetch(array('userid' => $user->id, 'itemid' => $gi->id)); + $gg = \grade_grade::fetch(array('userid' => $user->id, 'itemid' => $gi->id)); $this->assertEquals(0, $gg->get_grade_min()); $this->assertEquals(100, $gg->get_grade_max()); // Now with overriden setting in course. $CFG->grade_minmaxtouse = GRADE_MIN_MAX_FROM_GRADE_ITEM; grade_set_setting($course->id, 'minmaxtouse', GRADE_MIN_MAX_FROM_GRADE_GRADE); - $gg = grade_grade::fetch(array('userid' => $user->id, 'itemid' => $gi->id)); + $gg = \grade_grade::fetch(array('userid' => $user->id, 'itemid' => $gi->id)); $this->assertEquals(0, $gg->get_grade_min()); $this->assertEquals(100, $gg->get_grade_max()); $CFG->grade_minmaxtouse = GRADE_MIN_MAX_FROM_GRADE_GRADE; grade_set_setting($course->id, 'minmaxtouse', GRADE_MIN_MAX_FROM_GRADE_ITEM); - $gg = grade_grade::fetch(array('userid' => $user->id, 'itemid' => $gi->id)); + $gg = \grade_grade::fetch(array('userid' => $user->id, 'itemid' => $gi->id)); $this->assertEquals(2, $gg->get_grade_min()); $this->assertEquals(50, $gg->get_grade_max()); @@ -374,7 +376,7 @@ class core_grade_grade_testcase extends grade_base_testcase { $this->setAdminUser(); $course = $this->getDataGenerator()->create_course(); $user = $this->getDataGenerator()->create_user(); - $gi = grade_item::fetch_course_item($course->id); + $gi = \grade_item::fetch_course_item($course->id); // Fetch the category item. $this->assertEquals(0, $gi->grademin); @@ -384,7 +386,7 @@ class core_grade_grade_testcase extends grade_base_testcase { $gi->update_final_grade($user->id, 10); // Check the grade min/max stored in gradebook. - $gg = grade_grade::fetch(array('userid' => $user->id, 'itemid' => $gi->id)); + $gg = \grade_grade::fetch(array('userid' => $user->id, 'itemid' => $gi->id)); $this->assertEquals(0, $gg->get_grade_min()); $this->assertEquals(100, $gg->get_grade_max()); @@ -394,33 +396,33 @@ class core_grade_grade_testcase extends grade_base_testcase { $gi->update(); // Fetch the updated item. - $gi = grade_item::fetch_course_item($course->id); + $gi = \grade_item::fetch_course_item($course->id); // Now check the grade grade min/max with system setting. $CFG->grade_minmaxtouse = GRADE_MIN_MAX_FROM_GRADE_ITEM; grade_set_setting($course->id, 'minmaxtouse', null); // Ensure no course setting. - $gg = grade_grade::fetch(array('userid' => $user->id, 'itemid' => $gi->id)); + $gg = \grade_grade::fetch(array('userid' => $user->id, 'itemid' => $gi->id)); $this->assertEquals(0, $gg->get_grade_min()); $this->assertEquals(100, $gg->get_grade_max()); // Now with other system setting. $CFG->grade_minmaxtouse = GRADE_MIN_MAX_FROM_GRADE_GRADE; grade_set_setting($course->id, 'minmaxtouse', null); // Ensure no course setting, and reset static cache. - $gg = grade_grade::fetch(array('userid' => $user->id, 'itemid' => $gi->id)); + $gg = \grade_grade::fetch(array('userid' => $user->id, 'itemid' => $gi->id)); $this->assertEquals(0, $gg->get_grade_min()); $this->assertEquals(100, $gg->get_grade_max()); // Now with overriden setting in course. $CFG->grade_minmaxtouse = GRADE_MIN_MAX_FROM_GRADE_ITEM; grade_set_setting($course->id, 'minmaxtouse', GRADE_MIN_MAX_FROM_GRADE_GRADE); - $gg = grade_grade::fetch(array('userid' => $user->id, 'itemid' => $gi->id)); + $gg = \grade_grade::fetch(array('userid' => $user->id, 'itemid' => $gi->id)); $this->assertEquals(0, $gg->get_grade_min()); $this->assertEquals(100, $gg->get_grade_max()); $CFG->grade_minmaxtouse = GRADE_MIN_MAX_FROM_GRADE_GRADE; grade_set_setting($course->id, 'minmaxtouse', GRADE_MIN_MAX_FROM_GRADE_ITEM); - $gg = grade_grade::fetch(array('userid' => $user->id, 'itemid' => $gi->id)); + $gg = \grade_grade::fetch(array('userid' => $user->id, 'itemid' => $gi->id)); $this->assertEquals(0, $gg->get_grade_min()); $this->assertEquals(100, $gg->get_grade_max()); @@ -434,10 +436,10 @@ class core_grade_grade_testcase extends grade_base_testcase { $this->setAdminUser(); $course = $this->getDataGenerator()->create_course(); $user = $this->getDataGenerator()->create_user(); - $coursegi = grade_item::fetch_course_item($course->id); + $coursegi = \grade_item::fetch_course_item($course->id); // Create a category item. - $gc = new grade_category(array('courseid' => $course->id, 'fullname' => 'test'), false); + $gc = new \grade_category(array('courseid' => $course->id, 'fullname' => 'test'), false); $gc->insert(); $gi = $gc->get_grade_item(); $gi->grademax = 100; @@ -446,7 +448,7 @@ class core_grade_grade_testcase extends grade_base_testcase { // Fetch the category item. $giparams = array('itemtype' => 'category', 'iteminstance' => $gc->id); - $gi = grade_item::fetch($giparams); + $gi = \grade_item::fetch($giparams); $this->assertEquals(0, $gi->grademin); $this->assertEquals(100, $gi->grademax); @@ -454,7 +456,7 @@ class core_grade_grade_testcase extends grade_base_testcase { $gi->update_final_grade($user->id, 10); // Check the grade min/max stored in gradebook. - $gg = grade_grade::fetch(array('userid' => $user->id, 'itemid' => $gi->id)); + $gg = \grade_grade::fetch(array('userid' => $user->id, 'itemid' => $gi->id)); $this->assertEquals(0, $gg->get_grade_min()); $this->assertEquals(100, $gg->get_grade_max()); @@ -464,33 +466,33 @@ class core_grade_grade_testcase extends grade_base_testcase { $gi->update(); // Fetch the updated item. - $gi = grade_item::fetch($giparams); + $gi = \grade_item::fetch($giparams); // Now check the grade grade min/max with system setting. $CFG->grade_minmaxtouse = GRADE_MIN_MAX_FROM_GRADE_ITEM; grade_set_setting($course->id, 'minmaxtouse', null); // Ensure no course setting. - $gg = grade_grade::fetch(array('userid' => $user->id, 'itemid' => $gi->id)); + $gg = \grade_grade::fetch(array('userid' => $user->id, 'itemid' => $gi->id)); $this->assertEquals(0, $gg->get_grade_min()); $this->assertEquals(100, $gg->get_grade_max()); // Now with other system setting. $CFG->grade_minmaxtouse = GRADE_MIN_MAX_FROM_GRADE_GRADE; grade_set_setting($course->id, 'minmaxtouse', null); // Ensure no course setting, and reset static cache. - $gg = grade_grade::fetch(array('userid' => $user->id, 'itemid' => $gi->id)); + $gg = \grade_grade::fetch(array('userid' => $user->id, 'itemid' => $gi->id)); $this->assertEquals(0, $gg->get_grade_min()); $this->assertEquals(100, $gg->get_grade_max()); // Now with overriden setting in course. $CFG->grade_minmaxtouse = GRADE_MIN_MAX_FROM_GRADE_ITEM; grade_set_setting($course->id, 'minmaxtouse', GRADE_MIN_MAX_FROM_GRADE_GRADE); - $gg = grade_grade::fetch(array('userid' => $user->id, 'itemid' => $gi->id)); + $gg = \grade_grade::fetch(array('userid' => $user->id, 'itemid' => $gi->id)); $this->assertEquals(0, $gg->get_grade_min()); $this->assertEquals(100, $gg->get_grade_max()); $CFG->grade_minmaxtouse = GRADE_MIN_MAX_FROM_GRADE_GRADE; grade_set_setting($course->id, 'minmaxtouse', GRADE_MIN_MAX_FROM_GRADE_ITEM); - $gg = grade_grade::fetch(array('userid' => $user->id, 'itemid' => $gi->id)); + $gg = \grade_grade::fetch(array('userid' => $user->id, 'itemid' => $gi->id)); $this->assertEquals(0, $gg->get_grade_min()); $this->assertEquals(100, $gg->get_grade_max()); @@ -504,13 +506,13 @@ class core_grade_grade_testcase extends grade_base_testcase { $dg = $this->getDataGenerator(); // Create the data we need for the tests. - $fs = new file_storage(); + $fs = new \file_storage(); $u1 = $dg->create_user(); $c1 = $dg->create_course(); $a1 = $dg->create_module('assign', ['course' => $c1->id]); - $a1context = context_module::instance($a1->cmid); + $a1context = \context_module::instance($a1->cmid); - $gi = new grade_item($dg->create_grade_item( + $gi = new \grade_item($dg->create_grade_item( [ 'courseid' => $c1->id, 'itemtype' => 'mod', @@ -543,7 +545,7 @@ class core_grade_grade_testcase extends grade_base_testcase { $files = $fs->get_area_files($a1context->id, GRADE_FILE_COMPONENT, GRADE_HISTORY_FEEDBACK_FILEAREA); $this->assertEquals(2, count($files)); - $gg = grade_grade::fetch(array('userid' => $u1->id, 'itemid' => $gi->id)); + $gg = \grade_grade::fetch(array('userid' => $u1->id, 'itemid' => $gi->id)); $gg->delete(); @@ -586,7 +588,7 @@ class core_grade_grade_testcase extends grade_base_testcase { $c1 = $dg->create_course(); $a1 = $dg->create_module('assign', ['course' => $c1->id]); - $gi = new grade_item($dg->create_grade_item( + $gi = new \grade_item($dg->create_grade_item( [ 'courseid' => $c1->id, 'itemtype' => 'mod', @@ -600,7 +602,7 @@ class core_grade_grade_testcase extends grade_base_testcase { grade_update('mod/assign', $gi->courseid, $gi->itemtype, $gi->itemmodule, $gi->iteminstance, $gi->itemnumber, ['userid' => $u2->id]); - $gg = grade_grade::fetch(array('userid' => $u1->id, 'itemid' => $gi->id)); + $gg = \grade_grade::fetch(array('userid' => $u1->id, 'itemid' => $gi->id)); $this->assertEquals($u1->id, $gg->userid); $gg->load_grade_item(); $this->assertEquals($gi->id, $gg->grade_item->id); @@ -613,14 +615,14 @@ class core_grade_grade_testcase extends grade_base_testcase { $sink->close(); $this->assertInstanceOf('core\event\grade_deleted', $event); - $gg = grade_grade::fetch(array('userid' => $u2->id, 'itemid' => $gi->id)); + $gg = \grade_grade::fetch(array('userid' => $u2->id, 'itemid' => $gi->id)); $this->assertEquals($u2->id, $gg->userid); $gg->load_grade_item(); $this->assertEquals($gi->id, $gg->grade_item->id); // Delete grade item, mock up orphaned grade_grades. $DB->delete_records('grade_items', ['id' => $gi->id]); - $gg = grade_grade::fetch(array('userid' => $u2->id, 'itemid' => $gi->id)); + $gg = \grade_grade::fetch(array('userid' => $u2->id, 'itemid' => $gi->id)); $this->assertEquals($u2->id, $gg->userid); // No event is triggered and there is a debugging message. @@ -632,7 +634,7 @@ class core_grade_grade_testcase extends grade_base_testcase { $this->assertEmpty($events); // The grade should be deleted. - $gg = grade_grade::fetch(array('userid' => $u2->id, 'itemid' => $gi->id)); + $gg = \grade_grade::fetch(array('userid' => $u2->id, 'itemid' => $gi->id)); $this->assertEmpty($gg); } @@ -648,11 +650,11 @@ class core_grade_grade_testcase extends grade_base_testcase { $assignment2 = $generator->create_module('assign', ['course' => $course1->id]); // Create a category item. - $gradecategory = new grade_category(array('courseid' => $course1->id, 'fullname' => 'test'), false); + $gradecategory = new \grade_category(array('courseid' => $course1->id, 'fullname' => 'test'), false); $gradecategoryid = $gradecategory->insert(); // Create one hidden grade item. - $gradeitem1a = new grade_item($generator->create_grade_item( + $gradeitem1a = new \grade_item($generator->create_grade_item( [ 'courseid' => $course1->id, 'itemtype' => 'mod', @@ -688,7 +690,7 @@ class core_grade_grade_testcase extends grade_base_testcase { grade_regrade_final_grades($course1->id); // Set grade override. - $gradegrade = grade_grade::fetch([ + $gradegrade = \grade_grade::fetch([ 'userid' => $user1->id, 'itemid' => $gradeitem->id, ]); @@ -703,14 +705,14 @@ class core_grade_grade_testcase extends grade_base_testcase { /** * Call get_hiding_affected(). - * @param stdClass $course The course object - * @param stdClass $user The student object + * @param \stdClass $course The course object + * @param \stdClass $user The student object * @return array */ private function call_get_hiding_affected($course, $user) { global $DB; - $items = grade_item::fetch_all(array('courseid' => $course->id)); + $items = \grade_item::fetch_all(array('courseid' => $course->id)); $grades = array(); $sql = "SELECT g.* FROM {grade_grades} g @@ -718,13 +720,13 @@ class core_grade_grade_testcase extends grade_base_testcase { WHERE g.userid = :userid AND gi.courseid = :courseid"; if ($gradesrecords = $DB->get_records_sql($sql, ['userid' => $user->id, 'courseid' => $course->id])) { foreach ($gradesrecords as $grade) { - $grades[$grade->itemid] = new grade_grade($grade, false); + $grades[$grade->itemid] = new \grade_grade($grade, false); } unset($gradesrecords); } foreach ($items as $itemid => $gradeitem) { if (!isset($grades[$itemid])) { - $gradegrade = new grade_grade(); + $gradegrade = new \grade_grade(); $gradegrade->userid = $user->id; $gradegrade->itemid = $gradeitem->id; $grades[$itemid] = $gradegrade; @@ -732,6 +734,6 @@ class core_grade_grade_testcase extends grade_base_testcase { $gradeitem->grade_item = $gradeitem; } - return grade_grade::get_hiding_affected($grades, $items); + return \grade_grade::get_hiding_affected($grades, $items); } } diff --git a/lib/grade/tests/grade_item_test.php b/lib/grade/tests/grade_item_test.php index a3988760efd..7ea4734aa4b 100644 --- a/lib/grade/tests/grade_item_test.php +++ b/lib/grade/tests/grade_item_test.php @@ -14,18 +14,21 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * @package core_grades - * @category phpunit - * @copyright nicolas@moodle.com - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ +namespace core; defined('MOODLE_INTERNAL') || die(); require_once(__DIR__.'/fixtures/lib.php'); -class core_grade_item_testcase extends grade_base_testcase { +/** + * Test grade items + * + * @package core + * @category test + * @copyright nicolas@moodle.com + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +class grade_item_test extends \grade_base_testcase { public function test_grade_item() { $this->sub_test_grade_item_construct(); $this->sub_test_grade_item_insert(); @@ -73,7 +76,7 @@ class core_grade_item_testcase extends grade_base_testcase { } protected function sub_test_grade_item_construct() { - $params = new stdClass(); + $params = new \stdClass(); $params->courseid = $this->courseid; $params->categoryid = $this->grade_categories[1]->id; @@ -82,7 +85,7 @@ class core_grade_item_testcase extends grade_base_testcase { $params->itemmodule = 'database'; $params->iteminfo = 'Grade item used for unit testing'; - $grade_item = new grade_item($params, false); + $grade_item = new \grade_item($params, false); $this->assertEquals($params->courseid, $grade_item->courseid); $this->assertEquals($params->categoryid, $grade_item->categoryid); @@ -90,7 +93,7 @@ class core_grade_item_testcase extends grade_base_testcase { } protected function sub_test_grade_item_insert() { - $grade_item = new grade_item(); + $grade_item = new \grade_item(); $this->assertTrue(method_exists($grade_item, 'insert')); $grade_item->courseid = $this->courseid; @@ -113,7 +116,7 @@ class core_grade_item_testcase extends grade_base_testcase { protected function sub_test_grade_item_delete() { global $DB; - $grade_item = new grade_item($this->grade_items[7], false); // Use a grade item not touched by previous (or future) tests. + $grade_item = new \grade_item($this->grade_items[7], false); // Use a grade item not touched by previous (or future) tests. $this->assertTrue(method_exists($grade_item, 'delete')); // Add two files. @@ -149,7 +152,7 @@ class core_grade_item_testcase extends grade_base_testcase { protected function sub_test_grade_item_update() { global $DB; - $grade_item = new grade_item($this->grade_items[0], false); + $grade_item = new \grade_item($this->grade_items[0], false); $this->assertTrue(method_exists($grade_item, 'update')); $grade_item->iteminfo = 'Updated info for this unittest grade_item'; @@ -165,7 +168,7 @@ class core_grade_item_testcase extends grade_base_testcase { } protected function sub_test_grade_item_load_scale() { - $grade_item = new grade_item($this->grade_items[2], false); + $grade_item = new \grade_item($this->grade_items[2], false); $this->assertTrue(method_exists($grade_item, 'load_scale')); $scale = $grade_item->load_scale(); $this->assertFalse(empty($grade_item->scale)); @@ -173,13 +176,13 @@ class core_grade_item_testcase extends grade_base_testcase { } protected function sub_test_grade_item_load_outcome() { - $grade_item = new grade_item($this->grade_items[0], false); + $grade_item = new \grade_item($this->grade_items[0], false); $this->assertTrue(method_exists($grade_item, 'load_outcome')); // TODO: add tests. } protected function sub_test_grade_item_qualifies_for_regrading() { - $grade_item = new grade_item($this->grade_items[3], false); // Use a grade item not touched by previous tests. + $grade_item = new \grade_item($this->grade_items[3], false); // Use a grade item not touched by previous tests. $this->assertTrue(method_exists($grade_item, 'qualifies_for_regrading')); $this->assertFalse($grade_item->qualifies_for_regrading()); @@ -194,7 +197,7 @@ class core_grade_item_testcase extends grade_base_testcase { } protected function sub_test_grade_item_force_regrading() { - $grade_item = new grade_item($this->grade_items[3], false); // Use a grade item not touched by previous tests. + $grade_item = new \grade_item($this->grade_items[3], false); // Use a grade item not touched by previous tests. $this->assertTrue(method_exists($grade_item, 'force_regrading')); $this->assertEquals(0, $grade_item->needsupdate); @@ -206,30 +209,30 @@ class core_grade_item_testcase extends grade_base_testcase { } protected function sub_test_grade_item_fetch() { - $grade_item = new grade_item(); + $grade_item = new \grade_item(); $this->assertTrue(method_exists($grade_item, 'fetch')); // Not using $this->grade_items[0] as it's iteminfo was modified by sub_test_grade_item_qualifies_for_regrading(). - $grade_item = grade_item::fetch(array('id'=>$this->grade_items[1]->id)); + $grade_item = \grade_item::fetch(array('id'=>$this->grade_items[1]->id)); $this->assertEquals($this->grade_items[1]->id, $grade_item->id); $this->assertEquals($this->grade_items[1]->iteminfo, $grade_item->iteminfo); - $grade_item = grade_item::fetch(array('itemtype'=>$this->grade_items[1]->itemtype, 'itemmodule'=>$this->grade_items[1]->itemmodule)); + $grade_item = \grade_item::fetch(array('itemtype'=>$this->grade_items[1]->itemtype, 'itemmodule'=>$this->grade_items[1]->itemmodule)); $this->assertEquals($this->grade_items[1]->id, $grade_item->id); $this->assertEquals($this->grade_items[1]->iteminfo, $grade_item->iteminfo); } protected function sub_test_grade_item_fetch_all() { - $grade_item = new grade_item(); + $grade_item = new \grade_item(); $this->assertTrue(method_exists($grade_item, 'fetch_all')); - $grade_items = grade_item::fetch_all(array('courseid'=>$this->courseid)); + $grade_items = \grade_item::fetch_all(array('courseid'=>$this->courseid)); $this->assertEquals(count($this->grade_items), count($grade_items)-1); // -1 to account for the course grade item. } // Retrieve all final scores for a given grade_item. protected function sub_test_grade_item_get_all_finals() { - $grade_item = new grade_item($this->grade_items[0], false); + $grade_item = new \grade_item($this->grade_items[0], false); $this->assertTrue(method_exists($grade_item, 'get_final')); $final_grades = $grade_item->get_final(); @@ -239,36 +242,36 @@ class core_grade_item_testcase extends grade_base_testcase { // Retrieve all final scores for a specific userid. protected function sub_test_grade_item_get_final() { - $grade_item = new grade_item($this->grade_items[0], false); + $grade_item = new \grade_item($this->grade_items[0], false); $this->assertTrue(method_exists($grade_item, 'get_final')); $final_grade = $grade_item->get_final($this->user[1]->id); $this->assertEquals($this->grade_grades[0]->finalgrade, $final_grade->finalgrade); } protected function sub_test_grade_item_get_sortorder() { - $grade_item = new grade_item($this->grade_items[0], false); + $grade_item = new \grade_item($this->grade_items[0], false); $this->assertTrue(method_exists($grade_item, 'get_sortorder')); $sortorder = $grade_item->get_sortorder(); $this->assertEquals($this->grade_items[0]->sortorder, $sortorder); } protected function sub_test_grade_item_set_sortorder() { - $grade_item = new grade_item($this->grade_items[0], false); + $grade_item = new \grade_item($this->grade_items[0], false); $this->assertTrue(method_exists($grade_item, 'set_sortorder')); $grade_item->set_sortorder(999); $this->assertEquals($grade_item->sortorder, 999); } protected function sub_test_grade_item_move_after_sortorder() { - $grade_item = new grade_item($this->grade_items[0], false); + $grade_item = new \grade_item($this->grade_items[0], false); $this->assertTrue(method_exists($grade_item, 'move_after_sortorder')); $grade_item->move_after_sortorder(5); $this->assertEquals($grade_item->sortorder, 6); - $grade_item = grade_item::fetch(array('id'=>$this->grade_items[0]->id)); + $grade_item = \grade_item::fetch(array('id'=>$this->grade_items[0]->id)); $this->assertEquals($grade_item->sortorder, 6); - $after = grade_item::fetch(array('id'=>$this->grade_items[6]->id)); + $after = \grade_item::fetch(array('id'=>$this->grade_items[6]->id)); $this->assertEquals($after->sortorder, 8); } @@ -276,7 +279,7 @@ class core_grade_item_testcase extends grade_base_testcase { * Tests the getter of the item name with escaped HTML. */ protected function sub_test_grade_item_get_name_escaped() { - $gradeitem = new grade_item($this->grade_items[0], false); + $gradeitem = new \grade_item($this->grade_items[0], false); $this->assertTrue(method_exists($gradeitem, 'get_name')); $this->assertEquals(format_string($this->grade_items[0]->itemname, true, ['escape' => true]), $gradeitem->get_name(false, true)); @@ -286,18 +289,18 @@ class core_grade_item_testcase extends grade_base_testcase { * Tests the getter of the item name with unescaped HTML. */ protected function sub_test_grade_item_get_name_unescaped() { - $gradeitem = new grade_item($this->grade_items[0], false); + $gradeitem = new \grade_item($this->grade_items[0], false); $this->assertTrue(method_exists($gradeitem, 'get_name')); $this->assertEquals(format_string($this->grade_items[0]->itemname, true, ['escape' => false]), $gradeitem->get_name(false, false)); } protected function sub_test_grade_item_set_parent() { - $grade_item = new grade_item($this->grade_items[0], false); + $grade_item = new \grade_item($this->grade_items[0], false); $this->assertTrue(method_exists($grade_item, 'set_parent')); $old = $grade_item->get_parent_category(); - $new = new grade_category($this->grade_categories[3], false); + $new = new \grade_category($this->grade_categories[3], false); $new_item = $new->get_grade_item(); $this->assertTrue($grade_item->set_parent($new->id)); @@ -309,7 +312,7 @@ class core_grade_item_testcase extends grade_base_testcase { } protected function sub_test_grade_item_get_parent_category() { - $grade_item = new grade_item($this->grade_items[0], false); + $grade_item = new \grade_item($this->grade_items[0], false); $this->assertTrue(method_exists($grade_item, 'get_parent_category')); $category = $grade_item->get_parent_category(); @@ -317,7 +320,7 @@ class core_grade_item_testcase extends grade_base_testcase { } protected function sub_test_grade_item_load_parent_category() { - $grade_item = new grade_item($this->grade_items[0], false); + $grade_item = new \grade_item($this->grade_items[0], false); $this->assertTrue(method_exists($grade_item, 'load_parent_category')); $category = $grade_item->load_parent_category(); @@ -326,7 +329,7 @@ class core_grade_item_testcase extends grade_base_testcase { } protected function sub_test_grade_item_get_item_category() { - $grade_item = new grade_item($this->grade_items[3], false); + $grade_item = new \grade_item($this->grade_items[3], false); $this->assertTrue(method_exists($grade_item, 'get_item_category')); $category = $grade_item->get_item_category(); @@ -334,7 +337,7 @@ class core_grade_item_testcase extends grade_base_testcase { } protected function sub_test_grade_item_load_item_category() { - $grade_item = new grade_item($this->grade_items[3], false); + $grade_item = new \grade_item($this->grade_items[3], false); $this->assertTrue(method_exists($grade_item, 'load_item_category')); $category = $grade_item->load_item_category(); @@ -343,17 +346,17 @@ class core_grade_item_testcase extends grade_base_testcase { } protected function sub_test_grade_item_regrade_final_grades() { - $grade_item = new grade_item($this->grade_items[0], false); + $grade_item = new \grade_item($this->grade_items[0], false); $this->assertTrue(method_exists($grade_item, 'regrade_final_grades')); $this->assertEquals(true, $grade_item->regrade_final_grades()); // TODO: add more tests. } protected function sub_test_grade_item_adjust_raw_grade() { - $grade_item = new grade_item($this->grade_items[2], false); // Anything but assignment module! + $grade_item = new \grade_item($this->grade_items[2], false); // Anything but assignment module! $this->assertTrue(method_exists($grade_item, 'adjust_raw_grade')); - $grade_raw = new stdClass(); + $grade_raw = new \stdClass(); $grade_raw->rawgrade = 40; $grade_raw->grademax = 100; $grade_raw->grademin = 0; @@ -412,11 +415,11 @@ class core_grade_item_testcase extends grade_base_testcase { protected function sub_test_grade_item_rescale_grades_keep_percentage() { global $DB; - $gradeitem = new grade_item($this->grade_items[10], false); // 10 is the manual grade item. + $gradeitem = new \grade_item($this->grade_items[10], false); // 10 is the manual grade item. // Create some grades to go with the grade item. $gradeids = array(); - $grade = new stdClass(); + $grade = new \stdClass(); $grade->itemid = $gradeitem->id; $grade->userid = $this->user[2]->id; $grade->finalgrade = 10; @@ -453,30 +456,30 @@ class core_grade_item_testcase extends grade_base_testcase { protected function sub_test_grade_item_set_locked() { // Getting a grade_item from the DB as set_locked() will fail if the grade items needs to be updated // also needs to have at least one grade_grade or $grade_item->get_final(1) returns null. - // $grade_item = new grade_item($this->grade_items[8]); - $grade_item = grade_item::fetch(array('id'=>$this->grade_items[8]->id)); + // $grade_item = new \grade_item($this->grade_items[8]); + $grade_item = \grade_item::fetch(array('id'=>$this->grade_items[8]->id)); $this->assertTrue(method_exists($grade_item, 'set_locked')); - $grade_grade = new grade_grade($grade_item->get_final($this->user[1]->id), false); + $grade_grade = new \grade_grade($grade_item->get_final($this->user[1]->id), false); $this->assertTrue(empty($grade_item->locked));// Not locked. $this->assertTrue(empty($grade_grade->locked));// Not locked. $this->assertTrue($grade_item->set_locked(true, true, false)); - $grade_grade = new grade_grade($grade_item->get_final($this->user[1]->id), false); + $grade_grade = new \grade_grade($grade_item->get_final($this->user[1]->id), false); $this->assertFalse(empty($grade_item->locked));// Locked. $this->assertFalse(empty($grade_grade->locked)); // Individual grades should be locked too. $this->assertTrue($grade_item->set_locked(false, true, false)); - $grade = new grade_grade($grade_item->get_final($this->user[1]->id), false); + $grade = new \grade_grade($grade_item->get_final($this->user[1]->id), false); $this->assertTrue(empty($grade_item->locked)); $this->assertTrue(empty($grade->locked)); // Individual grades should be unlocked too. } protected function sub_test_grade_item_is_locked() { - $grade_item = new grade_item($this->grade_items[10], false); + $grade_item = new \grade_item($this->grade_items[10], false); $this->assertTrue(method_exists($grade_item, 'is_locked')); $this->assertFalse($grade_item->is_locked()); @@ -487,22 +490,22 @@ class core_grade_item_testcase extends grade_base_testcase { } protected function sub_test_grade_item_set_hidden() { - $grade_item = new grade_item($this->grade_items[0], false); + $grade_item = new \grade_item($this->grade_items[0], false); $this->assertTrue(method_exists($grade_item, 'set_hidden')); - $grade = new grade_grade($grade_item->get_final($this->user[1]->id), false); + $grade = new \grade_grade($grade_item->get_final($this->user[1]->id), false); $this->assertEquals(0, $grade_item->hidden); $this->assertEquals(0, $grade->hidden); $grade_item->set_hidden(666, true); - $grade = new grade_grade($grade_item->get_final($this->user[1]->id), false); + $grade = new \grade_grade($grade_item->get_final($this->user[1]->id), false); $this->assertEquals(666, $grade_item->hidden); $this->assertEquals(666, $grade->hidden); } protected function sub_test_grade_item_is_hidden() { - $grade_item = new grade_item($this->grade_items[0], false); + $grade_item = new \grade_item($this->grade_items[0], false); $this->assertTrue(method_exists($grade_item, 'is_hidden')); $this->assertFalse($grade_item->is_hidden()); @@ -522,19 +525,19 @@ class core_grade_item_testcase extends grade_base_testcase { } protected function sub_test_grade_item_is_category_item() { - $grade_item = new grade_item($this->grade_items[3], false); + $grade_item = new \grade_item($this->grade_items[3], false); $this->assertTrue(method_exists($grade_item, 'is_category_item')); $this->assertTrue($grade_item->is_category_item()); } protected function sub_test_grade_item_is_course_item() { - $grade_item = grade_item::fetch_course_item($this->courseid); + $grade_item = \grade_item::fetch_course_item($this->courseid); $this->assertTrue(method_exists($grade_item, 'is_course_item')); $this->assertTrue($grade_item->is_course_item()); } protected function sub_test_grade_item_fetch_course_item() { - $grade_item = grade_item::fetch_course_item($this->courseid); + $grade_item = \grade_item::fetch_course_item($this->courseid); $this->assertTrue(method_exists($grade_item, 'fetch_course_item')); $this->assertEquals($grade_item->itemtype, 'course'); } @@ -544,7 +547,7 @@ class core_grade_item_testcase extends grade_base_testcase { $origenableoutcomes = $CFG->enableoutcomes; $CFG->enableoutcomes = 0; - $grade_item = new grade_item($this->grade_items[1], false); + $grade_item = new \grade_item($this->grade_items[1], false); // Calculated grade dependency. $deps = $grade_item->depends_on(); @@ -559,7 +562,7 @@ class core_grade_item_testcase extends grade_base_testcase { $this->assertEquals(array(), $deps); // Category dependency. - $grade_item = new grade_item($this->grade_items[3], false); + $grade_item = new \grade_item($this->grade_items[3], false); $deps = $grade_item->depends_on(); sort($deps, SORT_NUMERIC); // For comparison. $res = array($this->grade_items[4]->id, $this->grade_items[5]->id); @@ -572,7 +575,7 @@ class core_grade_item_testcase extends grade_base_testcase { $CFG->grade_includescalesinaggregation = 1; // Scale item in category with $CFG->grade_includescalesinaggregation = 1. - $grade_item = new grade_item($this->grade_items[14], false); + $grade_item = new \grade_item($this->grade_items[14], false); $deps = $grade_item->depends_on(); sort($deps, SORT_NUMERIC); $res = array($this->grade_items[16]->id); @@ -580,7 +583,7 @@ class core_grade_item_testcase extends grade_base_testcase { // Scale item in category with $CFG->grade_includescalesinaggregation = 0. $CFG->grade_includescalesinaggregation = 0; - $grade_item = new grade_item($this->grade_items[14], false); + $grade_item = new \grade_item($this->grade_items[14], false); $deps = $grade_item->depends_on(); $res = array(); $this->assertEquals($res, $deps); @@ -588,7 +591,7 @@ class core_grade_item_testcase extends grade_base_testcase { // Outcome item in category with outcomes disabled. $CFG->enableoutcomes = 0; - $grade_item = new grade_item($this->grade_items[14], false); + $grade_item = new \grade_item($this->grade_items[14], false); $deps = $grade_item->depends_on(); sort($deps, SORT_NUMERIC); $res = array($this->grade_items[16]->id, $this->grade_items[17]->id); @@ -600,7 +603,7 @@ class core_grade_item_testcase extends grade_base_testcase { protected function sub_test_refresh_grades() { // Testing with the grade item for a mod_assignment instance. - $grade_item = new grade_item($this->grade_items[0], false); + $grade_item = new \grade_item($this->grade_items[0], false); $this->assertTrue(method_exists($grade_item, 'refresh_grades')); $this->assertTrue($grade_item->refresh_grades()); @@ -611,18 +614,18 @@ class core_grade_item_testcase extends grade_base_testcase { } protected function sub_test_grade_item_is_calculated() { - $grade_item = new grade_item($this->grade_items[1], false); + $grade_item = new \grade_item($this->grade_items[1], false); $this->assertTrue(method_exists($grade_item, 'is_calculated')); $this->assertTrue($grade_item->is_calculated()); - $grade_item = new grade_item($this->grade_items[0], false); + $grade_item = new \grade_item($this->grade_items[0], false); $this->assertFalse($grade_item->is_calculated()); } protected function sub_test_grade_item_set_calculation() { - $grade_item = new grade_item($this->grade_items[1], false); + $grade_item = new \grade_item($this->grade_items[1], false); $this->assertTrue(method_exists($grade_item, 'set_calculation')); - $grade_itemsource = new grade_item($this->grade_items[0], false); + $grade_itemsource = new \grade_item($this->grade_items[0], false); $grade_item->set_calculation('=[['.$grade_itemsource->idnumber.']]'); @@ -631,9 +634,9 @@ class core_grade_item_testcase extends grade_base_testcase { } protected function sub_test_grade_item_get_calculation() { - $grade_item = new grade_item($this->grade_items[1], false); + $grade_item = new \grade_item($this->grade_items[1], false); $this->assertTrue(method_exists($grade_item, 'get_calculation')); - $grade_itemsource = new grade_item($this->grade_items[0], false); + $grade_itemsource = new \grade_item($this->grade_items[0], false); $denormalizedformula = str_replace('##gi'.$grade_itemsource->id.'##', '[['.$grade_itemsource->idnumber.']]', $this->grade_items[1]->calculation); @@ -643,32 +646,32 @@ class core_grade_item_testcase extends grade_base_testcase { } public function sub_test_grade_item_compute() { - $grade_item = grade_item::fetch(array('id'=>$this->grade_items[1]->id)); + $grade_item = \grade_item::fetch(array('id'=>$this->grade_items[1]->id)); $this->assertTrue(method_exists($grade_item, 'compute')); // Check the grade_grades in the array match those in the DB then delete $this->grade_items[1]'s grade_grades. - $this->grade_grades[3] = grade_grade::fetch(array('id'=>$this->grade_grades[3]->id)); - $grade_grade = grade_grade::fetch(array('id'=>$this->grade_grades[3]->id)); + $this->grade_grades[3] = \grade_grade::fetch(array('id'=>$this->grade_grades[3]->id)); + $grade_grade = \grade_grade::fetch(array('id'=>$this->grade_grades[3]->id)); $grade_grade->delete(); - $this->grade_grades[4] = grade_grade::fetch(array('id'=>$this->grade_grades[4]->id)); - $grade_grade = grade_grade::fetch(array('id'=>$this->grade_grades[4]->id)); + $this->grade_grades[4] = \grade_grade::fetch(array('id'=>$this->grade_grades[4]->id)); + $grade_grade = \grade_grade::fetch(array('id'=>$this->grade_grades[4]->id)); $grade_grade->delete(); - $this->grade_grades[5] = grade_grade::fetch(array('id'=>$this->grade_grades[5]->id)); - $grade_grade = grade_grade::fetch(array('id'=>$this->grade_grades[5]->id)); + $this->grade_grades[5] = \grade_grade::fetch(array('id'=>$this->grade_grades[5]->id)); + $grade_grade = \grade_grade::fetch(array('id'=>$this->grade_grades[5]->id)); $grade_grade->delete(); // Recalculate the grades (its a calculation so pulls values from other grade_items) and reinsert them. $grade_item->compute(); - $grade_grade = grade_grade::fetch(array('userid'=>$this->grade_grades[3]->userid, 'itemid'=>$this->grade_grades[3]->itemid)); + $grade_grade = \grade_grade::fetch(array('userid'=>$this->grade_grades[3]->userid, 'itemid'=>$this->grade_grades[3]->itemid)); $this->assertEquals($this->grade_grades[3]->finalgrade, $grade_grade->finalgrade); - $grade_grade = grade_grade::fetch(array('userid'=>$this->grade_grades[4]->userid, 'itemid'=>$this->grade_grades[4]->itemid)); + $grade_grade = \grade_grade::fetch(array('userid'=>$this->grade_grades[4]->userid, 'itemid'=>$this->grade_grades[4]->itemid)); $this->assertEquals($this->grade_grades[4]->finalgrade, $grade_grade->finalgrade); - $grade_grade = grade_grade::fetch(array('userid'=>$this->grade_grades[5]->userid, 'itemid'=>$this->grade_grades[5]->itemid)); + $grade_grade = \grade_grade::fetch(array('userid'=>$this->grade_grades[5]->userid, 'itemid'=>$this->grade_grades[5]->itemid)); $this->assertEquals($this->grade_grades[5]->finalgrade, $grade_grade->finalgrade); } @@ -680,7 +683,7 @@ class core_grade_item_testcase extends grade_base_testcase { $max = 8; // Create a brand new grade item. - $grade_item = new grade_item(); + $grade_item = new \grade_item(); $this->assertTrue(method_exists($grade_item, 'insert')); $grade_item->courseid = $this->courseid; @@ -698,23 +701,23 @@ class core_grade_item_testcase extends grade_base_testcase { $grade_item->update_final_grade($this->user[1]->id, 7, 'gradebook', '', FORMAT_MOODLE); // Check the student's grade has the correct min and max grade. - $grade_grade = grade_grade::fetch(array('userid'=>$this->user[1]->id, 'itemid'=>$grade_item->id)); + $grade_grade = \grade_grade::fetch(array('userid'=>$this->user[1]->id, 'itemid'=>$grade_item->id)); $this->assertEquals($min, $grade_grade->rawgrademin); $this->assertEquals($max, $grade_grade->rawgrademax); } protected function sub_test_grade_item_can_control_visibility() { // Grade item 0 == Course module 0 == Assignment. - $grade_item = new grade_item($this->grade_items[0], false); + $grade_item = new \grade_item($this->grade_items[0], false); $this->assertTrue($grade_item->can_control_visibility()); // Grade item == Course module 7 == Quiz. - $grade_item = new grade_item($this->grade_items[11], false); + $grade_item = new \grade_item($this->grade_items[11], false); $this->assertFalse($grade_item->can_control_visibility()); } /** - * Test the {@link grade_item::fix_duplicate_sortorder() function with + * Test the {@link \grade_item::fix_duplicate_sortorder() function with * faked duplicate sortorder data. */ public function sub_test_grade_item_fix_sortorder() { @@ -760,7 +763,7 @@ class core_grade_item_testcase extends grade_base_testcase { // Do the work. foreach ($origsequence as $courseid => $ignore) { - grade_item::fix_duplicate_sortorder($courseid); + \grade_item::fix_duplicate_sortorder($courseid); // Verify that no duplicates are left in the database. $dupes = $DB->record_exists_sql($duplicatedetectionsql, array('courseid' => $courseid)); $this->assertFalse($dupes); @@ -799,7 +802,7 @@ class core_grade_item_testcase extends grade_base_testcase { global $DB, $CFG; require_once($CFG->libdir.'/gradelib.php'); - $item = new stdClass(); + $item = new \stdClass(); $item->courseid = $courseid; $item->sortorder = $sortorder; $item->gradetype = GRADE_TYPE_VALUE; @@ -817,7 +820,7 @@ class core_grade_item_testcase extends grade_base_testcase { public function test_set_aggregation_fields_for_aggregation() { $course = $this->getDataGenerator()->create_course(); - $gi = new grade_item(array('courseid' => $course->id, 'itemtype' => 'manual'), false); + $gi = new \grade_item(array('courseid' => $course->id, 'itemtype' => 'manual'), false); $methods = array(GRADE_AGGREGATE_MEAN, GRADE_AGGREGATE_MEDIAN, GRADE_AGGREGATE_MIN, GRADE_AGGREGATE_MAX, GRADE_AGGREGATE_MODE, GRADE_AGGREGATE_WEIGHTED_MEAN, GRADE_AGGREGATE_WEIGHTED_MEAN2, @@ -825,7 +828,7 @@ class core_grade_item_testcase extends grade_base_testcase { // Switching from and to the same aggregation using the defaults. foreach ($methods as $method) { - $defaults = grade_category::get_default_aggregation_coefficient_values($method); + $defaults = \grade_category::get_default_aggregation_coefficient_values($method); $gi->aggregationcoef = $defaults['aggregationcoef']; $gi->aggregationcoef2 = $defaults['aggregationcoef2']; $gi->weightoverride = $defaults['weightoverride']; @@ -837,12 +840,12 @@ class core_grade_item_testcase extends grade_base_testcase { // Extra credit is kept across aggregation methods that support it. foreach ($methods as $from) { - $fromsupportsec = grade_category::aggregation_uses_extracredit($from); - $fromdefaults = grade_category::get_default_aggregation_coefficient_values($from); + $fromsupportsec = \grade_category::aggregation_uses_extracredit($from); + $fromdefaults = \grade_category::get_default_aggregation_coefficient_values($from); foreach ($methods as $to) { - $tosupportsec = grade_category::aggregation_uses_extracredit($to); - $todefaults = grade_category::get_default_aggregation_coefficient_values($to); + $tosupportsec = \grade_category::aggregation_uses_extracredit($to); + $todefaults = \grade_category::get_default_aggregation_coefficient_values($to); // Set the item to be extra credit, if supported. if ($fromsupportsec) { @@ -884,14 +887,14 @@ class core_grade_item_testcase extends grade_base_testcase { // Extra credit can be higher than one for GRADE_AGGREGATE_EXTRACREDIT_MEAN, but will be normalised for others. $from = GRADE_AGGREGATE_EXTRACREDIT_MEAN; - $fromdefaults = grade_category::get_default_aggregation_coefficient_values($from); + $fromdefaults = \grade_category::get_default_aggregation_coefficient_values($from); foreach ($methods as $to) { - if (!grade_category::aggregation_uses_extracredit($to)) { + if (!\grade_category::aggregation_uses_extracredit($to)) { continue; } - $todefaults = grade_category::get_default_aggregation_coefficient_values($to); + $todefaults = \grade_category::get_default_aggregation_coefficient_values($to); $gi->aggregationcoef = 8; // Ignore those fields, they are not used for extra credit. @@ -909,14 +912,14 @@ class core_grade_item_testcase extends grade_base_testcase { // Weights are reset. $from = GRADE_AGGREGATE_SUM; - $fromdefaults = grade_category::get_default_aggregation_coefficient_values($from); + $fromdefaults = \grade_category::get_default_aggregation_coefficient_values($from); $gi->aggregationcoef = $fromdefaults['aggregationcoef']; $gi->aggregationcoef2 = 0.321; $gi->weightoverride = $fromdefaults['weightoverride']; $to = GRADE_AGGREGATE_WEIGHTED_MEAN; - $todefaults = grade_category::get_default_aggregation_coefficient_values($to); + $todefaults = \grade_category::get_default_aggregation_coefficient_values($to); $this->assertTrue($gi->set_aggregation_fields_for_aggregation($from, $to), "From: $from, to: $to"); $this->assertEquals($todefaults['aggregationcoef'], $gi->aggregationcoef); @@ -928,7 +931,7 @@ class core_grade_item_testcase extends grade_base_testcase { $gi->weightoverride = $fromdefaults['weightoverride']; $to = GRADE_AGGREGATE_SUM; - $todefaults = grade_category::get_default_aggregation_coefficient_values($to); + $todefaults = \grade_category::get_default_aggregation_coefficient_values($to); $this->assertTrue($gi->set_aggregation_fields_for_aggregation($from, $to), "From: $from, to: $to"); $this->assertEquals($todefaults['aggregationcoef'], $gi->aggregationcoef); @@ -937,14 +940,14 @@ class core_grade_item_testcase extends grade_base_testcase { // Weight is kept when using SUM with weight override. $from = GRADE_AGGREGATE_SUM; - $fromdefaults = grade_category::get_default_aggregation_coefficient_values($from); + $fromdefaults = \grade_category::get_default_aggregation_coefficient_values($from); $gi->aggregationcoef = $fromdefaults['aggregationcoef']; $gi->aggregationcoef2 = 0.321; $gi->weightoverride = 1; $to = GRADE_AGGREGATE_SUM; - $todefaults = grade_category::get_default_aggregation_coefficient_values($to); + $todefaults = \grade_category::get_default_aggregation_coefficient_values($to); $this->assertFalse($gi->set_aggregation_fields_for_aggregation($from, $to), "From: $from, to: $to"); $this->assertEquals($todefaults['aggregationcoef'], $gi->aggregationcoef); @@ -956,7 +959,7 @@ class core_grade_item_testcase extends grade_base_testcase { $gi->weightoverride = 1; $to = GRADE_AGGREGATE_WEIGHTED_MEAN; - $todefaults = grade_category::get_default_aggregation_coefficient_values($to); + $todefaults = \grade_category::get_default_aggregation_coefficient_values($to); $this->assertTrue($gi->set_aggregation_fields_for_aggregation($from, $to), "From: $from, to: $to"); $this->assertEquals($todefaults['aggregationcoef'], $gi->aggregationcoef); @@ -965,14 +968,14 @@ class core_grade_item_testcase extends grade_base_testcase { // Weight is kept when staying in weighted mean. $from = GRADE_AGGREGATE_WEIGHTED_MEAN; - $fromdefaults = grade_category::get_default_aggregation_coefficient_values($from); + $fromdefaults = \grade_category::get_default_aggregation_coefficient_values($from); $gi->aggregationcoef = 18; $gi->aggregationcoef2 = $fromdefaults['aggregationcoef2']; $gi->weightoverride = $fromdefaults['weightoverride']; $to = GRADE_AGGREGATE_WEIGHTED_MEAN; - $todefaults = grade_category::get_default_aggregation_coefficient_values($to); + $todefaults = \grade_category::get_default_aggregation_coefficient_values($to); $this->assertFalse($gi->set_aggregation_fields_for_aggregation($from, $to), "From: $from, to: $to"); $this->assertEquals(18, $gi->aggregationcoef); @@ -984,7 +987,7 @@ class core_grade_item_testcase extends grade_base_testcase { $gi->weightoverride = $fromdefaults['weightoverride']; $to = GRADE_AGGREGATE_SUM; - $todefaults = grade_category::get_default_aggregation_coefficient_values($to); + $todefaults = \grade_category::get_default_aggregation_coefficient_values($to); $this->assertTrue($gi->set_aggregation_fields_for_aggregation($from, $to), "From: $from, to: $to"); $this->assertEquals($todefaults['aggregationcoef'], $gi->aggregationcoef); @@ -998,7 +1001,7 @@ class core_grade_item_testcase extends grade_base_testcase { protected function sub_test_grade_item_created_event() { $sink = $this->redirectEvents(); - $gradeitem = new grade_item(); + $gradeitem = new \grade_item(); $gradeitem->courseid = $this->courseid; $gradeitem->categoryid = $this->grade_categories[1]->id; @@ -1031,7 +1034,7 @@ class core_grade_item_testcase extends grade_base_testcase { * Test that grade item event triggered when a grade item is updated. */ protected function sub_test_grade_item_updated_event() { - $gradeitem = new grade_item(); + $gradeitem = new \grade_item(); $gradeitem->courseid = $this->courseid; $gradeitem->categoryid = $this->grade_categories[1]->id; @@ -1069,13 +1072,13 @@ class core_grade_item_testcase extends grade_base_testcase { * Test grade item duplication expecting success. */ public function test_grade_duplicate_grade_item_success() { - $cat = new grade_category(); + $cat = new \grade_category(); $cat->courseid = $this->courseid; $cat->fullname = 'Grade category'; $cat->insert(); // Method exists. - $gi = new grade_item(); + $gi = new \grade_item(); $this->assertTrue(method_exists($gi, 'duplicate')); // Grade item is inserted and valid for duplication. @@ -1110,7 +1113,7 @@ class core_grade_item_testcase extends grade_base_testcase { */ public function test_grade_duplicate_grade_item_incomplete() { // Grade item is not valid because it is empty. - $gi = new grade_item(); + $gi = new \grade_item(); $gi->courseid = $this->courseid; $this->expectException("moodle_exception"); $gi2 = $gi->duplicate(); @@ -1120,14 +1123,14 @@ class core_grade_item_testcase extends grade_base_testcase { * Test grade item duplication exception expected because item must be in db. */ public function test_grade_duplicate_grade_item_not_in_db() { - $cat = new grade_category(); + $cat = new \grade_category(); $cat->courseid = $this->courseid; $cat->fullname = 'Grade category'; $cat->insert(); // Grade item is valid for insertion but is not inserted into db. // Duplicate method throws an exception. - $gi = new grade_item(); + $gi = new \grade_item(); $gi->courseid = $this->courseid; $gi->categoryid = $cat->id; $gi->itemtype = 'manual'; diff --git a/lib/grade/tests/grade_object_test.php b/lib/grade/tests/grade_object_test.php index f4e42586032..4ad43e1c814 100644 --- a/lib/grade/tests/grade_object_test.php +++ b/lib/grade/tests/grade_object_test.php @@ -14,14 +14,7 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Grade object tests. - * - * @package core_grades - * @category phpunit - * @copyright 2014 Frédéric Massart - FMCorz.net - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ +namespace core; defined('MOODLE_INTERNAL') || die(); @@ -30,17 +23,17 @@ require_once(__DIR__ . '/fixtures/lib.php'); /** * Grade object testcase. * - * @package core_grades - * @category phpunit + * @package core + * @category test * @copyright 2014 Frédéric Massart - FMCorz.net * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class core_grade_object_testcase extends grade_base_testcase { +class grade_object_test extends \grade_base_testcase { public function test_fetch_all_helper() { // Simple ID lookup. $params = array('id' => $this->grade_items[0]->id); - $items = grade_object::fetch_all_helper('grade_items', 'grade_item', $params); + $items = \grade_object::fetch_all_helper('grade_items', 'grade_item', $params); $this->assertCount(1, $items); $item = array_shift($items); $this->assertInstanceOf('grade_item', $item); @@ -48,7 +41,7 @@ class core_grade_object_testcase extends grade_base_testcase { // Various parameters lookup, multiple results. $params = array('courseid' => $this->course->id, 'categoryid' => $this->grade_categories[1]->id); - $items = grade_object::fetch_all_helper('grade_items', 'grade_item', $params); + $items = \grade_object::fetch_all_helper('grade_items', 'grade_item', $params); $this->assertCount(2, $items); $expecteditems = array($this->grade_items[0]->id => true, $this->grade_items[1]->id => true); foreach ($items as $item) { @@ -59,7 +52,7 @@ class core_grade_object_testcase extends grade_base_testcase { // Text column lookup. $params = array('iteminfo' => $this->grade_items[2]->iteminfo); - $items = grade_object::fetch_all_helper('grade_items', 'grade_item', $params); + $items = \grade_object::fetch_all_helper('grade_items', 'grade_item', $params); $this->assertCount(1, $items); $item = array_shift($items); $this->assertInstanceOf('grade_item', $item); @@ -67,7 +60,7 @@ class core_grade_object_testcase extends grade_base_testcase { // Lookup using non-existing columns. $params = array('doesnotexist' => 'ignoreme', 'id' => $this->grade_items[0]->id); - $items = grade_object::fetch_all_helper('grade_items', 'grade_item', $params); + $items = \grade_object::fetch_all_helper('grade_items', 'grade_item', $params); $this->assertCount(1, $items); $item = array_shift($items); $this->assertInstanceOf('grade_item', $item); diff --git a/lib/grade/tests/grade_outcome_test.php b/lib/grade/tests/grade_outcome_test.php index 91dc257a53d..5e164346ad7 100644 --- a/lib/grade/tests/grade_outcome_test.php +++ b/lib/grade/tests/grade_outcome_test.php @@ -14,19 +14,21 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * @package core_grades - * @category phpunit - * @copyright nicolas@moodle.com - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ +namespace core; defined('MOODLE_INTERNAL') || die(); require_once(__DIR__.'/fixtures/lib.php'); - -class core_grade_outcome_testcase extends grade_base_testcase { +/** + * Unit tests for grade_outcome + * + * @package core + * @category test + * @copyright nicolas@moodle.com + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +class grade_outcome_test extends \grade_base_testcase { public function test_grade_outcome() { $this->sub_test_grade_outcome_construct(); @@ -38,18 +40,18 @@ class core_grade_outcome_testcase extends grade_base_testcase { } protected function sub_test_grade_outcome_construct() { - $params = new stdClass(); + $params = new \stdClass(); $params->courseid = $this->courseid; $params->shortname = 'Team work'; - $grade_outcome = new grade_outcome($params, false); + $grade_outcome = new \grade_outcome($params, false); $this->assertEquals($params->courseid, $grade_outcome->courseid); $this->assertEquals($params->shortname, $grade_outcome->shortname); } protected function sub_test_grade_outcome_insert() { - $grade_outcome = new grade_outcome(); + $grade_outcome = new \grade_outcome(); $this->assertTrue(method_exists($grade_outcome, 'insert')); $grade_outcome->courseid = $this->courseid; @@ -67,7 +69,7 @@ class core_grade_outcome_testcase extends grade_base_testcase { protected function sub_test_grade_outcome_update() { global $DB; - $grade_outcome = new grade_outcome($this->grade_outcomes[0], false); + $grade_outcome = new \grade_outcome($this->grade_outcomes[0], false); $this->assertTrue(method_exists($grade_outcome, 'update')); $grade_outcome->shortname = 'Team work'; $this->assertTrue($grade_outcome->update()); @@ -77,7 +79,7 @@ class core_grade_outcome_testcase extends grade_base_testcase { protected function sub_test_grade_outcome_delete() { global $DB; - $grade_outcome = new grade_outcome($this->grade_outcomes[0], false); + $grade_outcome = new \grade_outcome($this->grade_outcomes[0], false); $this->assertTrue(method_exists($grade_outcome, 'delete')); $this->assertTrue($grade_outcome->delete()); @@ -85,10 +87,10 @@ class core_grade_outcome_testcase extends grade_base_testcase { } protected function sub_test_grade_outcome_fetch() { - $grade_outcome = new grade_outcome(); + $grade_outcome = new \grade_outcome(); $this->assertTrue(method_exists($grade_outcome, 'fetch')); - $grade_outcome = grade_outcome::fetch(array('id'=>$this->grade_outcomes[0]->id)); + $grade_outcome = \grade_outcome::fetch(array('id'=>$this->grade_outcomes[0]->id)); $grade_outcome->load_scale(); $this->assertEquals($this->grade_outcomes[0]->id, $grade_outcome->id); $this->assertEquals($this->grade_outcomes[0]->shortname, $grade_outcome->shortname); @@ -97,10 +99,10 @@ class core_grade_outcome_testcase extends grade_base_testcase { } protected function sub_test_grade_outcome_fetch_all() { - $grade_outcome = new grade_outcome(); + $grade_outcome = new \grade_outcome(); $this->assertTrue(method_exists($grade_outcome, 'fetch_all')); - $grade_outcomes = grade_outcome::fetch_all(array()); + $grade_outcomes = \grade_outcome::fetch_all(array()); $this->assertEquals(count($this->grade_outcomes), count($grade_outcomes)); } } diff --git a/lib/grade/tests/grade_scale_test.php b/lib/grade/tests/grade_scale_test.php index e1040f08139..7af18c7a7e0 100644 --- a/lib/grade/tests/grade_scale_test.php +++ b/lib/grade/tests/grade_scale_test.php @@ -14,19 +14,21 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * @package core_grades - * @category phpunit - * @copyright nicolas@moodle.com - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ +namespace core; defined('MOODLE_INTERNAL') || die(); require_once(__DIR__.'/fixtures/lib.php'); - -class core_grade_scale_testcase extends grade_base_testcase { +/** + * Unit tests for grade_scale + * + * @package core + * @category test + * @copyright nicolas@moodle.com + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +class grade_scale_test extends \grade_base_testcase { public function test_grade_scale() { $this->sub_test_scale_construct(); @@ -40,7 +42,7 @@ class core_grade_scale_testcase extends grade_base_testcase { } protected function sub_test_scale_construct() { - $params = new stdClass(); + $params = new \stdClass(); $params->name = 'unittestscale3'; $params->courseid = $this->course->id; $params->userid = $this->userid; @@ -48,7 +50,7 @@ class core_grade_scale_testcase extends grade_base_testcase { $params->description = 'This scale is used to mark standard assignments.'; $params->timemodified = time(); - $scale = new grade_scale($params, false); + $scale = new \grade_scale($params, false); $this->assertEquals($params->name, $scale->name); $this->assertEquals($params->scale, $scale->scale); @@ -57,7 +59,7 @@ class core_grade_scale_testcase extends grade_base_testcase { } protected function sub_test_grade_scale_insert() { - $grade_scale = new grade_scale(); + $grade_scale = new \grade_scale(); $this->assertTrue(method_exists($grade_scale, 'insert')); $grade_scale->name = 'unittestscale3'; @@ -77,7 +79,7 @@ class core_grade_scale_testcase extends grade_base_testcase { protected function sub_test_grade_scale_update() { global $DB; - $grade_scale = new grade_scale($this->scale[1], false); + $grade_scale = new \grade_scale($this->scale[1], false); $this->assertTrue(method_exists($grade_scale, 'update')); $grade_scale->name = 'Updated info for this unittest grade_scale'; @@ -88,7 +90,7 @@ class core_grade_scale_testcase extends grade_base_testcase { protected function sub_test_grade_scale_delete() { global $DB; - $grade_scale = new grade_scale($this->scale[4], false); // Choose one we're not using elsewhere. + $grade_scale = new \grade_scale($this->scale[4], false); // Choose one we're not using elsewhere. $this->assertTrue(method_exists($grade_scale, 'delete')); $this->assertTrue($grade_scale->delete()); @@ -99,16 +101,16 @@ class core_grade_scale_testcase extends grade_base_testcase { } protected function sub_test_grade_scale_fetch() { - $grade_scale = new grade_scale(); + $grade_scale = new \grade_scale(); $this->assertTrue(method_exists($grade_scale, 'fetch')); - $grade_scale = grade_scale::fetch(array('id'=>$this->scale[0]->id)); + $grade_scale = \grade_scale::fetch(array('id'=>$this->scale[0]->id)); $this->assertEquals($this->scale[0]->id, $grade_scale->id); $this->assertEquals($this->scale[0]->name, $grade_scale->name); } protected function sub_test_scale_load_items() { - $scale = new grade_scale($this->scale[0], false); + $scale = new \grade_scale($this->scale[0], false); $this->assertTrue(method_exists($scale, 'load_items')); $scale->load_items(); @@ -118,7 +120,7 @@ class core_grade_scale_testcase extends grade_base_testcase { } protected function sub_test_scale_compact_items() { - $scale = new grade_scale($this->scale[0], false); + $scale = new \grade_scale($this->scale[0], false); $this->assertTrue(method_exists($scale, 'compact_items')); $scale->load_items(); @@ -130,7 +132,7 @@ class core_grade_scale_testcase extends grade_base_testcase { } protected function sub_test_scale_one_item() { - $params = new stdClass(); + $params = new \stdClass(); $params->name = 'unittestscale1i'; $params->courseid = $this->course->id; $params->userid = $this->userid; @@ -138,7 +140,7 @@ class core_grade_scale_testcase extends grade_base_testcase { $params->description = 'This scale is used to like something.'; $params->timemodified = time(); - $scale = new grade_scale($params, false); + $scale = new \grade_scale($params, false); $scale->load_items(); $this->assertCount(1, $scale->scale_items); @@ -148,7 +150,7 @@ class core_grade_scale_testcase extends grade_base_testcase { $scale->insert(); // Manual grade item with 1 item scale. - $grade_item = new stdClass(); + $grade_item = new \stdClass(); $grade_item->courseid = $this->course->id; $grade_item->categoryid = $this->grade_categories[0]->id; $grade_item->itemname = 'manual grade_item scale_1'; @@ -161,7 +163,7 @@ class core_grade_scale_testcase extends grade_base_testcase { $grade_item->timecreated = time(); $grade_item->timemodified = time(); - $grade_item = new grade_item($grade_item); + $grade_item = new \grade_item($grade_item); $grade_item->insert(); $this->assertNotEmpty($grade_item->id); diff --git a/lib/phpunit/tests/advanced_test.php b/lib/phpunit/tests/advanced_test.php index 8a2e142bc3e..8ee2388c63f 100644 --- a/lib/phpunit/tests/advanced_test.php +++ b/lib/phpunit/tests/advanced_test.php @@ -14,27 +14,17 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * PHPUnit integration tests - * - * @package core - * @category phpunit - * @copyright 2012 Petr Skoda {@link http://skodak.org} - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ - -defined('MOODLE_INTERNAL') || die(); - +namespace core; /** * Test advanced_testcase extra features. * * @package core - * @category phpunit + * @category test * @copyright 2012 Petr Skoda {@link http://skodak.org} * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class core_phpunit_advanced_testcase extends advanced_testcase { +class advanced_test extends \advanced_testcase { public function test_debugging() { global $CFG; @@ -222,7 +212,7 @@ class core_phpunit_advanced_testcase extends advanced_testcase { $DB->set_field('user', 'confirmed', 0, array('id'=>2)); try { self::resetAllData(true); - } catch (Exception $e) { + } catch (\Exception $e) { $this->assertInstanceOf('PHPUnit\Framework\Error\Warning', $e); } $this->assertEquals(1, $DB->get_field('user', 'confirmed', array('id'=>2))); @@ -233,7 +223,7 @@ class core_phpunit_advanced_testcase extends advanced_testcase { $CFG->rolesactive = 0; try { self::resetAllData(true); - } catch (Exception $e) { + } catch (\Exception $e) { $this->assertInstanceOf('PHPUnit\Framework\Error\Warning', $e); $this->assertStringContainsString('xx', $e->getMessage()); $this->assertStringContainsString('admin', $e->getMessage()); @@ -271,11 +261,11 @@ class core_phpunit_advanced_testcase extends advanced_testcase { // COURSE change. $SITE->id = 10; - $COURSE = new stdClass(); + $COURSE = new \stdClass(); $COURSE->id = 7; try { self::resetAllData(true); - } catch (Exception $e) { + } catch (\Exception $e) { $this->assertInstanceOf('PHPUnit\Framework\Error\Warning', $e); $this->assertEquals(1, $SITE->id); $this->assertSame($SITE, $COURSE); @@ -286,7 +276,7 @@ class core_phpunit_advanced_testcase extends advanced_testcase { $this->setUser(2); try { self::resetAllData(true); - } catch (Exception $e) { + } catch (\Exception $e) { $this->assertInstanceOf('PHPUnit\Framework\Error\Warning', $e); $this->assertEquals(0, $USER->id); } @@ -303,7 +293,7 @@ class core_phpunit_advanced_testcase extends advanced_testcase { try { $DB->get_record('pokus', array()); $this->fail('Exception expected when accessing non existent table'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('dml_exception', $e); } $DB = $this->createMock(get_class($DB)); @@ -403,7 +393,7 @@ class core_phpunit_advanced_testcase extends advanced_testcase { $this->setCurrentTimeStart(); $this->assertTimeCurrent(time()+10); $this->fail('Failed assert expected'); - } catch (Exception $e) { + } catch (\Exception $e) { $this->assertInstanceOf('PHPUnit\Framework\ExpectationFailedException', $e); } @@ -411,7 +401,7 @@ class core_phpunit_advanced_testcase extends advanced_testcase { $this->setCurrentTimeStart(); $this->assertTimeCurrent(time()-10); $this->fail('Failed assert expected'); - } catch (Exception $e) { + } catch (\Exception $e) { $this->assertInstanceOf('PHPUnit\Framework\ExpectationFailedException', $e); } } @@ -425,7 +415,7 @@ class core_phpunit_advanced_testcase extends advanced_testcase { $processors1 = get_message_processors(); // Add a new message processor and get all processors again. - $processor = new stdClass(); + $processor = new \stdClass(); $processor->name = 'test_processor'; $processor->enabled = 1; $DB->insert_record('message_processors', $processor); @@ -558,7 +548,7 @@ class core_phpunit_advanced_testcase extends advanced_testcase { $this->assertEquals(1, $sink->count()); // Test if sink can be carried over to next test. - $this->assertTrue(phpunit_util::is_redirecting_messages()); + $this->assertTrue(\phpunit_util::is_redirecting_messages()); return $sink; } @@ -573,7 +563,7 @@ class core_phpunit_advanced_testcase extends advanced_testcase { $this->preventResetByRollback(); // Messaging is not compatible with transactions... $this->resetAfterTest(); - $this->assertTrue(phpunit_util::is_redirecting_messages()); + $this->assertTrue(\phpunit_util::is_redirecting_messages()); $this->assertEquals(1, $sink->count()); $message = new \core\message\message(); @@ -597,7 +587,7 @@ class core_phpunit_advanced_testcase extends advanced_testcase { * @depends test_message_redirection_noreset */ public function test_message_redirection_reset() { - $this->assertFalse(phpunit_util::is_redirecting_messages(), 'Test reset must stop message redirection.'); + $this->assertFalse(\phpunit_util::is_redirecting_messages(), 'Test reset must stop message redirection.'); } public function test_set_timezone() { @@ -625,19 +615,19 @@ class core_phpunit_advanced_testcase extends advanced_testcase { try { $this->setTimezone('Pacific/Auckland', ''); - } catch (Exception $e) { + } catch (\Exception $e) { $this->assertInstanceOf('PHPUnit\Framework\Error\Warning', $e); } try { $this->setTimezone('Pacific/Auckland', 'xxxx'); - } catch (Exception $e) { + } catch (\Exception $e) { $this->assertInstanceOf('PHPUnit\Framework\Error\Warning', $e); } try { $this->setTimezone('Pacific/Auckland', null); - } catch (Exception $e) { + } catch (\Exception $e) { $this->assertInstanceOf('PHPUnit\Framework\Error\Warning', $e); } @@ -662,7 +652,7 @@ class core_phpunit_advanced_testcase extends advanced_testcase { try { self::resetAllData(true); - } catch (Exception $e) { + } catch (\Exception $e) { $this->assertInstanceOf('PHPUnit\Framework\Error\Warning', $e); } @@ -697,14 +687,14 @@ class core_phpunit_advanced_testcase extends advanced_testcase { $fakeagent = 'New user agent set.'; // Sanity check: it should not be set when test begins. - self::assertFalse(core_useragent::get_user_agent_string(), 'It should not be set at first.'); + self::assertFalse(\core_useragent::get_user_agent_string(), 'It should not be set at first.'); // Set a fake useragent and check it was set properly. - core_useragent::instance(true, $fakeagent); - self::assertSame($fakeagent, core_useragent::get_user_agent_string(), 'It should be the forced agent.'); + \core_useragent::instance(true, $fakeagent); + self::assertSame($fakeagent, \core_useragent::get_user_agent_string(), 'It should be the forced agent.'); // Reset test data and ansure the useragent was cleaned. self::resetAllData(false); - self::assertFalse(core_useragent::get_user_agent_string(), 'It should not be set again, data was reset.'); + self::assertFalse(\core_useragent::get_user_agent_string(), 'It should not be set again, data was reset.'); } } diff --git a/lib/phpunit/tests/basic_test.php b/lib/phpunit/tests/basic_test.php index c009f7c23a6..190807b17c6 100644 --- a/lib/phpunit/tests/basic_test.php +++ b/lib/phpunit/tests/basic_test.php @@ -14,27 +14,17 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * PHPUnit integration tests - * - * @package core - * @category phpunit - * @copyright 2012 Petr Skoda {@link http://skodak.org} - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ - -defined('MOODLE_INTERNAL') || die(); - +namespace core; /** * Test basic_testcase extra features and PHPUnit Moodle integration. * * @package core - * @category phpunit + * @category test * @copyright 2012 Petr Skoda {@link http://skodak.org} * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class core_phpunit_basic_testcase extends basic_testcase { +class basic_test extends \basic_testcase { protected $testassertexecuted = false; protected function setUp(): void { @@ -75,14 +65,14 @@ class core_phpunit_basic_testcase extends basic_testcase { $this->assertEqualsCanonicalizing($a, $b); // Objects. - $a = new stdClass(); + $a = new \stdClass(); $a->x = 'x'; $a->y = 'y'; - $b = new stdClass(); // Switched order. + $b = new \stdClass(); // Switched order. $b->y = 'y'; $b->x = 'x'; $c = $a; - $d = new stdClass(); + $d = new \stdClass(); $d->x = 'x'; $d->y = 'y'; $d->z = 'z'; @@ -121,7 +111,7 @@ class core_phpunit_basic_testcase extends basic_testcase { $this->assertNotEmpty('0 '); $this->assertNotEmpty(true); $this->assertNotEmpty(array(null)); - $this->assertNotEmpty(new stdClass()); + $this->assertNotEmpty(new \stdClass()); } /** diff --git a/lib/phpunit/tests/util_test.php b/lib/phpunit/tests/util_test.php index e59d95b7a0c..4676e4177a3 100644 --- a/lib/phpunit/tests/util_test.php +++ b/lib/phpunit/tests/util_test.php @@ -14,33 +14,25 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * PHPUnit Util tests - * - * @package core - * @category phpunit - * @copyright 2015 Andrew Nicols - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ -defined('MOODLE_INTERNAL') || die(); +namespace core; /** * Test util extra features. * * @package core - * @category phpunit + * @category test * @copyright 2015 Andrew Nicols * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class core_phpunit_util_testcase extends advanced_testcase { +class util_test extends \advanced_testcase { /** * @dataProvider set_table_modified_by_sql_provider */ public function test_set_table_modified_by_sql($sql, $expectations) { - phpunit_util::reset_updated_table_list(); - phpunit_util::set_table_modified_by_sql($sql); + \phpunit_util::reset_updated_table_list(); + \phpunit_util::set_table_modified_by_sql($sql); foreach ($expectations as $table => $present) { - $this->assertEquals($present, !empty(phpunit_util::$tableupdated[$table])); + $this->assertEquals($present, !empty(\phpunit_util::$tableupdated[$table])); } } diff --git a/lib/tests/adminlib_test.php b/lib/tests/adminlib_test.php index a6dbc0f6a5c..cd60aced38c 100644 --- a/lib/tests/adminlib_test.php +++ b/lib/tests/adminlib_test.php @@ -14,14 +14,7 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Unit tests for parts of adminlib.php. - * - * @package core - * @subpackage admin - * @copyright 2020 Brendan Heywood - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ +namespace core; defined('MOODLE_INTERNAL') || die(); @@ -31,10 +24,11 @@ require_once($CFG->libdir.'/adminlib.php'); /** * Unit tests for parts of adminlib.php. * + * @package core * @copyright 2020 Brendan Heywood * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class core_adminlib_testcase extends advanced_testcase { +class adminlib_test extends \advanced_testcase { /** * Data provider of serialized string. diff --git a/lib/tests/admintree_test.php b/lib/tests/admintree_test.php index ec3d989362f..30110ace62e 100644 --- a/lib/tests/admintree_test.php +++ b/lib/tests/admintree_test.php @@ -14,15 +14,19 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Unit tests for those parts of adminlib.php that implement the admin tree - * functionality. - * - * @package core - * @category phpunit - * @copyright 2013 David Mudrak - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ +namespace core; + +use admin_category; +use admin_externalpage; +use admin_root; +use admin_settingpage; +use admin_setting_configdirectory; +use admin_setting_configduration; +use admin_setting_configexecutable; +use admin_setting_configfile; +use admin_setting_configmixedhostiplist; +use admin_setting_configpasswordunmask; +use admin_setting_configtext; defined('MOODLE_INTERNAL') || die(); @@ -31,8 +35,13 @@ require_once($CFG->libdir.'/adminlib.php'); /** * Provides the unit tests for admin tree functionality. + * + * @package core + * @category test + * @copyright 2013 David Mudrak + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class core_admintree_testcase extends advanced_testcase { +class admintree_test extends \advanced_testcase { /** * Adding nodes into the admin tree. @@ -97,13 +106,13 @@ class core_admintree_testcase extends advanced_testcase { public function test_add_nodes_before_invalid1() { $tree = new admin_root(true); - $this->expectException(coding_exception::class); + $this->expectException(\coding_exception::class); $tree->add('root', new admin_externalpage('foo', 'Foo', 'http://foo.bar'), array('moodle:site/config')); } public function test_add_nodes_before_invalid2() { $tree = new admin_root(true); - $this->expectException(coding_exception::class); + $this->expectException(\coding_exception::class); $tree->add('root', new admin_category('bar', 'Bar'), ''); } @@ -267,7 +276,7 @@ class core_admintree_testcase extends advanced_testcase { $original = $setting->get_setting(); $error = $setting->write_setting($data[$fullname]); if ($error !== '') { - $adminroot->errors[$fullname] = new stdClass(); + $adminroot->errors[$fullname] = new \stdClass(); $adminroot->errors[$fullname]->data = $data[$fullname]; $adminroot->errors[$fullname]->id = $setting->get_id(); $adminroot->errors[$fullname]->error = $error; @@ -430,7 +439,7 @@ class core_admintree_testcase extends advanced_testcase { global $DB; // Current user is a manager at site context, which won't have access to the 'debugging' section of the admin tree. $manageruser = $this->getDataGenerator()->create_user(); - $context = context_system::instance(); + $context = \context_system::instance(); $managerrole = $DB->get_record('role', array('shortname' => 'manager')); role_assign($managerrole->id, $manageruser->id, $context->id); $this->setUser($manageruser); diff --git a/lib/tests/ajaxlib_test.php b/lib/tests/ajaxlib_test.php index 009126be238..cea813f01e9 100644 --- a/lib/tests/ajaxlib_test.php +++ b/lib/tests/ajaxlib_test.php @@ -14,22 +14,19 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . +namespace core; + /** * Code quality unit tests that are fast enough to run each time. * * @package core - * @category phpunit + * @category test * @copyright 2013 Andrew Nicols * @license http://www.gnu.org/copyleft/gpl.html GNU Public License - */ - -defined('MOODLE_INTERNAL') || die(); - -/** * @covers ::ajax_capture_output * @covers ::ajax_check_captured_output */ -class core_ajaxlib_testcase extends advanced_testcase { +class ajaxlib_test extends \advanced_testcase { /** @var string Original error log */ protected $oldlog; diff --git a/lib/tests/analysers_test.php b/lib/tests/analysers_test.php index be60ee62918..1e5c3e813a8 100644 --- a/lib/tests/analysers_test.php +++ b/lib/tests/analysers_test.php @@ -14,14 +14,10 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Unit tests for core analysers. - * - * @package core - * @category test - * @copyright 2017 David Monllaó {@link http://www.davidmonllao.com} - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ +namespace core; + +use test_target_course_level_shortname; +use test_target_shortname; defined('MOODLE_INTERNAL') || die(); @@ -37,7 +33,7 @@ require_once(__DIR__ . '/../../lib/enrollib.php'); * @copyright 2017 David Monllaó {@link http://www.davidmonllao.com} * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class core_analytics_analysers_testcase extends advanced_testcase { +class analysers_test extends \advanced_testcase { /** * test_courses_analyser @@ -59,7 +55,7 @@ class core_analytics_analysers_testcase extends advanced_testcase { $this->assertInstanceOf('\context_course', $analyser->sample_access_context($course1->id)); // Just 1 sample per course. - $class = new ReflectionClass('\core\analytics\analyser\courses'); + $class = new \ReflectionClass('\core\analytics\analyser\courses'); $method = $class->getMethod('get_all_samples'); $method->setAccessible(true); list($sampleids, $samplesdata) = $method->invoke($analyser, $analysable); @@ -109,7 +105,7 @@ class core_analytics_analysers_testcase extends advanced_testcase { $this->assertInstanceOf('\context_system', $analyser->sample_access_context($course1->id)); $this->assertInstanceOf('\context_system', $analyser->sample_access_context($course3->id)); - $class = new ReflectionClass('\core\analytics\analyser\site_courses'); + $class = new \ReflectionClass('\core\analytics\analyser\site_courses'); $method = $class->getMethod('get_all_samples'); $method->setAccessible(true); list($sampleids, $samplesdata) = $method->invoke($analyser, $analysable); @@ -161,7 +157,7 @@ class core_analytics_analysers_testcase extends advanced_testcase { $this->assertInstanceOf('\core_analytics\course', $analyser->get_sample_analysable($ue1->id)); $this->assertInstanceOf('\context_course', $analyser->sample_access_context($ue1->id)); - $class = new ReflectionClass('\core\analytics\analyser\student_enrolments'); + $class = new \ReflectionClass('\core\analytics\analyser\student_enrolments'); $method = $class->getMethod('get_all_samples'); $method->setAccessible(true); list($sampleids, $samplesdata) = $method->invoke($analyser, $analysable); diff --git a/lib/tests/authlib_test.php b/lib/tests/authlib_test.php index a743a4dd649..a424243298f 100644 --- a/lib/tests/authlib_test.php +++ b/lib/tests/authlib_test.php @@ -14,22 +14,18 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . + +namespace core; + /** * Authentication related tests. * - * @package core_auth - * @category phpunit + * @package core + * @category test * @copyright 2012 Petr Skoda {@link http://skodak.org} * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ - -defined('MOODLE_INTERNAL') || die(); - - -/** - * Functional test for authentication related APIs. - */ -class core_authlib_testcase extends advanced_testcase { +class authlib_test extends \advanced_testcase { public function test_lockout() { global $CFG; require_once("$CFG->libdir/authlib.php"); @@ -347,7 +343,7 @@ class core_authlib_testcase extends advanced_testcase { $result = authenticate_user_login('username4', 'a', false, $reason); $events = $sink->get_events(); $sink->close(); - $notifications = \core\notification::fetch(); + $notifications = notification::fetch(); $this->assertInstanceOf('stdClass', $result); $this->assertEquals(AUTH_LOGIN_OK, $reason); $this->assertEquals(get_user_preferences('auth_forcepasswordchange', false, $result), false); @@ -370,7 +366,7 @@ class core_authlib_testcase extends advanced_testcase { $this->assertEquals(count($events), 1); $this->assertEquals(reset($events)->eventname, '\core\event\user_password_policy_failed'); // Check notification fired. - $notifications = \core\notification::fetch(); + $notifications = notification::fetch(); $this->assertEquals(count($notifications), 1); // Now the same tests with a user that passes the password policy. @@ -381,7 +377,7 @@ class core_authlib_testcase extends advanced_testcase { $result = authenticate_user_login('username5', 'ThisPassword1sSecure!', false, $reason); $events = $sink->get_events(); $sink->close(); - $notifications = \core\notification::fetch(); + $notifications = notification::fetch(); $this->assertInstanceOf('stdClass', $result); $this->assertEquals(AUTH_LOGIN_OK, $reason); $this->assertEquals(get_user_preferences('auth_forcepasswordchange', false, $result), false); @@ -396,7 +392,7 @@ class core_authlib_testcase extends advanced_testcase { $result = authenticate_user_login('username5', 'ThisPassword1sSecure!', false, $reason); $events = $sink->get_events(); $sink->close(); - $notifications = \core\notification::fetch(); + $notifications = notification::fetch(); $this->assertInstanceOf('stdClass', $result); $this->assertEquals(AUTH_LOGIN_OK, $reason); $this->assertEquals(get_user_preferences('auth_forcepasswordchange', false, $result), false); @@ -410,7 +406,7 @@ class core_authlib_testcase extends advanced_testcase { try { $event = \core\event\user_loggedin::create(array('objectid' => 1)); $this->fail('\core\event\user_loggedin requires other[\'username\']'); - } catch(Exception $e) { + } catch(\Exception $e) { $this->assertInstanceOf('coding_exception', $e); } } @@ -434,8 +430,8 @@ class core_authlib_testcase extends advanced_testcase { // inject our own validation method here and revert it back once we are done. This custom validator method is // identical to the default 'php' validator with the only difference: it has the FILTER_FLAG_EMAIL_UNICODE set // so that it allows to use non-ASCII characters in email addresses. - $defaultvalidator = moodle_phpmailer::$validator; - moodle_phpmailer::$validator = function($address) { + $defaultvalidator = \moodle_phpmailer::$validator; + \moodle_phpmailer::$validator = function($address) { return (bool) filter_var($address, FILTER_VALIDATE_EMAIL, FILTER_FLAG_EMAIL_UNICODE); }; @@ -472,6 +468,6 @@ class core_authlib_testcase extends advanced_testcase { $this->assertArrayNotHasKey('email', $errors); // Restore the original email address validator. - moodle_phpmailer::$validator = $defaultvalidator; + \moodle_phpmailer::$validator = $defaultvalidator; } } diff --git a/lib/tests/check_test.php b/lib/tests/check_test.php index 3fa527dade2..ab426cbd2df 100644 --- a/lib/tests/check_test.php +++ b/lib/tests/check_test.php @@ -14,18 +14,10 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Check API unit tests - * - * @package core - * @category check - * @copyright 2020 Brendan Heywood - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ - -defined('MOODLE_INTERNAL') || die(); +namespace core; use core\check\result; +use core\check\security\passwordpolicy; /** * Example unit tests for check API @@ -35,7 +27,7 @@ use core\check\result; * @copyright 2020 Brendan Heywood * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class check_testcase extends advanced_testcase { +class check_test extends \advanced_testcase { /** * A simple example showing how a check and result object works @@ -48,7 +40,7 @@ class check_testcase extends advanced_testcase { global $CFG; $prior = $CFG->passwordpolicy; - $check = new core\check\security\passwordpolicy(); + $check = new passwordpolicy(); $CFG->passwordpolicy = false; $result = $check->get_result(); diff --git a/lib/tests/collator_test.php b/lib/tests/collator_test.php index 94604fec862..4fa5c5be1dd 100644 --- a/lib/tests/collator_test.php +++ b/lib/tests/collator_test.php @@ -15,25 +15,29 @@ // along with Moodle. If not, see . /** - * Collator unit tests. + * Unit tests for our utf-8 aware collator which is used for sorting. * * @package core - * @category phpunit + * @category test * @copyright 2011 Sam Hemelryk * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ +namespace core; + +use core_collator; + defined('MOODLE_INTERNAL') || die(); /** * Unit tests for our utf-8 aware collator which is used for sorting. * * @package core - * @category phpunit + * @category test * @copyright 2011 Sam Hemelryk * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class core_collator_testcase extends advanced_testcase { +class collator_test extends \advanced_testcase { /** * @var string The initial lang, stored because we change it during testing @@ -268,7 +272,7 @@ class core_collator_testcase extends advanced_testcase { $this->assertSame(array('cc', 'aa', 'ab'), array_values($arr)); $this->assertTrue($result); - $obj = new stdClass(); + $obj = new \stdClass(); $arr = array('1.1.1'=>array(), '1.2'=>$obj, '1.20.2'=>null); $result = core_collator::ksort($arr, core_collator::SORT_NATURAL); $this->assertSame(array('1.1.1', '1.2', '1.20.2'), array_keys($arr)); @@ -294,7 +298,7 @@ class core_collator_testcase extends advanced_testcase { * @copyright 2011 Sam Hemelryk * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class string_test_class extends stdClass { +class string_test_class extends \stdClass { /** * @var string A public property */ diff --git a/lib/tests/componentlib_test.php b/lib/tests/componentlib_test.php index 53a401c4b5b..7e6ac394b86 100644 --- a/lib/tests/componentlib_test.php +++ b/lib/tests/componentlib_test.php @@ -18,17 +18,31 @@ * Unit tests for /lib/componentlib.class.php. * * @package core - * @category phpunit + * @category test * @copyright 2011 Tomasz Muras * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ +namespace core; + +use component_installer; +use lang_installer; +use lang_installer_exception; + defined('MOODLE_INTERNAL') || die(); global $CFG; require_once($CFG->libdir.'/componentlib.class.php'); -class core_componentlib_testcase extends advanced_testcase { +/** + * Unit tests for /lib/componentlib.class.php. + * + * @package core + * @category test + * @copyright 2011 Tomasz Muras + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +class componentlib_test extends \advanced_testcase { public function test_component_installer() { global $CFG; @@ -107,7 +121,7 @@ class core_componentlib_testcase extends advanced_testcase { try { $installer->run(); $this->fail('lang_installer_exception exception expected'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertInstanceOf('lang_installer_exception', $e); } } diff --git a/lib/tests/configonlylib_test.php b/lib/tests/configonlylib_test.php index 2dc10cca40c..1032e440241 100644 --- a/lib/tests/configonlylib_test.php +++ b/lib/tests/configonlylib_test.php @@ -14,14 +14,7 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Unit tests for config only library functions- - * - * @package core - * @category phpunit - * @copyright 2012 Petr Skoda {@link http://skodak.org} - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ +namespace core; defined('MOODLE_INTERNAL') || die(); @@ -33,11 +26,11 @@ require_once(__DIR__ . '/../configonlylib.php'); * Unit tests for config only library functions. * * @package core - * @category phpunit + * @category test * @copyright 2012 Petr Skoda {@link http://skodak.org} * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class core_configonlylib_testcase extends advanced_testcase { +class configonlylib_test extends \advanced_testcase { /** * Test cleaning of invalid utf-8 entities. diff --git a/lib/tests/core_media_player_native_test.php b/lib/tests/core_media_player_native_test.php index dc406410388..22a8bcf3d75 100644 --- a/lib/tests/core_media_player_native_test.php +++ b/lib/tests/core_media_player_native_test.php @@ -14,14 +14,9 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Test for core_media_player_native. - * - * @package core - * @category test - * @copyright 2019 Ruslan Kabalin - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ +namespace core; + +use media_test_native_plugin; defined('MOODLE_INTERNAL') || die(); require_once(__DIR__ . '/fixtures/testable_core_media_player_native.php'); @@ -35,7 +30,7 @@ require_once(__DIR__ . '/fixtures/testable_core_media_player_native.php'); * @copyright 2019 Ruslan Kabalin * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class core_media_player_native_testcase extends advanced_testcase { +class core_media_player_native_test extends \advanced_testcase { /** * Pre-test setup. @@ -70,7 +65,7 @@ class core_media_player_native_testcase extends advanced_testcase { // Create list of URLs for each extension. $urls = array_map(function($ext){ - return new moodle_url('http://example.org/video.' . $ext); + return new \moodle_url('http://example.org/video.' . $ext); }, $nativeextensions); // Make sure that the list of supported URLs is not filtering permitted extensions. @@ -83,8 +78,8 @@ class core_media_player_native_testcase extends advanced_testcase { */ public function test_get_attribute() { $urls = [ - new moodle_url('http://example.org/some_filename.mp4'), - new moodle_url('http://example.org/some_filename_hires.mp4'), + new \moodle_url('http://example.org/some_filename.mp4'), + new \moodle_url('http://example.org/some_filename_hires.mp4'), ]; $player = new media_test_native_plugin(); @@ -101,8 +96,8 @@ class core_media_player_native_testcase extends advanced_testcase { */ public function test_add_remove_attributes() { $urls = [ - new moodle_url('http://example.org/some_filename.mp4'), - new moodle_url('http://example.org/some_filename_hires.mp4'), + new \moodle_url('http://example.org/some_filename.mp4'), + new \moodle_url('http://example.org/some_filename_hires.mp4'), ]; $player = new media_test_native_plugin(); @@ -140,8 +135,8 @@ class core_media_player_native_testcase extends advanced_testcase { */ public function test_replace_sources() { $urls = [ - new moodle_url('http://example.org/some_filename.mp4'), - new moodle_url('http://example.org/some_filename_hires.mp4'), + new \moodle_url('http://example.org/some_filename.mp4'), + new \moodle_url('http://example.org/some_filename_hires.mp4'), ]; $player = new media_test_native_plugin(); diff --git a/lib/tests/core_renderer_template_exploit_test.php b/lib/tests/core_renderer_template_exploit_test.php index dc2a10762ec..f9f5d51b81a 100644 --- a/lib/tests/core_renderer_template_exploit_test.php +++ b/lib/tests/core_renderer_template_exploit_test.php @@ -14,19 +14,17 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . +namespace core; + /** * Unit tests for core renderer render template exploit. * + * @package core + * @category test * @copyright 2019 Ryan Wyllie * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ - -defined('MOODLE_INTERNAL') || die(); - -/** - * Unit tests for core renderer render template exploit. - */ -class core_renderer_template_exploit_testcase extends advanced_testcase { +class core_renderer_template_exploit_test extends \advanced_testcase { /** * Test cases to confirm that blacklisted helpers are stripped from the source * text by the helper before being passed to other another helper. This prevents diff --git a/lib/tests/cronlib_test.php b/lib/tests/cronlib_test.php index 4c4deef0573..bd77d3ba71b 100644 --- a/lib/tests/cronlib_test.php +++ b/lib/tests/cronlib_test.php @@ -14,6 +14,13 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . +namespace core; + +defined('MOODLE_INTERNAL') || die(); + +global $CFG; +require_once($CFG->libdir.'/cronlib.php'); + /** * Unit tests for the cron. * @@ -22,13 +29,7 @@ * @copyright 2013 Tim Gusak * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ - -defined('MOODLE_INTERNAL') || die(); - -global $CFG; -require_once($CFG->libdir.'/cronlib.php'); - -class cronlib_testcase extends basic_testcase { +class cronlib_test extends \basic_testcase { /** * Data provider for cron_delete_from_temp. @@ -130,7 +131,7 @@ class cronlib_testcase extends basic_testcase { * @param bool $keep Should the node exist after the delete function has run */ private function generate_test_path($path, $isdir = false, $time = 0, $keep = false) { - $node = new stdClass(); + $node = new \stdClass(); $node->path = $path; $node->isdir = $isdir; $node->time = $time; @@ -163,8 +164,8 @@ class cronlib_testcase extends basic_testcase { $task = new \core\task\file_temp_cleanup_task(); $task->execute(); - $dir = new RecursiveDirectoryIterator($tmpdir); - $iter = new RecursiveIteratorIterator($dir, RecursiveIteratorIterator::CHILD_FIRST); + $dir = new \RecursiveDirectoryIterator($tmpdir); + $iter = new \RecursiveIteratorIterator($dir, \RecursiveIteratorIterator::CHILD_FIRST); $actual = array(); for ($iter->rewind(); $iter->valid(); $iter->next()) { diff --git a/lib/tests/csslib_test.php b/lib/tests/csslib_test.php index b121e266abd..4cdb18d63b3 100644 --- a/lib/tests/csslib_test.php +++ b/lib/tests/csslib_test.php @@ -14,30 +14,22 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * This file contains the unittests for the css optimiser in csslib.php - * - * @package core_css - * @category phpunit - * @copyright 2012 Sam Hemelryk - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ +namespace core; defined('MOODLE_INTERNAL') || die(); global $CFG; require_once($CFG->libdir . '/csslib.php'); - /** * CSS optimiser test class. * - * @package core_css - * @category phpunit + * @package core + * @category test * @copyright 2012 Sam Hemelryk * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class core_csslib_testcase extends advanced_testcase { +class csslib_test extends \advanced_testcase { /** * Test that css_is_colour function throws an exception. diff --git a/lib/tests/csvclass_test.php b/lib/tests/csvclass_test.php index 7d7523b8c6d..1bf9e49c3df 100644 --- a/lib/tests/csvclass_test.php +++ b/lib/tests/csvclass_test.php @@ -14,21 +14,25 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Tests csv import and export functions. - * - * @package core - * @category phpunit - * @copyright 2012 Adrian Greeve - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ +namespace core; + +use csv_export_writer; +use csv_import_reader; defined('MOODLE_INTERNAL') || die(); global $CFG; require_once($CFG->dirroot . '/lib/csvlib.class.php'); -class core_csvclass_testcase extends advanced_testcase { +/** + * Tests csv import and export functions. + * + * @package core + * @category test + * @copyright 2012 Adrian Greeve + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +class csvclass_test extends \advanced_testcase { protected $testdata = array(); protected $teststring = ''; diff --git a/lib/tests/curl_security_helper_test.php b/lib/tests/curl_security_helper_test.php index ed205b5b544..3d5343fb31f 100644 --- a/lib/tests/curl_security_helper_test.php +++ b/lib/tests/curl_security_helper_test.php @@ -14,15 +14,7 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Unit tests for /lib/classes/curl/curl_security_helper.php. - * - * @package core - * @copyright 2016 Jake Dallimore - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ - -defined('MOODLE_INTERNAL') || die(); +namespace core; /** * cURL security test suite. @@ -34,7 +26,7 @@ defined('MOODLE_INTERNAL') || die(); * @copyright 2016 Jake Dallimore * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class core_curl_security_helper_testcase extends advanced_testcase { +class curl_security_helper_test extends \advanced_testcase { /** * Test for \core\files\curl_security_helper::url_is_blocked(). * @@ -206,7 +198,7 @@ class core_curl_security_helper_testcase extends advanced_testcase { $this->resetAfterTest(true); $helper = new \core\files\curl_security_helper(); set_config('curlsecurityblockedhosts', $blockedhosts); - $this->assertEquals($expected, phpunit_util::call_internal_method($helper, 'host_is_blocked', [$host], + $this->assertEquals($expected, \phpunit_util::call_internal_method($helper, 'host_is_blocked', [$host], '\core\files\curl_security_helper')); } @@ -260,7 +252,7 @@ class core_curl_security_helper_testcase extends advanced_testcase { $this->resetAfterTest(true); $helper = new \core\files\curl_security_helper(); set_config('curlsecurityallowedport', $allowedports); - $this->assertEquals($expected, phpunit_util::call_internal_method($helper, 'port_is_blocked', [$port], + $this->assertEquals($expected, \phpunit_util::call_internal_method($helper, 'port_is_blocked', [$port], '\core\files\curl_security_helper')); } diff --git a/lib/tests/customcontext_test.php b/lib/tests/customcontext_test.php index 8a3077b3098..d6a68e3e10e 100644 --- a/lib/tests/customcontext_test.php +++ b/lib/tests/customcontext_test.php @@ -18,14 +18,68 @@ * Code quality unit tests that are fast enough to run each time. * * @package core - * @category phpunit + * @category test * @copyright (C) 2013 onwards Remote Learner.net Inc (http://www.remote-learner.net) * @author Brent Boghosian (brent.boghosian@remote-learner.net) * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ +namespace core; + +use context; +use context_helper; + defined('MOODLE_INTERNAL') || die(); + +/** + * Code quality unit tests that are fast enough to run each time. + * + * @package core + * @category test + * @copyright (C) 2013 onwards Remote Learner.net Inc (http://www.remote-learner.net) + * @author Brent Boghosian (brent.boghosian@remote-learner.net) + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +class customcontext_test extends \advanced_testcase { + + /** + * Perform setup before every test. This tells Moodle's phpunit to reset the database after every test. + */ + protected function setUp(): void { + parent::setUp(); + $this->resetAfterTest(true); + } + + /** + * Test case for custom context classes + */ + public function test_customcontexts() { + global $CFG; + static $customcontexts = array( + 11 => 'context_bogus1', + 12 => 'context_bogus2', + 13 => 'context_bogus3' + ); + + // save any existing custom contexts + $existingcustomcontexts = get_config(null, 'custom_context_classes'); + + set_config('custom_context_classes', serialize($customcontexts)); + initialise_cfg(); + context_helper::reset_levels(); + $alllevels = context_helper::get_all_levels(); + $this->assertEquals($alllevels[11], 'context_bogus1'); + $this->assertEquals($alllevels[12], 'context_bogus2'); + $this->assertEquals($alllevels[13], 'context_bogus3'); + + // clean-up & restore any custom contexts + set_config('custom_context_classes', ($existingcustomcontexts === false) ? null : $existingcustomcontexts); + initialise_cfg(); + context_helper::reset_levels(); + } +} + /** * Bogus custom context class for testing */ @@ -97,42 +151,3 @@ class context_bogus3 extends context { return array(); } } - -class customcontext_testcase extends advanced_testcase { - - /** - * Perform setup before every test. This tells Moodle's phpunit to reset the database after every test. - */ - protected function setUp(): void { - parent::setUp(); - $this->resetAfterTest(true); - } - - /** - * Test case for custom context classes - */ - public function test_customcontexts() { - global $CFG; - static $customcontexts = array( - 11 => 'context_bogus1', - 12 => 'context_bogus2', - 13 => 'context_bogus3' - ); - - // save any existing custom contexts - $existingcustomcontexts = get_config(null, 'custom_context_classes'); - - set_config('custom_context_classes', serialize($customcontexts)); - initialise_cfg(); - context_helper::reset_levels(); - $alllevels = context_helper::get_all_levels(); - $this->assertEquals($alllevels[11], 'context_bogus1'); - $this->assertEquals($alllevels[12], 'context_bogus2'); - $this->assertEquals($alllevels[13], 'context_bogus3'); - - // clean-up & restore any custom contexts - set_config('custom_context_classes', ($existingcustomcontexts === false) ? null : $existingcustomcontexts); - initialise_cfg(); - context_helper::reset_levels(); - } -} diff --git a/lib/tests/datalib_update_with_unique_index_test.php b/lib/tests/datalib_update_with_unique_index_test.php index 039783585c9..8cb864f66a9 100644 --- a/lib/tests/datalib_update_with_unique_index_test.php +++ b/lib/tests/datalib_update_with_unique_index_test.php @@ -14,6 +14,8 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . +namespace core; + /** * Tests for {@link decompose_update_into_safe_changes()} and * {@link update_field_with_unique_index()}. @@ -22,18 +24,7 @@ * @copyright 2014 The Open University * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ - -defined('MOODLE_INTERNAL') || die(); - - -/** - * Tests for {@link decompose_update_into_safe_changes()} and - * {@link update_field_with_unique_index()}. - * - * @copyright 2014 The Open University - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ -class datalib_update_with_unique_index_testcase extends advanced_testcase { +class datalib_update_with_unique_index_test extends \advanced_testcase { public function test_decompose_update_into_safe_changes_identity() { $this->assertEquals(array(), decompose_update_into_safe_changes( @@ -72,7 +63,7 @@ class datalib_update_with_unique_index_testcase extends advanced_testcase { try { decompose_update_into_safe_changes(array(1 => 1), 1); $this->fail('Expected exception was not thrown'); - } catch (coding_exception $e) { + } catch (\coding_exception $e) { $this->assertEquals('Supposedly unused value 1 is actually used!', $e->a); } } @@ -90,7 +81,7 @@ class datalib_update_with_unique_index_testcase extends advanced_testcase { $dbman = $DB->get_manager(); $this->resetAfterTest(); - $table = new xmldb_table('test_table'); + $table = new \xmldb_table('test_table'); $table->setComment("This is a test'n drop table. You can drop it safely"); $tablename = $table->getName(); diff --git a/lib/tests/date_legacy_test.php b/lib/tests/date_legacy_test.php index ff5c2a4b40c..542a02bd8b8 100644 --- a/lib/tests/date_legacy_test.php +++ b/lib/tests/date_legacy_test.php @@ -14,16 +14,7 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Tests legacy Moodle date/time functions. - * - * @package core - * @copyright 2015 Totara Learning Solutions Ltd {@link http://www.totaralms.com/} - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - * @author Petr Skoda - */ - -defined('MOODLE_INTERNAL') || die(); +namespace core; /** * Tests legacy Moodle date/time functions. @@ -33,7 +24,7 @@ defined('MOODLE_INTERNAL') || die(); * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @author Petr Skoda */ -class core_date_legacy_testcase extends advanced_testcase { +class date_legacy_test extends \advanced_testcase { public function test_settings() { global $CFG; $this->resetAfterTest(); @@ -156,7 +147,7 @@ class core_date_legacy_testcase extends advanced_testcase { foreach ($years as $year) { foreach ($dates as $date) { $result = make_timestamp($year, $date[0], $date[1], $date[2], $date[3], $date[4], $tz, true); - $expected = new DateTime('now', new DateTimeZone(($tz == 99 ? 'Pacific/Auckland' : $tz))); + $expected = new \DateTime('now', new \DateTimeZone(($tz == 99 ? 'Pacific/Auckland' : $tz))); $expected->setDate($year, $date[0], $date[1]); $expected->setTime($date[2], $date[3], $date[4]); $this->assertSame($expected->getTimestamp(), $result, @@ -170,7 +161,7 @@ class core_date_legacy_testcase extends advanced_testcase { foreach ($years as $year) { foreach ($dates as $date) { $result = make_timestamp($year, $date[0], $date[1], $date[2], $date[3], $date[4], $tz, true); - $expected = new DateTime('now', new DateTimeZone(($tz == 99 ? 'Pacific/Auckland' : $tz))); + $expected = new \DateTime('now', new \DateTimeZone(($tz == 99 ? 'Pacific/Auckland' : $tz))); $expected->setDate($year, $date[0], $date[1]); $expected->setTime($date[2], $date[3], $date[4]); $this->assertSame($expected->getTimestamp(), $result, @@ -200,7 +191,7 @@ class core_date_legacy_testcase extends advanced_testcase { foreach ($timezones as $tz) { foreach ($years as $year) { foreach ($dates as $date) { - $expected = new DateTime('now', new DateTimeZone(($tz == 99 ? 'Pacific/Auckland' : $tz))); + $expected = new \DateTime('now', new \DateTimeZone(($tz == 99 ? 'Pacific/Auckland' : $tz))); $expected->setDate($year, $date[0], $date[1]); $expected->setTime($date[2], $date[3], $date[4]); $result = usergetdate($expected->getTimestamp(), $tz); @@ -227,7 +218,7 @@ class core_date_legacy_testcase extends advanced_testcase { foreach ($timezones as $tz) { foreach ($years as $year) { foreach ($dates as $date) { - $expected = new DateTime('now', new DateTimeZone(($tz == 99 ? 'Pacific/Auckland' : $tz))); + $expected = new \DateTime('now', new \DateTimeZone(($tz == 99 ? 'Pacific/Auckland' : $tz))); $expected->setDate($year, $date[0], $date[1]); $expected->setTime($date[2], $date[3], $date[4]); $result = usergetdate($expected->getTimestamp(), $tz); @@ -276,13 +267,13 @@ class core_date_legacy_testcase extends advanced_testcase { $this->setTimezone('Pacific/Auckland', 'Pacific/Auckland'); foreach ($years as $year) { foreach ($dates as $date) { - $expected = new DateTime('now', new DateTimeZone('UTC')); + $expected = new \DateTime('now', new \DateTimeZone('UTC')); $expected->setDate($year, $date[0], $date[1]); $expected->setTime($date[2], $date[3], $date[4]); foreach ($users as $user) { $this->setUser($user); - $expected->setTimezone(new DateTimeZone(($user->timezone == 99 ? 'Pacific/Auckland' : $user->timezone))); + $expected->setTimezone(new \DateTimeZone(($user->timezone == 99 ? 'Pacific/Auckland' : $user->timezone))); $result = userdate($expected->getTimestamp(), '', 99, false, false); date_default_timezone_set($expected->getTimezone()->getName()); $ex = strftime($format, $expected->getTimestamp()); diff --git a/lib/tests/editorlib_test.php b/lib/tests/editorlib_test.php index 989b5c11775..2bb0a5725fc 100644 --- a/lib/tests/editorlib_test.php +++ b/lib/tests/editorlib_test.php @@ -14,20 +14,17 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . +namespace core; + /** * Tests editors subsystem. * - * @package core_editors - * @subpackage phpunit + * @package core * @copyright 2013 onwards Martin Dougiamas (http://dougiamas.com) * @author Damyon Wiese * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ - -defined('MOODLE_INTERNAL') || die(); - - -class core_editorslib_testcase extends advanced_testcase { +class editorlib_test extends \advanced_testcase { /** * Tests the installation of event handlers from file diff --git a/lib/tests/environment_test.php b/lib/tests/environment_test.php index f422cbe193e..1d9295a1aab 100644 --- a/lib/tests/environment_test.php +++ b/lib/tests/environment_test.php @@ -14,6 +14,10 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . +namespace core; + +use environment_results; + /** * Moodle environment test. * @@ -22,14 +26,7 @@ * @copyright 2013 Petr Skoda {@link http://skodak.org} * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ - -defined('MOODLE_INTERNAL') || die(); - - -/** - * Do standard environment.xml tests. - */ -class core_environment_testcase extends advanced_testcase { +class environment_test extends \advanced_testcase { /** * Test the environment check status. diff --git a/lib/tests/event_context_locked_test.php b/lib/tests/event/context_locked_test.php similarity index 85% rename from lib/tests/event_context_locked_test.php rename to lib/tests/event/context_locked_test.php index 2a7a43532c8..c9ebc235ef0 100644 --- a/lib/tests/event_context_locked_test.php +++ b/lib/tests/event/context_locked_test.php @@ -14,20 +14,7 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Unit tests for the context locking events. - * - * @package core - * @category test - * @copyright 2019 University of Nottingham - * @author Neill Magill - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ - -use core\event\context_locked; -use core\event\context_unlocked; - -defined('MOODLE_INTERNAL') || die(); +namespace core\event; /** * Unit tests for the context_locked and context_unlocked events. @@ -38,7 +25,7 @@ defined('MOODLE_INTERNAL') || die(); * @author Neill Magill * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class core_event_context_locked_testcase extends \advanced_testcase { +class context_locked_test extends \advanced_testcase { /** * Locks an unlocked context and checks that a core\event\context_locked event is created. * @@ -55,7 +42,7 @@ class core_event_context_locked_testcase extends \advanced_testcase { $locksink->close(); self::assertCount(1, $lockevents); - self::assertContainsOnlyInstancesOf('core\event\context_locked', $lockevents); + self::assertContainsOnlyInstancesOf(context_locked::class, $lockevents); self::assertEquals($context->id, $lockevents[0]->objectid); $this->assertSame('context', $lockevents[0]->objecttable); $this->assertEquals($context, $lockevents[0]->get_context()); @@ -101,7 +88,7 @@ class core_event_context_locked_testcase extends \advanced_testcase { $unlocksink->close(); self::assertCount(1, $unlockevents); - self::assertContainsOnlyInstancesOf('core\event\context_unlocked', $unlockevents); + self::assertContainsOnlyInstancesOf(context_unlocked::class, $unlockevents); self::assertEquals($context->id, $unlockevents[0]->objectid); $this->assertSame('context', $unlockevents[0]->objecttable); $this->assertEquals($context, $unlockevents[0]->get_context()); diff --git a/lib/tests/event_deprecated_test.php b/lib/tests/event/deprecated_test.php similarity index 77% rename from lib/tests/event_deprecated_test.php rename to lib/tests/event/deprecated_test.php index aa20e91d118..57aa7a8af89 100644 --- a/lib/tests/event_deprecated_test.php +++ b/lib/tests/event/deprecated_test.php @@ -14,23 +14,17 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . +namespace core\event; + /** - * Tests for deprecated events. Please add tests for deprecated events in this file. + * Tests for deprecated events. * * @package core - * @category phpunit + * @category test * @copyright 2013 onwards Ankit Agarwal * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ - -defined('MOODLE_INTERNAL') || die(); - -/** - * Class core_event_instances_list_viewed_testcase - * - * Tests for deprecated events. - */ -class core_event_deprecated_testcase extends advanced_testcase { +class deprecated_test extends \advanced_testcase { /** * Test event properties and methods. @@ -38,8 +32,7 @@ class core_event_deprecated_testcase extends advanced_testcase { public function test_deprecated_course_module_instances_list_viewed_events() { // Make sure the abstract class course_module_instances_list_viewed generates a debugging notice. - require_once(__DIR__.'/fixtures/event_mod_badfixtures.php'); + require_once(__DIR__ . '/../fixtures/event_mod_badfixtures.php'); $this->assertDebuggingCalled(null, DEBUG_DEVELOPER); - } } diff --git a/lib/tests/event_grade_deleted_test.php b/lib/tests/event/grade_deleted_test.php similarity index 80% rename from lib/tests/event_grade_deleted_test.php rename to lib/tests/event/grade_deleted_test.php index 3f5328bc150..b23d832b5f7 100644 --- a/lib/tests/event_grade_deleted_test.php +++ b/lib/tests/event/grade_deleted_test.php @@ -14,16 +14,7 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Tests the \core\event\grade_deleted event. - * - * @package core - * @category test - * @copyright 2014 Mark Nelson - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ - -defined('MOODLE_INTERNAL') || die(); +namespace core\event; /** * Class core_event_grade_deleted_testcase @@ -35,7 +26,7 @@ defined('MOODLE_INTERNAL') || die(); * @copyright 2014 Mark Nelson * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class core_event_grade_deleted_testcase extends advanced_testcase { +class grade_deleted_test extends \advanced_testcase { /** * Tests the event details. @@ -57,12 +48,12 @@ class core_event_grade_deleted_testcase extends advanced_testcase { grade_update('mod/quiz', $course->id, 'mod', 'quiz', $quiz->id, 0, $grade); // Get the grade item and override it. - $gradeitem = grade_item::fetch(array('itemtype' => 'mod', 'itemmodule' => 'quiz', 'iteminstance' => $quiz->id, + $gradeitem = \grade_item::fetch(array('itemtype' => 'mod', 'itemmodule' => 'quiz', 'iteminstance' => $quiz->id, 'courseid' => $course->id)); $gradeitem->update_final_grade($user->id, 10, 'gradebook'); // Get the grade_grade object. - $gradegrade = new grade_grade(array('userid' => $user->id, 'itemid' => $gradeitem->id), true); + $gradegrade = new \grade_grade(array('userid' => $user->id, 'itemid' => $gradeitem->id), true); $gradegrade->grade_item = $gradeitem; // Trigger the event. @@ -76,7 +67,7 @@ class core_event_grade_deleted_testcase extends advanced_testcase { $grade = $event->get_grade(); $this->assertInstanceOf('grade_grade', $grade); $this->assertInstanceOf('\core\event\grade_deleted', $event); - $this->assertEquals(context_course::instance($course->id), $event->get_context()); + $this->assertEquals(\context_course::instance($course->id), $event->get_context()); $this->assertSame($event->objecttable, 'grade_grades'); $this->assertEquals($event->objectid, $gradegrade->id); $this->assertEquals($event->other['itemid'], $gradeitem->id); diff --git a/lib/tests/event_profile_field_test.php b/lib/tests/event/profile_field_test.php similarity index 97% rename from lib/tests/event_profile_field_test.php rename to lib/tests/event/profile_field_test.php index d2b5b42b6c8..4af04703791 100644 --- a/lib/tests/event_profile_field_test.php +++ b/lib/tests/event/profile_field_test.php @@ -14,14 +14,9 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Tests the events related to the user profile fields and categories. - * - * @package core - * @category test - * @copyright 2017 Mark Nelson - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ +namespace core\event; + +use profile_define_base; defined('MOODLE_INTERNAL') || die(); @@ -37,7 +32,7 @@ require_once($CFG->dirroot . '/user/profile/definelib.php'); * @copyright 2017 Mark Nelson * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class core_event_profile_field_testcase extends advanced_testcase { +class profile_field_test extends \advanced_testcase { /** * Test set up. @@ -134,7 +129,7 @@ class core_event_profile_field_testcase extends advanced_testcase { $cat1 = $this->getDataGenerator()->create_custom_profile_field_category(['name' => 'Example category']); // Create a new profile field. - $data = new stdClass(); + $data = new \stdClass(); $data->datatype = 'text'; $data->shortname = 'example'; $data->name = 'Example field'; diff --git a/lib/tests/event_unknown_logged_test.php b/lib/tests/event/unknown_logged_test.php similarity index 88% rename from lib/tests/event_unknown_logged_test.php rename to lib/tests/event/unknown_logged_test.php index 7d07dce020d..8e40b9b1c1f 100644 --- a/lib/tests/event_unknown_logged_test.php +++ b/lib/tests/event/unknown_logged_test.php @@ -14,6 +14,12 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . +namespace core\event; + +defined('MOODLE_INTERNAL') || die(); + +require_once(__DIR__.'/../fixtures/event_fixtures.php'); + /** * Tests for event manager, base event and observers. * @@ -22,15 +28,10 @@ * @copyright 2014 Petr Skoda * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ - -defined('MOODLE_INTERNAL') || die(); - -require_once(__DIR__.'/fixtures/event_fixtures.php'); - -class core_event_unknown_logged_testcase extends advanced_testcase { +class unknown_logged_test extends \advanced_testcase { public function test_restore_event() { - $event1 = \core_tests\event\unittest_executed::create(array('context' => context_system::instance(), 'other' => array('sample' => 1, 'xx' => 10))); + $event1 = \core_tests\event\unittest_executed::create(array('context' => \context_system::instance(), 'other' => array('sample' => 1, 'xx' => 10))); $data1 = $event1->get_data(); $data1['eventname'] = '\mod_xx\event\xx_yy'; @@ -50,4 +51,4 @@ class core_event_unknown_logged_testcase extends advanced_testcase { $this->assertEquals($data1, $data2); $this->assertEquals($extra1, $extra2); } -} \ No newline at end of file +} diff --git a/lib/tests/event_user_graded_test.php b/lib/tests/event/user_graded_test.php similarity index 84% rename from lib/tests/event_user_graded_test.php rename to lib/tests/event/user_graded_test.php index e30e30ab033..283f086c70e 100644 --- a/lib/tests/event_user_graded_test.php +++ b/lib/tests/event/user_graded_test.php @@ -14,14 +14,7 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Tests the \core\event\user_graded event. - * - * @package core - * @category phpunit - * @copyright 2014 Petr Skoda - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ +namespace core\event; defined('MOODLE_INTERNAL') || die(); @@ -30,8 +23,6 @@ global $CFG; require_once($CFG->libdir . '/mathslib.php'); /** - * Class core_event_user_graded_testcase - * * Tests for event \core\event\user_graded * * @package core @@ -39,7 +30,7 @@ require_once($CFG->libdir . '/mathslib.php'); * @copyright 2014 Petr Skoda * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class core_event_user_graded_testcase extends advanced_testcase { +class user_graded_test extends \advanced_testcase { /** * Tests set up. @@ -59,13 +50,13 @@ class core_event_user_graded_testcase extends advanced_testcase { $user = $this->getDataGenerator()->create_user(); $this->getDataGenerator()->enrol_user($user->id, $course->id); - $grade_category = grade_category::fetch_course_category($course->id); + $grade_category = \grade_category::fetch_course_category($course->id); $grade_category->load_grade_item(); $grade_item = $grade_category->grade_item; $grade_item->update_final_grade($user->id, 10, 'gradebook'); - $grade_grade = new grade_grade(array('userid' => $user->id, 'itemid' => $grade_item->id), true); + $grade_grade = new \grade_grade(array('userid' => $user->id, 'itemid' => $grade_item->id), true); $grade_grade->grade_item = $grade_item; $event = \core\event\user_graded::create_from_grade($grade_grade); @@ -74,7 +65,7 @@ class core_event_user_graded_testcase extends advanced_testcase { array($course->id, 'grade', 'update', '/report/grader/index.php?id=' . $course->id, $grade_item->itemname . ': ' . fullname($user)), $event ); - $this->assertEquals(context_course::instance($course->id), $event->get_context()); + $this->assertEquals(\context_course::instance($course->id), $event->get_context()); $this->assertSame($event->objecttable, 'grade_grades'); $this->assertEquals($event->objectid, $grade_grade->id); $this->assertEquals($event->other['itemid'], $grade_item->id); @@ -110,8 +101,8 @@ class core_event_user_graded_testcase extends advanced_testcase { $quiz = $this->getDataGenerator()->create_module('quiz', array('course' => $course->id)); $quizitemparams = array('itemtype' => 'mod', 'itemmodule' => 'quiz', 'iteminstance' => $quiz->id, 'courseid' => $course->id); - $gradeitem = grade_item::fetch($quizitemparams); - $courseitem = grade_item::fetch_course_item($course->id); + $gradeitem = \grade_item::fetch($quizitemparams); + $courseitem = \grade_item::fetch_course_item($course->id); // Now mark the quiz using grade_update as this is the function that modules use. $grade = array(); @@ -134,9 +125,9 @@ class core_event_user_graded_testcase extends advanced_testcase { // will be set as needing an update when the grades are deleted. $gradeitem->delete_all_grades(); grade_regrade_final_grades($course->id); - $gradeitem = grade_item::fetch($quizitemparams); + $gradeitem = \grade_item::fetch($quizitemparams); - // Now, create a grade using grade_item::update_final_grade(). + // Now, create a grade using \grade_item::update_final_grade(). $sink = $this->redirectEvents(); $gradeitem->update_raw_grade($user->id, 10); $events = $sink->get_events(); @@ -149,7 +140,7 @@ class core_event_user_graded_testcase extends advanced_testcase { $this->assertInstanceOf('\core\event\user_graded', $events[1]); $this->assertEquals($courseitem->id, $events[1]->other['itemid']); - // Now, update this grade using grade_item::update_raw_grade(). + // Now, update this grade using \grade_item::update_raw_grade(). $sink = $this->redirectEvents(); $gradeitem->update_raw_grade($user->id, 20); $events = $sink->get_events(); @@ -166,9 +157,9 @@ class core_event_user_graded_testcase extends advanced_testcase { // will be set as needing an update when the grades are deleted. $gradeitem->delete_all_grades(); grade_regrade_final_grades($course->id); - $gradeitem = grade_item::fetch($quizitemparams); + $gradeitem = \grade_item::fetch($quizitemparams); - // Now, create a grade using grade_item::update_final_grade(). + // Now, create a grade using \grade_item::update_final_grade(). $sink = $this->redirectEvents(); $gradeitem->update_final_grade($user->id, 30); $events = $sink->get_events(); @@ -181,7 +172,7 @@ class core_event_user_graded_testcase extends advanced_testcase { $this->assertInstanceOf('\core\event\user_graded', $events[1]); $this->assertEquals($courseitem->id, $events[1]->other['itemid']); - // Now, update this grade using grade_item::update_final_grade(). + // Now, update this grade using \grade_item::update_final_grade(). $sink = $this->redirectEvents(); $gradeitem->update_final_grade($user->id, 40); $events = $sink->get_events(); @@ -194,12 +185,12 @@ class core_event_user_graded_testcase extends advanced_testcase { $this->assertInstanceOf('\core\event\user_graded', $events[1]); $this->assertEquals($courseitem->id, $events[1]->other['itemid']); - // Remove the overridden flag from the grade, this was set by grade_item::update_final_grade(). - $gradegrade = grade_grade::fetch(array('itemid' => $gradeitem->id, 'userid' => $user->id)); + // Remove the overridden flag from the grade, this was set by \grade_item::update_final_grade(). + $gradegrade = \grade_grade::fetch(array('itemid' => $gradeitem->id, 'userid' => $user->id)); $gradegrade->set_overridden(false, false); // Let's change the calculation to anything that won't cause an error. - $calculation = calc_formula::unlocalize("=3"); + $calculation = \calc_formula::unlocalize("=3"); $gradeitem->set_calculation($calculation); // Now force the computation of the grade. @@ -216,10 +207,10 @@ class core_event_user_graded_testcase extends advanced_testcase { $this->assertEquals($courseitem->id, $events[1]->other['itemid']); // Now, let's trick the gradebook, we manually update a grade, and flag the grade item as - // needing a regrading, so we can trigger the event in grade_item::regrade_final_grades(). - $gradeitem = grade_item::fetch($quizitemparams); + // needing a regrading, so we can trigger the event in \grade_item::regrade_final_grades(). + $gradeitem = \grade_item::fetch($quizitemparams); $gradeitem->set_calculation(''); - $gradegrade = grade_grade::fetch(array('itemid' => $gradeitem->id, 'userid' => $user->id)); + $gradegrade = \grade_grade::fetch(array('itemid' => $gradeitem->id, 'userid' => $user->id)); $gradegrade->rawgrade = 50; $gradegrade->update(); diff --git a/lib/tests/event_user_password_updated_test.php b/lib/tests/event/user_password_updated_test.php similarity index 85% rename from lib/tests/event_user_password_updated_test.php rename to lib/tests/event/user_password_updated_test.php index 96b2c0b298c..73af86c35f6 100644 --- a/lib/tests/event_user_password_updated_test.php +++ b/lib/tests/event/user_password_updated_test.php @@ -14,26 +14,17 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Tests for password changes event. - * - * @package core - * @category phpunit - * @copyright 2014 Petr Skoda - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ - -defined('MOODLE_INTERNAL') || die(); +namespace core\event; /** * Tests for event \core\event\user_password_updated * * @package core - * @category phpunit + * @category test * @copyright 2014 Petr Skoda * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class core_event_user_password_updated_testcase extends advanced_testcase { +class user_password_updated_test extends \advanced_testcase { /** * Test the event. */ @@ -41,9 +32,9 @@ class core_event_user_password_updated_testcase extends advanced_testcase { $this->resetAfterTest(); $user1 = $this->getDataGenerator()->create_user(); - $context1 = context_user::instance($user1->id); + $context1 = \context_user::instance($user1->id); $user2 = $this->getDataGenerator()->create_user(); - $context2 = context_user::instance($user2->id); + $context2 = \context_user::instance($user2->id); $this->setUser($user1); diff --git a/lib/tests/exporter_test.php b/lib/tests/exporter_test.php index 8949c231831..ead475e86fb 100644 --- a/lib/tests/exporter_test.php +++ b/lib/tests/exporter_test.php @@ -15,13 +15,15 @@ // along with Moodle. If not, see . /** - * Exporter class tests. + * Exporter testcase. * * @package core * @copyright 2015 Damyon Wiese * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ +namespace core; + defined('MOODLE_INTERNAL') || die(); global $CFG; @@ -32,7 +34,7 @@ global $CFG; * @copyright 2015 Damyon Wiese * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class core_exporter_testcase extends advanced_testcase { +class exporter_test extends \advanced_testcase { protected $validrelated = null; protected $invalidrelated = null; @@ -40,7 +42,7 @@ class core_exporter_testcase extends advanced_testcase { protected $invaliddata = null; public function setUp(): void { - $s = new stdClass(); + $s = new \stdClass(); $this->validrelated = array( 'simplestdClass' => $s, 'arrayofstdClass' => array($s, $s), @@ -104,14 +106,14 @@ class core_exporter_testcase extends advanced_testcase { $output = $PAGE->get_renderer('core'); // The exception message is a bit misleading, it actually indicates an expected property wasn't found. - $this->expectException(coding_exception::class); + $this->expectException(\coding_exception::class); $this->expectExceptionMessage('Unexpected property stringAformat'); $result = $exporter->export($output); } public function test_invalid_related() { - $this->expectException(coding_exception::class); - $this->expectExceptionMessage('Exporter class is missing required related data: (core_testable_exporter) ' . + $this->expectException(\coding_exception::class); + $this->expectExceptionMessage('Exporter class is missing required related data: (core\core_testable_exporter) ' . 'simplestdClass => stdClass'); $exporter = new core_testable_exporter($this->validdata, $this->invalidrelated); } @@ -127,7 +129,7 @@ class core_exporter_testcase extends advanced_testcase { $exporter = new core_testable_exporter($this->validdata, $data); $output = $PAGE->get_renderer('core'); $result = $exporter->export($output); - } catch (coding_exception $e) { + } catch (\coding_exception $e) { $this->assertNotFalse(strpos($e->getMessage(), $key)); } } @@ -147,14 +149,14 @@ class core_exporter_testcase extends advanced_testcase { $this->resetAfterTest(); $course = $this->getDataGenerator()->create_course(); - $syscontext = context_system::instance(); - $coursecontext = context_course::instance($course->id); + $syscontext = \context_system::instance(); + $coursecontext = \context_course::instance($course->id); - external_settings::get_instance()->set_filter(true); + \external_settings::get_instance()->set_filter(true); filter_set_global_state('urltolink', TEXTFILTER_OFF); filter_set_local_state('urltolink', $coursecontext->id, TEXTFILTER_ON); set_config('formats', FORMAT_MARKDOWN, 'filter_urltolink'); - filter_manager::reset_caches(); + \filter_manager::reset_caches(); $data = [ 'stringA' => '__Watch out:__ https://moodle.org @@PLUGINFILE@@/test.pdf', @@ -168,7 +170,7 @@ class core_exporter_testcase extends advanced_testcase { $result = $exporter->export($output); $youtube = 'https://moodle.org'; - $fileurl = (new moodle_url('/webservice/pluginfile.php/' . $syscontext->id . '/test/area/9/test.pdf'))->out(false); + $fileurl = (new \moodle_url('/webservice/pluginfile.php/' . $syscontext->id . '/test/area/9/test.pdf'))->out(false); $expected = "

Watch out: $youtube $fileurl

\n"; $this->assertEquals($expected, $result->stringA); $this->assertEquals(FORMAT_HTML, $result->stringAformat); @@ -177,7 +179,7 @@ class core_exporter_testcase extends advanced_testcase { $exporter = new core_testable_exporter($data, ['context' => $coursecontext] + $this->validrelated); $result = $exporter->export($output); $youtube = 'https://moodle.org'; - $fileurl = (new moodle_url('/webservice/pluginfile.php/' . $coursecontext->id . '/test/area/9/test.pdf'))->out(false); + $fileurl = (new \moodle_url('/webservice/pluginfile.php/' . $coursecontext->id . '/test/area/9/test.pdf'))->out(false); $expected = "

Watch out: $youtube $fileurl

\n"; $this->assertEquals($expected, $result->stringA); $this->assertEquals(FORMAT_HTML, $result->stringAformat); @@ -214,7 +216,7 @@ class core_testable_exporter extends \core\external\exporter { 'astring' => 'string', 'abool' => 'bool', 'aint' => 'int', 'ints' => 'int[]'); } - protected function get_other_values(renderer_base $output) { + protected function get_other_values(\renderer_base $output) { return array( 'otherstring' => '>Another string', 'otherstrings' => array('String >a', 'String b') @@ -259,7 +261,7 @@ class core_testable_exporter extends \core\external\exporter { protected function get_format_parameters_for_stringA() { return [ // For testing use the passed context if any. - 'context' => isset($this->related['context']) ? $this->related['context'] : context_system::instance(), + 'context' => isset($this->related['context']) ? $this->related['context'] : \context_system::instance(), 'component' => 'test', 'filearea' => 'area', 'itemid' => 9, @@ -268,14 +270,14 @@ class core_testable_exporter extends \core\external\exporter { protected function get_format_parameters_for_otherstring() { return [ - 'context' => context_system::instance(), + 'context' => \context_system::instance(), 'options' => ['escape' => false] ]; } protected function get_format_parameters_for_otherstrings() { return [ - 'context' => context_system::instance(), + 'context' => \context_system::instance(), ]; } } diff --git a/lib/tests/filelib_test.php b/lib/tests/filelib_test.php index faaa198a801..1dc2a4971a9 100644 --- a/lib/tests/filelib_test.php +++ b/lib/tests/filelib_test.php @@ -17,19 +17,33 @@ /** * Unit tests for /lib/filelib.php. * - * @package core_files - * @category phpunit + * @package core + * @category test * @copyright 2009 Jerome Mouneyrac * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ +namespace core; + +use core_filetypes; +use curl; +use repository; + defined('MOODLE_INTERNAL') || die(); global $CFG; require_once($CFG->libdir . '/filelib.php'); require_once($CFG->dirroot . '/repository/lib.php'); -class core_filelib_testcase extends advanced_testcase { +/** + * Unit tests for /lib/filelib.php. + * + * @package core + * @category test + * @copyright 2009 Jerome Mouneyrac + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +class filelib_test extends \advanced_testcase { public function test_format_postdata_for_curlcall() { // POST params with just simple types. @@ -196,12 +210,12 @@ class core_filelib_testcase extends advanced_testcase { // Test HTTP success. $testhtml = $this->getExternalTestFileUrl('/test.html'); - $curl = new curl(); + $curl = new \curl(); $contents = $curl->get($testhtml); $this->assertSame('47250a973d1b88d9445f94db4ef2c97a', md5($contents)); $this->assertSame(0, $curl->get_errno()); - $curl = new curl(); + $curl = new \curl(); $tofile = "$CFG->tempdir/test.html"; @unlink($tofile); $fp = fopen($tofile, 'w'); @@ -212,7 +226,7 @@ class core_filelib_testcase extends advanced_testcase { $this->assertSame($contents, file_get_contents($tofile)); @unlink($tofile); - $curl = new curl(); + $curl = new \curl(); $tofile = "$CFG->tempdir/test.html"; @unlink($tofile); $result = $curl->download_one($testhtml, array(), array('filepath'=>$tofile)); @@ -222,7 +236,7 @@ class core_filelib_testcase extends advanced_testcase { @unlink($tofile); // Test 404 request. - $curl = new curl(); + $curl = new \curl(); $contents = $curl->get($this->getExternalTestFileUrl('/i.do.not.exist')); $response = $curl->getResponse(); $this->assertSame('404 Not Found', reset($response)); @@ -237,12 +251,12 @@ class core_filelib_testcase extends advanced_testcase { // Test a request with a basic hostname filter applied. $testhtml = $this->getExternalTestFileUrl('/test.html'); - $url = new moodle_url($testhtml); + $url = new \moodle_url($testhtml); $host = $url->get_host(); set_config('curlsecurityblockedhosts', $host); // Blocks $host. // Create curl with the default security enabled. We expect this to be blocked. - $curl = new curl(); + $curl = new \curl(); $contents = $curl->get($testhtml); $expected = $curl->get_security()->get_blocked_url_string(); $this->assertSame($expected, $contents); @@ -250,7 +264,7 @@ class core_filelib_testcase extends advanced_testcase { // Now, create a curl using the 'ignoresecurity' override. // We expect this request to pass, despite the admin setting having been set earlier. - $curl = new curl(['ignoresecurity' => true]); + $curl = new \curl(['ignoresecurity' => true]); $contents = $curl->get($testhtml); $this->assertSame('47250a973d1b88d9445f94db4ef2c97a', md5($contents)); $this->assertSame(0, $curl->get_errno()); @@ -264,7 +278,7 @@ class core_filelib_testcase extends advanced_testcase { // And make the mock security helper block all URLs. This helper instance doesn't care about config. $mockhelper->expects($this->any())->method('url_is_blocked')->will($this->returnValue(true)); - $curl = new curl(['securityhelper' => $mockhelper]); + $curl = new \curl(['securityhelper' => $mockhelper]); $contents = $curl->get($testhtml); $this->assertSame('You shall not pass', $curl->get_security()->get_blocked_url_string()); $this->assertSame($curl->get_security()->get_blocked_url_string(), $contents); @@ -275,7 +289,7 @@ class core_filelib_testcase extends advanced_testcase { $testurl = $this->getExternalTestFileUrl('/test_redir.php'); - $curl = new curl(); + $curl = new \curl(); $contents = $curl->get("$testurl?redir=2", array(), array('CURLOPT_MAXREDIRS'=>2)); $response = $curl->getResponse(); $this->assertSame('200 OK', reset($response)); @@ -284,7 +298,7 @@ class core_filelib_testcase extends advanced_testcase { $this->assertSame('done', $contents); // All redirects are emulated now. Enabling "emulateredirects" explicitly does not have effect. - $curl = new curl(); + $curl = new \curl(); $curl->emulateredirects = true; $contents = $curl->get("$testurl?redir=2", array(), array('CURLOPT_MAXREDIRS'=>2)); $response = $curl->getResponse(); @@ -294,7 +308,7 @@ class core_filelib_testcase extends advanced_testcase { $this->assertSame('done', $contents); // All redirects are emulated now. Attempting to disable "emulateredirects" explicitly causes warning. - $curl = new curl(); + $curl = new \curl(); $curl->emulateredirects = false; $contents = $curl->get("$testurl?redir=2", array(), array('CURLOPT_MAXREDIRS' => 2)); $response = $curl->getResponse(); @@ -314,7 +328,7 @@ class core_filelib_testcase extends advanced_testcase { $responsecode302 = '302 Found'; } - $curl = new curl(); + $curl = new \curl(); $contents = $curl->get("$testurl?redir=3", array(), array('CURLOPT_FOLLOWLOCATION'=>0)); $response = $curl->getResponse(); $this->assertSame($responsecode302, reset($response)); @@ -322,12 +336,12 @@ class core_filelib_testcase extends advanced_testcase { $this->assertSame(302, $curl->info['http_code']); $this->assertSame('', $contents); - $curl = new curl(); + $curl = new \curl(); $contents = $curl->get("$testurl?redir=2", array(), array('CURLOPT_MAXREDIRS'=>1)); $this->assertSame(CURLE_TOO_MANY_REDIRECTS, $curl->get_errno()); $this->assertNotEmpty($contents); - $curl = new curl(); + $curl = new \curl(); $tofile = "$CFG->tempdir/test.html"; @unlink($tofile); $fp = fopen($tofile, 'w'); @@ -338,7 +352,7 @@ class core_filelib_testcase extends advanced_testcase { $this->assertSame('done', file_get_contents($tofile)); @unlink($tofile); - $curl = new curl(); + $curl = new \curl(); $tofile = "$CFG->tempdir/test.html"; @unlink($tofile); $fp = fopen($tofile, 'w'); @@ -349,7 +363,7 @@ class core_filelib_testcase extends advanced_testcase { $this->assertSame('done', file_get_contents($tofile)); @unlink($tofile); - $curl = new curl(); + $curl = new \curl(); $tofile = "$CFG->tempdir/test.html"; @unlink($tofile); $result = $curl->download_one("$testurl?redir=1", array(), array('filepath'=>$tofile)); @@ -358,7 +372,7 @@ class core_filelib_testcase extends advanced_testcase { $this->assertSame('done', file_get_contents($tofile)); @unlink($tofile); - $curl = new curl(); + $curl = new \curl(); $tofile = "$CFG->tempdir/test.html"; @unlink($tofile); $result = $curl->download_one("$testurl?redir=1&verbose=1", array(), array('filepath' => $tofile)); @@ -381,21 +395,21 @@ class core_filelib_testcase extends advanced_testcase { set_config('curlsecurityblockedhosts', 'moodle.com'); // Redirecting to a non-blocked host should resolve. - $curl = new curl(); + $curl = new \curl(); $contents = $curl->get("{$testurl}?redir=2"); $response = $curl->getResponse(); $this->assertSame('200 OK', reset($response)); $this->assertSame(0, $curl->get_errno()); // Redirecting to the blocked host should fail. - $curl = new curl(); + $curl = new \curl(); $blockedstring = $curl->get_security()->get_blocked_url_string(); $contents = $curl->get("{$testurl}?redir=1&extdest=1"); $this->assertSame($blockedstring, $contents); $this->assertSame(0, $curl->get_errno()); // Redirecting to the blocked host after multiple successful redirects should also fail. - $curl = new curl(); + $curl = new \curl(); $contents = $curl->get("{$testurl}?redir=3&extdest=1"); $this->assertSame($blockedstring, $contents); $this->assertSame(0, $curl->get_errno()); @@ -405,7 +419,7 @@ class core_filelib_testcase extends advanced_testcase { // Test relative location redirects. $testurl = $this->getExternalTestFileUrl('/test_relative_redir.php'); - $curl = new curl(); + $curl = new \curl(); $contents = $curl->get($testurl); $response = $curl->getResponse(); $this->assertSame('200 OK', reset($response)); @@ -416,7 +430,7 @@ class core_filelib_testcase extends advanced_testcase { // Test different redirect types. $testurl = $this->getExternalTestFileUrl('/test_relative_redir.php'); - $curl = new curl(); + $curl = new \curl(); $contents = $curl->get("$testurl?type=301"); $response = $curl->getResponse(); $this->assertSame('200 OK', reset($response)); @@ -424,7 +438,7 @@ class core_filelib_testcase extends advanced_testcase { $this->assertSame(1, $curl->info['redirect_count']); $this->assertSame('done', $contents); - $curl = new curl(); + $curl = new \curl(); $contents = $curl->get("$testurl?type=302"); $response = $curl->getResponse(); $this->assertSame('200 OK', reset($response)); @@ -432,7 +446,7 @@ class core_filelib_testcase extends advanced_testcase { $this->assertSame(1, $curl->info['redirect_count']); $this->assertSame('done', $contents); - $curl = new curl(); + $curl = new \curl(); $contents = $curl->get("$testurl?type=303"); $response = $curl->getResponse(); $this->assertSame('200 OK', reset($response)); @@ -440,7 +454,7 @@ class core_filelib_testcase extends advanced_testcase { $this->assertSame(1, $curl->info['redirect_count']); $this->assertSame('done', $contents); - $curl = new curl(); + $curl = new \curl(); $contents = $curl->get("$testurl?type=307"); $response = $curl->getResponse(); $this->assertSame('200 OK', reset($response)); @@ -448,7 +462,7 @@ class core_filelib_testcase extends advanced_testcase { $this->assertSame(1, $curl->info['redirect_count']); $this->assertSame('done', $contents); - $curl = new curl(); + $curl = new \curl(); $contents = $curl->get("$testurl?type=308"); $response = $curl->getResponse(); $this->assertSame('200 OK', reset($response)); @@ -467,7 +481,7 @@ class core_filelib_testcase extends advanced_testcase { // Test without proxy bypass and inaccessible proxy. $CFG->proxyhost = 'i.do.not.exist'; $CFG->proxybypass = ''; - $curl = new curl(); + $curl = new \curl(); $contents = $curl->get($testurl); $this->assertNotEquals(0, $curl->get_errno()); $this->assertNotEquals('47250a973d1b88d9445f94db4ef2c97a', md5($contents)); @@ -475,7 +489,7 @@ class core_filelib_testcase extends advanced_testcase { // Test with proxy bypass. $testurlhost = parse_url($testurl, PHP_URL_HOST); $CFG->proxybypass = $testurlhost; - $curl = new curl(); + $curl = new \curl(); $contents = $curl->get($testurl); $this->assertSame(0, $curl->get_errno()); $this->assertSame('47250a973d1b88d9445f94db4ef2c97a', md5($contents)); @@ -490,7 +504,7 @@ class core_filelib_testcase extends advanced_testcase { public function test_duplicate_curl_header() { $testurl = $this->getExternalTestFileUrl('/test_post.php'); - $curl = new curl(); + $curl = new \curl(); $headerdata = 'Accept: application/json'; $header = [$headerdata, $headerdata]; $this->assertCount(2, $header); @@ -503,7 +517,7 @@ class core_filelib_testcase extends advanced_testcase { $testurl = $this->getExternalTestFileUrl('/test_post.php'); // Test post request. - $curl = new curl(); + $curl = new \curl(); $contents = $curl->post($testurl, 'data=moodletest'); $response = $curl->getResponse(); $this->assertSame('200 OK', reset($response)); @@ -511,7 +525,7 @@ class core_filelib_testcase extends advanced_testcase { $this->assertSame('OK', $contents); // Test 100 requests. - $curl = new curl(); + $curl = new \curl(); $curl->setHeader('Expect: 100-continue'); $contents = $curl->post($testurl, 'data=moodletest'); $response = $curl->getResponse(); @@ -526,7 +540,7 @@ class core_filelib_testcase extends advanced_testcase { $fs = get_file_storage(); $filerecord = array( - 'contextid' => context_system::instance()->id, + 'contextid' => \context_system::instance()->id, 'component' => 'test', 'filearea' => 'curl_post', 'itemid' => 0, @@ -538,7 +552,7 @@ class core_filelib_testcase extends advanced_testcase { // Test post with file. $data = array('testfile' => $testfile); - $curl = new curl(); + $curl = new \curl(); $contents = $curl->post($testurl, $data); $this->assertSame('OK', $contents); } @@ -549,7 +563,7 @@ class core_filelib_testcase extends advanced_testcase { $fs = get_file_storage(); $filerecord = array( - 'contextid' => context_system::instance()->id, + 'contextid' => \context_system::instance()->id, 'component' => 'test', 'filearea' => 'curl_post', 'itemid' => 0, @@ -561,7 +575,7 @@ class core_filelib_testcase extends advanced_testcase { // Test post with file. $data = array('testfile' => $testfile); - $curl = new curl(); + $curl = new \curl(); $contents = $curl->post($testurl, $data); $this->assertSame('OK', $contents); } @@ -570,7 +584,7 @@ class core_filelib_testcase extends advanced_testcase { // HTTP and HTTPS requests were verified in previous requests. Now check // that we can selectively disable some protocols. - $curl = new curl(); + $curl = new \curl(); // Other protocols than HTTP(S) are disabled by default. $testurl = 'file:///'; @@ -618,7 +632,7 @@ class core_filelib_testcase extends advanced_testcase { $generator = $this->getDataGenerator(); $user = $generator->create_user(); - $usercontext = context_user::instance($user->id); + $usercontext = \context_user::instance($user->id); $USER = $DB->get_record('user', array('id'=>$user->id)); $repositorypluginname = 'user'; @@ -631,7 +645,7 @@ class core_filelib_testcase extends advanced_testcase { $fs = get_file_storage(); - $syscontext = context_system::instance(); + $syscontext = \context_system::instance(); $component = 'core'; $filearea = 'unittest'; $itemid = 0; @@ -654,7 +668,7 @@ class core_filelib_testcase extends advanced_testcase { $this->assertInstanceOf('stored_file', $originalfile); // Create a user private file. - $userfilerecord = new stdClass; + $userfilerecord = new \stdClass; $userfilerecord->contextid = $usercontext->id; $userfilerecord->component = 'user'; $userfilerecord->filearea = 'private'; @@ -729,7 +743,7 @@ class core_filelib_testcase extends advanced_testcase { $generator = $this->getDataGenerator(); $user = $generator->create_user(); - $usercontext = context_user::instance($user->id); + $usercontext = \context_user::instance($user->id); $USER = $DB->get_record('user', array('id'=>$user->id)); $repositorypluginname = 'user'; @@ -741,12 +755,12 @@ class core_filelib_testcase extends advanced_testcase { $this->assertInstanceOf('repository', $userrepository); $fs = get_file_storage(); - $syscontext = context_system::instance(); + $syscontext = \context_system::instance(); $filecontent = 'User file content'; // Create a user private file. - $userfilerecord = new stdClass; + $userfilerecord = new \stdClass; $userfilerecord->contextid = $usercontext->id; $userfilerecord->component = 'user'; $userfilerecord->filearea = 'private'; @@ -800,7 +814,7 @@ class core_filelib_testcase extends advanced_testcase { $generator = $this->getDataGenerator(); $user = $generator->create_user(); - $usercontext = context_user::instance($user->id); + $usercontext = \context_user::instance($user->id); $USER = $DB->get_record('user', array('id' => $user->id)); $repositorypluginname = 'user'; @@ -812,12 +826,12 @@ class core_filelib_testcase extends advanced_testcase { $this->assertInstanceOf('repository', $userrepository); $fs = get_file_storage(); - $syscontext = context_system::instance(); + $syscontext = \context_system::instance(); $filecontent = 'User file content'; // Create a user private file. - $userfilerecord = new stdClass; + $userfilerecord = new \stdClass; $userfilerecord->contextid = $usercontext->id; $userfilerecord->component = 'user'; $userfilerecord->filearea = 'private'; @@ -868,7 +882,7 @@ class core_filelib_testcase extends advanced_testcase { $generator = $this->getDataGenerator(); $user = $generator->create_user(); - $usercontext = context_user::instance($user->id); + $usercontext = \context_user::instance($user->id); $USER = $DB->get_record('user', ['id' => $user->id]); $draftitemid = 0; @@ -935,9 +949,9 @@ EOF; $mdl30648expected = preg_replace("~(?!<\r)\n~", "\r\n", $mdl30648expected); // Test stripping works OK. - $this->assertSame($mdl30648expected, curl::strip_double_headers($mdl30648example)); + $this->assertSame($mdl30648expected, \curl::strip_double_headers($mdl30648example)); // Test it does nothing to the 'plain' data. - $this->assertSame($mdl30648expected, curl::strip_double_headers($mdl30648expected)); + $this->assertSame($mdl30648expected, \curl::strip_double_headers($mdl30648expected)); // Example from OU proxy. $httpsexample = <<assertSame($httpsexpected, curl::strip_double_headers($httpsexample)); + $this->assertSame($httpsexpected, \curl::strip_double_headers($httpsexample)); // Test it does nothing to the 'plain' data. - $this->assertSame($httpsexpected, curl::strip_double_headers($httpsexpected)); + $this->assertSame($httpsexpected, \curl::strip_double_headers($httpsexpected)); $httpsexample = <<assertSame($httpsexpected, curl::strip_double_headers($httpsexample)); + $this->assertSame($httpsexpected, \curl::strip_double_headers($httpsexample)); // Test it does nothing to the 'plain' data. - $this->assertSame($httpsexpected, curl::strip_double_headers($httpsexpected)); + $this->assertSame($httpsexpected, \curl::strip_double_headers($httpsexpected)); $httpsexample = <<assertSame($httpsexpected, curl::strip_double_headers($httpsexample)); + $this->assertSame($httpsexpected, \curl::strip_double_headers($httpsexample)); // Test it does nothing to the 'plain' data. - $this->assertSame($httpsexpected, curl::strip_double_headers($httpsexpected)); + $this->assertSame($httpsexpected, \curl::strip_double_headers($httpsexpected)); $httpsexample = <<assertSame($httpsexpected, curl::strip_double_headers($httpsexample)); + $this->assertSame($httpsexpected, \curl::strip_double_headers($httpsexample)); // Test it does nothing to the 'plain' data. - $this->assertSame($httpsexpected, curl::strip_double_headers($httpsexpected)); + $this->assertSame($httpsexpected, \curl::strip_double_headers($httpsexpected)); $httpsexample = <<assertSame($httpsexpected, curl::strip_double_headers($httpsexample)); + $this->assertSame($httpsexpected, \curl::strip_double_headers($httpsexample)); // Test it does nothing to the 'plain' data. - $this->assertSame($httpsexpected, curl::strip_double_headers($httpsexpected)); - + $this->assertSame($httpsexpected, \curl::strip_double_headers($httpsexpected)); } /** @@ -1153,7 +1166,7 @@ EOF; get_mimetype_description(array('filename' => 'test.frog'))); // Test custom description using multilang filter. - filter_manager::reset_caches(); + \filter_manager::reset_caches(); filter_set_global_state('multilang', TEXTFILTER_ON); filter_set_applies_to_strings('multilang', true); core_filetypes::update_type('frog', 'frog', 'application/x-frog', 'document', @@ -1243,7 +1256,7 @@ EOF; // Finally, test it via exttests, to ensure the agent is sent properly. // Matching. $testurl = $this->getExternalTestFileUrl('/test_agent.php'); - $extcurl = new curl(); + $extcurl = new \curl(); $contents = $extcurl->get($testurl, array(), array('CURLOPT_USERAGENT' => 'AnotherUserAgent/1.2')); $response = $extcurl->getResponse(); $this->assertSame('200 OK', reset($response)); @@ -1262,7 +1275,7 @@ EOF; */ public function test_file_rewrite_pluginfile_urls() { - $syscontext = context_system::instance(); + $syscontext = \context_system::instance(); $originaltext = 'Fake test with an image '; // Do the rewrite. @@ -1287,7 +1300,7 @@ EOF; $this->resetAfterTest(); - $syscontext = context_system::instance(); + $syscontext = \context_system::instance(); $originaltext = 'Fake test with an image '; $options = ['includetoken' => true]; @@ -1336,7 +1349,7 @@ EOF; $this->resetAfterTest(); - $syscontext = context_system::instance(); + $syscontext = \context_system::instance(); $originaltext = 'Fake test with an image '; $options = ['includetoken' => true]; @@ -1386,7 +1399,7 @@ EOF; if (isset($filedata['contextid'])) { $filerecord['contextid'] = $filedata['contextid']; } else { - $usercontext = context_user::instance($USER->id); + $usercontext = \context_user::instance($USER->id); $filerecord['contextid'] = $usercontext->id; } $source = isset($filedata['source']) ? $filedata['source'] : serialize((object)array('source' => 'From string')); @@ -1407,7 +1420,7 @@ EOF; $this->resetAfterTest(true); $this->setAdminUser(); $fs = get_file_storage(); - $usercontext = context_user::instance($USER->id); + $usercontext = \context_user::instance($USER->id); // Create a draft file. $filename = 'data.txt'; @@ -1521,7 +1534,7 @@ EOF; // Add new file. file_merge_files_from_draft_area_into_filearea($file->get_itemid(), $file->get_contextid(), 'user', 'private', 0, $options); - $usercontext = context_user::instance($USER->id); + $usercontext = \context_user::instance($USER->id); $files = $fs->get_area_files($usercontext->id, 'user', 'private', 0); $this->assertCount(0, $files); } @@ -1546,7 +1559,7 @@ EOF; // Add new file. file_merge_files_from_draft_area_into_filearea($file->get_itemid(), $file->get_contextid(), 'user', 'private', 0, $options); - $usercontext = context_user::instance($USER->id); + $usercontext = \context_user::instance($USER->id); // Check we only get the base directory, not a new file. $files = $fs->get_area_files($usercontext->id, 'user', 'private', 0); $this->assertCount(1, $files); @@ -1572,7 +1585,7 @@ EOF; // Add new file. file_merge_files_from_draft_area_into_filearea($file->get_itemid(), $file->get_contextid(), 'user', 'private', 0, $options); - $usercontext = context_user::instance($USER->id); + $usercontext = \context_user::instance($USER->id); // Check we only get the base directory, not a new file. $files = $fs->get_area_files($usercontext->id, 'user', 'private', 0); $this->assertCount(1, $files); @@ -1605,7 +1618,7 @@ EOF; $size += $file->get_filesize(); // Create directory. - $usercontext = context_user::instance($USER->id); + $usercontext = \context_user::instance($USER->id); $dir = $fs->create_directory($usercontext->id, 'user', 'draft', $draftitemid, '/testsubdir/'); // Add file to directory. $filerecord = array( @@ -1662,7 +1675,7 @@ EOF; $size += $file->get_filesize(); // Create directory. - $usercontext = context_user::instance($USER->id); + $usercontext = \context_user::instance($USER->id); $dir = $fs->create_directory($usercontext->id, 'user', 'draft', $draftitemid, '/testsubdir/'); // Add file to directory. $filerecord = array( @@ -1714,7 +1727,7 @@ EOF; // Confirm the user drafts area lists 3 files. $fs = get_file_storage(); - $usercontext = context_user::instance($USER->id); + $usercontext = \context_user::instance($USER->id); $draftfiles = $fs->get_area_files($usercontext->id, 'user', 'draft', $draftitemid, 'itemid', 0); $this->assertCount(3, $draftfiles); @@ -1798,7 +1811,7 @@ EOF; // Confirm one file in each draft area. $fs = get_file_storage(); - $usercontext = context_user::instance($USER->id); + $usercontext = \context_user::instance($USER->id); $draftfiles = $fs->get_area_files($usercontext->id, 'user', 'draft', $file1->get_itemid(), 'itemid', 0); $this->assertCount(1, $draftfiles); $draftfiles = $fs->get_area_files($usercontext->id, 'user', 'draft', $file2->get_itemid(), 'itemid', 0); @@ -1896,7 +1909,7 @@ class testable_curl extends curl { */ public function get_options() { // Access to private property. - $rp = new ReflectionProperty('curl', 'options'); + $rp = new \ReflectionProperty('curl', 'options'); $rp->setAccessible(true); return $rp->getValue($this); } @@ -1908,7 +1921,7 @@ class testable_curl extends curl { */ public function set_options($options) { // Access to private property. - $rp = new ReflectionProperty('curl', 'options'); + $rp = new \ReflectionProperty('curl', 'options'); $rp->setAccessible(true); $rp->setValue($this, $options); } @@ -1935,14 +1948,14 @@ class testable_curl extends curl { } /** - * Wrapper to access the private curl::apply_opt() method using reflection. + * Wrapper to access the private \curl::apply_opt() method using reflection. * * @param array $options * @return resource The curl handle */ public function call_apply_opt($options = null) { // Access to private method. - $rm = new ReflectionMethod('curl', 'apply_opt'); + $rm = new \ReflectionMethod('curl', 'apply_opt'); $rm->setAccessible(true); $ch = curl_init(); return $rm->invoke($this, $ch, $options); diff --git a/lib/tests/filestorage_zip_archive_test.php b/lib/tests/filestorage_zip_archive_test.php index 339919f5501..06eb9db2fed 100644 --- a/lib/tests/filestorage_zip_archive_test.php +++ b/lib/tests/filestorage_zip_archive_test.php @@ -14,13 +14,9 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Unit tests for /lib/filestorage/zip_archive.php. - * - * @package core_files - * @copyright 2020 Université Rennes 2 {@link https://www.univ-rennes2.fr} - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ +namespace core; + +use zip_archive; defined('MOODLE_INTERNAL') || die(); @@ -31,11 +27,11 @@ require_once($CFG->libdir . '/filestorage/zip_archive.php'); /** * Unit tests for /lib/filestorage/zip_archive.php. * - * @package core_files + * @package core * @copyright 2020 Université Rennes 2 {@link https://www.univ-rennes2.fr} * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class filestorage_zip_archive_testcase extends advanced_testcase { +class filestorage_zip_archive_test extends \advanced_testcase { /** * Test mangle_pathname() method. * @@ -47,7 +43,7 @@ class filestorage_zip_archive_testcase extends advanced_testcase { public function test_mangle_pathname($string, $expected) { $ziparchive = new zip_archive(); - $method = new ReflectionMethod('zip_archive', 'mangle_pathname'); + $method = new \ReflectionMethod('zip_archive', 'mangle_pathname'); $method->setAccessible(true); $result = $method->invoke($ziparchive, $string); diff --git a/lib/tests/filetypes_test.php b/lib/tests/filetypes_test.php index 7c2753eb1cb..478de231f16 100644 --- a/lib/tests/filetypes_test.php +++ b/lib/tests/filetypes_test.php @@ -14,13 +14,9 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Unit tests for /lib/classes/filetypes.php. - * - * @package core - * @copyright 2014 The Open University - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ +namespace core; + +use core_filetypes; defined('MOODLE_INTERNAL') || die(); @@ -34,7 +30,7 @@ require_once($CFG->libdir . '/filelib.php'); * @copyright 2014 The Open University * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class core_filetypes_testcase extends advanced_testcase { +class filetypes_test extends \advanced_testcase { public function test_add_type() { $this->resetAfterTest(); @@ -63,7 +59,7 @@ class core_filetypes_testcase extends advanced_testcase { try { core_filetypes::add_type('frog', 'application/x-frog', 'document'); $this->fail(); - } catch (coding_exception $e) { + } catch (\coding_exception $e) { $this->assertStringContainsString('already exists', $e->getMessage()); $this->assertStringContainsString('frog', $e->getMessage()); } @@ -72,14 +68,14 @@ class core_filetypes_testcase extends advanced_testcase { try { core_filetypes::add_type('.frog', 'application/x-frog', 'document'); $this->fail(); - } catch (coding_exception $e) { + } catch (\coding_exception $e) { $this->assertStringContainsString('Invalid extension', $e->getMessage()); $this->assertStringContainsString('..frog', $e->getMessage()); } try { core_filetypes::add_type('', 'application/x-frog', 'document'); $this->fail(); - } catch (coding_exception $e) { + } catch (\coding_exception $e) { $this->assertStringContainsString('Invalid extension', $e->getMessage()); } @@ -89,7 +85,7 @@ class core_filetypes_testcase extends advanced_testcase { core_filetypes::add_type('gecko', 'text/plain', 'document', array(), '', '', true); $this->fail(); - } catch (coding_exception $e) { + } catch (\coding_exception $e) { $this->assertStringContainsString('default icon set', $e->getMessage()); $this->assertStringContainsString('text/plain', $e->getMessage()); } @@ -121,7 +117,7 @@ class core_filetypes_testcase extends advanced_testcase { try { core_filetypes::update_type('doc', 'doc', 'application/x-frog', 'document'); $this->fail(); - } catch (coding_exception $e) { + } catch (\coding_exception $e) { $this->assertStringContainsString('not found', $e->getMessage()); $this->assertStringContainsString('doc', $e->getMessage()); } @@ -130,14 +126,14 @@ class core_filetypes_testcase extends advanced_testcase { try { core_filetypes::update_type('docccc', '.frog', 'application/x-frog', 'document'); $this->fail(); - } catch (coding_exception $e) { + } catch (\coding_exception $e) { $this->assertStringContainsString('Invalid extension', $e->getMessage()); $this->assertStringContainsString('.frog', $e->getMessage()); } try { core_filetypes::update_type('docccc', '', 'application/x-frog', 'document'); $this->fail(); - } catch (coding_exception $e) { + } catch (\coding_exception $e) { $this->assertStringContainsString('Invalid extension', $e->getMessage()); } @@ -146,7 +142,7 @@ class core_filetypes_testcase extends advanced_testcase { core_filetypes::update_type('docccc', 'docccc', 'text/plain', 'document', array(), '', '', true); $this->fail(); - } catch (coding_exception $e) { + } catch (\coding_exception $e) { $this->assertStringContainsString('default icon set', $e->getMessage()); $this->assertStringContainsString('text/plain', $e->getMessage()); } @@ -168,7 +164,7 @@ class core_filetypes_testcase extends advanced_testcase { try { core_filetypes::delete_type('doc'); $this->fail(); - } catch (coding_exception $e) { + } catch (\coding_exception $e) { $this->assertStringContainsString('not found', $e->getMessage()); $this->assertStringContainsString('doc', $e->getMessage()); } @@ -203,7 +199,7 @@ class core_filetypes_testcase extends advanced_testcase { try { core_filetypes::revert_type_to_default('frog'); $this->fail(); - } catch (coding_exception $e) { + } catch (\coding_exception $e) { $this->assertStringContainsString('not a default type', $e->getMessage()); $this->assertStringContainsString('frog', $e->getMessage()); } diff --git a/lib/tests/filter_manager_test.php b/lib/tests/filter_manager_test.php index 200fe139f13..14517b4d8b2 100644 --- a/lib/tests/filter_manager_test.php +++ b/lib/tests/filter_manager_test.php @@ -14,6 +14,10 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . +namespace core; + +use filter_manager; + /** * Unit tests for the {@link filter_manager} class. * @@ -22,17 +26,7 @@ * @copyright 2015 The Open University * @license http://www.gnu.org/copyleft/gpl.html GNU Public License */ - -defined('MOODLE_INTERNAL') || die(); - - -/** - * Unit tests for the {@link filter_manager} class. - * - * @copyright 2015 The Open University - * @license http://www.gnu.org/copyleft/gpl.html GNU Public License - */ -class core_filter_manager_testcase extends advanced_testcase { +class filter_manager_test extends \advanced_testcase { /** * Helper method to apply filters to some text and return the result. diff --git a/lib/tests/filterlib_test.php b/lib/tests/filterlib_test.php index 21df7ed847a..29bd34c74ef 100644 --- a/lib/tests/filterlib_test.php +++ b/lib/tests/filterlib_test.php @@ -14,15 +14,9 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Tests for the parts of ../filterlib.php that involve loading the configuration - * from, and saving the configuration to, the database. - * - * @package core_filter - * @category phpunit - * @copyright 2009 Tim Hunt - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ +namespace core; + +use filter_manager; defined('MOODLE_INTERNAL') || die(); @@ -31,8 +25,16 @@ require_once($CFG->libdir . '/filterlib.php'); /** * Test filters. + * + * Tests for the parts of ../filterlib.php that involve loading the configuration + * from, and saving the configuration to, the database. + * + * @package core + * @category test + * @copyright 2009 Tim Hunt + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class core_filterlib_testcase extends advanced_testcase { +class filterlib_test extends \advanced_testcase { private function assert_only_one_filter_globally($filter, $state) { global $DB; @@ -40,9 +42,9 @@ class core_filterlib_testcase extends advanced_testcase { $this->assertCount(1, $recs); $rec = reset($recs); unset($rec->id); - $expectedrec = new stdClass(); + $expectedrec = new \stdClass(); $expectedrec->filter = $filter; - $expectedrec->contextid = context_system::instance()->id; + $expectedrec->contextid = \context_system::instance()->id; $expectedrec->active = $state; $expectedrec->sortorder = 1; $this->assertEquals($expectedrec, $rec); @@ -52,7 +54,7 @@ class core_filterlib_testcase extends advanced_testcase { global $DB; $sortedfilters = $DB->get_records_menu('filter_active', - array('contextid' => context_system::instance()->id), 'sortorder', 'sortorder,filter'); + array('contextid' => \context_system::instance()->id), 'sortorder', 'sortorder,filter'); $testarray = array(); $index = 1; foreach ($filters as $filter) { @@ -93,7 +95,7 @@ class core_filterlib_testcase extends advanced_testcase { public function test_global_config_exception_on_invalid_state() { $this->resetAfterTest(); - $this->expectException(coding_exception::class); + $this->expectException(\coding_exception::class); filter_set_global_state('name', 0); } @@ -227,7 +229,7 @@ class core_filterlib_testcase extends advanced_testcase { $rec = reset($recs); unset($rec->id); unset($rec->sortorder); - $expectedrec = new stdClass(); + $expectedrec = new \stdClass(); $expectedrec->filter = $filter; $expectedrec->contextid = $contextid; $expectedrec->active = $state; @@ -269,15 +271,15 @@ class core_filterlib_testcase extends advanced_testcase { public function test_local_invalid_state_throws_exception() { $this->resetAfterTest(); // Exercise SUT. - $this->expectException(coding_exception::class); + $this->expectException(\coding_exception::class); filter_set_local_state('name', 123, -9999); } public function test_throws_exception_when_setting_global() { $this->resetAfterTest(); // Exercise SUT. - $this->expectException(coding_exception::class); - filter_set_local_state('name', context_system::instance()->id, TEXTFILTER_INHERIT); + $this->expectException(\coding_exception::class); + filter_set_local_state('name', \context_system::instance()->id, TEXTFILTER_INHERIT); } public function test_local_inherit_deletes_existing() { @@ -297,7 +299,7 @@ class core_filterlib_testcase extends advanced_testcase { $this->assertEquals(1, count($recs), 'More than one record returned %s.'); $rec = reset($recs); unset($rec->id); - $expectedrec = new stdClass(); + $expectedrec = new \stdClass(); $expectedrec->filter = $filter; $expectedrec->contextid = $context; $expectedrec->name = $name; @@ -341,9 +343,9 @@ class core_filterlib_testcase extends advanced_testcase { protected function setup_available_in_context_tests() { $course = $this->getDataGenerator()->create_course(array('category' => 1)); - $childcontext = context_coursecat::instance(1); - $childcontext2 = context_course::instance($course->id); - $syscontext = context_system::instance(); + $childcontext = \context_coursecat::instance(1); + $childcontext2 = \context_course::instance($course->id); + $syscontext = \context_system::instance(); return [ 'syscontext' => $syscontext, @@ -504,7 +506,7 @@ class core_filterlib_testcase extends advanced_testcase { $this->assertEquals(1, count($filters), 'More than one record returned %s.'); $rec = $filters[$filter]; unset($rec->id); - $expectedrec = new stdClass(); + $expectedrec = new \stdClass(); $expectedrec->filter = $filter; $expectedrec->localstate = $localstate; $expectedrec->inheritedstate = $inheritedstate; @@ -563,19 +565,19 @@ class core_filterlib_testcase extends advanced_testcase { 'syscontext' => $syscontext ] = $this->setup_available_in_context_tests(); // Exercise SUT. - $this->expectException(coding_exception::class); + $this->expectException(\coding_exception::class); filter_get_available_in_context($syscontext); } protected function setup_preload_activities_test() { - $syscontext = context_system::instance(); - $catcontext = context_coursecat::instance(1); + $syscontext = \context_system::instance(); + $catcontext = \context_coursecat::instance(1); $course = $this->getDataGenerator()->create_course(array('category' => 1)); - $coursecontext = context_course::instance($course->id); + $coursecontext = \context_course::instance($course->id); $page1 = $this->getDataGenerator()->create_module('page', array('course' => $course->id)); - $activity1context = context_module::instance($page1->cmid); + $activity1context = \context_module::instance($page1->cmid); $page2 = $this->getDataGenerator()->create_module('page', array('course' => $course->id)); - $activity2context = context_module::instance($page2->cmid); + $activity2context = \context_module::instance($page2->cmid); return [ 'syscontext' => $syscontext, 'catcontext' => $catcontext, @@ -590,7 +592,7 @@ class core_filterlib_testcase extends advanced_testcase { global $FILTERLIB_PRIVATE, $DB; // Use preload cache... - $FILTERLIB_PRIVATE = new stdClass(); + $FILTERLIB_PRIVATE = new \stdClass(); filter_preload_activities($modinfo); // Get data and check no queries are made. @@ -601,7 +603,7 @@ class core_filterlib_testcase extends advanced_testcase { $this->assertEquals($before, $after); // Repeat without cache and check it makes queries now. - $FILTERLIB_PRIVATE = new stdClass; + $FILTERLIB_PRIVATE = new \stdClass; $before = $DB->perf_get_reads(); $filters1 = filter_get_active_in_context($activity1context); $filters2 = filter_get_active_in_context($activity2context); @@ -623,7 +625,7 @@ class core_filterlib_testcase extends advanced_testcase { 'activity2context' => $activity2context ] = $this->setup_preload_activities_test(); // Get course and modinfo. - $modinfo = new course_modinfo($course, 2); + $modinfo = new \course_modinfo($course, 2); // Note: All the tests in this function check that the result from the // preloaded cache is the same as the result from calling the standard @@ -681,8 +683,8 @@ class core_filterlib_testcase extends advanced_testcase { // Setup fixture. filter_set_global_state('name', TEXTFILTER_ON); filter_set_global_state('other', TEXTFILTER_ON); - filter_set_local_config('name', context_system::instance()->id, 'settingname', 'A value'); - filter_set_local_config('other', context_system::instance()->id, 'settingname', 'Other value'); + filter_set_local_config('name', \context_system::instance()->id, 'settingname', 'A value'); + filter_set_local_config('other', \context_system::instance()->id, 'settingname', 'Other value'); set_config('configname', 'A config value', 'filter_name'); set_config('configname', 'Other config value', 'filter_other'); // Exercise SUT. @@ -692,10 +694,10 @@ class core_filterlib_testcase extends advanced_testcase { $this->assertTrue($DB->record_exists('filter_active', array('filter' => 'other'))); $this->assertEquals(1, $DB->count_records('filter_config')); $this->assertTrue($DB->record_exists('filter_config', array('filter' => 'other'))); - $expectedconfig = new stdClass; + $expectedconfig = new \stdClass; $expectedconfig->configname = 'Other config value'; $this->assertEquals($expectedconfig, get_config('filter_other')); - $this->assertEquals(get_config('filter_name'), new stdClass()); + $this->assertEquals(get_config('filter_name'), new \stdClass()); } public function test_filter_delete_all_for_context() { @@ -713,7 +715,7 @@ class core_filterlib_testcase extends advanced_testcase { filter_delete_all_for_context(123); // Validate. $this->assertEquals(1, $DB->count_records('filter_active')); - $this->assertTrue($DB->record_exists('filter_active', array('contextid' => context_system::instance()->id))); + $this->assertTrue($DB->record_exists('filter_active', array('contextid' => \context_system::instance()->id))); $this->assertEquals(1, $DB->count_records('filter_config')); $this->assertTrue($DB->record_exists('filter_config', array('filter' => 'other'))); } @@ -802,7 +804,7 @@ class core_filterlib_testcase extends advanced_testcase { $active = filter_get_active_state('glossary'); $this->assertEquals($active, TEXTFILTER_ON); - $systemcontext = context_system::instance(); + $systemcontext = \context_system::instance(); // Passing $systemcontext object. $active = filter_get_active_state('glossary', $systemcontext); $this->assertEquals($active, TEXTFILTER_ON); @@ -834,17 +836,17 @@ class core_filterlib_testcase extends advanced_testcase { $this->resetAfterTest(); filter_set_global_state('glossary', TEXTFILTER_ON); - $systemcontextid = context_system::instance()->id; + $systemcontextid = \context_system::instance()->id; $active = filter_get_active_state('glossary', $systemcontextid); $this->assertEquals($active, TEXTFILTER_ON); filter_set_global_state('glossary', TEXTFILTER_OFF); - $systemcontextid = context_system::instance()->id; + $systemcontextid = \context_system::instance()->id; $active = filter_get_active_state('glossary', $systemcontextid); $this->assertEquals($active, TEXTFILTER_OFF); filter_set_global_state('glossary', TEXTFILTER_DISABLED); - $systemcontextid = context_system::instance()->id; + $systemcontextid = \context_system::instance()->id; $active = filter_get_active_state('glossary', $systemcontextid); $this->assertEquals($active, TEXTFILTER_DISABLED); } diff --git a/lib/tests/formslib_test.php b/lib/tests/formslib_test.php index 50024b2a57c..08c3d42eb9c 100644 --- a/lib/tests/formslib_test.php +++ b/lib/tests/formslib_test.php @@ -17,12 +17,21 @@ /** * Unit tests for /lib/formslib.php. * - * @package core_form - * @category phpunit + * @package core + * @category test * @copyright 2011 Sam Hemelryk * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ +namespace core; + +use HTML_QuickForm_Rule_Range; +use moodleform; +use MoodleQuickForm_radio; +use MoodleQuickForm_Rule_Required; +use MoodleQuickForm_select; +use MoodleQuickForm_text; + defined('MOODLE_INTERNAL') || die(); global $CFG; @@ -31,8 +40,15 @@ require_once($CFG->libdir . '/form/radio.php'); require_once($CFG->libdir . '/form/select.php'); require_once($CFG->libdir . '/form/text.php'); - -class core_formslib_testcase extends advanced_testcase { +/** + * Unit tests for /lib/formslib.php. + * + * @package core + * @category test + * @copyright 2011 Sam Hemelryk + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +class formslib_test extends \advanced_testcase { public function test_require_rule() { global $CFG; diff --git a/lib/tests/gdlib_test.php b/lib/tests/gdlib_test.php index edc6d1df77b..d322d33d5cf 100644 --- a/lib/tests/gdlib_test.php +++ b/lib/tests/gdlib_test.php @@ -14,27 +14,17 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Test gd functionality. - * - * @package core - * @category phpunit - * @copyright 2015 Andrew Nicols - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ - -defined('MOODLE_INTERNAL') || die(); - +namespace core; /** * A set of tests for some of the gd functionality within Moodle. * * @package core - * @category phpunit + * @category test * @copyright 2015 Andrew Nicols * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class core_gdlib_testcase extends basic_testcase { +class gdlib_test extends \basic_testcase { private $fixturepath = null; diff --git a/lib/tests/googlelib_test.php b/lib/tests/googlelib_test.php index 4489fcf64cc..59241e76cd9 100644 --- a/lib/tests/googlelib_test.php +++ b/lib/tests/googlelib_test.php @@ -14,6 +14,11 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . +namespace core; + +use Google_Service_Exception; +use Google_Service_YouTube; + /** * Tests for google library * @@ -21,7 +26,7 @@ * @copyright 2021 Marina Glancy * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class core_googlelib_testcase extends advanced_testcase { +class googlelib_test extends \advanced_testcase { public function test_invalid_google_api_key() { global $CFG; diff --git a/lib/tests/gradelib_test.php b/lib/tests/gradelib_test.php index 37cd372dabb..9c4d1d8ce66 100644 --- a/lib/tests/gradelib_test.php +++ b/lib/tests/gradelib_test.php @@ -14,28 +14,29 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Unit tests for /lib/gradelib.php. - * - * @package core_grades - * @category phpunit - * @copyright 2012 Andrew Davis - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ +namespace core; defined('MOODLE_INTERNAL') || die(); global $CFG; require_once($CFG->libdir . '/gradelib.php'); -class core_gradelib_testcase extends advanced_testcase { +/** + * Unit tests for /lib/gradelib.php. + * + * @package core + * @category test + * @copyright 2012 Andrew Davis + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +class gradelib_test extends \advanced_testcase { public function test_grade_update_mod_grades() { $this->resetAfterTest(true); // Create a broken module instance. - $modinstance = new stdClass(); + $modinstance = new \stdClass(); $modinstance->modname = 'doesntexist'; $this->assertFalse(grade_update_mod_grades($modinstance)); @@ -67,17 +68,17 @@ class core_gradelib_testcase extends advanced_testcase { $course = $this->getDataGenerator()->create_course(); - $context = context_course::instance($course->id); + $context = \context_course::instance($course->id); // Add a grade letter to the course. - $letter = new stdClass(); + $letter = new \stdClass(); $letter->letter = 'M'; $letter->lowerboundary = '100'; $letter->contextid = $context->id; $DB->insert_record('grade_letters', $letter); // Pre-warm the cache, ensure that that the letter is cached. - $cache = cache::make('core', 'grade_letters'); + $cache = \cache::make('core', 'grade_letters'); // Check that the cache is empty beforehand. $letters = $cache->get($context->id); @@ -108,13 +109,13 @@ class core_gradelib_testcase extends advanced_testcase { $this->resetAfterTest(); - $category = core_course_category::create(array('name' => 'Cat1')); + $category = \core_course_category::create(array('name' => 'Cat1')); // Add a grade letter to the category. - $letter = new stdClass(); + $letter = new \stdClass(); $letter->letter = 'M'; $letter->lowerboundary = '100'; - $letter->contextid = context_coursecat::instance($category->id)->id; + $letter->contextid = \context_coursecat::instance($category->id)->id; $DB->insert_record('grade_letters', $letter); grade_course_category_delete($category->id, '', false); @@ -138,11 +139,11 @@ class core_gradelib_testcase extends advanced_testcase { // We need two grade items. $params = ['idnumber' => 'g1', 'courseid' => $course->id]; - $g1 = new grade_item($this->getDataGenerator()->create_grade_item($params)); + $g1 = new \grade_item($this->getDataGenerator()->create_grade_item($params)); unset($params['idnumber']); - $g2 = new grade_item($this->getDataGenerator()->create_grade_item($params)); + $g2 = new \grade_item($this->getDataGenerator()->create_grade_item($params)); - $category = new grade_category($this->getDataGenerator()->create_grade_category($params)); + $category = new \grade_category($this->getDataGenerator()->create_grade_category($params)); $catitem = $category->get_grade_item(); // Now set a calculation. @@ -174,11 +175,11 @@ class core_gradelib_testcase extends advanced_testcase { * Tests for the grade_get_date_for_user_grade function. * * @dataProvider grade_get_date_for_user_grade_provider - * @param stdClass $grade - * @param stdClass $user + * @param \stdClass $grade + * @param \stdClass $user * @param int $expected */ - public function test_grade_get_date_for_user_grade(stdClass $grade, stdClass $user, ?int $expected): void { + public function test_grade_get_date_for_user_grade(\stdClass $grade, \stdClass $user, ?int $expected): void { $this->assertEquals($expected, grade_get_date_for_user_grade($grade, $user)); } @@ -256,9 +257,9 @@ class core_gradelib_testcase extends advanced_testcase { // Setup some basics. $course = $this->getDataGenerator()->create_course(); - $context = context_course::instance($course->id); + $context = \context_course::instance($course->id); - $cache = cache::make('core', 'grade_letters'); + $cache = \cache::make('core', 'grade_letters'); $letters = $cache->get($context->id); // Make sure the cache is empty. @@ -281,16 +282,16 @@ class core_gradelib_testcase extends advanced_testcase { $this->resetAfterTest(); $course = $this->getDataGenerator()->create_course(); - $context = context_course::instance($course->id); + $context = \context_course::instance($course->id); - $cache = cache::make('core', 'grade_letters'); + $cache = \cache::make('core', 'grade_letters'); $letters = $cache->get($context->id); // Make sure the cache is empty. $this->assertFalse($letters); // Add a grade letter to the course. - $letter = new stdClass(); + $letter = new \stdClass(); $letter->letter = 'M'; $letter->lowerboundary = '100'; $letter->contextid = $context->id; diff --git a/lib/tests/grades_externallib_test.php b/lib/tests/grades_external_test.php similarity index 90% rename from lib/tests/grades_externallib_test.php rename to lib/tests/grades_external_test.php index 161849bad8b..e9ffeacd347 100644 --- a/lib/tests/grades_externallib_test.php +++ b/lib/tests/grades_external_test.php @@ -14,15 +14,9 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Unit tests for the grade API at /lib/classes/grades_external.php - * - * @package core_grades - * @category external - * @copyright 2012 Andrew Davis - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - * @since Moodle 2.7 - */ +namespace core; + +use core_grades_external; defined('MOODLE_INTERNAL') || die(); @@ -33,12 +27,14 @@ require_once($CFG->dirroot . '/webservice/tests/helpers.php'); /** * Grades functions unit tests * - * @package core_grades - * @category external + * Unit tests for the grade API at /lib/classes/grades_external.php + * + * @package core + * @category test * @copyright 2012 Andrew Davis * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class core_grades_external_testcase extends externallib_advanced_testcase { +class grades_external_test extends \externallib_advanced_testcase { /** * Load initial test information @@ -53,7 +49,7 @@ class core_grades_external_testcase extends externallib_advanced_testcase { // Adds a course, a teacher, 2 students, an assignment and grades for the students. $course = $this->getDataGenerator()->create_course(); - $coursecontext = context_course::instance($course->id); + $coursecontext = \context_course::instance($course->id); $studentrole = $DB->get_record('role', array('shortname' => 'student')); @@ -69,7 +65,7 @@ class core_grades_external_testcase extends externallib_advanced_testcase { $parent = $this->getDataGenerator()->create_user(); $this->setUser($parent); - $student1context = context_user::instance($student1->id); + $student1context = \context_user::instance($student1->id); // Creates a new role, gives it the capability and gives $USER that role. $parentroleid = $this->assignUserCapability('moodle/grade:viewall', $student1context->id); // Enrol the user in the course using the new role. @@ -85,7 +81,7 @@ class core_grades_external_testcase extends externallib_advanced_testcase { assign_grade_item_update($assignment, $studentgrades); // Insert a custom grade scale to be used by an outcome. - $gradescale = new grade_scale(); + $gradescale = new \grade_scale(); $gradescale->name = 'unittestscale3'; $gradescale->courseid = $course->id; $gradescale->userid = 0; @@ -94,15 +90,15 @@ class core_grades_external_testcase extends externallib_advanced_testcase { $gradescale->insert(); // Insert an outcome. - $data = new stdClass(); + $data = new \stdClass(); $data->courseid = $course->id; $data->fullname = 'Team work'; $data->shortname = 'Team work'; $data->scaleid = $gradescale->id; - $outcome = new grade_outcome($data, false); + $outcome = new \grade_outcome($data, false); $outcome->insert(); - $outcomegradeitem = new grade_item(); + $outcomegradeitem = new \grade_item(); $outcomegradeitem->itemname = $outcome->shortname; $outcomegradeitem->itemtype = 'mod'; $outcomegradeitem->itemmodule = 'assign'; @@ -119,7 +115,7 @@ class core_grades_external_testcase extends externallib_advanced_testcase { $outcomegradeitem->hidden = ''; $outcomegradeitem->insert(); - $assignmentgradeitem = grade_item::fetch( + $assignmentgradeitem = \grade_item::fetch( array( 'itemtype' => 'mod', 'itemmodule' => 'assign', @@ -162,7 +158,7 @@ class core_grades_external_testcase extends externallib_advanced_testcase { array(), array('grademax' => $changedmax) ); - $result = external_api::clean_returnvalue(core_grades_external::update_grades_returns(), $result); + $result = \external_api::clean_returnvalue(core_grades_external::update_grades_returns(), $result); $this->assertTrue($result == GRADE_UPDATE_OK); $grades = grade_get_grades($course->id, 'mod', 'assign', $assignment->id); $this->assertTrue($grades->items[0]->grademax == $changedmax); @@ -177,7 +173,7 @@ class core_grades_external_testcase extends externallib_advanced_testcase { 0, array(array('studentid' => $student1->id, 'grade' => $student1grade)) ); - $result = external_api::clean_returnvalue(core_grades_external::update_grades_returns(), $result); + $result = \external_api::clean_returnvalue(core_grades_external::update_grades_returns(), $result); $this->assertTrue($result == GRADE_UPDATE_OK); $grades = grade_get_grades($course->id, 'mod', 'assign', $assignment->id, array($student1->id)); $this->assertTrue($grades->items[0]->grades[$student1->id]->grade == $student1grade); @@ -196,7 +192,7 @@ class core_grades_external_testcase extends externallib_advanced_testcase { array('studentid' => $student2->id, 'grade' => $student2grade) ) ); - $result = external_api::clean_returnvalue(core_grades_external::update_grades_returns(), $result); + $result = \external_api::clean_returnvalue(core_grades_external::update_grades_returns(), $result); $this->assertTrue($result == GRADE_UPDATE_OK); $grades = grade_get_grades($course->id, 'mod', 'assign', $assignment->id, array($student1->id, $student2->id)); $this->assertTrue($grades->items[0]->grades[$student1->id]->grade == $student1grade); @@ -215,7 +211,7 @@ class core_grades_external_testcase extends externallib_advanced_testcase { array( array('studentid' => $student1->id, 'grade' => $student1grade)) ); $this->fail('moodle_exception expected'); - } catch (moodle_exception $ex) { + } catch (\moodle_exception $ex) { $this->assertTrue(true); } @@ -232,7 +228,7 @@ class core_grades_external_testcase extends externallib_advanced_testcase { array( array('studentid' => $student1->id, 'grade' => $student1grade)) ); $this->fail('moodle_exception expected'); - } catch (moodle_exception $ex) { + } catch (\moodle_exception $ex) { $this->assertTrue(true); } @@ -249,13 +245,13 @@ class core_grades_external_testcase extends externallib_advanced_testcase { array('hidden' => 1) ); $this->fail('moodle_exception expected'); - } catch (moodle_exception $ex) { + } catch (\moodle_exception $ex) { $this->assertTrue(true); } // Give the student role 'moodle/grade:hide' and they should now be able to hide the grade item. $studentrole = $DB->get_record('role', array('shortname' => 'student')); - $coursecontext = context_course::instance($course->id); + $coursecontext = \context_course::instance($course->id); assign_capability('moodle/grade:hide', CAP_ALLOW, $studentrole->id, $coursecontext->id); accesslib_clear_all_caches_for_unit_testing(); @@ -272,7 +268,7 @@ class core_grades_external_testcase extends externallib_advanced_testcase { array(), array('hidden' => 1) ); - $result = external_api::clean_returnvalue(core_grades_external::update_grades_returns(), $result); + $result = \external_api::clean_returnvalue(core_grades_external::update_grades_returns(), $result); $this->assertTrue($result == GRADE_UPDATE_OK); $grades = grade_get_grades($course->id, 'mod', 'assign', $assignment->id); $this->assertTrue($grades->items[0]->hidden == 1); @@ -292,7 +288,7 @@ class core_grades_external_testcase extends externallib_advanced_testcase { // Test the most basic gradecategory creation. $status1 = core_grades_external::create_gradecategory($course->id, 'Test Category 1', []); - $courseparentcat = new grade_category(['courseid' => $course->id, 'depth' => 1], true); + $courseparentcat = new \grade_category(['courseid' => $course->id, 'depth' => 1], true); $record1 = $DB->get_record('grade_categories', ['id' => $status1['categoryid']]); $this->assertEquals('Test Category 1', $record1->fullname); // Confirm that the parent category for this category is the top level category for the course. @@ -331,7 +327,7 @@ class core_grades_external_testcase extends externallib_advanced_testcase { ]; $status3 = core_grades_external::create_gradecategory($course->id, 'Test Category 3', $customopts); - $cat3 = new grade_category(['courseid' => $course->id, 'id' => $status3['categoryid']], true); + $cat3 = new \grade_category(['courseid' => $course->id, 'id' => $status3['categoryid']], true); $cat3->load_grade_item(); // Lets check all of the data is in the right shape. diff --git a/lib/tests/grading_externallib_test.php b/lib/tests/grading_external_test.php similarity index 96% rename from lib/tests/grading_externallib_test.php rename to lib/tests/grading_external_test.php index 7d2984facd1..2d1ef1f364d 100644 --- a/lib/tests/grading_externallib_test.php +++ b/lib/tests/grading_external_test.php @@ -14,6 +14,10 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . +namespace core; + +use core_grading_external; + defined('MOODLE_INTERNAL') || die(); global $CFG; @@ -23,12 +27,12 @@ require_once($CFG->dirroot . '/webservice/tests/helpers.php'); /** * Unit tests for the grading API defined in core_grading_external class. * - * @package core_grading - * @category external + * @package core + * @category test * @copyright 2013 Paul Charsley * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class core_grading_externallib_testcase extends externallib_advanced_testcase { +class grading_external_test extends \externallib_advanced_testcase { /** * Test get_definitions @@ -56,9 +60,9 @@ class core_grading_externallib_testcase extends externallib_advanced_testcase { $enrolid = $DB->insert_record('enrol', $manualenroldata); // Create a teacher and give them capabilities. - $coursecontext = context_course::instance($course->id); + $coursecontext = \context_course::instance($course->id); $roleid = $this->assignUserCapability('moodle/course:viewparticipants', $coursecontext->id, 3); - $modulecontext = context_module::instance($cm->cmid); + $modulecontext = \context_module::instance($cm->cmid); $this->assignUserCapability('mod/assign:grade', $modulecontext->id, $roleid); // Create the teacher's enrolment record. @@ -141,7 +145,7 @@ class core_grading_externallib_testcase extends externallib_advanced_testcase { $cmids = array ($cm->cmid); $areaname = 'submissions'; $result = core_grading_external::get_definitions($cmids, $areaname); - $result = external_api::clean_returnvalue(core_grading_external::get_definitions_returns(), $result); + $result = \external_api::clean_returnvalue(core_grading_external::get_definitions_returns(), $result); $this->assertEquals(1, count($result['areas'])); $this->assertEquals(1, count($result['areas'][0]['definitions'])); @@ -200,9 +204,9 @@ class core_grading_externallib_testcase extends externallib_advanced_testcase { $enrolid = $DB->insert_record('enrol', $manualenroldata); // Create a teacher and give them capabilities. - $coursecontext = context_course::instance($course->id); + $coursecontext = \context_course::instance($course->id); $roleid = $this->assignUserCapability('moodle/course:viewparticipants', $coursecontext->id, 3); - $modulecontext = context_module::instance($assign->cmid); + $modulecontext = \context_module::instance($assign->cmid); $this->assignUserCapability('mod/assign:grade', $modulecontext->id, $roleid); // Create the teacher's enrolment record. @@ -213,7 +217,7 @@ class core_grading_externallib_testcase extends externallib_advanced_testcase { // Create a student with an assignment grade. $student = self::getDataGenerator()->create_user(); - $assigngrade = new stdClass(); + $assigngrade = new \stdClass(); $assigngrade->assignment = $assign->id; $assigngrade->userid = $student->id; $assigngrade->timecreated = time(); @@ -286,7 +290,7 @@ class core_grading_externallib_testcase extends externallib_advanced_testcase { // Call the external function. $result = core_grading_external::get_gradingform_instances($definitionid, 0); - $result = external_api::clean_returnvalue(core_grading_external::get_gradingform_instances_returns(), $result); + $result = \external_api::clean_returnvalue(core_grading_external::get_gradingform_instances_returns(), $result); $this->assertEquals(1, count($result['instances'])); $this->assertEquals($USER->id, $result['instances'][0]['raterid']); @@ -315,8 +319,8 @@ class core_grading_externallib_testcase extends externallib_advanced_testcase { $params['course'] = $course->id; $instance = $generator->create_instance($params); $cm = get_coursemodule_from_instance('assign', $instance->id); - $context = context_module::instance($cm->id); - $coursecontext = context_course::instance($course->id); + $context = \context_module::instance($cm->id); + $coursecontext = \context_course::instance($course->id); // Create the teacher. $teacher = self::getDataGenerator()->create_user(); @@ -554,8 +558,8 @@ class core_grading_externallib_testcase extends externallib_advanced_testcase { $params['course'] = $course->id; $instance = $generator->create_instance($params); $cm = get_coursemodule_from_instance('assign', $instance->id); - $context = context_module::instance($cm->id); - $coursecontext = context_course::instance($course->id); + $context = \context_module::instance($cm->id); + $coursecontext = \context_course::instance($course->id); // Create the teacher. $teacher = self::getDataGenerator()->create_user(); diff --git a/lib/tests/grouplib_test.php b/lib/tests/grouplib_test.php index 2ed00e06b1f..f5a2bedc232 100644 --- a/lib/tests/grouplib_test.php +++ b/lib/tests/grouplib_test.php @@ -14,23 +14,17 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . +namespace core; + /** - * Tests groups subsystems. + * Unit tests for lib/grouplib.php * - * @package core_group - * @category phpunit + * @package core * @copyright 2007 onwards Martin Dougiamas (http://dougiamas.com) * @author Andrew Nicols * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ - -defined('MOODLE_INTERNAL') || die(); - -/** - * Unit tests for lib/grouplib.php - * @group core_group - */ -class core_grouplib_testcase extends advanced_testcase { +class grouplib_test extends \advanced_testcase { public function test_groups_get_group_by_idnumber() { $this->resetAfterTest(true); @@ -184,7 +178,7 @@ class core_grouplib_testcase extends advanced_testcase { $generator = $this->getDataGenerator(); $course = $generator->create_course(); - $coursecontext = context_course::instance($course->id); + $coursecontext = \context_course::instance($course->id); $student1 = $generator->create_user(); $student2 = $generator->create_user(); $plugin = enrol_get_plugin('manual'); @@ -376,7 +370,7 @@ class core_grouplib_testcase extends advanced_testcase { $generator = $this->getDataGenerator(); $course = $generator->create_course(); - $coursecontext = context_course::instance($course->id); + $coursecontext = \context_course::instance($course->id); $student1 = $generator->create_user(); $student2 = $generator->create_user(); $plugin = enrol_get_plugin('manual'); @@ -411,7 +405,7 @@ class core_grouplib_testcase extends advanced_testcase { $generator = $this->getDataGenerator(); $course = $generator->create_course(); - $coursecontext = context_course::instance($course->id); + $coursecontext = \context_course::instance($course->id); $student1 = $generator->create_user(); $student2 = $generator->create_user(); $plugin = enrol_get_plugin('manual'); @@ -444,7 +438,7 @@ class core_grouplib_testcase extends advanced_testcase { $generator = $this->getDataGenerator(); $course = $generator->create_course(); - $coursecontext = context_course::instance($course->id); + $coursecontext = \context_course::instance($course->id); $student1 = $generator->create_user(); $student2 = $generator->create_user(); $plugin = enrol_get_plugin('manual'); @@ -465,7 +459,7 @@ class core_grouplib_testcase extends advanced_testcase { groups_add_member($group->id, $student1->id); // Test with members at any group and with an invalid $context. - $syscontext = context_system::instance(); + $syscontext = \context_system::instance(); $this->expectException('coding_exception'); list($sql, $params) = groups_get_members_ids_sql(USERSWITHOUTGROUP, $syscontext); } @@ -759,7 +753,7 @@ class core_grouplib_testcase extends advanced_testcase { // Create a course category, course and groups. $cat = $generator->create_category(array('parent' => 0)); $course = $generator->create_course(array('category' => $cat->id)); - $coursecontext = context_course::instance($course->id); + $coursecontext = \context_course::instance($course->id); $group1 = $generator->create_group(array('courseid' => $course->id, 'name' => 'Group 1')); $group2 = $generator->create_group(array('courseid' => $course->id, 'name' => 'Group 2')); $group3 = $generator->create_group(array('courseid' => $course->id, 'name' => 'Group 3')); @@ -1011,7 +1005,7 @@ class core_grouplib_testcase extends advanced_testcase { // Generate data. $course = $this->getDataGenerator()->create_course(); - $record = new stdClass(); + $record = new \stdClass(); $record->courseid = $course->id; $group1 = $this->getDataGenerator()->create_group($record); $group2 = $this->getDataGenerator()->create_group($record); @@ -1245,7 +1239,7 @@ class core_grouplib_testcase extends advanced_testcase { protected function make_group_list($number) { $testgroups = array(); for ($a = 0; $a < $number; $a++) { - $grp = new stdClass(); + $grp = new \stdClass(); $grp->id = 100 + $a; $grp->name = 'test group ' . $grp->id; $testgroups[$grp->id] = $grp; @@ -1319,7 +1313,7 @@ class core_grouplib_testcase extends advanced_testcase { // Create a course category, course and groups. $cat = $generator->create_category(array('parent' => 0)); $course = $generator->create_course(array('category' => $cat->id)); - $coursecontext = context_course::instance($course->id); + $coursecontext = \context_course::instance($course->id); $group1 = $generator->create_group(array('courseid' => $course->id, 'name' => 'Group 1')); $group2 = $generator->create_group(array('courseid' => $course->id, 'name' => 'Group 2')); $group3 = $generator->create_group(array('courseid' => $course->id, 'name' => 'Group 3')); diff --git a/lib/tests/html2text_test.php b/lib/tests/html2text_test.php index 692481c83bf..af027171ecc 100644 --- a/lib/tests/html2text_test.php +++ b/lib/tests/html2text_test.php @@ -14,22 +14,19 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . +namespace core; + /** * Tests our html2text hacks * * Note: includes original tests from testweblib.php * * @package core - * @category phpunit + * @category test * @copyright 2012 Petr Skoda {@link http://skodak.org} * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ - - -defined('MOODLE_INTERNAL') || die(); - - -class core_html2text_testcase extends basic_testcase { +class html2text_test extends \basic_testcase { /** * ALT as image replacements. diff --git a/lib/tests/htmlpurifier_test.php b/lib/tests/htmlpurifier_test.php index f1ae916c93a..dc9137a5f8c 100644 --- a/lib/tests/htmlpurifier_test.php +++ b/lib/tests/htmlpurifier_test.php @@ -14,27 +14,17 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Unit tests for the HTMLPurifier integration - * - * @package core - * @category phpunit - * @copyright 2012 Petr Skoda {@link http://skodak.org} - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ - -defined('MOODLE_INTERNAL') || die(); - +namespace core; /** * HTMLPurifier test case * * @package core - * @category phpunit + * @category test * @copyright 2012 Petr Skoda {@link http://skodak.org} * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class core_htmlpurifier_testcase extends basic_testcase { +class htmlpurifier_test extends \basic_testcase { /** * Verify _blank target is allowed. diff --git a/lib/tests/ip_utils_test.php b/lib/tests/ip_utils_test.php index 238d45796b7..b142c0e2a30 100644 --- a/lib/tests/ip_utils_test.php +++ b/lib/tests/ip_utils_test.php @@ -14,15 +14,8 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Contains the test class testing the \core\ip_utils static helper class functions. - * - * @package core - * @copyright 2016 Jake Dallimore - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ -defined('MOODLE_INTERNAL') || die(); +namespace core; /** * This tests the static helper functions contained in the class '\core\ip_utils'. @@ -31,7 +24,7 @@ defined('MOODLE_INTERNAL') || die(); * @copyright 2016 Jake Dallimore * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class core_ip_utils_testcase extends basic_testcase { +class ip_utils_test extends \basic_testcase { /** * Test for \core\ip_utils::is_domain_name(). * diff --git a/lib/tests/jquery_test.php b/lib/tests/jquery_test.php index c436f35736a..b56226bfa88 100644 --- a/lib/tests/jquery_test.php +++ b/lib/tests/jquery_test.php @@ -14,19 +14,11 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . +namespace core; + /** * Test jQuery integration. * - * @package core - * @category phpunit - * @copyright 2014 Petr Skoda - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ - -defined('MOODLE_INTERNAL') || die(); - - -/** * This is not a complete jquery test, it just validates * Moodle integration is set up properly. * @@ -34,11 +26,11 @@ defined('MOODLE_INTERNAL') || die(); * verify it actually works in browser. * * @package core - * @category phpunit + * @category test * @copyright 2014 Petr Skoda * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class core_jquery_testcase extends basic_testcase { +class jquery_test extends \basic_testcase { public function test_plugins_file() { global $CFG; diff --git a/lib/tests/ldaplib_test.php b/lib/tests/ldaplib_test.php index 57909b9e27b..c0e33b1bd3f 100644 --- a/lib/tests/ldaplib_test.php +++ b/lib/tests/ldaplib_test.php @@ -14,21 +14,22 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * ldap tests. - * - * @package core - * @category phpunit - * @copyright Damyon Wiese, Iñaki Arenaza 2014 - * @license http://www.gnu.org/copyleft/gpl.html GNU Public License - */ +namespace core; defined('MOODLE_INTERNAL') || die(); global $CFG; require_once($CFG->libdir . '/ldaplib.php'); -class core_ldaplib_testcase extends advanced_testcase { +/** + * ldap tests. + * + * @package core + * @category test + * @copyright Damyon Wiese, Iñaki Arenaza 2014 + * @license http://www.gnu.org/copyleft/gpl.html GNU Public License + */ +class ldaplib_test extends \advanced_testcase { public function test_ldap_addslashes() { // See http://tools.ietf.org/html/rfc4514#section-5.2 if you want diff --git a/lib/tests/lock_config_test.php b/lib/tests/lock_config_test.php index 611eca57cdd..39c0dab3326 100644 --- a/lib/tests/lock_config_test.php +++ b/lib/tests/lock_config_test.php @@ -14,27 +14,17 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * lock unit tests - * - * @package core - * @category lock - * @copyright 2013 Damyon Wiese - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ - -defined('MOODLE_INTERNAL') || die(); - +namespace core; /** * Unit tests for our locking configuration. * * @package core - * @category lock + * @category test * @copyright 2013 Damyon Wiese * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class lock_config_testcase extends advanced_testcase { +class lock_config_test extends \advanced_testcase { /** * Tests the static parse charset method @@ -62,7 +52,7 @@ class lock_config_testcase extends advanced_testcase { try { $factory = \core\lock\lock_config::get_lock_factory('cache'); $this->fail('Exception expected'); - } catch (moodle_exception $ex) { + } catch (\moodle_exception $ex) { $this->assertInstanceOf('coding_exception', $ex); } @@ -77,7 +67,7 @@ class lock_config_testcase extends advanced_testcase { try { $factory = \core\lock\lock_config::get_lock_factory('cache'); $this->fail('Exception expected'); - } catch (moodle_exception $ex) { + } catch (\moodle_exception $ex) { $this->assertInstanceOf('coding_exception', $ex); } diff --git a/lib/tests/lock_test.php b/lib/tests/lock_test.php index d7c32111223..39ec94b9a53 100644 --- a/lib/tests/lock_test.php +++ b/lib/tests/lock_test.php @@ -14,17 +14,7 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * lock unit tests - * - * @package core - * @category test - * @copyright 2013 Damyon Wiese - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ - -defined('MOODLE_INTERNAL') || die(); - +namespace core; /** * Unit tests for our locking implementations. @@ -34,7 +24,7 @@ defined('MOODLE_INTERNAL') || die(); * @copyright 2013 Damyon Wiese * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class lock_testcase extends advanced_testcase { +class lock_test extends \advanced_testcase { /** * Some lock types will store data in the database. diff --git a/lib/tests/markdown_test.php b/lib/tests/markdown_test.php index af4d282ebe8..3f75534e99b 100644 --- a/lib/tests/markdown_test.php +++ b/lib/tests/markdown_test.php @@ -14,19 +14,11 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . +namespace core; + /** * Test markdown text format. * - * @package core - * @category phpunit - * @copyright 2012 Petr Skoda {@link http://skodak.org} - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ - -defined('MOODLE_INTERNAL') || die(); - - -/** * This is not a complete markdown test, it just validates * Moodle integration works. * @@ -34,11 +26,11 @@ defined('MOODLE_INTERNAL') || die(); * for more format information. * * @package core - * @category phpunit + * @category test * @copyright 2012 Petr Skoda {@link http://skodak.org} * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class core_markdown_testcase extends basic_testcase { +class markdown_test extends \basic_testcase { public function test_paragraphs() { $text = "one\n\ntwo"; diff --git a/lib/tests/mathslib_test.php b/lib/tests/mathslib_test.php index b1e71f7a4e3..8e8368add18 100644 --- a/lib/tests/mathslib_test.php +++ b/lib/tests/mathslib_test.php @@ -14,6 +14,15 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . +namespace core; + +use calc_formula; + +defined('MOODLE_INTERNAL') || die(); + +global $CFG; +require_once($CFG->libdir . '/mathslib.php'); + /** * Unit tests of mathslib wrapper and underlying EvalMath library. * @@ -22,14 +31,7 @@ * @copyright 2007 Petr Skoda {@link http://skodak.org} * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ - -defined('MOODLE_INTERNAL') || die(); - -global $CFG; -require_once($CFG->libdir . '/mathslib.php'); - - -class core_mathslib_testcase extends basic_testcase { +class mathslib_test extends \basic_testcase { /** * Tests the basic formula evaluation. diff --git a/lib/tests/medialib_test.php b/lib/tests/medialib_test.php index 833fadbfb1b..e95bda6f679 100644 --- a/lib/tests/medialib_test.php +++ b/lib/tests/medialib_test.php @@ -14,6 +14,14 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . +namespace core; + +use core_media_manager; +use media_test_plugin; + +defined('MOODLE_INTERNAL') || die(); +require_once(__DIR__ . '/fixtures/testable_core_media_player.php'); + /** * Test classes for handling embedded media (audio/video). * @@ -22,14 +30,7 @@ * @copyright 2012 The Open University * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ - -defined('MOODLE_INTERNAL') || die(); -require_once(__DIR__ . '/fixtures/testable_core_media_player.php'); - -/** - * Test script for media embedding. - */ -class core_medialib_testcase extends advanced_testcase { +class medialib_test extends \advanced_testcase { /** * Pre-test setup. Preserves $CFG. @@ -55,7 +56,7 @@ class core_medialib_testcase extends advanced_testcase { */ private function pretend_to_be_safari() { // Pretend to be using Safari browser (must support mp4 for tests to work). - core_useragent::instance(true, 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; de-at) ' . + \core_useragent::instance(true, 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; de-at) ' . 'AppleWebKit/533.21.1 (KHTML, like Gecko) Version/5.0.5 Safari/533.21.1'); } @@ -64,7 +65,7 @@ class core_medialib_testcase extends advanced_testcase { */ private function pretend_to_be_firefox() { // Pretend to be using Firefox browser (must support ogg for tests to work). - core_useragent::instance(true, 'Mozilla/5.0 (X11; Linux x86_64; rv:46.0) Gecko/20100101 Firefox/46.0 '); + \core_useragent::instance(true, 'Mozilla/5.0 (X11; Linux x86_64; rv:46.0) Gecko/20100101 Firefox/46.0 '); } /** @@ -73,11 +74,11 @@ class core_medialib_testcase extends advanced_testcase { public function test_get_filename() { $manager = core_media_manager::instance(); - $this->assertSame('frog.mp4', $manager->get_filename(new moodle_url( + $this->assertSame('frog.mp4', $manager->get_filename(new \moodle_url( '/pluginfile.php/312/mod_page/content/7/frog.mp4'))); // This should work even though slasharguments is true, because we want // it to support 'legacy' links if somebody toggles the option later. - $this->assertSame('frog.mp4', $manager->get_filename(new moodle_url( + $this->assertSame('frog.mp4', $manager->get_filename(new \moodle_url( '/pluginfile.php?file=/312/mod_page/content/7/frog.mp4'))); } @@ -87,13 +88,13 @@ class core_medialib_testcase extends advanced_testcase { public function test_get_extension() { $manager = core_media_manager::instance(); - $this->assertSame('mp4', $manager->get_extension(new moodle_url( + $this->assertSame('mp4', $manager->get_extension(new \moodle_url( '/pluginfile.php/312/mod_page/content/7/frog.mp4'))); - $this->assertSame('', $manager->get_extension(new moodle_url( + $this->assertSame('', $manager->get_extension(new \moodle_url( '/pluginfile.php/312/mod_page/content/7/frog'))); - $this->assertSame('mp4', $manager->get_extension(new moodle_url( + $this->assertSame('mp4', $manager->get_extension(new \moodle_url( '/pluginfile.php?file=/312/mod_page/content/7/frog.mp4'))); - $this->assertSame('', $manager->get_extension(new moodle_url( + $this->assertSame('', $manager->get_extension(new \moodle_url( '/pluginfile.php?file=/312/mod_page/content/7/frog'))); } @@ -104,9 +105,9 @@ class core_medialib_testcase extends advanced_testcase { $test = new media_test_plugin(1, 13, ['tst', 'test']); // Some example URLs. - $supported1 = new moodle_url('http://example.org/1.test'); - $supported2 = new moodle_url('http://example.org/2.TST'); - $unsupported = new moodle_url('http://example.org/2.jpg'); + $supported1 = new \moodle_url('http://example.org/1.test'); + $supported2 = new \moodle_url('http://example.org/2.TST'); + $unsupported = new \moodle_url('http://example.org/2.jpg'); // No URLs => none. $result = $test->list_supported_urls(array()); @@ -163,7 +164,7 @@ class core_medialib_testcase extends advanced_testcase { */ public function test_can_embed_url() { // All players are initially disabled, so mp4 cannot be rendered. - $url = new moodle_url('http://example.org/test.mp4'); + $url = new \moodle_url('http://example.org/test.mp4'); $manager = core_media_manager::instance(); $this->assertFalse($manager->can_embed_url($url)); @@ -195,7 +196,7 @@ class core_medialib_testcase extends advanced_testcase { $link = 'mediafallbacklink'; $test = 'mediaplugin_test'; - $url = new moodle_url('http://example.org/test.mp4'); + $url = new \moodle_url('http://example.org/test.mp4'); // All plugins disabled, NOLINK option. \core\plugininfo\media::set_enabled_plugins(''); @@ -219,7 +220,7 @@ class core_medialib_testcase extends advanced_testcase { $mediaformats = array('mp3', 'mp4'); foreach ($mediaformats as $format) { - $url = new moodle_url('http://example.org/test.' . $format); + $url = new \moodle_url('http://example.org/test.' . $format); $textwithlink = $manager->embed_url($url); $textwithoutlink = $manager->embed_url($url, 0, 0, '', array(core_media_manager::OPTION_NO_LINK => true)); @@ -262,12 +263,12 @@ class core_medialib_testcase extends advanced_testcase { $manager = core_media_manager::instance(); // Without any options... - $url = new moodle_url('http://example.org/test.swf'); + $url = new \moodle_url('http://example.org/test.swf'); $t = $manager->embed_url($url); $this->assertStringNotContainsString('', $t); // ...and with the 'no it's safe, I checked it' option. - $url = new moodle_url('http://example.org/test.swf'); + $url = new \moodle_url('http://example.org/test.swf'); $t = $manager->embed_url($url, '', 0, 0, array(core_media_manager::OPTION_TRUSTED => true)); $this->assertStringNotContainsString('', $t); } @@ -286,7 +287,7 @@ class core_medialib_testcase extends advanced_testcase { $manager = core_media_manager::instance(); // Format: mp3. - $url = new moodle_url('http://example.org/pluginfile.php?file=x/y/z/test.mp3'); + $url = new \moodle_url('http://example.org/pluginfile.php?file=x/y/z/test.mp3'); $t = $manager->embed_url($url); $this->assertStringContainsString('', $t); } @@ -303,13 +304,13 @@ class core_medialib_testcase extends advanced_testcase { $options = array(core_media_manager::OPTION_FALLBACK_TO_BLANK => true); // Embed that does match something should still include the link too. - $url = new moodle_url('http://example.org/test.ogg'); + $url = new \moodle_url('http://example.org/test.ogg'); $t = $manager->embed_url($url, '', 0, 0, $options); $this->assertStringContainsString('', $t); $this->assertStringContainsString('mediafallbacklink', $t); // Embed that doesn't match something should be totally blank. - $url = new moodle_url('http://example.org/test.mp4'); + $url = new \moodle_url('http://example.org/test.mp4'); $t = $manager->embed_url($url, '', 0, 0, $options); $this->assertSame('', $t); } @@ -328,7 +329,7 @@ class core_medialib_testcase extends advanced_testcase { // through. \core\plugininfo\media::set_enabled_plugins('html5video'); $manager = core_media_manager::instance(); - $url = new moodle_url('http://example.org/test.mp4'); + $url = new \moodle_url('http://example.org/test.mp4'); // HTML5 default size - specifies core width and does not specify height. $t = $manager->embed_url($url); @@ -341,7 +342,7 @@ class core_medialib_testcase extends advanced_testcase { $this->assertStringContainsString('height="101"', $t); // HTML5 size specified in url, overrides call. - $url = new moodle_url('http://example.org/test.mp4?d=123x456'); + $url = new \moodle_url('http://example.org/test.mp4?d=123x456'); $t = $manager->embed_url($url, '', '666', '101'); $this->assertStringContainsString('width="123"', $t); $this->assertStringContainsString('height="456"', $t); @@ -357,7 +358,7 @@ class core_medialib_testcase extends advanced_testcase { // html5video. \core\plugininfo\media::set_enabled_plugins('html5video'); $manager = core_media_manager::instance(); - $url = new moodle_url('http://example.org/test.mp4'); + $url = new \moodle_url('http://example.org/test.mp4'); // HTML5 default name - use filename. $t = $manager->embed_url($url); @@ -414,10 +415,10 @@ class core_medialib_testcase extends advanced_testcase { // MP4, OGV, WebM and FLV. $urls = array( - new moodle_url('http://example.org/test.mp4'), - new moodle_url('http://example.org/test.ogv'), - new moodle_url('http://example.org/test.webm'), - new moodle_url('http://example.org/test.flv'), + new \moodle_url('http://example.org/test.mp4'), + new \moodle_url('http://example.org/test.ogv'), + new \moodle_url('http://example.org/test.webm'), + new \moodle_url('http://example.org/test.flv'), ); // Enable html5 and "test" ("test" first). @@ -452,14 +453,14 @@ class core_medialib_testcase extends advanced_testcase { * Make sure the instance() method returns singleton for the same page and different object for another page */ public function test_initialise() { - $moodlepage1 = new moodle_page(); + $moodlepage1 = new \moodle_page(); $mediamanager1 = core_media_manager::instance($moodlepage1); $mediamanager2 = core_media_manager::instance($moodlepage1); $this->assertSame($mediamanager1, $mediamanager2); - $moodlepage3 = new moodle_page(); + $moodlepage3 = new \moodle_page(); $mediamanager3 = core_media_manager::instance($moodlepage3); $this->assertNotSame($mediamanager1, $mediamanager3); @@ -473,7 +474,7 @@ class core_medialib_testcase extends advanced_testcase { * @return string Comma-separated list of players */ public function get_players_test($manager) { - $method = new ReflectionMethod("core_media_manager", "get_players"); + $method = new \ReflectionMethod("core_media_manager", "get_players"); $method->setAccessible(true); $players = $method->invoke($manager); $out = ''; diff --git a/lib/tests/message_test.php b/lib/tests/message_test.php index b6e8fa2714d..11b3e8b3f11 100644 --- a/lib/tests/message_test.php +++ b/lib/tests/message_test.php @@ -14,28 +14,19 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Test classes for \core\message\message. - * - * @package core_message - * @category test - * @copyright 2015 onwards Ankit Agarwal - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ - -defined('MOODLE_INTERNAL') || die(); - -global $CFG; +namespace core; /** * Test script for message class. * - * @package core_message + * Test classes for \core\message\message. + * + * @package core * @category test * @copyright 2015 onwards Ankit Agarwal * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class core_message_testcase extends advanced_testcase { +class message_test extends \advanced_testcase { /** * Test the method get_eventobject_for_processor(). @@ -68,8 +59,8 @@ class core_message_testcase extends advanced_testcase { $message->set_additional_content('test', $content); // Create a file instance. - $usercontext = context_user::instance($user->id); - $file = new stdClass; + $usercontext = \context_user::instance($user->id); + $file = new \stdClass; $file->contextid = $usercontext->id; $file->component = 'user'; $file->filearea = 'private'; @@ -82,49 +73,49 @@ class core_message_testcase extends advanced_testcase { $file = $fs->create_file_from_string($file, 'file1 content'); $message->attachment = $file; - $stdclass = $message->get_eventobject_for_processor('test'); + $stdClass = $message->get_eventobject_for_processor('test'); - $this->assertSame($message->courseid, $stdclass->courseid); - $this->assertSame($message->component, $stdclass->component); - $this->assertSame($message->name, $stdclass->name); - $this->assertSame($message->userfrom, $stdclass->userfrom); - $this->assertSame($message->userto, $stdclass->userto); - $this->assertSame($message->subject, $stdclass->subject); - $this->assertSame(' test ' . $message->fullmessage . ' test ', $stdclass->fullmessage); - $this->assertSame(' test ' . $message->fullmessagehtml . ' test ', $stdclass->fullmessagehtml); - $this->assertSame(' test ' . $message->smallmessage . ' test ', $stdclass->smallmessage); - $this->assertSame($message->notification, $stdclass->notification); - $this->assertSame($message->contexturl, $stdclass->contexturl); - $this->assertSame($message->contexturlname, $stdclass->contexturlname); - $this->assertSame($message->replyto, $stdclass->replyto); - $this->assertSame($message->replytoname, $stdclass->replytoname); - $this->assertSame($message->attachname, $stdclass->attachname); + $this->assertSame($message->courseid, $stdClass->courseid); + $this->assertSame($message->component, $stdClass->component); + $this->assertSame($message->name, $stdClass->name); + $this->assertSame($message->userfrom, $stdClass->userfrom); + $this->assertSame($message->userto, $stdClass->userto); + $this->assertSame($message->subject, $stdClass->subject); + $this->assertSame(' test ' . $message->fullmessage . ' test ', $stdClass->fullmessage); + $this->assertSame(' test ' . $message->fullmessagehtml . ' test ', $stdClass->fullmessagehtml); + $this->assertSame(' test ' . $message->smallmessage . ' test ', $stdClass->smallmessage); + $this->assertSame($message->notification, $stdClass->notification); + $this->assertSame($message->contexturl, $stdClass->contexturl); + $this->assertSame($message->contexturlname, $stdClass->contexturlname); + $this->assertSame($message->replyto, $stdClass->replyto); + $this->assertSame($message->replytoname, $stdClass->replytoname); + $this->assertSame($message->attachname, $stdClass->attachname); // Extra content for fullmessage only. $content = array('fullmessage' => array('header' => ' test ', 'footer' => ' test ')); $message->set_additional_content('test', $content); - $stdclass = $message->get_eventobject_for_processor('test'); - $this->assertSame(' test ' . $message->fullmessage . ' test ', $stdclass->fullmessage); - $this->assertSame($message->fullmessagehtml, $stdclass->fullmessagehtml); - $this->assertSame($message->smallmessage, $stdclass->smallmessage); + $stdClass = $message->get_eventobject_for_processor('test'); + $this->assertSame(' test ' . $message->fullmessage . ' test ', $stdClass->fullmessage); + $this->assertSame($message->fullmessagehtml, $stdClass->fullmessagehtml); + $this->assertSame($message->smallmessage, $stdClass->smallmessage); // Extra content for fullmessagehtml and smallmessage only. $content = array('fullmessagehtml' => array('header' => ' test ', 'footer' => ' test '), 'smallmessage' => array('header' => ' testsmall ', 'footer' => ' testsmall ')); $message->set_additional_content('test', $content); - $stdclass = $message->get_eventobject_for_processor('test'); - $this->assertSame($message->fullmessage, $stdclass->fullmessage); - $this->assertSame(' test ' . $message->fullmessagehtml . ' test ', $stdclass->fullmessagehtml); - $this->assertSame(' testsmall ' . $message->smallmessage . ' testsmall ', $stdclass->smallmessage); + $stdClass = $message->get_eventobject_for_processor('test'); + $this->assertSame($message->fullmessage, $stdClass->fullmessage); + $this->assertSame(' test ' . $message->fullmessagehtml . ' test ', $stdClass->fullmessagehtml); + $this->assertSame(' testsmall ' . $message->smallmessage . ' testsmall ', $stdClass->smallmessage); // Extra content for * and smallmessage. $content = array('*' => array('header' => ' test ', 'footer' => ' test '), 'smallmessage' => array('header' => ' testsmall ', 'footer' => ' testsmall ')); $message->set_additional_content('test', $content); - $stdclass = $message->get_eventobject_for_processor('test'); - $this->assertSame(' test ' . $message->fullmessage . ' test ', $stdclass->fullmessage); - $this->assertSame(' test ' . $message->fullmessagehtml . ' test ', $stdclass->fullmessagehtml); - $this->assertSame(' testsmall ' . ' test ' . $message->smallmessage . ' test ' . ' testsmall ', $stdclass->smallmessage); + $stdClass = $message->get_eventobject_for_processor('test'); + $this->assertSame(' test ' . $message->fullmessage . ' test ', $stdClass->fullmessage); + $this->assertSame(' test ' . $message->fullmessagehtml . ' test ', $stdClass->fullmessagehtml); + $this->assertSame(' testsmall ' . ' test ' . $message->smallmessage . ' test ' . ' testsmall ', $stdClass->smallmessage); } /** diff --git a/lib/tests/messageinbound_test.php b/lib/tests/messageinbound_test.php index 6e8cb5b8225..ab70d2cb3ea 100644 --- a/lib/tests/messageinbound_test.php +++ b/lib/tests/messageinbound_test.php @@ -15,27 +15,31 @@ // along with Moodle. If not, see . /** + * Test script for message class. + * * Test classes for \core\message\inbound. * - * @package core_message + * @package core * @category test * @copyright 2015 Andrew Nicols * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -defined('MOODLE_INTERNAL') || die(); +namespace core; -global $CFG; +defined('MOODLE_INTERNAL') || die(); /** * Test script for message class. * - * @package core_message + * Test classes for \core\message\inbound. + * + * @package core * @category test * @copyright 2015 Andrew Nicols * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class core_messageinbound_testcase extends advanced_testcase { +class messageinbound_test extends \advanced_testcase { /** * @dataProvider message_inbound_handler_trim_testprovider @@ -43,9 +47,9 @@ class core_messageinbound_testcase extends advanced_testcase { public function test_messageinbound_handler_trim($file, $source, $expectedplain, $expectedhtml) { $this->resetAfterTest(); - $mime = Horde_Mime_Part::parseMessage($source); + $mime = \Horde_Mime_Part::parseMessage($source); if ($plainpartid = $mime->findBody('plain')) { - $messagedata = new stdClass(); + $messagedata = new \stdClass(); $messagedata->plain = $mime->getPart($plainpartid)->getContents(); $messagedata->html = ''; @@ -58,7 +62,7 @@ class core_messageinbound_testcase extends advanced_testcase { } if ($htmlpartid = $mime->findBody('html')) { - $messagedata = new stdClass(); + $messagedata = new \stdClass(); $messagedata->plain = ''; $messagedata->html = $mime->getPart($htmlpartid)->getContents(); @@ -128,7 +132,7 @@ class core_messageinbound_testcase extends advanced_testcase { } if (null === $section) { if (!isset($sections[$token])) { - throw new coding_exception(sprintf( + throw new \coding_exception(sprintf( 'The test file "%s" should not contain a section named "%s".', basename($file), $token @@ -143,7 +147,7 @@ class core_messageinbound_testcase extends advanced_testcase { } foreach ($sections as $section => $required) { if ($required && !isset($data[$section])) { - throw new coding_exception(sprintf( + throw new \coding_exception(sprintf( 'The test file "%s" must have a section named "%s".', str_replace($fixturesdir.'/', '', $file), $section @@ -167,5 +171,5 @@ class test_handler extends \core\message\inbound\handler { public function get_description() {} - public function process_message(stdClass $record, stdClass $messagedata) {} + public function process_message(\stdClass $record, \stdClass $messagedata) {} } diff --git a/lib/tests/minify_test.php b/lib/tests/minify_test.php index 173ff0a9603..679c19b3be9 100644 --- a/lib/tests/minify_test.php +++ b/lib/tests/minify_test.php @@ -14,22 +14,21 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * core_minify related tests. - * - * @package core - * @category phpunit - * @copyright 2013 Petr Skoda {@link http://skodak.org} - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ - -defined('MOODLE_INTERNAL') || die(); +namespace core; +use core_minify; /** * Class core_minify_testcase. + * + * core_minify related tests. + * + * @package core + * @category test + * @copyright 2013 Petr Skoda {@link http://skodak.org} + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class core_minify_testcase extends advanced_testcase { +class minify_test extends \advanced_testcase { public function test_css() { $css = " body { diff --git a/lib/tests/moodle_page_test.php b/lib/tests/moodle_page_test.php index 0d561ed5931..e70bd262805 100644 --- a/lib/tests/moodle_page_test.php +++ b/lib/tests/moodle_page_test.php @@ -18,20 +18,31 @@ * Tests for the moodle_page class. * * @package core - * @category phpunit + * @category test * @copyright 2009 Tim Hunt * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - * @coversDefaultClass \moodle_page */ +namespace core; + +use moodle_page; + defined('MOODLE_INTERNAL') || die(); global $CFG; require_once($CFG->libdir . '/pagelib.php'); require_once($CFG->libdir . '/blocklib.php'); - -class core_moodle_page_testcase extends advanced_testcase { +/** + * Tests for the moodle_page class. + * + * @package core + * @category test + * @copyright 2009 Tim Hunt + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + * @coversDefaultClass \moodle_page + */ +class moodle_page_test extends \advanced_testcase { /** * @var testable_moodle_page @@ -53,7 +64,7 @@ class core_moodle_page_testcase extends advanced_testcase { public function test_setting_course_works() { // Setup fixture. $course = $this->getDataGenerator()->create_course(); - $this->testpage->set_context(context_system::instance()); // Avoid trying to set the context. + $this->testpage->set_context(\context_system::instance()); // Avoid trying to set the context. // Exercise SUT. $this->testpage->set_course($course); // Validated. @@ -64,7 +75,7 @@ class core_moodle_page_testcase extends advanced_testcase { global $COURSE, $PAGE; // Setup fixture. $course = $this->getDataGenerator()->create_course(); - $this->testpage->set_context(context_system::instance()); // Avoid trying to set the context. + $this->testpage->set_context(\context_system::instance()); // Avoid trying to set the context. $PAGE = $this->testpage; // Exercise SUT. $this->testpage->set_course($course); @@ -77,7 +88,7 @@ class core_moodle_page_testcase extends advanced_testcase { $originalcourse = $COURSE; // Setup fixture. $course = $this->getDataGenerator()->create_course(); - $this->testpage->set_context(context_system::instance()); // Avoid trying to set the context. + $this->testpage->set_context(\context_system::instance()); // Avoid trying to set the context. // Exercise SUT. $this->testpage->set_course($course); // Validated. @@ -86,38 +97,38 @@ class core_moodle_page_testcase extends advanced_testcase { public function test_cannot_set_course_once_theme_set() { // Setup fixture. - $this->testpage->force_theme(theme_config::DEFAULT_THEME); + $this->testpage->force_theme(\theme_config::DEFAULT_THEME); $course = $this->getDataGenerator()->create_course(); // Exercise SUT. - $this->expectException(coding_exception::class); + $this->expectException(\coding_exception::class); $this->testpage->set_course($course); } public function test_cannot_set_category_once_theme_set() { // Setup fixture. - $this->testpage->force_theme(theme_config::DEFAULT_THEME); + $this->testpage->force_theme(\theme_config::DEFAULT_THEME); // Exercise SUT. - $this->expectException(coding_exception::class); + $this->expectException(\coding_exception::class); $this->testpage->set_category_by_id(123); } public function test_cannot_set_category_once_course_set() { // Setup fixture. $course = $this->getDataGenerator()->create_course(); - $this->testpage->set_context(context_system::instance()); // Avoid trying to set the context. + $this->testpage->set_context(\context_system::instance()); // Avoid trying to set the context. $this->testpage->set_course($course); // Exercise SUT. - $this->expectException(coding_exception::class); + $this->expectException(\coding_exception::class); $this->testpage->set_category_by_id(123); } public function test_categories_array_empty_for_front_page() { global $SITE; // Setup fixture. - $this->testpage->set_context(context_system::instance()); // Avoid trying to set the context. + $this->testpage->set_context(\context_system::instance()); // Avoid trying to set the context. $this->testpage->set_course($SITE); // Exercise SUT and validate. $this->assertEquals(array(), $this->testpage->categories); @@ -125,25 +136,25 @@ class core_moodle_page_testcase extends advanced_testcase { public function test_set_state_normal_path() { $course = $this->getDataGenerator()->create_course(); - $this->testpage->set_context(context_system::instance()); + $this->testpage->set_context(\context_system::instance()); $this->testpage->set_course($course); - $this->assertEquals(moodle_page::STATE_BEFORE_HEADER, $this->testpage->state); + $this->assertEquals(\moodle_page::STATE_BEFORE_HEADER, $this->testpage->state); - $this->testpage->set_state(moodle_page::STATE_PRINTING_HEADER); - $this->assertEquals(moodle_page::STATE_PRINTING_HEADER, $this->testpage->state); + $this->testpage->set_state(\moodle_page::STATE_PRINTING_HEADER); + $this->assertEquals(\moodle_page::STATE_PRINTING_HEADER, $this->testpage->state); - $this->testpage->set_state(moodle_page::STATE_IN_BODY); - $this->assertEquals(moodle_page::STATE_IN_BODY, $this->testpage->state); + $this->testpage->set_state(\moodle_page::STATE_IN_BODY); + $this->assertEquals(\moodle_page::STATE_IN_BODY, $this->testpage->state); - $this->testpage->set_state(moodle_page::STATE_DONE); - $this->assertEquals(moodle_page::STATE_DONE, $this->testpage->state); + $this->testpage->set_state(\moodle_page::STATE_DONE); + $this->assertEquals(\moodle_page::STATE_DONE, $this->testpage->state); } public function test_set_state_cannot_skip_one() { // Exercise SUT. - $this->expectException(coding_exception::class); - $this->testpage->set_state(moodle_page::STATE_IN_BODY); + $this->expectException(\coding_exception::class); + $this->testpage->set_state(\moodle_page::STATE_IN_BODY); } public function test_header_printed_false_initially() { @@ -153,12 +164,12 @@ class core_moodle_page_testcase extends advanced_testcase { public function test_header_printed_becomes_true() { $course = $this->getDataGenerator()->create_course(); - $this->testpage->set_context(context_system::instance()); + $this->testpage->set_context(\context_system::instance()); $this->testpage->set_course($course); // Exercise SUT. - $this->testpage->set_state(moodle_page::STATE_PRINTING_HEADER); - $this->testpage->set_state(moodle_page::STATE_IN_BODY); + $this->testpage->set_state(\moodle_page::STATE_PRINTING_HEADER); + $this->testpage->set_state(\moodle_page::STATE_IN_BODY); // Validated. $this->assertTrue($this->testpage->headerprinted); } @@ -166,7 +177,7 @@ class core_moodle_page_testcase extends advanced_testcase { public function test_set_context() { // Setup fixture. $course = $this->getDataGenerator()->create_course(); - $context = context_course::instance($course->id); + $context = \context_course::instance($course->id); // Exercise SUT. $this->testpage->set_context($context); // Validated. @@ -269,7 +280,7 @@ class core_moodle_page_testcase extends advanced_testcase { public function test_set_url_using_moodle_url() { global $CFG; // Fixture setup. - $url = new moodle_url('/mod/workshop/allocation.php', array('cmid' => 29, 'method' => 'manual')); + $url = new \moodle_url('/mod/workshop/allocation.php', array('cmid' => 29, 'method' => 'manual')); // Exercise SUT. $this->testpage->set_url($url); // Validated. @@ -336,7 +347,7 @@ class core_moodle_page_testcase extends advanced_testcase { public function test_setting_course_sets_context() { // Setup fixture. $course = $this->getDataGenerator()->create_course(); - $context = context_course::instance($course->id); + $context = \context_course::instance($course->id); // Exercise SUT. $this->testpage->set_course($course); @@ -354,7 +365,7 @@ class core_moodle_page_testcase extends advanced_testcase { $this->testpage->set_category_by_id($cat->id); // Validated. $this->assertEquals($catdbrecord, $this->testpage->category); - $this->assertSame(context_coursecat::instance($cat->id), $this->testpage->context); + $this->assertSame(\context_coursecat::instance($cat->id), $this->testpage->context); } public function test_set_nested_categories() { @@ -395,7 +406,7 @@ class core_moodle_page_testcase extends advanced_testcase { $forum = $this->getDataGenerator()->create_module('forum', array('course'=>$course->id)); $cm = get_coursemodule_from_id('forum', $forum->cmid); // Exercise SUT. - $this->expectException(coding_exception::class); + $this->expectException(\coding_exception::class); $this->testpage->set_activity_record($forum); } @@ -407,7 +418,7 @@ class core_moodle_page_testcase extends advanced_testcase { // Exercise SUT. $this->testpage->set_cm($cm); // Validated. - $this->assertSame(context_module::instance($cm->id), $this->testpage->context); + $this->assertSame(\context_module::instance($cm->id), $this->testpage->context); } public function test_activity_record_loaded_if_not_set() { @@ -443,7 +454,7 @@ class core_moodle_page_testcase extends advanced_testcase { $this->testpage->set_cm($cm); // Exercise SUT. $forum->course = 13; - $this->expectException(coding_exception::class); + $this->expectException(\coding_exception::class); $this->testpage->set_activity_record($forum); } @@ -455,7 +466,7 @@ class core_moodle_page_testcase extends advanced_testcase { $this->testpage->set_cm($cm); // Exercise SUT. $forum->id = 13; - $this->expectException(coding_exception::class); + $this->expectException(\coding_exception::class); $this->testpage->set_activity_record($forum); } @@ -492,7 +503,7 @@ class core_moodle_page_testcase extends advanced_testcase { $cm = get_coursemodule_from_id('forum', $forum->cmid); // Exercise SUT. $cm->course = 13; - $this->expectException(coding_exception::class); + $this->expectException(\coding_exception::class); $this->testpage->set_cm($cm, $course); } @@ -514,7 +525,7 @@ class core_moodle_page_testcase extends advanced_testcase { // Setup fixture. global $USER; - $this->testpage->set_context(context_system::instance()); + $this->testpage->set_context(\context_system::instance()); $this->setAdminUser(); $USER->editing = true; @@ -529,7 +540,7 @@ class core_moodle_page_testcase extends advanced_testcase { // Setup fixture. global $USER; - $this->testpage->set_context(context_system::instance()); + $this->testpage->set_context(\context_system::instance()); $this->setAdminUser(); $USER->editing = false; @@ -538,7 +549,7 @@ class core_moodle_page_testcase extends advanced_testcase { } public function test_default_editing_capabilities() { - $this->testpage->set_context(context_system::instance()); + $this->testpage->set_context(\context_system::instance()); $this->setAdminUser(); // Validated. @@ -546,7 +557,7 @@ class core_moodle_page_testcase extends advanced_testcase { } public function test_other_block_editing_cap() { - $this->testpage->set_context(context_system::instance()); + $this->testpage->set_context(\context_system::instance()); $this->setAdminUser(); // Exercise SUT. @@ -556,7 +567,7 @@ class core_moodle_page_testcase extends advanced_testcase { } public function test_other_editing_cap() { - $this->testpage->set_context(context_system::instance()); + $this->testpage->set_context(\context_system::instance()); $this->setAdminUser(); // Exercise SUT. @@ -568,7 +579,7 @@ class core_moodle_page_testcase extends advanced_testcase { } public function test_other_editing_caps() { - $this->testpage->set_context(context_system::instance()); + $this->testpage->set_context(\context_system::instance()); $this->setAdminUser(); // Exercise SUT. @@ -607,7 +618,7 @@ class core_moodle_page_testcase extends advanced_testcase { try { $this->testpage->get_renderer('core', 'monkeys'); $this->fail('Request for renderer with invalid component didn\'t throw expected exception.'); - } catch (coding_exception $exception) { + } catch (\coding_exception $exception) { $this->assertEquals('monkeys', $exception->debuginfo); } @@ -644,7 +655,7 @@ class core_moodle_page_testcase extends advanced_testcase { try { $this->testpage->get_renderer('core', 'monkeys'); $this->fail('Request for renderer with invalid component didn\'t throw expected exception.'); - } catch (coding_exception $exception) { + } catch (\coding_exception $exception) { $this->assertEquals('monkeys', $exception->debuginfo); } @@ -673,7 +684,7 @@ class core_moodle_page_testcase extends advanced_testcase { set_config('allowuserthemes', 1); set_config('allowcohortthemes', 1); - $systemctx = context_system::instance(); + $systemctx = \context_system::instance(); set_config('theme', $sitetheme); // Create user. @@ -772,7 +783,7 @@ class core_moodle_page_testcase extends advanced_testcase { public function test_user_can_edit_blocks() { global $DB; - $systemcontext = context_system::instance(); + $systemcontext = \context_system::instance(); $this->testpage->set_context($systemcontext); $user = $this->getDataGenerator()->create_user(); @@ -795,7 +806,7 @@ class core_moodle_page_testcase extends advanced_testcase { * @covers ::force_lock_all_blocks() */ public function test_force_lock_all_blocks() { - $this->testpage->set_context(context_system::instance()); + $this->testpage->set_context(\context_system::instance()); $this->setAdminUser(); // Confirm admin user has access to edit blocks. diff --git a/lib/tests/moodle_url_test.php b/lib/tests/moodle_url_test.php index cef12dd1e80..a2de3e24941 100644 --- a/lib/tests/moodle_url_test.php +++ b/lib/tests/moodle_url_test.php @@ -14,6 +14,8 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . +namespace core; + /** * Tests for moodle_url. * @@ -21,67 +23,58 @@ * @copyright 2018 Andrew Nicols * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ - -defined('MOODLE_INTERNAL') || die(); - -/** - * Tests for moodle_url. - * - * @copyright 2018 Andrew Nicols - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ -class core_moodle_url_testcase extends advanced_testcase { +class moodle_url_test extends \advanced_testcase { /** * Test basic moodle_url construction. */ public function test_moodle_url_constructor() { global $CFG; - $url = new moodle_url('/index.php'); + $url = new \moodle_url('/index.php'); $this->assertSame($CFG->wwwroot.'/index.php', $url->out()); - $url = new moodle_url('/index.php', array()); + $url = new \moodle_url('/index.php', array()); $this->assertSame($CFG->wwwroot.'/index.php', $url->out()); - $url = new moodle_url('/index.php', array('id' => 2)); + $url = new \moodle_url('/index.php', array('id' => 2)); $this->assertSame($CFG->wwwroot.'/index.php?id=2', $url->out()); - $url = new moodle_url('/index.php', array('id' => 'two')); + $url = new \moodle_url('/index.php', array('id' => 'two')); $this->assertSame($CFG->wwwroot.'/index.php?id=two', $url->out()); - $url = new moodle_url('/index.php', array('id' => 1, 'cid' => '2')); + $url = new \moodle_url('/index.php', array('id' => 1, 'cid' => '2')); $this->assertSame($CFG->wwwroot.'/index.php?id=1&cid=2', $url->out()); $this->assertSame($CFG->wwwroot.'/index.php?id=1&cid=2', $url->out(false)); - $url = new moodle_url('/index.php', null, 'test'); + $url = new \moodle_url('/index.php', null, 'test'); $this->assertSame($CFG->wwwroot.'/index.php#test', $url->out()); - $url = new moodle_url('/index.php', array('id' => 2), 'test'); + $url = new \moodle_url('/index.php', array('id' => 2), 'test'); $this->assertSame($CFG->wwwroot.'/index.php?id=2#test', $url->out()); } /** - * Tests moodle_url::get_path(). + * Tests \moodle_url::get_path(). */ public function test_moodle_url_get_path() { - $url = new moodle_url('http://www.example.org:447/my/file/is/here.txt?really=1'); + $url = new \moodle_url('http://www.example.org:447/my/file/is/here.txt?really=1'); $this->assertSame('/my/file/is/here.txt', $url->get_path()); - $url = new moodle_url('http://www.example.org/'); + $url = new \moodle_url('http://www.example.org/'); $this->assertSame('/', $url->get_path()); - $url = new moodle_url('http://www.example.org/pluginfile.php/slash/arguments'); + $url = new \moodle_url('http://www.example.org/pluginfile.php/slash/arguments'); $this->assertSame('/pluginfile.php/slash/arguments', $url->get_path()); $this->assertSame('/pluginfile.php', $url->get_path(false)); } public function test_moodle_url_round_trip() { $strurl = 'http://moodle.org/course/view.php?id=5'; - $url = new moodle_url($strurl); + $url = new \moodle_url($strurl); $this->assertSame($strurl, $url->out(false)); $strurl = 'http://moodle.org/user/index.php?contextid=53&sifirst=M&silast=D'; - $url = new moodle_url($strurl); + $url = new \moodle_url($strurl); $this->assertSame($strurl, $url->out(false)); } @@ -90,23 +83,23 @@ class core_moodle_url_testcase extends advanced_testcase { */ public function test_moodle_url_empty_param_values() { $strurl = 'http://moodle.org/course/view.php?id=0'; - $url = new moodle_url($strurl, array('id' => 0)); + $url = new \moodle_url($strurl, array('id' => 0)); $this->assertSame($strurl, $url->out(false)); $strurl = 'http://moodle.org/course/view.php?id'; - $url = new moodle_url($strurl, array('id' => false)); + $url = new \moodle_url($strurl, array('id' => false)); $this->assertSame($strurl, $url->out(false)); $strurl = 'http://moodle.org/course/view.php?id'; - $url = new moodle_url($strurl, array('id' => null)); + $url = new \moodle_url($strurl, array('id' => null)); $this->assertSame($strurl, $url->out(false)); $strurl = 'http://moodle.org/course/view.php?id'; - $url = new moodle_url($strurl, array('id' => '')); + $url = new \moodle_url($strurl, array('id' => '')); $this->assertSame($strurl, $url->out(false)); $strurl = 'http://moodle.org/course/view.php?id'; - $url = new moodle_url($strurl); + $url = new \moodle_url($strurl); $this->assertSame($strurl, $url->out(false)); } @@ -114,7 +107,7 @@ class core_moodle_url_testcase extends advanced_testcase { * Test set good scheme on Moodle URL objects. */ public function test_moodle_url_set_good_scheme() { - $url = new moodle_url('http://moodle.org/foo/bar'); + $url = new \moodle_url('http://moodle.org/foo/bar'); $url->set_scheme('myscheme'); $this->assertSame('myscheme://moodle.org/foo/bar', $url->out()); } @@ -123,46 +116,46 @@ class core_moodle_url_testcase extends advanced_testcase { * Test set bad scheme on Moodle URL objects. */ public function test_moodle_url_set_bad_scheme() { - $url = new moodle_url('http://moodle.org/foo/bar'); - $this->expectException(coding_exception::class); + $url = new \moodle_url('http://moodle.org/foo/bar'); + $this->expectException(\coding_exception::class); $url->set_scheme('not a valid $ scheme'); } public function test_moodle_url_round_trip_array_params() { $strurl = 'http://example.com/?a%5B1%5D=1&a%5B2%5D=2'; - $url = new moodle_url($strurl); + $url = new \moodle_url($strurl); $this->assertSame($strurl, $url->out(false)); - $url = new moodle_url('http://example.com/?a[1]=1&a[2]=2'); + $url = new \moodle_url('http://example.com/?a[1]=1&a[2]=2'); $this->assertSame($strurl, $url->out(false)); // For un-keyed array params, we expect 0..n keys to be returned. $strurl = 'http://example.com/?a%5B0%5D=0&a%5B1%5D=1'; - $url = new moodle_url('http://example.com/?a[]=0&a[]=1'); + $url = new \moodle_url('http://example.com/?a[]=0&a[]=1'); $this->assertSame($strurl, $url->out(false)); } public function test_compare_url() { - $url1 = new moodle_url('index.php', array('var1' => 1, 'var2' => 2)); - $url2 = new moodle_url('index2.php', array('var1' => 1, 'var2' => 2, 'var3' => 3)); + $url1 = new \moodle_url('index.php', array('var1' => 1, 'var2' => 2)); + $url2 = new \moodle_url('index2.php', array('var1' => 1, 'var2' => 2, 'var3' => 3)); $this->assertFalse($url1->compare($url2, URL_MATCH_BASE)); $this->assertFalse($url1->compare($url2, URL_MATCH_PARAMS)); $this->assertFalse($url1->compare($url2, URL_MATCH_EXACT)); - $url2 = new moodle_url('index.php', array('var1' => 1, 'var3' => 3)); + $url2 = new \moodle_url('index.php', array('var1' => 1, 'var3' => 3)); $this->assertTrue($url1->compare($url2, URL_MATCH_BASE)); $this->assertFalse($url1->compare($url2, URL_MATCH_PARAMS)); $this->assertFalse($url1->compare($url2, URL_MATCH_EXACT)); - $url2 = new moodle_url('index.php', array('var1' => 1, 'var2' => 2, 'var3' => 3)); + $url2 = new \moodle_url('index.php', array('var1' => 1, 'var2' => 2, 'var3' => 3)); $this->assertTrue($url1->compare($url2, URL_MATCH_BASE)); $this->assertTrue($url1->compare($url2, URL_MATCH_PARAMS)); $this->assertFalse($url1->compare($url2, URL_MATCH_EXACT)); - $url2 = new moodle_url('index.php', array('var2' => 2, 'var1' => 1)); + $url2 = new \moodle_url('index.php', array('var2' => 2, 'var1' => 1)); $this->assertTrue($url1->compare($url2, URL_MATCH_BASE)); $this->assertTrue($url1->compare($url2, URL_MATCH_PARAMS)); @@ -182,26 +175,26 @@ class core_moodle_url_testcase extends advanced_testcase { public function test_out_as_local_url() { global $CFG; // Test http url. - $url1 = new moodle_url('/lib/tests/weblib_test.php'); + $url1 = new \moodle_url('/lib/tests/weblib_test.php'); $this->assertSame('/lib/tests/weblib_test.php', $url1->out_as_local_url()); // Test https url. $httpswwwroot = str_replace("http://", "https://", $CFG->wwwroot); - $url2 = new moodle_url($httpswwwroot.'/login/profile.php'); + $url2 = new \moodle_url($httpswwwroot.'/login/profile.php'); $this->assertSame('/login/profile.php', $url2->out_as_local_url()); // Test http url matching wwwroot. - $url3 = new moodle_url($CFG->wwwroot); + $url3 = new \moodle_url($CFG->wwwroot); $this->assertSame('', $url3->out_as_local_url()); // Test http url matching wwwroot ending with slash (/). - $url3 = new moodle_url($CFG->wwwroot.'/'); + $url3 = new \moodle_url($CFG->wwwroot.'/'); $this->assertSame('/', $url3->out_as_local_url()); } public function test_out_as_local_url_error() { - $url2 = new moodle_url('http://www.google.com/lib/tests/weblib_test.php'); - $this->expectException(coding_exception::class); + $url2 = new \moodle_url('http://www.google.com/lib/tests/weblib_test.php'); + $this->expectException(\coding_exception::class); $url2->out_as_local_url(); } @@ -212,8 +205,8 @@ class core_moodle_url_testcase extends advanced_testcase { global $CFG; $modifiedurl = $CFG->wwwroot.'1'; - $url3 = new moodle_url($modifiedurl.'/login/profile.php'); - $this->expectException(coding_exception::class); + $url3 = new \moodle_url($modifiedurl.'/login/profile.php'); + $this->expectException(\coding_exception::class); $url3->out_as_local_url(); } @@ -221,38 +214,38 @@ class core_moodle_url_testcase extends advanced_testcase { * Try get local url from external https url and you should get error */ public function test_https_out_as_local_url_error() { - $url4 = new moodle_url('https://www.google.com/lib/tests/weblib_test.php'); - $this->expectException(coding_exception::class); + $url4 = new \moodle_url('https://www.google.com/lib/tests/weblib_test.php'); + $this->expectException(\coding_exception::class); $url4->out_as_local_url(); } public function test_moodle_url_get_scheme() { // Should return the scheme only. - $url = new moodle_url('http://www.example.org:447/my/file/is/here.txt?really=1'); + $url = new \moodle_url('http://www.example.org:447/my/file/is/here.txt?really=1'); $this->assertSame('http', $url->get_scheme()); // Should work for secure URLs. - $url = new moodle_url('https://www.example.org:447/my/file/is/here.txt?really=1'); + $url = new \moodle_url('https://www.example.org:447/my/file/is/here.txt?really=1'); $this->assertSame('https', $url->get_scheme()); // Should return an empty string if no scheme is specified. - $url = new moodle_url('www.example.org:447/my/file/is/here.txt?really=1'); + $url = new \moodle_url('www.example.org:447/my/file/is/here.txt?really=1'); $this->assertSame('', $url->get_scheme()); } public function test_moodle_url_get_host() { // Should return the host part only. - $url = new moodle_url('http://www.example.org:447/my/file/is/here.txt?really=1'); + $url = new \moodle_url('http://www.example.org:447/my/file/is/here.txt?really=1'); $this->assertSame('www.example.org', $url->get_host()); } public function test_moodle_url_get_port() { // Should return the port if one provided. - $url = new moodle_url('http://www.example.org:447/my/file/is/here.txt?really=1'); + $url = new \moodle_url('http://www.example.org:447/my/file/is/here.txt?really=1'); $this->assertSame(447, $url->get_port()); // Should return an empty string if port not specified. - $url = new moodle_url('http://www.example.org/some/path/here.php'); + $url = new \moodle_url('http://www.example.org/some/path/here.php'); $this->assertSame('', $url->get_port()); } @@ -270,7 +263,7 @@ class core_moodle_url_testcase extends advanced_testcase { $this->resetAfterTest(); $CFG->slasharguments = $slashargs; - $url = call_user_func_array('moodle_url::make_pluginfile_url', $args); + $url = call_user_func_array('\moodle_url::make_pluginfile_url', $args); $this->assertMatchesRegularExpression($expected, $url->out(true)); } diff --git a/lib/tests/myprofilelib_test.php b/lib/tests/myprofilelib_test.php index 47cab7d4c37..f7f8e96551b 100644 --- a/lib/tests/myprofilelib_test.php +++ b/lib/tests/myprofilelib_test.php @@ -14,13 +14,7 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Tests for myprofilelib apis. - * - * @package core - * @copyright 2015 onwards Ankit agarwal - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later. - */ +namespace core; defined('MOODLE_INTERNAL') || die(); @@ -34,7 +28,7 @@ require_once($CFG->dirroot . '/lib/myprofilelib.php'); * @copyright 2015 onwards Ankit agarwal * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later. */ -class core_myprofilelib_testcase extends advanced_testcase { +class myprofilelib_test extends \advanced_testcase { /** * @var stdClass The user. @@ -72,7 +66,7 @@ class core_myprofilelib_testcase extends advanced_testcase { // Test tree as admin user. core_myprofile_navigation($this->tree, $this->user, $iscurrentuser, $this->course); - $reflector = new ReflectionObject($this->tree); + $reflector = new \ReflectionObject($this->tree); $categories = $reflector->getProperty('categories'); $categories->setAccessible(true); $cats = $categories->getValue($this->tree); @@ -97,7 +91,7 @@ class core_myprofilelib_testcase extends advanced_testcase { $iscurrentuser = false; core_myprofile_navigation($this->tree, $this->user, $iscurrentuser, $this->course); - $reflector = new ReflectionObject($this->tree); + $reflector = new \ReflectionObject($this->tree); $nodes = $reflector->getProperty('nodes'); $nodes->setAccessible(true); $this->assertArrayNotHasKey('fullprofile', $nodes->getValue($this->tree)); @@ -111,7 +105,7 @@ class core_myprofilelib_testcase extends advanced_testcase { $iscurrentuser = true; core_myprofile_navigation($this->tree, $this->user, $iscurrentuser, $this->course); - $reflector = new ReflectionObject($this->tree); + $reflector = new \ReflectionObject($this->tree); $nodes = $reflector->getProperty('nodes'); $nodes->setAccessible(true); $this->assertArrayHasKey('editprofile', $nodes->getValue($this->tree)); @@ -125,7 +119,7 @@ class core_myprofilelib_testcase extends advanced_testcase { $iscurrentuser = false; core_myprofile_navigation($this->tree, $this->user, $iscurrentuser, $this->course); - $reflector = new ReflectionObject($this->tree); + $reflector = new \ReflectionObject($this->tree); $nodes = $reflector->getProperty('nodes'); $nodes->setAccessible(true); $this->assertArrayHasKey('editprofile', $nodes->getValue($this->tree)); @@ -139,7 +133,7 @@ class core_myprofilelib_testcase extends advanced_testcase { $iscurrentuser = false; core_myprofile_navigation($this->tree, $this->user, $iscurrentuser, $this->course); - $reflector = new ReflectionObject($this->tree); + $reflector = new \ReflectionObject($this->tree); $nodes = $reflector->getProperty('nodes'); $nodes->setAccessible(true); $this->assertArrayHasKey('preferences', $nodes->getValue($this->tree)); @@ -156,7 +150,7 @@ class core_myprofilelib_testcase extends advanced_testcase { $iscurrentuser = false; core_myprofile_navigation($this->tree, $this->user, $iscurrentuser, $this->course); - $reflector = new ReflectionObject($this->tree); + $reflector = new \ReflectionObject($this->tree); $nodes = $reflector->getProperty('nodes'); $nodes->setAccessible(true); $this->assertArrayNotHasKey('loginas', $nodes->getValue($this->tree)); @@ -194,7 +188,7 @@ class core_myprofilelib_testcase extends advanced_testcase { // User with proper permissions. core_myprofile_navigation($this->tree, $this->user, $iscurrentuser, null); - $reflector = new ReflectionObject($this->tree); + $reflector = new \ReflectionObject($this->tree); $nodes = $reflector->getProperty('nodes'); $nodes->setAccessible(true); foreach ($hiddenfields as $field) { @@ -219,7 +213,7 @@ class core_myprofilelib_testcase extends advanced_testcase { // User without permission. $this->setUser($this->user2); core_myprofile_navigation($this->tree, $this->user, $iscurrentuser, null); - $reflector = new ReflectionObject($this->tree); + $reflector = new \ReflectionObject($this->tree); $nodes = $reflector->getProperty('nodes'); $nodes->setAccessible(true); foreach ($hiddenfields as $field) { @@ -240,7 +234,7 @@ class core_myprofilelib_testcase extends advanced_testcase { $iscurrentuser = false; core_myprofile_navigation($this->tree, $this->user, $iscurrentuser, null); - $reflector = new ReflectionObject($this->tree); + $reflector = new \ReflectionObject($this->tree); $nodes = $reflector->getProperty('nodes'); $nodes->setAccessible(true); $this->assertArrayHasKey('firstaccess', $nodes->getValue($this->tree)); @@ -259,7 +253,7 @@ class core_myprofilelib_testcase extends advanced_testcase { $iscurrentuser = false; core_myprofile_navigation($this->tree, $this->user, $iscurrentuser, null); - $reflector = new ReflectionObject($this->tree); + $reflector = new \ReflectionObject($this->tree); $nodes = $reflector->getProperty('nodes'); $nodes->setAccessible(true); $this->assertArrayNotHasKey('firstaccess', $nodes->getValue($this->tree)); diff --git a/lib/tests/navigationlib_test.php b/lib/tests/navigationlib_test.php index ffd40a35db1..ed47710b208 100644 --- a/lib/tests/navigationlib_test.php +++ b/lib/tests/navigationlib_test.php @@ -18,18 +18,37 @@ * Unit tests for lib/navigationlib.php * * @package core - * @category phpunit + * @category test * @copyright 2009 Sam Hemelryk * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later (5) */ +namespace core; + +use action_link; +use global_navigation; +use navbar; +use navigation_cache; +use navigation_node; +use navigation_node_collection; +use pix_icon; +use popup_action; +use settings_navigation; + defined('MOODLE_INTERNAL') || die(); global $CFG; require_once($CFG->libdir . '/navigationlib.php'); - -class core_navigationlib_testcase extends advanced_testcase { +/** + * Unit tests for lib/navigationlib.php + * + * @package core + * @category test + * @copyright 2009 Sam Hemelryk + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later (5) + */ +class navigationlib_test extends \advanced_testcase { /** * @var navigation_node */ @@ -42,7 +61,7 @@ class core_navigationlib_testcase extends advanced_testcase { $PAGE->set_course($SITE); $activeurl = $PAGE->url; - $inactiveurl = new moodle_url('http://www.moodle.com/'); + $inactiveurl = new \moodle_url('http://www.moodle.com/'); navigation_node::override_active_url($PAGE->url); @@ -71,7 +90,7 @@ class core_navigationlib_testcase extends advanced_testcase { 'shorttext' => 'A very silly extra long short text string, more than 25 characters', 'key' => 'key', 'type' => 'navigation_node::TYPE_COURSE', - 'action' => new moodle_url('http://www.moodle.org/')); + 'action' => new \moodle_url('http://www.moodle.org/')); $node = new navigation_node($fakeproperties); $this->assertSame($fakeproperties['text'], $node->text); @@ -252,7 +271,7 @@ class core_navigationlib_testcase extends advanced_testcase { $this->setup_node(); $node1 = $this->node->add('active node 1', null, navigation_node::TYPE_CUSTOM, null, 'anode1'); - $node2 = $this->node->add('active node 2', new moodle_url($CFG->wwwroot), navigation_node::TYPE_COURSE, null, 'anode2'); + $node2 = $this->node->add('active node 2', new \moodle_url($CFG->wwwroot), navigation_node::TYPE_COURSE, null, 'anode2'); $node1->make_active(); $this->node->get('anode2')->make_active(); $this->assertTrue($node1->isactive); @@ -345,9 +364,9 @@ class core_navigationlib_testcase extends advanced_testcase { $cat2 = $generator->create_category(array('parent' => $cat1->id)); $course = $generator->create_course(array('category' => $cat2->id)); - $page = new moodle_page(); + $page = new \moodle_page(); $page->set_course($course); - $page->set_url(new moodle_url('/course/view.php', array('id' => $course->id))); + $page->set_url(new \moodle_url('/course/view.php', array('id' => $course->id))); $page->navbar->prepend('test 1'); $page->navbar->prepend('test 2'); $page->navbar->add('test 3'); @@ -376,7 +395,7 @@ class core_navigationlib_testcase extends advanced_testcase { * @depends test_navbar_prepend_and_add * @param $node */ - public function test_navbar_has_items(moodle_page $page) { + public function test_navbar_has_items(\moodle_page $page) { $this->resetAfterTest(); $this->assertTrue($page->navbar->has_items()); @@ -619,14 +638,14 @@ class core_navigationlib_testcase extends advanced_testcase { return [ 'The navigation node has an action link.' => [ - navigation_node::create('Node', new action_link(new moodle_url('/'), '', - new popup_action('click', new moodle_url('/'))), navigation_node::TYPE_SETTING), + navigation_node::create('Node', new action_link(new \moodle_url('/'), '', + new popup_action('click', new \moodle_url('/'))), navigation_node::TYPE_SETTING), true ], 'The navigation node does not have an action link.' => [ - navigation_node::create('Node', new moodle_url('/'), navigation_node::TYPE_SETTING), + navigation_node::create('Node', new \moodle_url('/'), navigation_node::TYPE_SETTING), false ], ]; @@ -672,17 +691,17 @@ class core_navigationlib_testcase extends advanced_testcase { return [ 'The navigation node has an action link with an action attached.' => [ - navigation_node::create('Node', new action_link(new moodle_url('/'), '', - new popup_action('click', new moodle_url('/'))), navigation_node::TYPE_SETTING), + navigation_node::create('Node', new action_link(new \moodle_url('/'), '', + new popup_action('click', new \moodle_url('/'))), navigation_node::TYPE_SETTING), ], 'The navigation node has an action link without an action.' => [ - navigation_node::create('Node', new action_link(new moodle_url('/'), '', null), + navigation_node::create('Node', new action_link(new \moodle_url('/'), '', null), navigation_node::TYPE_SETTING), ], 'The navigation node does not have an action link.' => [ - navigation_node::create('Node', new moodle_url('/'), navigation_node::TYPE_SETTING), + navigation_node::create('Node', new \moodle_url('/'), navigation_node::TYPE_SETTING), ], ]; } @@ -695,7 +714,7 @@ class core_navigationlib_testcase extends advanced_testcase { */ class exposed_global_navigation extends global_navigation { protected $exposedkey = 'exposed_'; - public function __construct(moodle_page $page=null) { + public function __construct(\moodle_page $page=null) { global $PAGE; if ($page === null) { $page = $PAGE; @@ -710,7 +729,7 @@ class exposed_global_navigation extends global_navigation { if (method_exists($this, $method)) { return call_user_func_array(array($this, $method), $arguments); } - throw new coding_exception('You have attempted to access a method that does not exist for the given object '.$method, DEBUG_DEVELOPER); + throw new \coding_exception('You have attempted to access a method that does not exist for the given object '.$method, DEBUG_DEVELOPER); } public function set_initialised() { $this->initialised = true; @@ -753,7 +772,7 @@ class mock_initialise_global_navigation extends global_navigation { */ class exposed_navbar extends navbar { protected $exposedkey = 'exposed_'; - public function __construct(moodle_page $page) { + public function __construct(\moodle_page $page) { parent::__construct($page); $this->cache = new navigation_cache('unittest_nav'); } @@ -764,11 +783,11 @@ class exposed_navbar extends navbar { if (method_exists($this, $method)) { return call_user_func_array(array($this, $method), $arguments); } - throw new coding_exception('You have attempted to access a method that does not exist for the given object '.$method, DEBUG_DEVELOPER); + throw new \coding_exception('You have attempted to access a method that does not exist for the given object '.$method, DEBUG_DEVELOPER); } } -class navigation_exposed_moodle_page extends moodle_page { +class navigation_exposed_moodle_page extends \moodle_page { public function set_navigation(navigation_node $node) { $this->_navigation = $node; } @@ -792,6 +811,6 @@ class exposed_settings_navigation extends settings_navigation { if (method_exists($this, $method)) { return call_user_func_array(array($this, $method), $arguments); } - throw new coding_exception('You have attempted to access a method that does not exist for the given object '.$method, DEBUG_DEVELOPER); + throw new \coding_exception('You have attempted to access a method that does not exist for the given object '.$method, DEBUG_DEVELOPER); } } diff --git a/lib/tests/notification_test.php b/lib/tests/notification_test.php index 33078fe8d37..8e4a75af7c7 100644 --- a/lib/tests/notification_test.php +++ b/lib/tests/notification_test.php @@ -14,39 +14,29 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Unit tests for core\notification. - * - * @package core - * @category phpunit - * @copyright 2016 Andrew Nicols - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ - -defined('MOODLE_INTERNAL') || die(); +namespace core; /** * Unit tests for core\notification. * * @package core - * @category phpunit - * @category phpunit + * @category test * @copyright 2016 Andrew Nicols * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class core_notification_testcase extends advanced_testcase { +class notification_test extends \advanced_testcase { /** * Setup required for all notification tests. * * This includes emptying the list of notifications on the session, resetting any session which exists, and setting - * up a new moodle_page object. + * up a new \moodle_page object. */ public function setUp(): void { global $PAGE, $SESSION; parent::setUp(); - $PAGE = new moodle_page(); + $PAGE = new \moodle_page(); \core\session\manager::init_empty_session(); $SESSION->notifications = []; } @@ -55,7 +45,7 @@ class core_notification_testcase extends advanced_testcase { * Tear down required for all notification tests. * * This includes emptying the list of notifications on the session, resetting any session which exists, and setting - * up a new moodle_page object. + * up a new \moodle_page object. */ public function tearDown(): void { global $PAGE, $SESSION; diff --git a/lib/tests/output_mustache_helper_collection_test.php b/lib/tests/output/mustache_helper_collection_test.php similarity index 97% rename from lib/tests/output_mustache_helper_collection_test.php rename to lib/tests/output/mustache_helper_collection_test.php index 52e39764dfa..c32dc5aba94 100644 --- a/lib/tests/output_mustache_helper_collection_test.php +++ b/lib/tests/output/mustache_helper_collection_test.php @@ -14,21 +14,16 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Unit tests for lib/classes/output/mustache_helper_collection - * - * @copyright 2019 Ryan Wyllie - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ - -defined('MOODLE_INTERNAL') || die(); - -use core\output\mustache_helper_collection; +namespace core\output; /** * Unit tests for the mustache_helper_collection class. + * + * @package core + * @copyright 2019 Ryan Wyllie + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class core_output_mustache_helper_collection_testcase extends advanced_testcase { +class mustache_helper_collection_test extends \advanced_testcase { /** * Test cases to confirm that disallowed helpers are stripped from the source * text by the helper before being passed to other another helper. This prevents diff --git a/lib/tests/mustache_template_finder_test.php b/lib/tests/output/mustache_template_finder_test.php similarity index 95% rename from lib/tests/mustache_template_finder_test.php rename to lib/tests/output/mustache_template_finder_test.php index 4c5fadf2f14..ce270719439 100644 --- a/lib/tests/mustache_template_finder_test.php +++ b/lib/tests/output/mustache_template_finder_test.php @@ -14,24 +14,20 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . +namespace core\output; + /** * Unit tests for lib/classes/output/mustache_template_finder.php * + * Unit tests for the Mustache template finder class (contains logic about + * resolving mustache template locations. + * * @package core - * @category phpunit + * @category test * @copyright 2015 Damyon Wiese * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ - -defined('MOODLE_INTERNAL') || die(); - -use core\output\mustache_template_finder; - -/** - * Unit tests for the Mustache template finder class (contains logic about - * resolving mustache template locations. - */ -class core_output_mustache_template_finder_testcase extends advanced_testcase { +class mustache_template_finder_test extends \advanced_testcase { /** * Data provider which reutrns a set of valid template directories to be used when testing @@ -105,7 +101,7 @@ class core_output_mustache_template_finder_testcase extends advanced_testcase { */ public function test_invalid_component_get_template_directories_for_component() { // Test something invalid. - $this->expectException(coding_exception::class); + $this->expectException(\coding_exception::class); mustache_template_finder::get_template_directories_for_component('octopus', 'classic'); } @@ -192,7 +188,7 @@ class core_output_mustache_template_finder_testcase extends advanced_testcase { * Tests for get_template_filepath when dealing with an invalid component. */ public function test_invalid_component_get_template_filepath() { - $this->expectException(moodle_exception::class); + $this->expectException(\moodle_exception::class); mustache_template_finder::get_template_filepath('core/octopus', 'classic'); } } diff --git a/lib/tests/mustache_template_source_loader_test.php b/lib/tests/output/mustache_template_source_loader_test.php similarity index 97% rename from lib/tests/mustache_template_source_loader_test.php rename to lib/tests/output/mustache_template_source_loader_test.php index a0e30db7b16..a4f177e8b43 100644 --- a/lib/tests/mustache_template_source_loader_test.php +++ b/lib/tests/output/mustache_template_source_loader_test.php @@ -14,26 +14,18 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . +namespace core\output; + /** + * Unit tests for the Mustache source loader class. + * * Unit tests for lib/classes/output/mustache_template_source_loader.php * * @package core * @copyright 2018 Ryan Wyllie * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ - -defined('MOODLE_INTERNAL') || die(); - -use core\output\mustache_template_source_loader; - -/** - * Unit tests for the Mustache source loader class. - * - * @package core - * @copyright 2018 Ryan Wyllie - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ -class core_output_mustache_template_source_loader_testcase extends advanced_testcase { +class mustache_template_source_loader_test extends \advanced_testcase { /** * Ensure that stripping comments from templates does not mutilate the template body. */ @@ -130,7 +122,7 @@ TBD; TBC; $loader = new mustache_template_source_loader(); - $actual = phpunit_util::call_internal_method( + $actual = \phpunit_util::call_internal_method( $loader, 'strip_template_comments', [$templatewithcomment], @@ -502,7 +494,7 @@ TEMPLATE; * @param string $expected The expected output */ public function test_scan_template_source_for_dependencies($loader, $source, $expected) { - $actual = phpunit_util::call_internal_method( + $actual = \phpunit_util::call_internal_method( $loader, 'scan_template_source_for_dependencies', [$source], diff --git a/lib/tests/outputcomponents_test.php b/lib/tests/outputcomponents_test.php index a99830a2221..caacd08bd36 100644 --- a/lib/tests/outputcomponents_test.php +++ b/lib/tests/outputcomponents_test.php @@ -14,14 +14,17 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Unit tests for lib/outputcomponents.php. - * - * @package core - * @category phpunit - * @copyright 2011 David Mudrak - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ +namespace core; + +use block_contents; +use custom_menu; +use custom_menu_item; +use paging_bar; +use renderer_base; +use single_select; +use theme_config; +use url_select; +use user_picture; defined('MOODLE_INTERNAL') || die(); @@ -29,9 +32,14 @@ global $CFG; require_once($CFG->libdir . '/outputcomponents.php'); /** - * Unit tests for the user_picture class. + * Unit tests for lib/outputcomponents.php. + * + * @package core + * @category test + * @copyright 2011 David Mudrak + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class core_outputcomponents_testcase extends advanced_testcase { +class outputcomponents_test extends \advanced_testcase { /** * Tests user_picture::fields. @@ -77,7 +85,7 @@ class core_outputcomponents_testcase extends advanced_testcase { $fields = implode(',', \core_user\fields::get_picture_fields()); $fields = array_map('trim', explode(',', $fields)); - $fakerecord = new stdClass(); + $fakerecord = new \stdClass(); $fakerecord->aliasedid = 42; foreach ($fields as $field) { if ($field !== 'id') { @@ -104,7 +112,7 @@ class core_outputcomponents_testcase extends advanced_testcase { $fields = implode(',', \core_user\fields::get_picture_fields()); $fields = array_map('trim', explode(',', $fields)); - $fakerecord = new stdClass(); + $fakerecord = new \stdClass(); $fakerecord->aliasedid = 42; foreach ($fields as $field) { if ($field !== 'id') { @@ -144,25 +152,25 @@ class core_outputcomponents_testcase extends advanced_testcase { $this->assertSame('mm', $CFG->gravatardefaulturl); // Create some users. - $page = new moodle_page(); + $page = new \moodle_page(); $page->set_url('/user/profile.php'); - $page->set_context(context_system::instance()); + $page->set_context(\context_system::instance()); $renderer = $page->get_renderer('core'); $user1 = $this->getDataGenerator()->create_user(array('picture'=>11, 'email'=>'user1@example.com')); - $context1 = context_user::instance($user1->id); + $context1 = \context_user::instance($user1->id); $user2 = $this->getDataGenerator()->create_user(array('picture'=>0, 'email'=>'user2@example.com')); - $context2 = context_user::instance($user2->id); + $context2 = \context_user::instance($user2->id); // User 3 is deleted. $user3 = $this->getDataGenerator()->create_user(array('picture'=>1, 'deleted'=>1, 'email'=>'user3@example.com')); - $this->assertNotEmpty(context_user::instance($user3->id)); + $this->assertNotEmpty(\context_user::instance($user3->id)); $this->assertEquals(0, $user3->picture); $this->assertNotEquals('user3@example.com', $user3->email); // User 4 is incorrectly deleted with its context deleted as well (testing legacy code). $user4 = $this->getDataGenerator()->create_user(['picture' => 1, 'deleted' => 1, 'email' => 'user4@example.com']); - context_helper::delete_instance(CONTEXT_USER, $user4->id); + \context_helper::delete_instance(CONTEXT_USER, $user4->id); $this->assertEquals(0, $user4->picture); $this->assertNotEquals('user4@example.com', $user4->email); @@ -173,7 +181,7 @@ class core_outputcomponents_testcase extends advanced_testcase { $user1->picture = 11; // Try valid user with picture when user context is not cached - 1 query expected. - context_helper::reset_caches(); + \context_helper::reset_caches(); $reads = $DB->perf_get_reads(); $up1 = new user_picture($user1); $this->assertEquals($reads, $DB->perf_get_reads()); @@ -182,7 +190,7 @@ class core_outputcomponents_testcase extends advanced_testcase { // Try valid user with contextid hint - no queries expected. $user1->contextid = $context1->id; - context_helper::reset_caches(); + \context_helper::reset_caches(); $reads = $DB->perf_get_reads(); $up1 = new user_picture($user1); $this->assertEquals($reads, $DB->perf_get_reads()); @@ -190,7 +198,7 @@ class core_outputcomponents_testcase extends advanced_testcase { $this->assertEquals($reads, $DB->perf_get_reads()); // Try valid user without image - no queries expected. - context_helper::reset_caches(); + \context_helper::reset_caches(); $reads = $DB->perf_get_reads(); $up2 = new user_picture($user2); $this->assertEquals($reads, $DB->perf_get_reads()); @@ -199,7 +207,7 @@ class core_outputcomponents_testcase extends advanced_testcase { // Try guessing of deleted users - no queries expected. unset($user3->deleted); - context_helper::reset_caches(); + \context_helper::reset_caches(); $reads = $DB->perf_get_reads(); $up3 = new user_picture($user3); $this->assertEquals($reads, $DB->perf_get_reads()); @@ -275,9 +283,9 @@ class core_outputcomponents_testcase extends advanced_testcase { // Now test gravatar with one theme having own images (afterburner). // $this->assertFileExists("$CFG->dirroot/theme/afterburner/config.php"); // set_config('theme', 'afterburner'); - // $page = new moodle_page(); + // $page = new \moodle_page(); // $page->set_url('/user/profile.php'); - // $page->set_context(context_system::instance()); + // $page->set_context(\context_system::instance()); // $renderer = $page->get_renderer('core'); // $up2 = new user_picture($user2); @@ -291,9 +299,9 @@ class core_outputcomponents_testcase extends advanced_testcase { // set_config('enablegravatar', 0); // $this->assertFileExists("$CFG->dirroot/theme/formal_white/config.php"); // Use any other theme. // set_config('theme', 'formal_white'); - // $page = new moodle_page(); + // $page = new \moodle_page(); // $page->set_url('/user/profile.php'); - // $page->set_context(context_system::instance()); + // $page->set_context(\context_system::instance()); // $renderer = $page->get_renderer('core'); // $up1 = new user_picture($user1); @@ -306,9 +314,9 @@ class core_outputcomponents_testcase extends advanced_testcase { set_config('theme', 'classic'); $CFG->wwwroot = str_replace('https:', 'http:', $CFG->wwwroot); $CFG->slasharguments = 0; - $page = new moodle_page(); + $page = new \moodle_page(); $page->set_url('/user/profile.php'); - $page->set_context(context_system::instance()); + $page->set_context(\context_system::instance()); $renderer = $page->get_renderer('core'); $up3 = new user_picture($user3); @@ -317,7 +325,7 @@ class core_outputcomponents_testcase extends advanced_testcase { public function test_empty_menu() { $emptymenu = new custom_menu(); - $this->assertInstanceOf('custom_menu', $emptymenu); + $this->assertInstanceOf(custom_menu::class, $emptymenu); $this->assertFalse($emptymenu->has_children()); } @@ -347,7 +355,7 @@ EOF; $this->assertCount(3, $item->get_children()); $this->assertEquals('Moodle community', $item->get_text()); $itemurl = $item->get_url(); - $this->assertTrue($itemurl instanceof moodle_url); + $this->assertTrue($itemurl instanceof \moodle_url); $this->assertEquals('http://moodle.org', $itemurl->out()); $this->assertNull($item->get_title()); // Implicit title. @@ -460,7 +468,7 @@ EOF; '8', ); - $mpage = new moodle_page(); + $mpage = new \moodle_page(); $rbase = new renderer_base($mpage, "/"); $pbara = new paging_bar(40, 0, 5, 'index.php'); $pbara->prepare($rbase, $mpage, "/"); @@ -475,7 +483,7 @@ EOF; public function test_pix_icon() { $this->resetAfterTest(); - $page = new moodle_page(); + $page = new \moodle_page(); set_config('theme', 'boost'); // Need to reset after changing theme. @@ -543,7 +551,7 @@ EOF; $options = [ "Option A", "Option B", "Option C" ]; $nothing = ['' => 'choosedots']; - $url = new moodle_url('/'); + $url = new \moodle_url('/'); $singleselect = new single_select($url, $realname, $options, null, $nothing, 'someformid'); $singleselect->class = $realclass; @@ -619,9 +627,9 @@ EOF; 'style' => $labelstyle ]; - $url1 = new moodle_url("/#a"); - $url2 = new moodle_url("/#b"); - $url3 = new moodle_url("/#c"); + $url1 = new \moodle_url("/#a"); + $url2 = new \moodle_url("/#b"); + $url3 = new \moodle_url("/#c"); $urls = [ $url1->out() => 'A', diff --git a/lib/tests/outputfactories_test.php b/lib/tests/outputfactories_test.php index c69d13fbe68..63edd17f790 100644 --- a/lib/tests/outputfactories_test.php +++ b/lib/tests/outputfactories_test.php @@ -14,14 +14,9 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Unit tests for lib/outputfactories.php. - * - * @package core - * @category phpunit - * @copyright 2014 Damyon Wiese - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ +namespace core; + +use test_output_factory; defined('MOODLE_INTERNAL') || die(); @@ -30,9 +25,14 @@ require_once($CFG->libdir . '/outputfactories.php'); require_once($CFG->libdir . '/tests/fixtures/test_renderer_factory.php'); /** - * Unit tests for the user_picture class. + * Unit tests for lib/outputfactories.php. + * + * @package core + * @category test + * @copyright 2014 Damyon Wiese + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class core_outputfactories_testcase extends advanced_testcase { +class outputfactories_test extends \advanced_testcase { public function test_nonautoloaded_classnames() { global $PAGE; diff --git a/lib/tests/outputrequirementslib_test.php b/lib/tests/outputrequirementslib_test.php index b0ca1c3da10..a3e32a66b1d 100644 --- a/lib/tests/outputrequirementslib_test.php +++ b/lib/tests/outputrequirementslib_test.php @@ -14,14 +14,7 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Unit tests for lib/outputrequirementslibphp. - * - * @package core - * @category phpunit - * @copyright 2012 Petr Škoda - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ +namespace core; defined('MOODLE_INTERNAL') || die(); @@ -29,11 +22,19 @@ global $CFG; require_once($CFG->libdir . '/outputrequirementslib.php'); -class core_outputrequirementslib_testcase extends advanced_testcase { +/** + * Unit tests for lib/outputrequirementslibphp. + * + * @package core + * @category test + * @copyright 2012 Petr Škoda + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +class outputrequirementslib_test extends \advanced_testcase { public function test_string_for_js() { $this->resetAfterTest(); - $page = new moodle_page(); + $page = new \moodle_page(); $page->requires->string_for_js('course', 'moodle', 1); $page->requires->string_for_js('course', 'moodle', 1); $this->expectException('coding_exception'); @@ -44,21 +45,21 @@ class core_outputrequirementslib_testcase extends advanced_testcase { } public function test_one_time_output_normal_case() { - $page = new moodle_page(); + $page = new \moodle_page(); $this->assertTrue($page->requires->should_create_one_time_item_now('test_item')); $this->assertFalse($page->requires->should_create_one_time_item_now('test_item')); } public function test_one_time_output_repeat_output_throws() { - $page = new moodle_page(); + $page = new \moodle_page(); $page->requires->set_one_time_item_created('test_item'); $this->expectException('coding_exception'); $page->requires->set_one_time_item_created('test_item'); } public function test_one_time_output_different_pages_independent() { - $firstpage = new moodle_page(); - $secondpage = new moodle_page(); + $firstpage = new \moodle_page(); + $secondpage = new \moodle_page(); $this->assertTrue($firstpage->requires->should_create_one_time_item_now('test_item')); $this->assertTrue($secondpage->requires->should_create_one_time_item_now('test_item')); } @@ -76,7 +77,7 @@ class core_outputrequirementslib_testcase extends advanced_testcase { // With slasharguments on. $CFG->slasharguments = 1; - $page = new moodle_page(); + $page = new \moodle_page(); $requirements = $page->requires; // Assert successful method call. $this->assertTrue($requirements->jquery_plugin('jquery')); @@ -91,7 +92,7 @@ class core_outputrequirementslib_testcase extends advanced_testcase { // With slasharguments off. $CFG->slasharguments = 0; - $page = new moodle_page(); + $page = new \moodle_page(); $requirements = $page->requires; // Assert successful method call. $this->assertTrue($requirements->jquery_plugin('jquery')); @@ -108,7 +109,7 @@ class core_outputrequirementslib_testcase extends advanced_testcase { */ public function test_js_call_amd() { - $page = new moodle_page(); + $page = new \moodle_page(); // Load an AMD module without a function call. $page->requires->js_call_amd('theme_foobar/lightbox'); diff --git a/lib/tests/pdflib_test.php b/lib/tests/pdflib_test.php index e9a68f8a3e3..fb8cf0777ff 100644 --- a/lib/tests/pdflib_test.php +++ b/lib/tests/pdflib_test.php @@ -14,15 +14,9 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Tests for PDFlib - * - * @package core - * @copyright 2021 Brendan Heywood (brendan@catalyst-au.net) - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ +namespace core; -defined('MOODLE_INTERNAL') || die(); +use TCPDF_STATIC; /** * Tests for PDFlib @@ -31,7 +25,7 @@ defined('MOODLE_INTERNAL') || die(); * @copyright 2021 Brendan Heywood (brendan@catalyst-au.net) * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class core_pdflib_testcase extends advanced_testcase { +class pdflib_test extends \advanced_testcase { public function test_gettcpdf_producer() { global $CFG; diff --git a/lib/tests/plugin_manager_test.php b/lib/tests/plugin_manager_test.php index c62e180d99a..8eba35750ea 100644 --- a/lib/tests/plugin_manager_test.php +++ b/lib/tests/plugin_manager_test.php @@ -14,14 +14,11 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Unit tests for plugin manager class. - * - * @package core - * @category phpunit - * @copyright 2013 Petr Skoda {@link http://skodak.org} - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ +namespace core; + +use core_plugin_manager; +use testable_core_plugin_manager; +use testable_plugininfo_base; defined('MOODLE_INTERNAL') || die(); @@ -30,9 +27,14 @@ require_once($CFG->dirroot.'/lib/tests/fixtures/testable_plugin_manager.php'); require_once($CFG->dirroot.'/lib/tests/fixtures/testable_plugininfo_base.php'); /** - * Tests of the basic API of the plugin manager. + * Unit tests for plugin manager class. + * + * @package core + * @category test + * @copyright 2013 Petr Skoda {@link http://skodak.org} + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class core_plugin_manager_testcase extends advanced_testcase { +class plugin_manager_test extends \advanced_testcase { public function tearDown(): void { // The caches of the testable singleton must be reset explicitly. It is @@ -376,7 +378,7 @@ class core_plugin_manager_testcase extends advanced_testcase { */ public function test_get_remote_plugin_info_exception() { $pluginman = testable_core_plugin_manager::instance(); - $this->expectException(moodle_exception::class); + $this->expectException(\moodle_exception::class); $pluginman->get_remote_plugin_info('any_thing', ANY_VERSION, true); } diff --git a/lib/tests/qrcode_test.php b/lib/tests/qrcode_test.php index c91501aef36..7e2830482a9 100644 --- a/lib/tests/qrcode_test.php +++ b/lib/tests/qrcode_test.php @@ -14,16 +14,9 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Test QR code functionality. - * - * @package core - * @copyright Moodle Pty Ltd - * @author - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ +namespace core; -defined('MOODLE_INTERNAL') || die(); +use core_qrcode; /** * A set of tests for some of the QR code functionality within Moodle. @@ -33,7 +26,7 @@ defined('MOODLE_INTERNAL') || die(); * @author * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class core_qrcode_testcase extends basic_testcase { +class qrcode_test extends \basic_testcase { /** * Basic test to generate a QR code and check that the library is not broken. diff --git a/lib/tests/regex_test.php b/lib/tests/regex_test.php index c8dd97eb631..450a6754076 100644 --- a/lib/tests/regex_test.php +++ b/lib/tests/regex_test.php @@ -14,16 +14,7 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Test PHP regex capability - this may also serve as an example for devs. - * - * @package core - * @copyright 2015 Totara Learning Solutions Ltd {@link http://www.totaralms.com/} - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - * @author Petr Skoda - */ - -defined('MOODLE_INTERNAL') || die(); +namespace core; /** * Test PHP regex capability - this may also serve as an example for devs. @@ -33,7 +24,7 @@ defined('MOODLE_INTERNAL') || die(); * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @author Petr Skoda */ -class core_regex_testcase extends advanced_testcase { +class regex_test extends \advanced_testcase { public function test_whitespace_replacement_with_u() { $unicode = "Теорія і практика використання системи управління навчанням Moo dleКиївський національний університет будівництва і архітектури, 21-22 тра diff --git a/lib/tests/requirejs_test.php b/lib/tests/requirejs_test.php index e53ee783e21..6c22e1f60d2 100644 --- a/lib/tests/requirejs_test.php +++ b/lib/tests/requirejs_test.php @@ -14,16 +14,9 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Unit tests for requirejs loader. - * - * @package core - * @author Damyon Wiese - * @copyright 2016 Damyon Wiese - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ +namespace core; -defined('MOODLE_INTERNAL') || die(); +use core_requirejs; /** * Unit tests for requirejs. @@ -33,7 +26,7 @@ defined('MOODLE_INTERNAL') || die(); * @copyright 2016 Damyon Wiese * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class core_requirejs_testcase extends advanced_testcase { +class requirejs_test extends \advanced_testcase { /** * Test requirejs loader @@ -66,7 +59,7 @@ class core_requirejs_testcase extends advanced_testcase { // Lets verify the first part of the key is a valid component name and the second part correctly contains "min" or not. list($component, $template) = explode('/', $key, 2); // Can we resolve it to a valid dir? - $dir = core_component::get_component_directory($component); + $dir = \core_component::get_component_directory($component); $this->assertNotEmpty($dir); // Only "core" is allowed to have no _ in component names. @@ -81,7 +74,7 @@ class core_requirejs_testcase extends advanced_testcase { foreach ($result as $key => $path) { // Lets verify the first part of the key is a valid component name and the second part correctly contains "min" or not. list($component, $template) = explode('/', $key, 2); - $dir = core_component::get_component_directory($component); + $dir = \core_component::get_component_directory($component); $this->assertNotEmpty($dir); // Only "core" is allowed to have no _ in component names. if (strpos($component, '_') === false) { diff --git a/lib/tests/session_manager_test.php b/lib/tests/session_manager_test.php index 968dafb9d42..1d13d0fc5fb 100644 --- a/lib/tests/session_manager_test.php +++ b/lib/tests/session_manager_test.php @@ -14,26 +14,17 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Unit tests for session manager class. - * - * @package core - * @category phpunit - * @copyright 2013 Petr Skoda {@link http://skodak.org} - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ - -defined('MOODLE_INTERNAL') || die(); +namespace core; /** * Unit tests for session manager class. * * @package core - * @category phpunit + * @category test * @copyright 2013 Petr Skoda {@link http://skodak.org} * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class core_session_manager_testcase extends advanced_testcase { +class session_manager_test extends \advanced_testcase { public function test_start() { $this->resetAfterTest(); // Session must be started only once... @@ -80,7 +71,7 @@ class core_session_manager_testcase extends advanced_testcase { $this->assertSame($GLOBALS['SESSION'], $_SESSION['SESSION']); $this->assertSame($GLOBALS['SESSION'], $SESSION); - $_SESSION['SESSION'] = new stdClass(); + $_SESSION['SESSION'] = new \stdClass(); $_SESSION['SESSION']->test3 = true; $this->assertSame($GLOBALS['SESSION'], $_SESSION['SESSION']); $this->assertSame($GLOBALS['SESSION'], $SESSION); @@ -95,7 +86,7 @@ class core_session_manager_testcase extends advanced_testcase { $this->assertSame($GLOBALS['USER'], $_SESSION['USER']); $this->assertSame($GLOBALS['USER'], $USER); - $_SESSION['USER'] = new stdClass(); + $_SESSION['USER'] = new \stdClass(); $_SESSION['USER']->test3 = true; $this->assertSame($GLOBALS['USER'], $_SESSION['USER']); $this->assertSame($GLOBALS['USER'], $USER); @@ -189,7 +180,7 @@ class core_session_manager_testcase extends advanced_testcase { $this->assertFalse(\core\session\manager::session_exists($sid)); - $record = new stdClass(); + $record = new \stdClass(); $record->userid = 0; $record->sid = $sid; $record->timecreated = time(); @@ -568,10 +559,10 @@ class core_session_manager_testcase extends advanced_testcase { // Try admin loginas this user in system context. $this->assertObjectNotHasAttribute('realuser', $USER); - \core\session\manager::loginas($user->id, context_system::instance()); + \core\session\manager::loginas($user->id, \context_system::instance()); $this->assertSame($user->id, $USER->id); - $this->assertEquals(context_system::instance(), $USER->loginascontext); + $this->assertEquals(\context_system::instance(), $USER->loginascontext); $this->assertSame($adminuser->id, $USER->realuser); $this->assertSame($GLOBALS['USER'], $_SESSION['USER']); $this->assertSame($GLOBALS['USER'], $USER); @@ -590,7 +581,7 @@ class core_session_manager_testcase extends advanced_testcase { $this->setUser($user); $this->assertNotEquals($adminuser->id, $USER->id); $course = $this->getDataGenerator()->create_course(); - $coursecontext = context_course::instance($course->id); + $coursecontext = \context_course::instance($course->id); // Catch event triggered. $sink = $this->redirectEvents(); @@ -624,7 +615,7 @@ class core_session_manager_testcase extends advanced_testcase { $this->assertFalse(\core\session\manager::is_loggedinas()); $this->setUser($user1); - \core\session\manager::loginas($user2->id, context_system::instance()); + \core\session\manager::loginas($user2->id, \context_system::instance()); $this->assertTrue(\core\session\manager::is_loggedinas()); } @@ -639,7 +630,7 @@ class core_session_manager_testcase extends advanced_testcase { $normal = \core\session\manager::get_realuser(); $this->assertSame($GLOBALS['USER'], $normal); - \core\session\manager::loginas($user2->id, context_system::instance()); + \core\session\manager::loginas($user2->id, \context_system::instance()); $real = \core\session\manager::get_realuser(); @@ -857,12 +848,12 @@ class core_session_manager_testcase extends advanced_testcase { public function test_array_session_diff_same_array() { $a = []; - $a['c'] = new stdClass(); - $a['c']->o = new stdClass(); - $a['c']->o->o = new stdClass(); + $a['c'] = new \stdClass(); + $a['c']->o = new \stdClass(); + $a['c']->o->o = new \stdClass(); $a['c']->o->o->l = 'cool'; - $class = new ReflectionClass('\core\session\manager'); + $class = new \ReflectionClass('\core\session\manager'); $method = $class->getMethod('array_session_diff'); $method->setAccessible(true); @@ -873,21 +864,21 @@ class core_session_manager_testcase extends advanced_testcase { public function test_array_session_diff_first_array_larger() { $a = []; - $a['stdClass'] = new stdClass(); + $a['stdClass'] = new \stdClass(); $a['stdClass']->attribute = 'This is an attribute'; $a['array'] = ['array', 'contents']; $b = []; $b['array'] = ['array', 'contents']; - $class = new ReflectionClass('\core\session\manager'); + $class = new \ReflectionClass('\core\session\manager'); $method = $class->getMethod('array_session_diff'); $method->setAccessible(true); $result = $method->invokeArgs(null, [$a, $b]); $expected = []; - $expected['stdClass'] = new stdClass(); + $expected['stdClass'] = new \stdClass(); $expected['stdClass']->attribute = 'This is an attribute'; $this->assertEquals($expected, $result); } @@ -897,11 +888,11 @@ class core_session_manager_testcase extends advanced_testcase { $a['array'] = ['array', 'contents']; $b = []; - $b['stdClass'] = new stdClass(); + $b['stdClass'] = new \stdClass(); $b['stdClass']->attribute = 'This is an attribute'; $b['array'] = ['array', 'contents']; - $class = new ReflectionClass('\core\session\manager'); + $class = new \ReflectionClass('\core\session\manager'); $method = $class->getMethod('array_session_diff'); $method->setAccessible(true); diff --git a/lib/tests/session_redis_test.php b/lib/tests/session_redis_test.php index dab879f696c..68c2fb4ed0b 100644 --- a/lib/tests/session_redis_test.php +++ b/lib/tests/session_redis_test.php @@ -14,8 +14,13 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . +namespace core; + +use Redis; +use RedisException; + /** - * Redis session tests. + * Unit tests for classes/session/redis.php. * * NOTE: in order to execute this test you need to set up * Redis server and add configuration a constant @@ -26,21 +31,10 @@ * @package core * @author Russell Smith * @copyright 2016 Russell Smith - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ - -defined('MOODLE_INTERNAL') || die(); - -/** - * Unit tests for classes/session/redis.php. - * - * @package core - * @author Russell Smith - * @copyright 2016 Russell Smith - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @runClassInSeparateProcess */ -class core_session_redis_testcase extends advanced_testcase { +class session_redis_test extends \advanced_testcase { /** @var $keyprefix This key prefix used when testing Redis */ protected $keyprefix = null; diff --git a/lib/tests/sessionlib_test.php b/lib/tests/sessionlib_test.php index 70b91ca25ba..4a9e436c040 100644 --- a/lib/tests/sessionlib_test.php +++ b/lib/tests/sessionlib_test.php @@ -14,28 +14,18 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Unit tests for sessionlib.php file. - * - * @package core - * @category phpunit - * @author Petr Skoda - * @copyright 2014 Totara Learning Solutions Ltd {@link http://www.totaralms.com/} - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ - -defined('MOODLE_INTERNAL') || die(); +namespace core; /** * Unit tests for sessionlib.php file. * * @package core - * @category phpunit + * @category test * @author Petr Skoda * @copyright 2014 Totara Learning Solutions Ltd {@link http://www.totaralms.com/} * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class core_sessionlib_testcase extends advanced_testcase { +class sessionlib_test extends \advanced_testcase { public function test_cron_setup_user() { global $PAGE, $USER, $SESSION, $SITE, $CFG; $this->resetAfterTest(); @@ -50,7 +40,7 @@ class core_sessionlib_testcase extends advanced_testcase { cron_setup_user(); $this->assertSame($admin->id, $USER->id); - $this->assertSame($PAGE->context, context_course::instance($SITE->id)); + $this->assertSame($PAGE->context, \context_course::instance($SITE->id)); $this->assertSame($CFG->timezone, $USER->timezone); $this->assertSame('', $USER->lang); $this->assertSame('', $USER->theme); @@ -64,7 +54,7 @@ class core_sessionlib_testcase extends advanced_testcase { cron_setup_user(null, $course); $this->assertSame($admin->id, $USER->id); - $this->assertSame($PAGE->context, context_course::instance($course->id)); + $this->assertSame($PAGE->context, \context_course::instance($course->id)); $this->assertSame($adminsession, $SESSION); $this->assertSame($GLOBALS['SESSION'], $_SESSION['SESSION']); $this->assertSame($GLOBALS['SESSION'], $SESSION); @@ -73,7 +63,7 @@ class core_sessionlib_testcase extends advanced_testcase { cron_setup_user($user1); $this->assertSame($user1->id, $USER->id); - $this->assertSame($PAGE->context, context_course::instance($SITE->id)); + $this->assertSame($PAGE->context, \context_course::instance($SITE->id)); $this->assertNotSame($adminsession, $SESSION); $this->assertObjectNotHasAttribute('test1', $SESSION); $this->assertEmpty((array)$SESSION); @@ -86,7 +76,7 @@ class core_sessionlib_testcase extends advanced_testcase { cron_setup_user($user1); $this->assertSame($user1->id, $USER->id); - $this->assertSame($PAGE->context, context_course::instance($SITE->id)); + $this->assertSame($PAGE->context, \context_course::instance($SITE->id)); $this->assertNotSame($adminsession, $SESSION); $this->assertSame($usersession1, $SESSION); $this->assertSame($GLOBALS['SESSION'], $_SESSION['SESSION']); @@ -96,7 +86,7 @@ class core_sessionlib_testcase extends advanced_testcase { cron_setup_user($user2); $this->assertSame($user2->id, $USER->id); - $this->assertSame($PAGE->context, context_course::instance($SITE->id)); + $this->assertSame($PAGE->context, \context_course::instance($SITE->id)); $this->assertNotSame($adminsession, $SESSION); $this->assertNotSame($usersession1, $SESSION); $this->assertEmpty((array)$SESSION); @@ -109,7 +99,7 @@ class core_sessionlib_testcase extends advanced_testcase { cron_setup_user($user2, $course); $this->assertSame($user2->id, $USER->id); - $this->assertSame($PAGE->context, context_course::instance($course->id)); + $this->assertSame($PAGE->context, \context_course::instance($course->id)); $this->assertNotSame($adminsession, $SESSION); $this->assertNotSame($usersession1, $SESSION); $this->assertSame($usersession2, $SESSION); @@ -120,7 +110,7 @@ class core_sessionlib_testcase extends advanced_testcase { cron_setup_user($user1); $this->assertSame($user1->id, $USER->id); - $this->assertSame($PAGE->context, context_course::instance($SITE->id)); + $this->assertSame($PAGE->context, \context_course::instance($SITE->id)); $this->assertNotSame($adminsession, $SESSION); $this->assertNotSame($usersession1, $SESSION); $this->assertEmpty((array)$SESSION); @@ -131,7 +121,7 @@ class core_sessionlib_testcase extends advanced_testcase { cron_setup_user(); $this->assertSame($admin->id, $USER->id); - $this->assertSame($PAGE->context, context_course::instance($SITE->id)); + $this->assertSame($PAGE->context, \context_course::instance($SITE->id)); $this->assertSame($adminsession, $SESSION); $this->assertSame($adminuser, $USER); $this->assertSame($GLOBALS['SESSION'], $_SESSION['SESSION']); @@ -279,7 +269,7 @@ class core_sessionlib_testcase extends advanced_testcase { try { confirm_sesskey(); $this->fail('Exception expected when sesskey not present'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertSame('missingparam', $e->errorcode); } @@ -301,7 +291,7 @@ class core_sessionlib_testcase extends advanced_testcase { try { require_sesskey(); $this->fail('Exception expected when sesskey not present'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertSame('missingparam', $e->errorcode); } @@ -312,7 +302,7 @@ class core_sessionlib_testcase extends advanced_testcase { try { require_sesskey(); $this->fail('Exception expected when sesskey not incorrect'); - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { $this->assertSame('invalidsesskey', $e->errorcode); } } diff --git a/lib/tests/setuplib_test.php b/lib/tests/setuplib_test.php index 9d165b99dd7..d2c65355291 100644 --- a/lib/tests/setuplib_test.php +++ b/lib/tests/setuplib_test.php @@ -14,24 +14,17 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . +namespace core; + /** * Unit tests for setuplib.php * * @package core - * @category phpunit + * @category test * @copyright 2012 The Open University * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ - -defined('MOODLE_INTERNAL') || die(); - -/** - * Unit tests for setuplib.php - * - * @copyright 2012 The Open University - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ -class core_setuplib_testcase extends advanced_testcase { +class setuplib_test extends \advanced_testcase { /** * Test get_docs_url_standard in the normal case when we should link to Moodle docs. @@ -91,7 +84,7 @@ class core_setuplib_testcase extends advanced_testcase { $expected .= "[$cfgname] "; } } - $exception = new moodle_exception('generalexceptionmessage', 'error', '', $fixture, $fixture); + $exception = new \moodle_exception('generalexceptionmessage', 'error', '', $fixture, $fixture); $exceptioninfo = get_exception_info($exception); $this->assertStringContainsString($expected, $exceptioninfo->message, @@ -371,45 +364,45 @@ class core_setuplib_testcase extends advanced_testcase { // Simple local URL. $url = $CFG->wwwroot . '/something/here?really=yes'; - $exception = new moodle_exception('none', 'error', $url); + $exception = new \moodle_exception('none', 'error', $url); $infos = $this->get_exception_info($exception); $this->assertSame($url, $infos->link); // Relative local URL. $url = '/something/here?really=yes'; - $exception = new moodle_exception('none', 'error', $url); + $exception = new \moodle_exception('none', 'error', $url); $infos = $this->get_exception_info($exception); $this->assertSame($CFG->wwwroot . '/', $infos->link); // HTTPS URL when login HTTPS is not enabled (default) and site is HTTP. $CFG->wwwroot = str_replace('https:', 'http:', $CFG->wwwroot); $url = $httpswwwroot . '/something/here?really=yes'; - $exception = new moodle_exception('none', 'error', $url); + $exception = new \moodle_exception('none', 'error', $url); $infos = $this->get_exception_info($exception); $this->assertSame($CFG->wwwroot . '/', $infos->link); // HTTPS URL when login HTTPS is not enabled and site is HTTPS. $CFG->wwwroot = str_replace('http:', 'https:', $CFG->wwwroot); $url = $httpswwwroot . '/something/here?really=yes'; - $exception = new moodle_exception('none', 'error', $url); + $exception = new \moodle_exception('none', 'error', $url); $infos = $this->get_exception_info($exception); $this->assertSame($url, $infos->link); // External HTTP URL. $url = 'http://moodle.org/something/here?really=yes'; - $exception = new moodle_exception('none', 'error', $url); + $exception = new \moodle_exception('none', 'error', $url); $infos = $this->get_exception_info($exception); $this->assertSame($CFG->wwwroot . '/', $infos->link); // External HTTPS URL. $url = 'https://moodle.org/something/here?really=yes'; - $exception = new moodle_exception('none', 'error', $url); + $exception = new \moodle_exception('none', 'error', $url); $infos = $this->get_exception_info($exception); $this->assertSame($CFG->wwwroot . '/', $infos->link); // External URL containing local URL. $url = 'http://moodle.org/something/here?' . $CFG->wwwroot; - $exception = new moodle_exception('none', 'error', $url); + $exception = new \moodle_exception('none', 'error', $url); $infos = $this->get_exception_info($exception); $this->assertSame($CFG->wwwroot . '/', $infos->link); } @@ -423,7 +416,7 @@ class core_setuplib_testcase extends advanced_testcase { public function get_exception_info($ex) { try { throw $ex; - } catch (moodle_exception $e) { + } catch (\moodle_exception $e) { return get_exception_info($e); } } @@ -497,7 +490,7 @@ class core_setuplib_testcase extends advanced_testcase { } // The \core\uuid::generate_uuid_via_pecl_uuid_extension static method is protected. Use Reflection to call the method. - $method = new ReflectionMethod('\core\uuid', 'generate_uuid_via_pecl_uuid_extension'); + $method = new \ReflectionMethod('\core\uuid', 'generate_uuid_via_pecl_uuid_extension'); $method->setAccessible(true); $uuid = $method->invoke(null); $this->assertTrue(self::is_valid_uuid_v4($uuid), "Invalid v4 uuid: '$uuid'"); @@ -509,12 +502,12 @@ class core_setuplib_testcase extends advanced_testcase { public function test_core_uuid_generate_uuid_via_random_bytes() { try { random_bytes(1); - } catch (Exception $e) { + } catch (\Exception $e) { $this->markTestSkipped('No source of entropy for random_bytes. ' . $e->getMessage()); } // The \core\uuid::generate_uuid_via_random_bytes static method is protected. Use Reflection to call the method. - $method = new ReflectionMethod('\core\uuid', 'generate_uuid_via_random_bytes'); + $method = new \ReflectionMethod('\core\uuid', 'generate_uuid_via_random_bytes'); $method->setAccessible(true); $uuid = $method->invoke(null); $this->assertTrue(self::is_valid_uuid_v4($uuid), "Invalid v4 uuid: '$uuid'"); diff --git a/lib/tests/statslib_test.php b/lib/tests/statslib_test.php index e57e034c4f3..c3551156f12 100644 --- a/lib/tests/statslib_test.php +++ b/lib/tests/statslib_test.php @@ -14,14 +14,7 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Tests for ../statslib.php - * - * @package core_stats - * @category phpunit - * @copyright 2012 Tyler Bannister - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ +namespace core; defined('MOODLE_INTERNAL') || die(); @@ -33,8 +26,13 @@ require_once(__DIR__ . '/fixtures/stats_events.php'); /** * Test functions that affect daily stats. + * + * @package core + * @category test + * @copyright 2012 Tyler Bannister + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class core_statslib_testcase extends advanced_testcase { +class statslib_test extends \advanced_testcase { /** The day to use for testing **/ const DAY = 1272672000; @@ -58,14 +56,14 @@ class core_statslib_testcase extends advanced_testcase { // Settings to force statistic to run during testing. $this->setTimezone(self::TIMEZONE); - core_date::set_default_server_timezone(); + \core_date::set_default_server_timezone(); $CFG->statsfirstrun = 'all'; $CFG->statslastdaily = 0; // Figure out the broken day start so I can figure out when to the start time should be. $time = time(); // This nonsense needs to be rewritten. - $date = new DateTime('now', core_date::get_server_timezone_object()); + $date = new \DateTime('now', \core_date::get_server_timezone_object()); $offset = $date->getOffset(); $stime = $time + $offset; $stime = intval($stime / (60*60*24)) * 60*60*24; @@ -307,7 +305,7 @@ class core_statslib_testcase extends advanced_testcase { $dataset = $this->load_xml_data_file(__DIR__."/fixtures/statslib-test01.xml"); $DB->delete_records('log'); - $date = new DateTime('now', core_date::get_server_timezone_object()); + $date = new \DateTime('now', \core_date::get_server_timezone_object()); $day = self::DAY - $date->getOffset(); $CFG->statsfirstrun = 'all'; @@ -347,22 +345,22 @@ class core_statslib_testcase extends advanced_testcase { $this->assertEquals($firstoldtime, stats_get_start_from('daily')); $time = time() - 5; - \core_tests\event\create_executed::create(array('context' => context_system::instance()))->trigger(); + \core_tests\event\create_executed::create(array('context' => \context_system::instance()))->trigger(); $DB->set_field('logstore_standard_log', 'timecreated', $time++, [ 'eventname' => '\\core_tests\\event\\create_executed', ]); - \core_tests\event\read_executed::create(array('context' => context_system::instance()))->trigger(); + \core_tests\event\read_executed::create(array('context' => \context_system::instance()))->trigger(); $DB->set_field('logstore_standard_log', 'timecreated', $time++, [ 'eventname' => '\\core_tests\\event\\read_executed', ]); - \core_tests\event\update_executed::create(array('context' => context_system::instance()))->trigger(); + \core_tests\event\update_executed::create(array('context' => \context_system::instance()))->trigger(); $DB->set_field('logstore_standard_log', 'timecreated', $time++, [ 'eventname' => '\\core_tests\\event\\update_executed', ]); - \core_tests\event\delete_executed::create(array('context' => context_system::instance()))->trigger(); + \core_tests\event\delete_executed::create(array('context' => \context_system::instance()))->trigger(); $DB->set_field('logstore_standard_log', 'timecreated', $time++, [ 'eventname' => '\\core_tests\\event\\delete_executed', ]); @@ -571,7 +569,7 @@ class core_statslib_testcase extends advanced_testcase { $this->prepare_db($dataset, array('log')); // This nonsense needs to be rewritten. - $date = new DateTime('now', core_date::get_server_timezone_object()); + $date = new \DateTime('now', \core_date::get_server_timezone_object()); $start = self::DAY - $date->getOffset(); $end = $start + (24 * 3600); @@ -588,8 +586,8 @@ class core_statslib_testcase extends advanced_testcase { stats_temp_table_create(); $course = $this->getDataGenerator()->create_course(); - $context = context_course::instance($course->id); - $fcontext = context_course::instance(SITEID); + $context = \context_course::instance($course->id); + $fcontext = \context_course::instance(SITEID); $user = $this->getDataGenerator()->create_user(); $this->setUser($user); @@ -603,8 +601,8 @@ class core_statslib_testcase extends advanced_testcase { \core_tests\event\create_executed::create(array('context' => $fcontext, 'courseid' => SITEID))->trigger(); \core_tests\event\read_executed::create(array('context' => $context, 'courseid' => $course->id))->trigger(); - \core_tests\event\update_executed::create(array('context' => context_system::instance()))->trigger(); - \core_tests\event\delete_executed::create(array('context' => context_system::instance()))->trigger(); + \core_tests\event\update_executed::create(array('context' => \context_system::instance()))->trigger(); + \core_tests\event\delete_executed::create(array('context' => \context_system::instance()))->trigger(); \core\event\user_loggedin::create( array( @@ -618,8 +616,8 @@ class core_statslib_testcase extends advanced_testcase { $this->assertEquals(5, $DB->count_records('logstore_standard_log')); - \core_tests\event\delete_executed::create(array('context' => context_system::instance()))->trigger(); - \core_tests\event\delete_executed::create(array('context' => context_system::instance()))->trigger(); + \core_tests\event\delete_executed::create(array('context' => \context_system::instance()))->trigger(); + \core_tests\event\delete_executed::create(array('context' => \context_system::instance()))->trigger(); // Fake the origin of events. $DB->set_field('logstore_standard_log', 'origin', 'web', array()); diff --git a/lib/tests/string_manager_standard_test.php b/lib/tests/string_manager_standard_test.php index 2c0b17e3dfc..17f788d962c 100644 --- a/lib/tests/string_manager_standard_test.php +++ b/lib/tests/string_manager_standard_test.php @@ -23,6 +23,10 @@ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ +namespace core; + +use core_string_manager_standard; + defined('MOODLE_INTERNAL') || die(); global $CFG; @@ -31,10 +35,14 @@ require_once($CFG->libdir.'/moodlelib.php'); /** * Tests for the API of the string_manager. * + * Unit tests for localization support in lib/moodlelib.php + * + * @package core + * @category test * @copyright 2013 David Mudrak * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class core_string_manager_standard_testcase extends advanced_testcase { +class string_manager_standard_test extends \advanced_testcase { public function test_string_manager_instance() { $this->resetAfterTest(); @@ -116,7 +124,7 @@ class core_string_manager_standard_testcase extends advanced_testcase { $this->assertEquals($matches[2], clean_param($matches[2], PARAM_COMPONENT), "Component name {$string} appearing in one of the lang/en/deprecated.txt files does not have correct syntax"); - list($pluginttype, $pluginname) = core_component::normalize_component($matches[2]); + list($pluginttype, $pluginname) = \core_component::normalize_component($matches[2]); $normcomponent = $pluginname ? ($pluginttype . '_' . $pluginname) : $pluginttype; $this->assertEquals($normcomponent, $matches[2], 'String "'.$string.'" appearing in one of the lang/en/deprecated.txt files does not have normalised component name'); diff --git a/lib/tests/tablelib_test.php b/lib/tests/tablelib_test.php index 75c3d8a1858..d7494cd976f 100644 --- a/lib/tests/tablelib_test.php +++ b/lib/tests/tablelib_test.php @@ -14,14 +14,10 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Test tablelib. - * - * @package core - * @category phpunit - * @copyright 2013 Damyon Wiese - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ +namespace core; + +use flexible_table; +use testable_flexible_table; defined('MOODLE_INTERNAL') || die(); @@ -33,11 +29,11 @@ require_once($CFG->libdir . '/tests/fixtures/testable_flexible_table.php'); * Test some of tablelib. * * @package core - * @category phpunit + * @category test * @copyright 2013 Damyon Wiese * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class core_tablelib_testcase extends advanced_testcase { +class tablelib_test extends \advanced_testcase { protected function generate_columns($cols) { $columns = array(); foreach (range(0, $cols - 1) as $j) { @@ -405,7 +401,7 @@ class core_tablelib_testcase extends advanced_testcase { // Prohibit the viewfullnames from the default user role. $userrole = $DB->get_record('role', ['id' => $CFG->defaultuserroleid]); - role_change_permission($userrole->id, context_system::instance(), 'moodle/site:viewfullnames', CAP_PROHIBIT); + role_change_permission($userrole->id, \context_system::instance(), 'moodle/site:viewfullnames', CAP_PROHIBIT); $user = $this->getDataGenerator()->create_user(); diff --git a/lib/tests/adhoc_task_test.php b/lib/tests/task/adhoc_task_test.php similarity index 62% rename from lib/tests/adhoc_task_test.php rename to lib/tests/task/adhoc_task_test.php index 9be78c9e4d7..ae557abf639 100644 --- a/lib/tests/adhoc_task_test.php +++ b/lib/tests/task/adhoc_task_test.php @@ -14,29 +14,22 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * This file contains the unittests for adhock tasks. - * - * @package core - * @category phpunit - * @copyright 2013 Damyon Wiese - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ +namespace core\task; defined('MOODLE_INTERNAL') || die(); -require_once(__DIR__ . '/fixtures/task_fixtures.php'); +require_once(__DIR__ . '/../fixtures/task_fixtures.php'); /** * Test class for adhoc tasks. * * @package core - * @category task + * @category test * @copyright 2013 Damyon Wiese * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @coversDefaultClass \core\task\manager */ -class core_adhoc_task_testcase extends advanced_testcase { +class adhoc_task_test extends \advanced_testcase { /** * Test basic adhoc task execution. @@ -45,17 +38,17 @@ class core_adhoc_task_testcase extends advanced_testcase { $this->resetAfterTest(true); // Create an adhoc task. - $task = new \core\task\adhoc_test_task(); + $task = new adhoc_test_task(); // Queue it. - \core\task\manager::queue_adhoc_task($task); + manager::queue_adhoc_task($task); $now = time(); // Get it from the scheduler. - $task = \core\task\manager::get_next_adhoc_task($now); + $task = manager::get_next_adhoc_task($now); $this->assertInstanceOf('\\core\\task\\adhoc_test_task', $task); $task->execute(); - \core\task\manager::adhoc_task_complete($task); + manager::adhoc_task_complete($task); } /** @@ -67,28 +60,28 @@ class core_adhoc_task_testcase extends advanced_testcase { $this->resetAfterTest(true); // Create an adhoc task. - $task = new \core\task\adhoc_test_task(); - \core\task\manager::queue_adhoc_task($task); + $task = new adhoc_test_task(); + manager::queue_adhoc_task($task); $now = time(); // Get it from the scheduler, execute it, and mark it as failed. - $task = \core\task\manager::get_next_adhoc_task($now); + $task = manager::get_next_adhoc_task($now); $task->execute(); - \core\task\manager::adhoc_task_failed($task); + manager::adhoc_task_failed($task); // The task will not be returned immediately. - $this->assertNull(\core\task\manager::get_next_adhoc_task($now)); + $this->assertNull(manager::get_next_adhoc_task($now)); // Should get the adhoc task (retry after delay). - $task = \core\task\manager::get_next_adhoc_task($now + 120); + $task = manager::get_next_adhoc_task($now + 120); $this->assertInstanceOf('\\core\\task\\adhoc_test_task', $task); $task->execute(); - \core\task\manager::adhoc_task_complete($task); + manager::adhoc_task_complete($task); // Should not get any task. - $this->assertNull(\core\task\manager::get_next_adhoc_task($now)); + $this->assertNull(manager::get_next_adhoc_task($now)); } /** @@ -100,18 +93,18 @@ class core_adhoc_task_testcase extends advanced_testcase { $now = time(); // Create an adhoc task in future. - $task = new \core\task\adhoc_test_task(); + $task = new adhoc_test_task(); $task->set_next_run_time($now + 1000); - \core\task\manager::queue_adhoc_task($task); + manager::queue_adhoc_task($task); // Fetching the next task should not return anything. - $this->assertNull(\core\task\manager::get_next_adhoc_task($now)); + $this->assertNull(manager::get_next_adhoc_task($now)); // Fetching in the future should return the task. - $task = \core\task\manager::get_next_adhoc_task($now + 1020); + $task = manager::get_next_adhoc_task($now + 1020); $this->assertInstanceOf('\\core\\task\\adhoc_test_task', $task); $task->execute(); - \core\task\manager::adhoc_task_complete($task); + manager::adhoc_task_complete($task); } /** @@ -124,7 +117,7 @@ class core_adhoc_task_testcase extends advanced_testcase { $task = new \mod_forum\task\refresh_forum_post_counts(); $task->set_component('mod_test'); - \core\task\manager::queue_adhoc_task($task); + manager::queue_adhoc_task($task); $this->assertDebuggingNotCalled(); } @@ -137,7 +130,7 @@ class core_adhoc_task_testcase extends advanced_testcase { $task = new \mod_forum\task\refresh_forum_post_counts(); - \core\task\manager::queue_adhoc_task($task); + manager::queue_adhoc_task($task); $this->assertDebuggingNotCalled(); // Assert the missing component was set. @@ -153,7 +146,7 @@ class core_adhoc_task_testcase extends advanced_testcase { $task = new \mod_fake\task\adhoc_component_task(); - \core\task\manager::queue_adhoc_task($task); + manager::queue_adhoc_task($task); $this->assertDebuggingCalled('Component not set and the class namespace does not match a valid component (mod_fake).'); } @@ -164,7 +157,7 @@ class core_adhoc_task_testcase extends advanced_testcase { public function test_get_adhoc_tasks_empty_set() { $this->resetAfterTest(true); - $this->assertEquals([], \core\task\manager::get_adhoc_tasks('\\core\\task\\adhoc_test_task')); + $this->assertEquals([], manager::get_adhoc_tasks('\\core\\task\\adhoc_test_task')); } /** @@ -175,17 +168,17 @@ class core_adhoc_task_testcase extends advanced_testcase { $this->resetAfterTest(true); for ($i = 0; $i < 3; $i++) { - $task = new \core\task\adhoc_test_task(); - \core\task\manager::queue_adhoc_task($task); + $task = new adhoc_test_task(); + manager::queue_adhoc_task($task); } for ($i = 0; $i < 3; $i++) { - $task = new \core\task\adhoc_test2_task(); - \core\task\manager::queue_adhoc_task($task); + $task = new adhoc_test2_task(); + manager::queue_adhoc_task($task); } - $adhoctests = \core\task\manager::get_adhoc_tasks('\\core\\task\\adhoc_test_task'); - $adhoctest2s = \core\task\manager::get_adhoc_tasks('\\core\\task\\adhoc_test2_task'); + $adhoctests = manager::get_adhoc_tasks('\\core\\task\\adhoc_test_task'); + $adhoctest2s = manager::get_adhoc_tasks('\\core\\task\\adhoc_test2_task'); $this->assertCount(3, $adhoctests); $this->assertCount(3, $adhoctest2s); @@ -207,10 +200,10 @@ class core_adhoc_task_testcase extends advanced_testcase { $this->resetAfterTest(true); // Schedule adhoc task. - $task = new \core\task\adhoc_test_task(); + $task = new adhoc_test_task(); $task->set_custom_data(['courseid' => 10]); - \core\task\manager::reschedule_or_queue_adhoc_task($task); - $this->assertEquals(1, count(\core\task\manager::get_adhoc_tasks('core\task\adhoc_test_task'))); + manager::reschedule_or_queue_adhoc_task($task); + $this->assertEquals(1, count(manager::get_adhoc_tasks('core\task\adhoc_test_task'))); } /** @@ -223,17 +216,17 @@ class core_adhoc_task_testcase extends advanced_testcase { $user = \core_user::get_user_by_username('admin'); // Schedule adhoc task. - $task = new \core\task\adhoc_test_task(); + $task = new adhoc_test_task(); $task->set_custom_data(['courseid' => 10]); - \core\task\manager::reschedule_or_queue_adhoc_task($task); + manager::reschedule_or_queue_adhoc_task($task); // Schedule adhoc task for a different user. - $task = new \core\task\adhoc_test_task(); + $task = new adhoc_test_task(); $task->set_custom_data(['courseid' => 10]); $task->set_userid($user->id); - \core\task\manager::reschedule_or_queue_adhoc_task($task); + manager::reschedule_or_queue_adhoc_task($task); - $this->assertEquals(2, count(\core\task\manager::get_adhoc_tasks('core\task\adhoc_test_task'))); + $this->assertEquals(2, count(manager::get_adhoc_tasks('core\task\adhoc_test_task'))); } /** @@ -245,16 +238,16 @@ class core_adhoc_task_testcase extends advanced_testcase { $this->resetAfterTest(true); // Schedule adhoc task. - $task = new \core\task\adhoc_test_task(); + $task = new adhoc_test_task(); $task->set_custom_data(['courseid' => 10]); - \core\task\manager::reschedule_or_queue_adhoc_task($task); + manager::reschedule_or_queue_adhoc_task($task); // Schedule adhoc task for a different user. - $task = new \core\task\adhoc_test_task(); + $task = new adhoc_test_task(); $task->set_custom_data(['courseid' => 11]); - \core\task\manager::reschedule_or_queue_adhoc_task($task); + manager::reschedule_or_queue_adhoc_task($task); - $this->assertEquals(2, count(\core\task\manager::get_adhoc_tasks('core\task\adhoc_test_task'))); + $this->assertEquals(2, count(manager::get_adhoc_tasks('core\task\adhoc_test_task'))); } /** @@ -266,20 +259,20 @@ class core_adhoc_task_testcase extends advanced_testcase { $this->resetAfterTest(true); // Schedule adhoc task. - $task = new \core\task\adhoc_test_task(); + $task = new adhoc_test_task(); $task->set_custom_data(['courseid' => 10]); $task->set_next_run_time(time() + DAYSECS); - \core\task\manager::reschedule_or_queue_adhoc_task($task); + manager::reschedule_or_queue_adhoc_task($task); - $before = \core\task\manager::get_adhoc_tasks('core\task\adhoc_test_task'); + $before = manager::get_adhoc_tasks('core\task\adhoc_test_task'); // Schedule the task again but do not specify a time. - $task = new \core\task\adhoc_test_task(); + $task = new adhoc_test_task(); $task->set_custom_data(['courseid' => 10]); - \core\task\manager::reschedule_or_queue_adhoc_task($task); + manager::reschedule_or_queue_adhoc_task($task); - $this->assertEquals(1, count(\core\task\manager::get_adhoc_tasks('core\task\adhoc_test_task'))); - $this->assertEquals($before, \core\task\manager::get_adhoc_tasks('core\task\adhoc_test_task')); + $this->assertEquals(1, count(manager::get_adhoc_tasks('core\task\adhoc_test_task'))); + $this->assertEquals($before, manager::get_adhoc_tasks('core\task\adhoc_test_task')); } /** @@ -292,20 +285,20 @@ class core_adhoc_task_testcase extends advanced_testcase { $newruntime = time() + WEEKSECS; // Schedule adhoc task. - $task = new \core\task\adhoc_test_task(); + $task = new adhoc_test_task(); $task->set_custom_data(['courseid' => 10]); $task->set_next_run_time($initialruntime); - \core\task\manager::reschedule_or_queue_adhoc_task($task); + manager::reschedule_or_queue_adhoc_task($task); - $before = \core\task\manager::get_adhoc_tasks('core\task\adhoc_test_task'); + $before = manager::get_adhoc_tasks('core\task\adhoc_test_task'); // Schedule the task again. - $task = new \core\task\adhoc_test_task(); + $task = new adhoc_test_task(); $task->set_custom_data(['courseid' => 10]); $task->set_next_run_time($newruntime); - \core\task\manager::reschedule_or_queue_adhoc_task($task); + manager::reschedule_or_queue_adhoc_task($task); - $tasks = \core\task\manager::get_adhoc_tasks('core\task\adhoc_test_task'); + $tasks = manager::get_adhoc_tasks('core\task\adhoc_test_task'); $this->assertEquals(1, count($tasks)); $this->assertNotEquals($before, $tasks); $firsttask = reset($tasks); @@ -321,61 +314,61 @@ class core_adhoc_task_testcase extends advanced_testcase { $user = \core_user::get_user_by_username('admin'); // Schedule adhoc task. - $task = new \core\task\adhoc_test_task(); + $task = new adhoc_test_task(); $task->set_custom_data(array('courseid' => 10)); - $this->assertNotEmpty(\core\task\manager::queue_adhoc_task($task, true)); - $this->assertEquals(1, count(\core\task\manager::get_adhoc_tasks('core\task\adhoc_test_task'))); + $this->assertNotEmpty(manager::queue_adhoc_task($task, true)); + $this->assertEquals(1, count(manager::get_adhoc_tasks('core\task\adhoc_test_task'))); // Schedule adhoc task with a user. - $task = new \core\task\adhoc_test_task(); + $task = new adhoc_test_task(); $task->set_custom_data(array('courseid' => 10)); $task->set_userid($user->id); - $this->assertNotEmpty(\core\task\manager::queue_adhoc_task($task, true)); - $this->assertEquals(2, count(\core\task\manager::get_adhoc_tasks('core\task\adhoc_test_task'))); + $this->assertNotEmpty(manager::queue_adhoc_task($task, true)); + $this->assertEquals(2, count(manager::get_adhoc_tasks('core\task\adhoc_test_task'))); // Schedule same adhoc task with different custom data. - $task = new \core\task\adhoc_test_task(); + $task = new adhoc_test_task(); $task->set_custom_data(array('courseid' => 1)); - $this->assertNotEmpty(\core\task\manager::queue_adhoc_task($task, true)); - $this->assertEquals(3, count(\core\task\manager::get_adhoc_tasks('core\task\adhoc_test_task'))); + $this->assertNotEmpty(manager::queue_adhoc_task($task, true)); + $this->assertEquals(3, count(manager::get_adhoc_tasks('core\task\adhoc_test_task'))); // Schedule same adhoc task with same custom data. - $task = new \core\task\adhoc_test_task(); + $task = new adhoc_test_task(); $task->set_custom_data(array('courseid' => 1)); - $this->assertEmpty(\core\task\manager::queue_adhoc_task($task, true)); - $this->assertEquals(3, count(\core\task\manager::get_adhoc_tasks('core\task\adhoc_test_task'))); + $this->assertEmpty(manager::queue_adhoc_task($task, true)); + $this->assertEquals(3, count(manager::get_adhoc_tasks('core\task\adhoc_test_task'))); // Schedule same adhoc task with same custom data and a user. - $task = new \core\task\adhoc_test_task(); + $task = new adhoc_test_task(); $task->set_custom_data(array('courseid' => 1)); $task->set_userid($user->id); - $this->assertNotEmpty(\core\task\manager::queue_adhoc_task($task, true)); - $this->assertEquals(4, count(\core\task\manager::get_adhoc_tasks('core\task\adhoc_test_task'))); + $this->assertNotEmpty(manager::queue_adhoc_task($task, true)); + $this->assertEquals(4, count(manager::get_adhoc_tasks('core\task\adhoc_test_task'))); // Schedule same adhoc task without custom data. // Note: This task was created earlier. - $task = new \core\task\adhoc_test_task(); - $this->assertNotEmpty(\core\task\manager::queue_adhoc_task($task, true)); - $this->assertEquals(5, count(\core\task\manager::get_adhoc_tasks('core\task\adhoc_test_task'))); + $task = new adhoc_test_task(); + $this->assertNotEmpty(manager::queue_adhoc_task($task, true)); + $this->assertEquals(5, count(manager::get_adhoc_tasks('core\task\adhoc_test_task'))); // Schedule same adhoc task without custom data (again). - $task5 = new \core\task\adhoc_test_task(); - $this->assertEmpty(\core\task\manager::queue_adhoc_task($task5, true)); - $this->assertEquals(5, count(\core\task\manager::get_adhoc_tasks('core\task\adhoc_test_task'))); + $task5 = new adhoc_test_task(); + $this->assertEmpty(manager::queue_adhoc_task($task5, true)); + $this->assertEquals(5, count(manager::get_adhoc_tasks('core\task\adhoc_test_task'))); // Schedule same adhoc task without custom data but with a userid. - $task6 = new \core\task\adhoc_test_task(); + $task6 = new adhoc_test_task(); $user = \core_user::get_user_by_username('admin'); $task6->set_userid($user->id); - $this->assertNotEmpty(\core\task\manager::queue_adhoc_task($task6, true)); - $this->assertEquals(6, count(\core\task\manager::get_adhoc_tasks('core\task\adhoc_test_task'))); + $this->assertNotEmpty(manager::queue_adhoc_task($task6, true)); + $this->assertEquals(6, count(manager::get_adhoc_tasks('core\task\adhoc_test_task'))); // Schedule same adhoc task again without custom data but with a userid. - $task6 = new \core\task\adhoc_test_task(); + $task6 = new adhoc_test_task(); $user = \core_user::get_user_by_username('admin'); $task6->set_userid($user->id); - $this->assertEmpty(\core\task\manager::queue_adhoc_task($task6, true)); - $this->assertEquals(6, count(\core\task\manager::get_adhoc_tasks('core\task\adhoc_test_task'))); + $this->assertEmpty(manager::queue_adhoc_task($task6, true)); + $this->assertEquals(6, count(manager::get_adhoc_tasks('core\task\adhoc_test_task'))); } /** @@ -387,13 +380,13 @@ class core_adhoc_task_testcase extends advanced_testcase { $this->resetAfterTest(true); // Create an adhoc task in future. - $task = new \core\task\adhoc_test_task(); - \core\task\manager::queue_adhoc_task($task); + $task = new adhoc_test_task(); + manager::queue_adhoc_task($task); // Get it back from the scheduler. $now = time(); - $task = \core\task\manager::get_next_adhoc_task($now); - \core\task\manager::adhoc_task_complete($task); + $task = manager::get_next_adhoc_task($now); + manager::adhoc_task_complete($task); $this->assertEmpty($task->get_userid()); } @@ -409,15 +402,15 @@ class core_adhoc_task_testcase extends advanced_testcase { $this->resetAfterTest(true); // Create an adhoc task in future. - $task = new \core\task\adhoc_test_task(); + $task = new adhoc_test_task(); $user = \core_user::get_user_by_username('admin'); $task->set_userid($user->id); - \core\task\manager::queue_adhoc_task($task); + manager::queue_adhoc_task($task); // Get it back from the scheduler. $now = time(); - $task = \core\task\manager::get_next_adhoc_task($now); - \core\task\manager::adhoc_task_complete($task); + $task = manager::get_next_adhoc_task($now); + manager::adhoc_task_complete($task); $this->assertEquals($user->id, $task->get_userid()); } @@ -429,7 +422,7 @@ class core_adhoc_task_testcase extends advanced_testcase { */ public function test_get_concurrency_limit() { $this->resetAfterTest(true); - $task = new \core\task\adhoc_test_task(); + $task = new adhoc_test_task(); $concurrencylimit = $task->get_concurrency_limit(); $this->assertEquals(0, $concurrencylimit); } @@ -441,7 +434,7 @@ class core_adhoc_task_testcase extends advanced_testcase { public function test_get_concurrency_limit_default() { $this->resetAfterTest(true); set_config('task_concurrency_limit_default', 10); - $task = new \core\task\adhoc_test_task(); + $task = new adhoc_test_task(); $concurrencylimit = $task->get_concurrency_limit(); $this->assertEquals(10, $concurrencylimit); } @@ -455,7 +448,7 @@ class core_adhoc_task_testcase extends advanced_testcase { $this->resetAfterTest(true); set_config('task_concurrency_limit_default', 10); $CFG->task_concurrency_limit = array('core\task\adhoc_test_task' => 5); - $task = new \core\task\adhoc_test_task(); + $task = new adhoc_test_task(); $concurrencylimit = $task->get_concurrency_limit(); $this->assertEquals(5, $concurrencylimit); } @@ -468,42 +461,42 @@ class core_adhoc_task_testcase extends advanced_testcase { $this->resetAfterTest(true); // Create adhoc tasks. - $task1 = new \core\task\adhoc_test_task(); + $task1 = new adhoc_test_task(); $task1->set_next_run_time(1510000000); $task1->set_custom_data_as_string('Task 1'); - \core\task\manager::queue_adhoc_task($task1); + manager::queue_adhoc_task($task1); - $task2 = new \core\task\adhoc_test_task(); + $task2 = new adhoc_test_task(); $task2->set_next_run_time(1520000000); $task2->set_custom_data_as_string('Task 2'); - \core\task\manager::queue_adhoc_task($task2); + manager::queue_adhoc_task($task2); - $task3 = new \core\task\adhoc_test_task(); + $task3 = new adhoc_test_task(); $task3->set_next_run_time(1520000000); $task3->set_custom_data_as_string('Task 3'); - \core\task\manager::queue_adhoc_task($task3); + manager::queue_adhoc_task($task3); // Shuffle tasks. $task1->set_next_run_time(1540000000); - \core\task\manager::reschedule_or_queue_adhoc_task($task1); + manager::reschedule_or_queue_adhoc_task($task1); $task3->set_next_run_time(1530000000); - \core\task\manager::reschedule_or_queue_adhoc_task($task3); + manager::reschedule_or_queue_adhoc_task($task3); $task2->set_next_run_time(1530000000); - \core\task\manager::reschedule_or_queue_adhoc_task($task2); + manager::reschedule_or_queue_adhoc_task($task2); // Confirm, that tasks are sorted by nextruntime and then by id (ascending). - $task = \core\task\manager::get_next_adhoc_task(time()); + $task = manager::get_next_adhoc_task(time()); $this->assertEquals('Task 2', $task->get_custom_data_as_string()); - \core\task\manager::adhoc_task_complete($task); + manager::adhoc_task_complete($task); - $task = \core\task\manager::get_next_adhoc_task(time()); + $task = manager::get_next_adhoc_task(time()); $this->assertEquals('Task 3', $task->get_custom_data_as_string()); - \core\task\manager::adhoc_task_complete($task); + manager::adhoc_task_complete($task); - $task = \core\task\manager::get_next_adhoc_task(time()); + $task = manager::get_next_adhoc_task(time()); $this->assertEquals('Task 1', $task->get_custom_data_as_string()); - \core\task\manager::adhoc_task_complete($task); + manager::adhoc_task_complete($task); } } diff --git a/lib/tests/calendar_cron_task_test.php b/lib/tests/task/calendar_cron_task_test.php similarity index 83% rename from lib/tests/calendar_cron_task_test.php rename to lib/tests/task/calendar_cron_task_test.php index 0a2bf8360c0..2dbc52c9054 100644 --- a/lib/tests/calendar_cron_task_test.php +++ b/lib/tests/task/calendar_cron_task_test.php @@ -14,13 +14,7 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Contains the class containing unit tests for the calendar cron task. - * - * @package core - * @copyright 2017 Mark Nelson - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ +namespace core\task; defined('MOODLE_INTERNAL') || die(); @@ -34,7 +28,7 @@ require_once($CFG->dirroot . '/calendar/lib.php'); * @copyright 2017 Mark Nelson * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class core_calendar_cron_task_testcase extends advanced_testcase { +class calendar_cron_task_test extends \advanced_testcase { /** * Tests set up @@ -50,7 +44,7 @@ class core_calendar_cron_task_testcase extends advanced_testcase { // ICal URL from external test repo. $subscriptionurl = $this->getExternalTestFileUrl('/ical.ics'); - $subscription = new stdClass(); + $subscription = new \stdClass(); $subscription->eventtype = 'site'; $subscription->name = 'test'; $subscription->url = $subscriptionurl; @@ -58,7 +52,7 @@ class core_calendar_cron_task_testcase extends advanced_testcase { $subscription->lastupdated = 0; calendar_add_subscription($subscription); - $task = new \core\task\calendar_cron_task(); + $task = new calendar_cron_task(); ob_start(); $task->execute(); $output = ob_get_clean(); @@ -71,7 +65,7 @@ class core_calendar_cron_task_testcase extends advanced_testcase { * Test calendar cron task with a broken subscription URL. */ public function test_cron_broken_url() { - $subscription = new stdClass(); + $subscription = new \stdClass(); $subscription->eventtype = 'site'; $subscription->name = 'test'; $subscription->url = 'brokenurl'; @@ -80,7 +74,7 @@ class core_calendar_cron_task_testcase extends advanced_testcase { calendar_add_subscription($subscription); $this->expectOutputRegex('/Error updating calendar subscription: The given iCal URL is invalid/'); - $task = new \core\task\calendar_cron_task(); + $task = new calendar_cron_task(); $task->execute(); } } diff --git a/lib/tests/task_database_logger_test.php b/lib/tests/task/database_logger_test.php similarity index 97% rename from lib/tests/task_database_logger_test.php rename to lib/tests/task/database_logger_test.php index 7d728a32013..3ea897eb7fd 100644 --- a/lib/tests/task_database_logger_test.php +++ b/lib/tests/task/database_logger_test.php @@ -14,26 +14,17 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . +namespace core\task; + /** * This file contains the unit tests for the database task logger. * * @package core - * @category phpunit + * @category test * @copyright 2018 Andrew Nicols * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ - -defined('MOODLE_INTERNAL') || die(); - -use \core\task\database_logger; - -/** - * This file contains the unit tests for the database task logger. - * - * @copyright 2018 Andrew Nicols - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ -class task_database_logger_testcase extends advanced_testcase { +class database_logger_test extends \advanced_testcase { /** * @var \moodle_database The original database prior to mocking @@ -267,7 +258,7 @@ class task_database_logger_testcase extends advanced_testcase { set_config('task_logretainruns', 1000); // Create sample log data - 1 run per hour for 3 days - round down to the start of the hour to avoid time race conditions. - $date = new DateTime(); + $date = new \DateTime(); $date->setTime($date->format('G'), 0); $baselogtime = $date->getTimestamp(); @@ -331,7 +322,7 @@ class task_database_logger_testcase extends advanced_testcase { set_config('task_logretention', YEARSECS); // Create sample log data - 2 tasks, once per hour for 3 days. - $date = new DateTime(); + $date = new \DateTime(); $date->setTime($date->format('G'), 0); $firstdate = $date->getTimestamp(); @@ -434,7 +425,7 @@ class task_database_logger_testcase extends advanced_testcase { $this->resetAfterTest(); // Calculate date to be used for logs, starting from current time rounded down to nearest hour. - $date = new DateTime(); + $date = new \DateTime(); $date->setTime($date->format('G'), 0); $baselogtime = $date->getTimestamp(); diff --git a/lib/tests/h5p_get_content_types_task_test.php b/lib/tests/task/h5p_get_content_types_task_test.php similarity index 87% rename from lib/tests/h5p_get_content_types_task_test.php rename to lib/tests/task/h5p_get_content_types_task_test.php index 572e49ebfbb..ccb42ea2bd8 100644 --- a/lib/tests/h5p_get_content_types_task_test.php +++ b/lib/tests/task/h5p_get_content_types_task_test.php @@ -14,19 +14,11 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Unit tests for the task that fetch the latest version of H5P content types. - * - * @package core - * @copyright 2019 Victor Deniz - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ +namespace core\task; use core_h5p\local\library\autoloader; use core_h5p\h5p_test_factory; -defined('MOODLE_INTERNAL') || die(); - /** * Class containing unit tests for the task that fetch the latest version of H5P content types. * @@ -36,7 +28,7 @@ defined('MOODLE_INTERNAL') || die(); * * @runTestsInSeparateProcesses */ -class h5p_get_content_types_task_testcase extends advanced_testcase { +class h5p_get_content_types_task_test extends \advanced_testcase { protected function setup(): void { global $CFG; diff --git a/lib/tests/task_logging_test.php b/lib/tests/task/logging_test.php similarity index 80% rename from lib/tests/task_logging_test.php rename to lib/tests/task/logging_test.php index 0aff4da5a0a..ee0df88197d 100644 --- a/lib/tests/task_logging_test.php +++ b/lib/tests/task/logging_test.php @@ -18,22 +18,25 @@ * This file contains the unit tests for the task logging system. * * @package core - * @category phpunit + * @category test * @copyright 2018 Andrew Nicols * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -defined('MOODLE_INTERNAL') || die(); -require_once(__DIR__ . '/fixtures/task_fixtures.php'); +namespace core\task; +defined('MOODLE_INTERNAL') || die(); +require_once(__DIR__ . '/../fixtures/task_fixtures.php'); /** * This file contains the unit tests for the task logging system. * + * @package core + * @category test * @copyright 2018 Andrew Nicols * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class core_task_logmanager extends advanced_testcase { +class logging_test extends \advanced_testcase { /** * @var \moodle_database The original database prior to mocking @@ -47,7 +50,7 @@ class core_task_logmanager extends advanced_testcase { global $DB; // Ensure that any logging is always ended. - \core\task\logmanager::finalise_log(); + logmanager::finalise_log(); if (null !== $this->DB) { $DB = $this->DB; @@ -62,12 +65,12 @@ class core_task_logmanager extends advanced_testcase { global $CFG; $this->resetAfterTest(); - $CFG->task_logmode = \core\task\logmanager::MODE_NONE; + $CFG->task_logmode = logmanager::MODE_NONE; $initialbufferstate = ob_get_status(); $task = $this->get_test_adhoc_task(); - \core\task\logmanager::start_logging($task); + logmanager::start_logging($task); // There will be no additional output buffer. $this->assertEquals($initialbufferstate, ob_get_status()); @@ -80,12 +83,12 @@ class core_task_logmanager extends advanced_testcase { global $CFG; $this->resetAfterTest(); - $CFG->task_logmode = \core\task\logmanager::MODE_ALL; + $CFG->task_logmode = logmanager::MODE_ALL; $initialbufferstate = ob_get_status(); $task = $this->get_test_adhoc_task(); - \core\task\logmanager::start_logging($task); + logmanager::start_logging($task); // Fetch the new output buffer state. $state = ob_get_status(); @@ -101,12 +104,12 @@ class core_task_logmanager extends advanced_testcase { global $CFG; $this->resetAfterTest(); - $CFG->task_logmode = \core\task\logmanager::MODE_FAILONLY; + $CFG->task_logmode = logmanager::MODE_FAILONLY; $initialbufferstate = ob_get_status(); $task = $this->get_test_adhoc_task(); - \core\task\logmanager::start_logging($task); + logmanager::start_logging($task); // Fetch the new output buffer state. $state = ob_get_status(); @@ -122,16 +125,16 @@ class core_task_logmanager extends advanced_testcase { global $CFG; $this->resetAfterTest(); - $CFG->task_logmode = \core\task\logmanager::MODE_FAILONLY; + $CFG->task_logmode = logmanager::MODE_FAILONLY; $logger = $this->get_mocked_logger(); $initialbufferstate = ob_get_status(); $task = $this->get_test_adhoc_task(); - \core\task\logmanager::start_logging($task); + logmanager::start_logging($task); - \core\task\manager::adhoc_task_complete($task); + manager::adhoc_task_complete($task); $this->assertEmpty($logger::$storelogfortask); } @@ -143,16 +146,16 @@ class core_task_logmanager extends advanced_testcase { global $CFG; $this->resetAfterTest(); - $CFG->task_logmode = \core\task\logmanager::MODE_FAILONLY; + $CFG->task_logmode = logmanager::MODE_FAILONLY; $logger = $this->get_mocked_logger(); $initialbufferstate = ob_get_status(); $task = $this->get_test_scheduled_task(); - \core\task\logmanager::start_logging($task); + logmanager::start_logging($task); - \core\task\manager::scheduled_task_complete($task); + manager::scheduled_task_complete($task); $this->assertEmpty($logger::$storelogfortask); } @@ -170,12 +173,12 @@ class core_task_logmanager extends advanced_testcase { $task = $this->get_test_adhoc_task(); - $CFG->task_logmode = \core\task\logmanager::MODE_FAILONLY; + $CFG->task_logmode = logmanager::MODE_FAILONLY; $logger = $this->get_mocked_logger(); - \core\task\logmanager::start_logging($task); - \core\task\manager::adhoc_task_failed($task); + logmanager::start_logging($task); + manager::adhoc_task_failed($task); $this->assertCount(1, $logger::$storelogfortask); $this->assertEquals($task, $logger::$storelogfortask[0][0]); @@ -195,12 +198,12 @@ class core_task_logmanager extends advanced_testcase { $task = $this->get_test_scheduled_task(); - $CFG->task_logmode = \core\task\logmanager::MODE_FAILONLY; + $CFG->task_logmode = logmanager::MODE_FAILONLY; $logger = $this->get_mocked_logger(); - \core\task\logmanager::start_logging($task); - \core\task\manager::scheduled_task_failed($task); + logmanager::start_logging($task); + manager::scheduled_task_failed($task); $this->assertCount(1, $logger::$storelogfortask); $this->assertEquals($task, $logger::$storelogfortask[0][0]); @@ -220,12 +223,12 @@ class core_task_logmanager extends advanced_testcase { $task = $this->get_test_adhoc_task(); - $CFG->task_logmode = \core\task\logmanager::MODE_FAILONLY; + $CFG->task_logmode = logmanager::MODE_FAILONLY; $logger = $this->get_mocked_logger(); - \core\task\logmanager::start_logging($task); - \core\task\manager::adhoc_task_failed($task); + logmanager::start_logging($task); + manager::adhoc_task_failed($task); $this->assertCount(1, $logger::$storelogfortask); $this->assertEquals($task, $logger::$storelogfortask[0][0]); @@ -245,12 +248,12 @@ class core_task_logmanager extends advanced_testcase { $task = $this->get_test_scheduled_task(); - $CFG->task_logmode = \core\task\logmanager::MODE_FAILONLY; + $CFG->task_logmode = logmanager::MODE_FAILONLY; $logger = $this->get_mocked_logger(); - \core\task\logmanager::start_logging($task); - \core\task\manager::scheduled_task_failed($task); + logmanager::start_logging($task); + manager::scheduled_task_failed($task); $this->assertCount(1, $logger::$storelogfortask); $this->assertEquals($task, $logger::$storelogfortask[0][0]); @@ -269,12 +272,12 @@ class core_task_logmanager extends advanced_testcase { $task = $this->get_test_adhoc_task(); - $CFG->task_logmode = \core\task\logmanager::MODE_ALL; + $CFG->task_logmode = logmanager::MODE_ALL; $logger = $this->get_mocked_logger(); - \core\task\logmanager::start_logging($task); - \core\task\manager::adhoc_task_complete($task); + logmanager::start_logging($task); + manager::adhoc_task_complete($task); $this->assertCount(1, $logger::$storelogfortask); $this->assertEquals($task, $logger::$storelogfortask[0][0]); @@ -293,12 +296,12 @@ class core_task_logmanager extends advanced_testcase { $task = $this->get_test_scheduled_task(); - $CFG->task_logmode = \core\task\logmanager::MODE_ALL; + $CFG->task_logmode = logmanager::MODE_ALL; $logger = $this->get_mocked_logger(); - \core\task\logmanager::start_logging($task); - \core\task\manager::scheduled_task_complete($task); + logmanager::start_logging($task); + manager::scheduled_task_complete($task); $this->assertCount(1, $logger::$storelogfortask); $this->assertEquals($task, $logger::$storelogfortask[0][0]); @@ -312,10 +315,10 @@ class core_task_logmanager extends advanced_testcase { $this->resetAfterTest(); $task = $this->get_test_adhoc_task(); - \core\task\logmanager::start_logging($task); + logmanager::start_logging($task); $this->expectException(\coding_exception::class); - \core\task\logmanager::start_logging($task); + logmanager::start_logging($task); } /** @@ -327,11 +330,11 @@ class core_task_logmanager extends advanced_testcase { $logger = $this->get_mocked_logger(); $task = $this->get_test_adhoc_task(); - \core\task\logmanager::start_logging($task); - \core\task\logmanager::finalise_log(); + logmanager::start_logging($task); + logmanager::finalise_log(); - \core\task\logmanager::start_logging($task); - \core\task\logmanager::finalise_log(); + logmanager::start_logging($task); + logmanager::finalise_log(); $this->assertCount(2, $logger::$storelogfortask); $this->assertEquals($task, $logger::$storelogfortask[0][0]); @@ -346,7 +349,7 @@ class core_task_logmanager extends advanced_testcase { public function test_finalise_log_no_logging() { $initialbufferstate = ob_get_status(); - \core\task\logmanager::finalise_log(); + logmanager::finalise_log(); // There will be no additional output buffer. $this->assertEquals($initialbufferstate, ob_get_status()); @@ -363,15 +366,15 @@ class core_task_logmanager extends advanced_testcase { $testoutput = "I am the output under test.\n"; $task = $this->get_test_adhoc_task(); - \core\task\logmanager::start_logging($task); + logmanager::start_logging($task); echo $testoutput; $this->expectOutputString($testoutput); - \core\task\logmanager::flush(); + logmanager::flush(); // Finalise the log. - \core\task\logmanager::finalise_log(); + logmanager::finalise_log(); $this->assertCount(1, $logger::$storelogfortask); $this->assertEquals($testoutput, file_get_contents($logger::$storelogfortask[0][1])); @@ -388,16 +391,16 @@ class core_task_logmanager extends advanced_testcase { $testoutput = "I am the output under test.\n"; $task = $this->get_test_adhoc_task(); - \core\task\logmanager::start_logging($task); + logmanager::start_logging($task); ob_start(); echo $testoutput; ob_end_clean(); - \core\task\logmanager::flush(); + logmanager::flush(); // Finalise the log. - \core\task\logmanager::finalise_log(); + logmanager::finalise_log(); $this->assertCount(1, $logger::$storelogfortask); @@ -416,7 +419,7 @@ class core_task_logmanager extends advanced_testcase { $testoutput = "I am the output under test.\n"; $task = $this->get_test_adhoc_task(); - \core\task\logmanager::start_logging($task); + logmanager::start_logging($task); // We are going to flush the inner buffer. That means that we should expect the output immediately. $this->expectOutputString($testoutput); @@ -426,7 +429,7 @@ class core_task_logmanager extends advanced_testcase { ob_end_flush(); // Finalise the log. - \core\task\logmanager::finalise_log(); + logmanager::finalise_log(); $this->assertCount(1, $logger::$storelogfortask); @@ -437,10 +440,10 @@ class core_task_logmanager extends advanced_testcase { /** * Get an example adhoc task to use for testing. * - * @return \core\task\adhoc_task + * @return adhoc_task */ - protected function get_test_adhoc_task() : \core\task\adhoc_task { - $task = $this->getMockForAbstractClass(\core\task\adhoc_task::class); + protected function get_test_adhoc_task() : adhoc_task { + $task = $this->getMockForAbstractClass(adhoc_task::class); $task->set_component('core'); // Mock a lock on the task. @@ -455,10 +458,10 @@ class core_task_logmanager extends advanced_testcase { /** * Get an example scheduled task to use for testing. * - * @return \core\task\scheduled_task + * @return scheduled_task */ - protected function get_test_scheduled_task() : \core\task\scheduled_task { - $task = $this->getMockForAbstractClass(\core\task\scheduled_task::class); + protected function get_test_scheduled_task() : scheduled_task { + $task = $this->getMockForAbstractClass(scheduled_task::class); // Mock a lock on the task. $lock = $this->getMockBuilder(\core\lock\lock::class) @@ -472,7 +475,7 @@ class core_task_logmanager extends advanced_testcase { /** * Create and configure a mocked task logger. * - * @return \core\task\task_logger + * @return task_logger */ protected function get_mocked_logger() { global $CFG; @@ -481,8 +484,8 @@ class core_task_logmanager extends advanced_testcase { $this->resetAfterTest(); // Note PHPUnit does not support mocking static functions. - $CFG->task_log_class = \task_logging_test_mocked_logger::class; - \task_logging_test_mocked_logger::test_reset(); + $CFG->task_log_class = logging_test_mocked_logger::class; + logging_test_mocked_logger::test_reset(); return $CFG->task_log_class; } @@ -510,7 +513,7 @@ class core_task_logmanager extends advanced_testcase { * @copyright 2018 Andrew Nicols * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class task_logging_test_mocked_logger implements \core\task\task_logger { +class logging_test_mocked_logger implements task_logger { /** * @var bool Whether this is configured. @@ -548,7 +551,7 @@ class task_logging_test_mocked_logger implements \core\task\task_logger { /** * Store the log for the specified task. * - * @param \core\task\task_base $task The task that the log belongs to. + * @param task_base $task The task that the log belongs to. * @param string $logpath The path to the log on disk * @param bool $failed Whether the task failed * @param int $dbreads The number of DB reads @@ -556,7 +559,7 @@ class task_logging_test_mocked_logger implements \core\task\task_logger { * @param float $timestart The start time of the task * @param float $timeend The end time of the task */ - public static function store_log_for_task(\core\task\task_base $task, string $logpath, bool $failed, + public static function store_log_for_task(task_base $task, string $logpath, bool $failed, int $dbreads, int $dbwrites, float $timestart, float $timeend) { self::$storelogfortask[] = func_get_args(); } diff --git a/lib/tests/scheduled_task_test.php b/lib/tests/task/scheduled_task_test.php similarity index 83% rename from lib/tests/scheduled_task_test.php rename to lib/tests/task/scheduled_task_test.php index e8932559ed5..ee564bb838a 100644 --- a/lib/tests/scheduled_task_test.php +++ b/lib/tests/task/scheduled_task_test.php @@ -14,33 +14,26 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * This file contains the unittests for scheduled tasks. - * - * @package core - * @category phpunit - * @copyright 2013 Damyon Wiese - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ +namespace core\task; defined('MOODLE_INTERNAL') || die(); -require_once(__DIR__ . '/fixtures/task_fixtures.php'); +require_once(__DIR__ . '/../fixtures/task_fixtures.php'); /** * Test class for scheduled task. * * @package core - * @category task + * @category test * @copyright 2013 Damyon Wiese * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class core_scheduled_task_testcase extends advanced_testcase { +class scheduled_task_test extends \advanced_testcase { /** * Test the cron scheduling method */ public function test_eval_cron_field() { - $testclass = new \core\task\scheduled_test_task(); + $testclass = new scheduled_test_task(); $this->assertEquals(20, count($testclass->eval_cron_field('*/3', 0, 59))); $this->assertEquals(31, count($testclass->eval_cron_field('1,*/2', 0, 59))); @@ -63,7 +56,7 @@ class core_scheduled_task_testcase extends advanced_testcase { $testhour = 1; // Test job run at 1 am. - $testclass = new \core\task\scheduled_test_task(); + $testclass = new scheduled_test_task(); // All fields default to '*'. $testclass->set_hour($testhour); @@ -71,7 +64,7 @@ class core_scheduled_task_testcase extends advanced_testcase { // Next valid time should be 1am of the next day. $nexttime = $testclass->get_next_scheduled_time(); - $oneamdate = new DateTime('now', new DateTimeZone('Europe/London')); + $oneamdate = new \DateTime('now', new \DateTimeZone('Europe/London')); $oneamdate->setTime($testhour, 0, 0); // Once a year (currently last Sunday of March), when changing to Daylight Saving Time, @@ -86,10 +79,10 @@ class core_scheduled_task_testcase extends advanced_testcase { // Make it 1 am tomorrow if the time is after 1am. if ($oneamdate->getTimestamp() < time()) { - $oneamdate->add(new DateInterval('P1D')); + $oneamdate->add(new \DateInterval('P1D')); if ($isdaylightsaving) { // If today is Europe/London Daylight Saving Time Begins, expectation is 1 less hour. - $oneamdate->sub(new DateInterval('PT1H')); + $oneamdate->sub(new \DateInterval('PT1H')); } } $oneam = $oneamdate->getTimestamp(); @@ -102,7 +95,7 @@ class core_scheduled_task_testcase extends advanced_testcase { $this->assertEquals($oneam, $nexttime, 'Next scheduled time is 1am.'); // Now test for job run every 10 minutes. - $testclass = new \core\task\scheduled_test_task(); + $testclass = new scheduled_test_task(); // All fields default to '*'. $testclass->set_minute('*/10'); @@ -120,7 +113,7 @@ class core_scheduled_task_testcase extends advanced_testcase { $this->assertEquals($nexttenminutes, $nexttime, 'Next scheduled time is in 10 minutes.'); // Test hourly job executed on Sundays only. - $testclass = new \core\task\scheduled_test_task(); + $testclass = new scheduled_test_task(); $testclass->set_minute('0'); $testclass->set_day_of_week('7'); @@ -130,7 +123,7 @@ class core_scheduled_task_testcase extends advanced_testcase { $this->assertEquals(0, date('i', $nexttime)); // Test monthly job. - $testclass = new \core\task\scheduled_test_task(); + $testclass = new scheduled_test_task(); $testclass->set_minute('32'); $testclass->set_hour('0'); $testclass->set_day('1'); @@ -150,7 +143,7 @@ class core_scheduled_task_testcase extends advanced_testcase { $this->setTimezone('Asia/Kabul'); - $testclass = new \core\task\scheduled_test_task(); + $testclass = new scheduled_test_task(); // Scheduled tasks should always use servertime - so this is 03:30 GMT. $testclass->set_hour('1'); @@ -166,13 +159,13 @@ class core_scheduled_task_testcase extends advanced_testcase { // Should be displayed in user timezone. // I used http://www.timeanddate.com/worldclock/fixedtime.html?msg=Moodle+Test&iso=20160502T01&p1=113 // setting my location to Kathmandu to verify this time. - $this->assertStringContainsString('2:15 AM', core_text::strtoupper($userdate)); + $this->assertStringContainsString('2:15 AM', \core_text::strtoupper($userdate)); } public function test_reset_scheduled_tasks_for_component_customised(): void { $this->resetAfterTest(true); - $tasks = \core\task\manager::load_scheduled_tasks_for_component('moodle'); + $tasks = manager::load_scheduled_tasks_for_component('moodle'); // Customise a task. $task = reset($tasks); @@ -182,13 +175,13 @@ class core_scheduled_task_testcase extends advanced_testcase { $task->set_month('4'); $task->set_day_of_week('5'); $task->set_customised('1'); - \core\task\manager::configure_scheduled_task($task); + manager::configure_scheduled_task($task); // Now call reset. - \core\task\manager::reset_scheduled_tasks_for_component('moodle'); + manager::reset_scheduled_tasks_for_component('moodle'); // Fetch the task again. - $taskafterreset = \core\task\manager::get_scheduled_task(get_class($task)); + $taskafterreset = manager::get_scheduled_task(get_class($task)); // The task should still be the same as the customised. $this->assertTaskEquals($task, $taskafterreset); @@ -199,23 +192,23 @@ class core_scheduled_task_testcase extends advanced_testcase { $this->resetAfterTest(true); // Delete a task to simulate the fact that its new. - $tasklist = \core\task\manager::load_scheduled_tasks_for_component('moodle'); + $tasklist = manager::load_scheduled_tasks_for_component('moodle'); // Note: This test must use a task which does not use any random values. - $task = \core\task\manager::get_scheduled_task(core\task\session_cleanup_task::class); + $task = manager::get_scheduled_task(session_cleanup_task::class); $DB->delete_records('task_scheduled', array('classname' => '\\' . trim(get_class($task), '\\'))); - $this->assertFalse(\core\task\manager::get_scheduled_task(core\task\session_cleanup_task::class)); + $this->assertFalse(manager::get_scheduled_task(session_cleanup_task::class)); // Now call reset on all the tasks. - \core\task\manager::reset_scheduled_tasks_for_component('moodle'); + manager::reset_scheduled_tasks_for_component('moodle'); // Assert that the second task was added back. - $taskafterreset = \core\task\manager::get_scheduled_task(core\task\session_cleanup_task::class); + $taskafterreset = manager::get_scheduled_task(session_cleanup_task::class); $this->assertNotFalse($taskafterreset); $this->assertTaskEquals($task, $taskafterreset); - $this->assertCount(count($tasklist), \core\task\manager::load_scheduled_tasks_for_component('moodle')); + $this->assertCount(count($tasklist), manager::load_scheduled_tasks_for_component('moodle')); } public function test_reset_scheduled_tasks_for_component_changed_in_source(): void { @@ -223,10 +216,10 @@ class core_scheduled_task_testcase extends advanced_testcase { // Delete a task to simulate the fact that its new. // Note: This test must use a task which does not use any random values. - $task = \core\task\manager::get_scheduled_task(core\task\session_cleanup_task::class); + $task = manager::get_scheduled_task(session_cleanup_task::class); // Get a copy of the task before maing changes for later comparison. - $taskbeforechange = \core\task\manager::get_scheduled_task(core\task\session_cleanup_task::class); + $taskbeforechange = manager::get_scheduled_task(session_cleanup_task::class); // Edit a task to simulate a change in its definition (as if it was not customised). $task->set_minute('1'); @@ -234,19 +227,19 @@ class core_scheduled_task_testcase extends advanced_testcase { $task->set_day('3'); $task->set_month('4'); $task->set_day_of_week('5'); - \core\task\manager::configure_scheduled_task($task); + manager::configure_scheduled_task($task); // Fetch the task out for comparison. - $taskafterchange = \core\task\manager::get_scheduled_task(core\task\session_cleanup_task::class); + $taskafterchange = manager::get_scheduled_task(session_cleanup_task::class); // The task should now be different to the original. $this->assertTaskNotEquals($taskbeforechange, $taskafterchange); // Now call reset. - \core\task\manager::reset_scheduled_tasks_for_component('moodle'); + manager::reset_scheduled_tasks_for_component('moodle'); // Fetch the task again. - $taskafterreset = \core\task\manager::get_scheduled_task(core\task\session_cleanup_task::class); + $taskafterreset = manager::get_scheduled_task(session_cleanup_task::class); // The task should now be the same as the original. $this->assertTaskEquals($taskbeforechange, $taskafterreset); @@ -262,16 +255,16 @@ class core_scheduled_task_testcase extends advanced_testcase { $count = $DB->count_records('task_scheduled', array('component' => 'moodle')); $allcount = $DB->count_records('task_scheduled'); - $task = new \core\task\scheduled_test_task(); + $task = new scheduled_test_task(); $task->set_component('moodle'); - $record = \core\task\manager::record_from_scheduled_task($task); + $record = manager::record_from_scheduled_task($task); $DB->insert_record('task_scheduled', $record); $this->assertTrue($DB->record_exists('task_scheduled', array('classname' => '\core\task\scheduled_test_task', 'component' => 'moodle'))); - $task = new \core\task\scheduled_test2_task(); + $task = new scheduled_test2_task(); $task->set_component('moodle'); - $record = \core\task\manager::record_from_scheduled_task($task); + $record = manager::record_from_scheduled_task($task); $DB->insert_record('task_scheduled', $record); $this->assertTrue($DB->record_exists('task_scheduled', array('classname' => '\core\task\scheduled_test2_task', 'component' => 'moodle'))); @@ -283,7 +276,7 @@ class core_scheduled_task_testcase extends advanced_testcase { $this->assertEquals($allcount + 2, $afterallcount); // Now check that the right things were deleted. - \core\task\manager::reset_scheduled_tasks_for_component('moodle'); + manager::reset_scheduled_tasks_for_component('moodle'); $this->assertEquals($count, $DB->count_records('task_scheduled', array('component' => 'moodle'))); $this->assertEquals($allcount, $DB->count_records('task_scheduled')); @@ -302,7 +295,7 @@ class core_scheduled_task_testcase extends advanced_testcase { // Add a scheduled task. // A task that runs once per hour. - $record = new stdClass(); + $record = new \stdClass(); $record->blocking = true; $record->minute = '0'; $record->hour = '0'; @@ -324,30 +317,30 @@ class core_scheduled_task_testcase extends advanced_testcase { $now = time(); // Should get handed the first task. - $task = \core\task\manager::get_next_scheduled_task($now); + $task = manager::get_next_scheduled_task($now); $this->assertInstanceOf('\core\task\scheduled_test_task', $task); $task->execute(); - \core\task\manager::scheduled_task_complete($task); + manager::scheduled_task_complete($task); // Should get handed the second task. - $task = \core\task\manager::get_next_scheduled_task($now); + $task = manager::get_next_scheduled_task($now); $this->assertInstanceOf('\core\task\scheduled_test2_task', $task); $task->execute(); - \core\task\manager::scheduled_task_failed($task); + manager::scheduled_task_failed($task); // Should not get any task. - $task = \core\task\manager::get_next_scheduled_task($now); + $task = manager::get_next_scheduled_task($now); $this->assertNull($task); // Should get the second task (retry after delay). - $task = \core\task\manager::get_next_scheduled_task($now + 120); + $task = manager::get_next_scheduled_task($now + 120); $this->assertInstanceOf('\core\task\scheduled_test2_task', $task); $task->execute(); - \core\task\manager::scheduled_task_complete($task); + manager::scheduled_task_complete($task); // Should not get any task. - $task = \core\task\manager::get_next_scheduled_task($now); + $task = manager::get_next_scheduled_task($now); $this->assertNull($task); // Check ordering. @@ -362,19 +355,19 @@ class core_scheduled_task_testcase extends advanced_testcase { $DB->insert_record('task_scheduled', $record); // Should get handed the second task. - $task = \core\task\manager::get_next_scheduled_task($now); + $task = manager::get_next_scheduled_task($now); $this->assertInstanceOf('\core\task\scheduled_test2_task', $task); $task->execute(); - \core\task\manager::scheduled_task_complete($task); + manager::scheduled_task_complete($task); // Should get handed the first task. - $task = \core\task\manager::get_next_scheduled_task($now); + $task = manager::get_next_scheduled_task($now); $this->assertInstanceOf('\core\task\scheduled_test_task', $task); $task->execute(); - \core\task\manager::scheduled_task_complete($task); + manager::scheduled_task_complete($task); // Should not get any task. - $task = \core\task\manager::get_next_scheduled_task($now); + $task = manager::get_next_scheduled_task($now); $this->assertNull($task); } @@ -387,7 +380,7 @@ class core_scheduled_task_testcase extends advanced_testcase { // Add a scheduled task. // A broken task that runs all the time. - $record = new stdClass(); + $record = new \stdClass(); $record->blocking = true; $record->minute = '*'; $record->hour = '*'; @@ -401,7 +394,7 @@ class core_scheduled_task_testcase extends advanced_testcase { $now = time(); // Should not get any task. - $task = \core\task\manager::get_next_scheduled_task($now); + $task = manager::get_next_scheduled_task($now); $this->assertDebuggingCalled(); $this->assertNull($task); } @@ -414,7 +407,7 @@ class core_scheduled_task_testcase extends advanced_testcase { // Testing non-deterministic things in a unit test is not really // wise, so we just test the values have changed within allowed bounds. - $testclass = new \core\task\scheduled_test_task(); + $testclass = new scheduled_test_task(); // The test task defaults to '*'. $this->assertIsString($testclass->get_minute()); @@ -464,7 +457,7 @@ class core_scheduled_task_testcase extends advanced_testcase { // Change the time modified for the first file, to a time that will be deleted by the task (greater than seven days). touch($file01, time() - (8 * 24 * 3600)); - $task = \core\task\manager::get_scheduled_task('\\core\\task\\file_temp_cleanup_task'); + $task = manager::get_scheduled_task('\\core\\task\\file_temp_cleanup_task'); $this->assertInstanceOf('\core\task\file_temp_cleanup_task', $task); $task->execute(); @@ -518,20 +511,20 @@ class core_scheduled_task_testcase extends advanced_testcase { $before = time(); $cronlockfactory = \core\lock\lock_config::get_lock_factory('cron'); for ($i = 0; $i < 3; $i ++) { - $task = \core\task\manager::get_scheduled_task($taskname); + $task = manager::get_scheduled_task($taskname); $lock = $cronlockfactory->get_lock('\\' . get_class($task), 10); $task->set_lock($lock); - \core\task\manager::scheduled_task_failed($task); + manager::scheduled_task_failed($task); } // Confirm task is now delayed by several minutes. - $task = \core\task\manager::get_scheduled_task($taskname); + $task = manager::get_scheduled_task($taskname); $this->assertEquals(240, $task->get_fail_delay()); $this->assertGreaterThan($before + 230, $task->get_next_run_time()); // Clear the fail delay and re-get the task. - \core\task\manager::clear_fail_delay($task); - $task = \core\task\manager::get_scheduled_task($taskname); + manager::clear_fail_delay($task); + $task = manager::get_scheduled_task($taskname); // There should be no delay and it should run within the next minute. $this->assertEquals(0, $task->get_fail_delay()); @@ -628,14 +621,14 @@ class core_scheduled_task_testcase extends advanced_testcase { $CFG->scheduled_tasks = $overrides; // Set up test scheduled task record. - $record = new stdClass(); + $record = new \stdClass(); $record->component = 'test_scheduled_task'; foreach ($tasks as $task) { $record->classname = $task; $DB->insert_record('task_scheduled', $record); - $scheduledtask = \core\task\manager::get_scheduled_task($task); + $scheduledtask = manager::get_scheduled_task($task); $expectedresults = $expected[$task]; // Check that the task is actually overridden. @@ -683,7 +676,7 @@ class core_scheduled_task_testcase extends advanced_testcase { ]; // A task that runs once per hour. - $record = new stdClass(); + $record = new \stdClass(); $record->component = 'test_scheduled_task'; $record->classname = '\core\task\scheduled_test_task'; $record->disabled = 0; @@ -696,10 +689,10 @@ class core_scheduled_task_testcase extends advanced_testcase { $now = time(); - $scheduledtask = \core\task\manager::get_next_scheduled_task($now); + $scheduledtask = manager::get_next_scheduled_task($now); $this->assertInstanceOf('\core\task\scheduled_test2_task', $scheduledtask); $scheduledtask->execute(); - \core\task\manager::scheduled_task_complete($scheduledtask); + manager::scheduled_task_complete($scheduledtask); } /** @@ -708,10 +701,10 @@ class core_scheduled_task_testcase extends advanced_testcase { * @param \core\task\task_base $task * @param \core\task\task_base $comparisontask */ - public function assertTaskEquals(\core\task\task_base $task, \core\task\task_base $comparisontask): void { + public function assertTaskEquals(task_base $task, task_base $comparisontask): void { // Convert both to an object. - $task = \core\task\manager::record_from_scheduled_task($task); - $comparisontask = \core\task\manager::record_from_scheduled_task($comparisontask); + $task = manager::record_from_scheduled_task($task); + $comparisontask = manager::record_from_scheduled_task($comparisontask); // Reset the nextruntime field as it is intentionally dynamic. $task->nextruntime = null; @@ -734,10 +727,10 @@ class core_scheduled_task_testcase extends advanced_testcase { * @param \core\task\task_base $task * @param \core\task\task_base $comparisontask */ - public function assertTaskNotEquals(\core\task\task_base $task, \core\task\task_base $comparisontask): void { + public function assertTaskNotEquals(task_base $task, task_base $comparisontask): void { // Convert both to an object. - $task = \core\task\manager::record_from_scheduled_task($task); - $comparisontask = \core\task\manager::record_from_scheduled_task($comparisontask); + $task = manager::record_from_scheduled_task($task); + $comparisontask = manager::record_from_scheduled_task($comparisontask); // Reset the nextruntime field as it is intentionally dynamic. $task->nextruntime = null; @@ -765,10 +758,10 @@ class core_scheduled_task_testcase extends advanced_testcase { $DB->set_field('task_scheduled', 'lastruntime', 123456789, ['classname' => '\core\task\session_cleanup_task']); // Reset the task. - \core\task\manager::reset_scheduled_tasks_for_component('moodle'); + manager::reset_scheduled_tasks_for_component('moodle'); // Fetch the task again. - $taskafterreset = \core\task\manager::get_scheduled_task(core\task\session_cleanup_task::class); + $taskafterreset = manager::get_scheduled_task(session_cleanup_task::class); // Confirm, that lastruntime is still in place. $this->assertEquals(123456789, $taskafterreset->get_last_run_time()); @@ -801,7 +794,7 @@ class core_scheduled_task_testcase extends advanced_testcase { // Set cas as the only enabled auth component. set_config('auth', 'cas'); - $task = new \core\task\scheduled_test_task(); + $task = new scheduled_test_task(); $task->set_component($component); $this->assertEquals($expected, $task->is_component_enabled()); @@ -811,7 +804,7 @@ class core_scheduled_task_testcase extends advanced_testcase { * Test whether tasks belonging to core components considers the component to be enabled */ public function test_is_component_enabled_core(): void { - $task = new \core\task\scheduled_test_task(); + $task = new scheduled_test_task(); $this->assertTrue($task->is_component_enabled()); } } diff --git a/lib/tests/update_api_test.php b/lib/tests/update_api_test.php index 9454ae6844d..504041ce42f 100644 --- a/lib/tests/update_api_test.php +++ b/lib/tests/update_api_test.php @@ -14,14 +14,7 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Provides core_update_api_testcase class. - * - * @package core_plugin - * @category test - * @copyright 2015 David Mudrak - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ +namespace core; defined('MOODLE_INTERNAL') || die(); @@ -36,10 +29,12 @@ require_once(__DIR__.'/fixtures/testable_update_api.php'); * testable_api client perfectly matches the actual behaviour of the live * services on the given API version. * + * @package core + * @category test * @copyright 2015 David Mudrak * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class core_update_api_testcase extends advanced_testcase { +class update_api_test extends \advanced_testcase { /** * Make sure the $CFG->branch is mapped correctly to the format used by the API. diff --git a/lib/tests/update_checker_test.php b/lib/tests/update_checker_test.php index 53b34b605af..cb3676035f2 100644 --- a/lib/tests/update_checker_test.php +++ b/lib/tests/update_checker_test.php @@ -14,14 +14,7 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Unit tests for the update checker. - * - * @package core_plugin - * @category test - * @copyright 2012, 2015 David Mudrak - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ +namespace core; defined('MOODLE_INTERNAL') || die(); @@ -33,8 +26,13 @@ require_once(__DIR__.'/fixtures/testable_update_checker.php'); /** * Tests of the basic API of the available update checker. + * + * @package core + * @category test + * @copyright 2012, 2015 David Mudrak + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class core_update_checker_testcase extends advanced_testcase { +class update_checker_test extends \advanced_testcase { public function test_core_available_update() { $provider = testable_checker::instance(); diff --git a/lib/tests/update_code_manager_test.php b/lib/tests/update_code_manager_test.php index b2972217ae3..3b3a071815f 100644 --- a/lib/tests/update_code_manager_test.php +++ b/lib/tests/update_code_manager_test.php @@ -14,14 +14,7 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Provides core_update_code_manager_testcase class. - * - * @package core_plugin - * @category test - * @copyright 2015 David Mudrak - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ +namespace core; defined('MOODLE_INTERNAL') || die(); @@ -31,10 +24,12 @@ require_once(__DIR__.'/fixtures/testable_update_code_manager.php'); /** * Tests for \core\update\code_manager features. * + * @package core_plugin + * @category test * @copyright 2015 David Mudrak * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class core_update_code_manager_testcase extends advanced_testcase { +class update_code_manager_test extends \advanced_testcase { public function test_get_remote_plugin_zip() { $codeman = new \core\update\testable_code_manager(); @@ -116,7 +111,7 @@ class core_update_code_manager_testcase extends advanced_testcase { $zipfilepath = __DIR__.'/fixtures/update_validator/zips/multidir.zip'; $targetdir = make_request_directory(); // Attempting to rename the root folder if there are multiple ones should lead to exception. - $this->expectException(moodle_exception::class); + $this->expectException(\moodle_exception::class); $files = $codeman->unzip_plugin_file($zipfilepath, $targetdir, 'foo'); } diff --git a/lib/tests/update_validator_test.php b/lib/tests/update_validator_test.php index 840a24590b1..a8794282cc7 100644 --- a/lib/tests/update_validator_test.php +++ b/lib/tests/update_validator_test.php @@ -14,14 +14,9 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Provides the unit tests class and some helper classes - * - * @package core_plugin - * @category test - * @copyright 2013, 2015 David Mudrak - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ +namespace core; + +use testable_core_update_validator; defined('MOODLE_INTERNAL') || die(); @@ -30,10 +25,12 @@ require_once(__DIR__.'/fixtures/testable_update_validator.php'); /** * Unit tests for the {@link \core\update\validator} class * + * @package core + * @category test * @copyright 2013, 2015 David Mudrak * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class core_update_validator_testcase extends advanced_testcase { +class update_validator_test extends \advanced_testcase { public function test_validate_files_layout() { $fixtures = __DIR__.'/fixtures/update_validator'; diff --git a/lib/tests/upgrade_util_test.php b/lib/tests/upgrade_util_test.php index 50aa91930b8..a851661bfd2 100644 --- a/lib/tests/upgrade_util_test.php +++ b/lib/tests/upgrade_util_test.php @@ -14,13 +14,7 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Upgrade utility class tests. - * - * @package core - * @copyright 2016 Cameron Ball - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ +namespace core; defined('MOODLE_INTERNAL') || die(); @@ -34,7 +28,7 @@ defined('CURL_SSLVERSION_TLSv1_2') || define('CURL_SSLVERSION_TLSv1_2', 6); * @copyright 2016 Cameron Ball * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class upgrade_util_testcase extends advanced_testcase { +class upgrade_util_test extends \advanced_testcase { /** * The value of PHP_ZTS when thread safety is enabled. diff --git a/lib/tests/user_menu_test.php b/lib/tests/user_menu_test.php index dfcc91c1ecb..7167cad6d81 100644 --- a/lib/tests/user_menu_test.php +++ b/lib/tests/user_menu_test.php @@ -14,6 +14,8 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . +namespace core; + /** * Tests user menu functionality. * @@ -21,7 +23,7 @@ * @copyright 2015 Jetha Chan * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class core_user_menu_testcase extends advanced_testcase { +class user_menu_test extends \advanced_testcase { /** * Custom user menu data for the test_custom_user_menu test. diff --git a/lib/tests/user_test.php b/lib/tests/user_test.php index 0b9f1d91aa2..d99bb0564a3 100644 --- a/lib/tests/user_test.php +++ b/lib/tests/user_test.php @@ -14,13 +14,7 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see . -/** - * Tests core_user class. - * - * @package core - * @copyright 2013 Rajesh Taneja - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ +namespace core; /** * Test core_user class. @@ -29,7 +23,7 @@ * @copyright 2013 Rajesh Taneja * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class core_user_testcase extends advanced_testcase { +class user_test extends \advanced_testcase { /** * Setup test data. @@ -44,45 +38,45 @@ class core_user_testcase extends advanced_testcase { // Create user and try fetach it with api. $user = $this->getDataGenerator()->create_user(); - $this->assertEquals($user, core_user::get_user($user->id, '*', MUST_EXIST)); + $this->assertEquals($user, \core_user::get_user($user->id, '*', MUST_EXIST)); // Test noreply user. $CFG->noreplyuserid = null; - $noreplyuser = core_user::get_noreply_user(); + $noreplyuser = \core_user::get_noreply_user(); $this->assertEquals(1, $noreplyuser->emailstop); - $this->assertFalse(core_user::is_real_user($noreplyuser->id)); + $this->assertFalse(\core_user::is_real_user($noreplyuser->id)); $this->assertEquals($CFG->noreplyaddress, $noreplyuser->email); $this->assertEquals(get_string('noreplyname'), $noreplyuser->firstname); // Set user as noreply user and make sure noreply propery is set. - core_user::reset_internal_users(); + \core_user::reset_internal_users(); $CFG->noreplyuserid = $user->id; - $noreplyuser = core_user::get_noreply_user(); + $noreplyuser = \core_user::get_noreply_user(); $this->assertEquals(1, $noreplyuser->emailstop); - $this->assertTrue(core_user::is_real_user($noreplyuser->id)); + $this->assertTrue(\core_user::is_real_user($noreplyuser->id)); // Test support user. - core_user::reset_internal_users(); + \core_user::reset_internal_users(); $CFG->supportemail = null; $CFG->noreplyuserid = null; - $supportuser = core_user::get_support_user(); + $supportuser = \core_user::get_support_user(); $adminuser = get_admin(); $this->assertEquals($adminuser, $supportuser); - $this->assertTrue(core_user::is_real_user($supportuser->id)); + $this->assertTrue(\core_user::is_real_user($supportuser->id)); // When supportemail is set. - core_user::reset_internal_users(); + \core_user::reset_internal_users(); $CFG->supportemail = 'test@example.com'; - $supportuser = core_user::get_support_user(); - $this->assertEquals(core_user::SUPPORT_USER, $supportuser->id); - $this->assertFalse(core_user::is_real_user($supportuser->id)); + $supportuser = \core_user::get_support_user(); + $this->assertEquals(\core_user::SUPPORT_USER, $supportuser->id); + $this->assertFalse(\core_user::is_real_user($supportuser->id)); // Set user as support user and make sure noreply propery is set. - core_user::reset_internal_users(); + \core_user::reset_internal_users(); $CFG->supportuserid = $user->id; - $supportuser = core_user::get_support_user(); + $supportuser = \core_user::get_support_user(); $this->assertEquals($user, $supportuser); - $this->assertTrue(core_user::is_real_user($supportuser->id)); + $this->assertTrue(\core_user::is_real_user($supportuser->id)); } /** @@ -98,23 +92,23 @@ class core_user_testcase extends advanced_testcase { $userexpected = $this->getDataGenerator()->create_user($record); // Assert that the returned user is the espected one. - $this->assertEquals($userexpected, core_user::get_user_by_username('johndoe')); + $this->assertEquals($userexpected, \core_user::get_user_by_username('johndoe')); // Assert that a subset of fields is correctly returned. - $this->assertEquals((object) $record, core_user::get_user_by_username('johndoe', 'username,email,timecreated')); + $this->assertEquals((object) $record, \core_user::get_user_by_username('johndoe', 'username,email,timecreated')); // Assert that a user with a different mnethostid will no be returned. - $this->assertFalse(core_user::get_user_by_username('johndoe', 'username,email,timecreated', 2)); + $this->assertFalse(\core_user::get_user_by_username('johndoe', 'username,email,timecreated', 2)); // Create a new user from a different host. $record['mnethostid'] = 2; $userexpected2 = $this->getDataGenerator()->create_user($record); // Assert that the new user is returned when specified the correct mnethostid. - $this->assertEquals($userexpected2, core_user::get_user_by_username('johndoe', '*', 2)); + $this->assertEquals($userexpected2, \core_user::get_user_by_username('johndoe', '*', 2)); // Assert that a user not in the db return false. - $this->assertFalse(core_user::get_user_by_username('janedoe')); + $this->assertFalse(\core_user::get_user_by_username('janedoe')); } public function test_search() { @@ -174,7 +168,7 @@ class core_user_testcase extends advanced_testcase { // As admin user, try searching for somebody at system level by first name, checking the // results. $this->setAdminUser(); - $result = core_user::search('Amelia'); + $result = \core_user::search('Amelia'); $this->assertCount(1, $result); // Check some basic fields, and test other fields are present. @@ -191,22 +185,22 @@ class core_user_testcase extends advanced_testcase { $this->assertObjectHasAttribute('username', $result[0]); // Now search by lastname, both names, and partials, case-insensitive. - $this->assertEquals($result, core_user::search('House')); - $this->assertEquals($result, core_user::search('Amelia house')); - $this->assertEquals($result, core_user::search('amelI')); - $this->assertEquals($result, core_user::search('hoUs')); - $this->assertEquals($result, core_user::search('Amelia H')); + $this->assertEquals($result, \core_user::search('House')); + $this->assertEquals($result, \core_user::search('Amelia house')); + $this->assertEquals($result, \core_user::search('amelI')); + $this->assertEquals($result, \core_user::search('hoUs')); + $this->assertEquals($result, \core_user::search('Amelia H')); // Admin user can also search by email (full or partial). - $this->assertEquals($result, core_user::search('house@x.x')); - $this->assertEquals($result, core_user::search('hOuse@')); + $this->assertEquals($result, \core_user::search('house@x.x')); + $this->assertEquals($result, \core_user::search('hOuse@')); // What if we just search for A? (They all begin with A except the manager.) - $result = core_user::search('a'); + $result = \core_user::search('a'); $this->assertCount(7, $result); // Au gets us Audrey, Austin, and Augustus - in alphabetical order by surname. - $result = core_user::search('au'); + $result = \core_user::search('au'); $this->assertCount(3, $result); $this->assertEquals('Austin', $result[0]->firstname); $this->assertEquals('Audrey', $result[1]->firstname); @@ -214,7 +208,7 @@ class core_user_testcase extends advanced_testcase { // But if we search within course 2 we'll get Audrey and Augustus first. $course2context = \context_course::instance($course2->id); - $result = core_user::search('au', $course2context); + $result = \core_user::search('au', $course2context); $this->assertCount(3, $result); $this->assertEquals('Audrey', $result[0]->firstname); $this->assertEquals('Augustus', $result[1]->firstname); @@ -223,69 +217,69 @@ class core_user_testcase extends advanced_testcase { // Try doing a few searches as manager - we should get the same results and can still // search by email too. $this->setUser($manager); - $result = core_user::search('a'); + $result = \core_user::search('a'); $this->assertCount(7, $result); - $result = core_user::search('au', $course2context); + $result = \core_user::search('au', $course2context); $this->assertCount(3, $result); - $result = core_user::search('house@x.x'); + $result = \core_user::search('house@x.x'); $this->assertCount(1, $result); // Teacher 1. No site-level permission so can't see users outside the enrolled course. $this->setUser($teacher1); - $result = core_user::search('au'); + $result = \core_user::search('au'); $this->assertCount(1, $result); $this->assertEquals('Augustus', $result[0]->firstname); // Can still search by email for that user. - $result = core_user::search('random@x.x'); + $result = \core_user::search('random@x.x'); $this->assertCount(1, $result); // Search everyone - teacher can only see four users (including themself). - $result = core_user::search('a'); + $result = \core_user::search('a'); $this->assertCount(4, $result); // Search within course 2 - you get the same four users (which doesn't include // everyone on that course) but the two on course 2 should be first. - $result = core_user::search('a', $course2context); + $result = \core_user::search('a', $course2context); $this->assertCount(4, $result); $this->assertEquals('Amelia', $result[0]->firstname); $this->assertEquals('Augustus', $result[1]->firstname); // Other teacher. $this->setUser($teacher2and3); - $result = core_user::search('au'); + $result = \core_user::search('au'); $this->assertCount(3, $result); - $result = core_user::search('a'); + $result = \core_user::search('a'); $this->assertCount(5, $result); // Student can only see users on course 3. $this->setUser($student3); - $result = core_user::search('a'); + $result = \core_user::search('a'); $this->assertCount(3, $result); - $result = core_user::search('au'); + $result = \core_user::search('au'); $this->assertCount(1, $result); $this->assertEquals('Austin', $result[0]->firstname); // Student cannot search by email. - $result = core_user::search('a.bloomsbury@x.x'); + $result = \core_user::search('a.bloomsbury@x.x'); $this->assertCount(0, $result); // Student on all courses can see all the A users. $this->setUser($studentall); - $result = core_user::search('a'); + $result = \core_user::search('a'); $this->assertCount(7, $result); // Mixed user can see users on courses 1 and 3. $this->setUser($mixed); - $result = core_user::search('a'); + $result = \core_user::search('a'); $this->assertCount(6, $result); // Mixed user can search by email for students on course 3 but not on course 1. - $result = core_user::search('hodder_a@x.x'); + $result = \core_user::search('hodder_a@x.x'); $this->assertCount(0, $result); - $result = core_user::search('house@x.x'); + $result = \core_user::search('house@x.x'); $this->assertCount(1, $result); } @@ -304,15 +298,15 @@ class core_user_testcase extends advanced_testcase { $generator->enrol_user($student->id, $course->id, 'student'); } $this->setAdminUser(); - $result = core_user::search('Guy'); + $result = \core_user::search('Guy'); $this->assertCount(30, $result); // Check a small limit. - $result = core_user::search('Guy', null, 10); + $result = \core_user::search('Guy', null, 10); $this->assertCount(10, $result); // Check no limit. - $result = core_user::search('Guy', null, 0); + $result = \core_user::search('Guy', null, 0); $this->assertCount(31, $result); } @@ -350,12 +344,12 @@ class core_user_testcase extends advanced_testcase { // As searcher, we only find the 2 in the same group. $this->setUser($searcher); - $result = core_user::search('Guy'); + $result = \core_user::search('Guy'); $this->assertCount(2, $result); // If we change the course to visible groups though, we get the max number. $DB->set_field('course', 'groupmode', VISIBLEGROUPS, ['id' => $course->id]); - $result = core_user::search('Guy'); + $result = \core_user::search('Guy'); $this->assertCount(30, $result); } @@ -382,18 +376,18 @@ class core_user_testcase extends advanced_testcase { // As searcher, we find both users. $this->setUser($searcher); - $result = core_user::search('Amelia'); + $result = \core_user::search('Amelia'); $this->assertCount(2, $result); // What if one is deleted? delete_user($student1); - $result = core_user::search('Amelia'); + $result = \core_user::search('Amelia'); $this->assertCount(1, $result); $this->assertEquals('Beetle', $result[0]->lastname); // Delete the other, for good measure. delete_user($student2); - $result = core_user::search('Amelia'); + $result = \core_user::search('Amelia'); $this->assertCount(0, $result); } @@ -425,13 +419,13 @@ class core_user_testcase extends advanced_testcase { $userexpected = $this->getDataGenerator()->create_user(); // Simple case, all good. - core_user::require_active_user($userexpected, true, true); + \core_user::require_active_user($userexpected, true, true); // Set user not confirmed. $DB->set_field('user', 'confirmed', 0, array('id' => $userexpected->id)); try { - core_user::require_active_user($userexpected); - } catch (moodle_exception $e) { + \core_user::require_active_user($userexpected); + } catch (\moodle_exception $e) { $this->assertEquals('usernotconfirmed', $e->errorcode); } $DB->set_field('user', 'confirmed', 1, array('id' => $userexpected->id)); @@ -439,45 +433,45 @@ class core_user_testcase extends advanced_testcase { // Set nologin auth method. $DB->set_field('user', 'auth', 'nologin', array('id' => $userexpected->id)); try { - core_user::require_active_user($userexpected, false, true); - } catch (moodle_exception $e) { + \core_user::require_active_user($userexpected, false, true); + } catch (\moodle_exception $e) { $this->assertEquals('suspended', $e->errorcode); } // Check no exceptions are thrown if we don't specify to check suspended. - core_user::require_active_user($userexpected); + \core_user::require_active_user($userexpected); $DB->set_field('user', 'auth', 'manual', array('id' => $userexpected->id)); // Set user suspended. $DB->set_field('user', 'suspended', 1, array('id' => $userexpected->id)); try { - core_user::require_active_user($userexpected, true); - } catch (moodle_exception $e) { + \core_user::require_active_user($userexpected, true); + } catch (\moodle_exception $e) { $this->assertEquals('suspended', $e->errorcode); } // Check no exceptions are thrown if we don't specify to check suspended. - core_user::require_active_user($userexpected); + \core_user::require_active_user($userexpected); // Delete user. delete_user($userexpected); try { - core_user::require_active_user($userexpected); - } catch (moodle_exception $e) { + \core_user::require_active_user($userexpected); + } catch (\moodle_exception $e) { $this->assertEquals('userdeleted', $e->errorcode); } // Use a not real user. - $noreplyuser = core_user::get_noreply_user(); + $noreplyuser = \core_user::get_noreply_user(); try { - core_user::require_active_user($noreplyuser, true); - } catch (moodle_exception $e) { + \core_user::require_active_user($noreplyuser, true); + } catch (\moodle_exception $e) { $this->assertEquals('invaliduser', $e->errorcode); } // Get the guest user. $guestuser = $DB->get_record('user', array('username' => 'guest')); try { - core_user::require_active_user($guestuser, true); - } catch (moodle_exception $e) { + \core_user::require_active_user($guestuser, true); + } catch (\moodle_exception $e) { $this->assertEquals('guestsarenotallowed', $e->errorcode); } @@ -488,22 +482,22 @@ class core_user_testcase extends advanced_testcase { */ public function test_get_property_definition() { // Try to get a existing property. - $properties = core_user::get_property_definition('id'); + $properties = \core_user::get_property_definition('id'); $this->assertEquals($properties['type'], PARAM_INT); - $properties = core_user::get_property_definition('username'); + $properties = \core_user::get_property_definition('username'); $this->assertEquals($properties['type'], PARAM_USERNAME); // Invalid property. try { - core_user::get_property_definition('fullname'); - } catch (coding_exception $e) { + \core_user::get_property_definition('fullname'); + } catch (\coding_exception $e) { $this->assertMatchesRegularExpression('/Invalid property requested./', $e->getMessage()); } // Empty parameter. try { - core_user::get_property_definition(''); - } catch (coding_exception $e) { + \core_user::get_property_definition(''); + } catch (\coding_exception $e) { $this->assertMatchesRegularExpression('/Invalid property requested./', $e->getMessage()); } } @@ -515,7 +509,7 @@ class core_user_testcase extends advanced_testcase { // Create user with just with username and firstname. $record = array('username' => 's10', 'firstname' => 'Bebe Stevens'); - $validation = core_user::validate((object)$record); + $validation = \core_user::validate((object)$record); // Validate the user, should return true as the user data is correct. $this->assertTrue($validation); @@ -524,7 +518,7 @@ class core_user_testcase extends advanced_testcase { $record = array('username' => 's1', 'firstname' => 'Eric Cartman', 'country' => 'UU', 'theme' => 'beise'); // Should return an array with 2 errors. - $validation = core_user::validate((object)$record); + $validation = \core_user::validate((object)$record); $this->assertArrayHasKey('country', $validation); $this->assertArrayHasKey('theme', $validation); $this->assertCount(2, $validation); @@ -533,7 +527,7 @@ class core_user_testcase extends advanced_testcase { $record = array('username' => 's3', 'firstname' => 'Kyle Doe'; $user->username = 'john%#&~%*_doe'; $user->email = ' john@testing.com '; $user->deleted = 'no'; $user->description = 'A description about myself.'; - $usercleaned = core_user::clean_data($user); + $usercleaned = \core_user::clean_data($user); // Expected results. $this->assertEquals('John alert(1) Doe', $usercleaned->firstname); @@ -561,7 +555,7 @@ class core_user_testcase extends advanced_testcase { // Try to clean an invalid property (userfullname). $user->userfullname = 'John Doe'; - core_user::clean_data($user); + \core_user::clean_data($user); $this->assertDebuggingCalled("The property 'userfullname' could not be cleaned."); } @@ -571,7 +565,7 @@ class core_user_testcase extends advanced_testcase { public function test_clean_field() { // Create a 'malicious' user object/ - $user = new stdClass(); + $user = new \stdClass(); $user->firstname = 'John Doe'; $user->username = 'john%#&~%*_doe'; $user->email = ' john@testing.com '; @@ -580,14 +574,14 @@ class core_user_testcase extends advanced_testcase { $user->userfullname = 'John Doe'; // Expected results. - $this->assertEquals('John alert(1) Doe', core_user::clean_field($user->firstname, 'firstname')); - $this->assertEquals('john_doe', core_user::clean_field($user->username, 'username')); - $this->assertEquals('john@testing.com', core_user::clean_field($user->email, 'email')); - $this->assertEquals(0, core_user::clean_field($user->deleted, 'deleted')); - $this->assertEquals('A description about myself.', core_user::clean_field($user->description, 'description')); + $this->assertEquals('John alert(1) Doe', \core_user::clean_field($user->firstname, 'firstname')); + $this->assertEquals('john_doe', \core_user::clean_field($user->username, 'username')); + $this->assertEquals('john@testing.com', \core_user::clean_field($user->email, 'email')); + $this->assertEquals(0, \core_user::clean_field($user->deleted, 'deleted')); + $this->assertEquals('A description about myself.', \core_user::clean_field($user->description, 'description')); // Try to clean an invalid property (fullname). - core_user::clean_field($user->userfullname, 'fullname'); + \core_user::clean_field($user->userfullname, 'fullname'); $this->assertDebuggingCalled("The property 'fullname' could not be cleaned."); } @@ -597,21 +591,21 @@ class core_user_testcase extends advanced_testcase { public function test_get_property_type() { // Fetch valid properties and verify if the type is correct. - $type = core_user::get_property_type('username'); + $type = \core_user::get_property_type('username'); $this->assertEquals(PARAM_USERNAME, $type); - $type = core_user::get_property_type('email'); + $type = \core_user::get_property_type('email'); $this->assertEquals(PARAM_RAW_TRIMMED, $type); - $type = core_user::get_property_type('timezone'); + $type = \core_user::get_property_type('timezone'); $this->assertEquals(PARAM_TIMEZONE, $type); // Try to fetch type of a non-existent properties. $nonexistingproperty = 'userfullname'; $this->expectException('coding_exception'); $this->expectExceptionMessage('Invalid property requested: ' . $nonexistingproperty); - core_user::get_property_type($nonexistingproperty); + \core_user::get_property_type($nonexistingproperty); $nonexistingproperty = 'mobilenumber'; $this->expectExceptionMessage('Invalid property requested: ' . $nonexistingproperty); - core_user::get_property_type($nonexistingproperty); + \core_user::get_property_type($nonexistingproperty); } /** @@ -619,23 +613,23 @@ class core_user_testcase extends advanced_testcase { */ public function test_get_property_null() { // Fetch valid properties and verify if it is NULL_ALLOWED or NULL_NOT_ALLOWED. - $property = core_user::get_property_null('username'); + $property = \core_user::get_property_null('username'); $this->assertEquals(NULL_NOT_ALLOWED, $property); - $property = core_user::get_property_null('password'); + $property = \core_user::get_property_null('password'); $this->assertEquals(NULL_NOT_ALLOWED, $property); - $property = core_user::get_property_null('imagealt'); + $property = \core_user::get_property_null('imagealt'); $this->assertEquals(NULL_ALLOWED, $property); - $property = core_user::get_property_null('middlename'); + $property = \core_user::get_property_null('middlename'); $this->assertEquals(NULL_ALLOWED, $property); // Try to fetch type of a non-existent properties. $nonexistingproperty = 'lastnamefonetic'; $this->expectException('coding_exception'); $this->expectExceptionMessage('Invalid property requested: ' . $nonexistingproperty); - core_user::get_property_null($nonexistingproperty); + \core_user::get_property_null($nonexistingproperty); $nonexistingproperty = 'midlename'; $this->expectExceptionMessage('Invalid property requested: ' . $nonexistingproperty); - core_user::get_property_null($nonexistingproperty); + \core_user::get_property_null($nonexistingproperty); } /** @@ -644,20 +638,20 @@ class core_user_testcase extends advanced_testcase { public function test_get_property_choices() { // Test against country property choices. - $choices = core_user::get_property_choices('country'); + $choices = \core_user::get_property_choices('country'); $this->assertArrayHasKey('AU', $choices); $this->assertArrayHasKey('BR', $choices); $this->assertArrayNotHasKey('WW', $choices); $this->assertArrayNotHasKey('TX', $choices); // Test against lang property choices. - $choices = core_user::get_property_choices('lang'); + $choices = \core_user::get_property_choices('lang'); $this->assertArrayHasKey('en', $choices); $this->assertArrayNotHasKey('ww', $choices); $this->assertArrayNotHasKey('yy', $choices); // Test against theme property choices. - $choices = core_user::get_property_choices('theme'); + $choices = \core_user::get_property_choices('theme'); $this->assertArrayHasKey('boost', $choices); $this->assertArrayHasKey('classic', $choices); $this->assertArrayNotHasKey('unknowntheme', $choices); @@ -667,10 +661,10 @@ class core_user_testcase extends advanced_testcase { $nonexistingproperty = 'language'; $this->expectException('coding_exception'); $this->expectExceptionMessage('Invalid property requested: ' . $nonexistingproperty); - core_user::get_property_null($nonexistingproperty); + \core_user::get_property_null($nonexistingproperty); $nonexistingproperty = 'coutries'; $this->expectExceptionMessage('Invalid property requested: ' . $nonexistingproperty); - core_user::get_property_null($nonexistingproperty); + \core_user::get_property_null($nonexistingproperty); } /** @@ -680,31 +674,31 @@ class core_user_testcase extends advanced_testcase { global $CFG; $this->resetAfterTest(); - $country = core_user::get_property_default('country'); + $country = \core_user::get_property_default('country'); $this->assertEquals($CFG->country, $country); set_config('country', 'AU'); - core_user::reset_caches(); - $country = core_user::get_property_default('country'); + \core_user::reset_caches(); + $country = \core_user::get_property_default('country'); $this->assertEquals($CFG->country, $country); - $lang = core_user::get_property_default('lang'); + $lang = \core_user::get_property_default('lang'); $this->assertEquals($CFG->lang, $lang); set_config('lang', 'en'); - $lang = core_user::get_property_default('lang'); + $lang = \core_user::get_property_default('lang'); $this->assertEquals($CFG->lang, $lang); $this->setTimezone('Europe/London', 'Pacific/Auckland'); - core_user::reset_caches(); - $timezone = core_user::get_property_default('timezone'); + \core_user::reset_caches(); + $timezone = \core_user::get_property_default('timezone'); $this->assertEquals('Europe/London', $timezone); $this->setTimezone('99', 'Pacific/Auckland'); - core_user::reset_caches(); - $timezone = core_user::get_property_default('timezone'); + \core_user::reset_caches(); + $timezone = \core_user::get_property_default('timezone'); $this->assertEquals('Pacific/Auckland', $timezone); - $this->expectException(coding_exception::class); + $this->expectException(\coding_exception::class); $this->expectExceptionMessage('Invalid property requested, or the property does not has a default value.'); - core_user::get_property_default('firstname'); + \core_user::get_property_default('firstname'); } /** @@ -762,12 +756,12 @@ class core_user_testcase extends advanced_testcase { // Fake accounts are not real users. $CFG->noreplyuserid = null; - $this->assertFalse(\core_user::is_real_user(core_user::get_noreply_user()->id)); - $this->assertFalse(\core_user::is_real_user(core_user::get_noreply_user()->id, true)); + $this->assertFalse(\core_user::is_real_user(\core_user::get_noreply_user()->id)); + $this->assertFalse(\core_user::is_real_user(\core_user::get_noreply_user()->id, true)); $CFG->supportuserid = null; $CFG->supportemail = 'test@example.com'; - $this->assertFalse(\core_user::is_real_user(core_user::get_support_user()->id)); - $this->assertFalse(\core_user::is_real_user(core_user::get_support_user()->id, true)); + $this->assertFalse(\core_user::is_real_user(\core_user::get_support_user()->id)); + $this->assertFalse(\core_user::is_real_user(\core_user::get_support_user()->id, true)); } /**