MDL-72701 core: Improve code coverage for core

This commit is contained in:
Andrew Nicols
2021-12-21 09:24:00 +08:00
parent 3a70983d53
commit a7f6c8cdcd
16 changed files with 553 additions and 28 deletions
+28
View File
@@ -0,0 +1,28 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Coverage information for the core_block subsystem.
*
* @copyright 2021 Andrew Nicols <[email protected]>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
return new class extends phpunit_coverage_info {
/** @var array The list of files relative to the plugin root to include in coverage generation. */
protected $includelistfiles = [
'moodleblock.class.php',
];
};
+31
View File
@@ -0,0 +1,31 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Coverage information for the core_course subsystem.
*
* @copyright 2021 Andrew Nicols <[email protected]>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
return new class extends phpunit_coverage_info {
/** @var array The list of files relative to the plugin root to include in coverage generation. */
protected $includelistfiles = [
'dnduploadlib.php',
'externallib.php',
'lib.php',
'modlib.php',
];
};
+2 -3
View File
@@ -22,16 +22,15 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
/**
* Unit tests tests for has_capability.
*
* @package core
* @copyright 2018 Andrew Nicols <[email protected]>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @covers ::has_capability
*/
class accesslib_has_capability_testcase extends \advanced_testcase {
class accesslib_has_capability_test extends \advanced_testcase {
/**
* Unit tests to check the operation of locked contexts.
+172 -2
View File
@@ -25,13 +25,12 @@
defined('MOODLE_INTERNAL') || die();
/**
* Functional test for accesslib.php
*
* Note: execution may take many minutes especially on slower servers.
*/
class core_accesslib_testcase extends advanced_testcase {
class accesslib_test extends advanced_testcase {
/**
* Verify comparison of context instances in phpunit asserts.
*/
@@ -48,6 +47,8 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Test resetting works.
*
* @covers ::accesslib_clear_all_caches_for_unit_testing
*/
public function test_accesslib_clear_all_caches() {
global $ACCESSLIB_PRIVATE;
@@ -79,6 +80,8 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Test getting of role access
*
* @covers ::get_role_access
*/
public function test_get_role_access() {
global $DB;
@@ -101,6 +104,8 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Test getting of guest role.
*
* @covers ::get_guest_role
*/
public function test_get_guest_role() {
global $CFG;
@@ -114,6 +119,8 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Test if user is admin.
*
* @covers ::is_siteadmin
*/
public function test_is_siteadmin() {
global $DB, $CFG;
@@ -156,6 +163,8 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Test if user is enrolled in a course
*
* @covers ::is_enrolled
*/
public function test_is_enrolled() {
global $DB;
@@ -206,6 +215,8 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Test logged in test.
*
* @covers ::isloggedin
*/
public function test_isloggedin() {
global $USER;
@@ -220,6 +231,8 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Test guest user test.
*
* @covers ::isguestuser
*/
public function test_isguestuser() {
global $DB;
@@ -247,6 +260,8 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Test capability riskiness.
*
* @covers ::is_safe_capability
*/
public function test_is_safe_capability() {
global $DB;
@@ -257,6 +272,8 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Test context fetching.
*
* @covers ::get_context_info_array
*/
public function test_get_context_info_array() {
$this->resetAfterTest();
@@ -324,6 +341,8 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Test looking for course contacts.
*
* @covers ::has_coursecontact_role
*/
public function test_has_coursecontact_role() {
global $DB, $CFG;
@@ -348,6 +367,8 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Test creation of roles.
*
* @covers ::create_role
*/
public function test_create_role() {
global $DB;
@@ -366,6 +387,8 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Test adding of capabilities to roles.
*
* @covers ::assign_capability
*/
public function test_assign_capability() {
global $DB, $USER;
@@ -439,6 +462,8 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Test removing of capabilities from roles.
*
* @covers ::unassign_capability
*/
public function test_unassign_capability() {
global $DB, $USER;
@@ -489,6 +514,8 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Test role assigning.
*
* @covers ::role_assign
*/
public function test_role_assign() {
global $DB, $USER;
@@ -550,6 +577,8 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Test role unassigning.
*
* @covers ::role_unassign
*/
public function test_role_unassign() {
global $DB, $USER;
@@ -599,6 +628,8 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Test role unassigning.
*
* @covers ::role_unassign_all
*/
public function test_role_unassign_all() {
global $DB;
@@ -654,6 +685,8 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Test role queries.
*
* @covers ::get_roles_with_capability
*/
public function test_get_roles_with_capability() {
global $DB;
@@ -687,6 +720,8 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Test deleting of roles.
*
* @covers ::delete_role
*/
public function test_delete_role() {
global $DB;
@@ -744,6 +779,8 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Test fetching of all roles.
*
* @covers ::get_all_roles
*/
public function test_get_all_roles() {
global $DB;
@@ -799,6 +836,8 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Test getting of all archetypes.
*
* @covers ::get_role_archetypes
*/
public function test_get_role_archetypes() {
$archetypes = get_role_archetypes();
@@ -810,6 +849,8 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Test getting of roles with given archetype.
*
* @covers ::get_archetype_roles
*/
public function test_get_archetype_roles() {
$this->resetAfterTest();
@@ -830,6 +871,8 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Test aliased role names.
*
* @covers ::role_get_name
*/
public function test_role_get_name() {
global $DB;
@@ -881,6 +924,8 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Test tweaking of role name arrays.
*
* @covers ::role_fix_names
*/
public function test_role_fix_names() {
global $DB;
@@ -937,6 +982,8 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Test role default allows.
*
* @covers ::get_default_role_archetype_allows
*/
public function test_get_default_role_archetype_allows() {
$archetypes = get_role_archetypes();
@@ -986,6 +1033,8 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Test allowing of role assignments.
*
* @covers ::core_role_set_assign_allowed
*/
public function test_core_role_set_assign_allowed() {
global $DB, $CFG;
@@ -1019,6 +1068,8 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Test allowing of role overrides.
*
* @covers ::core_role_set_override_allowed
*/
public function test_core_role_set_override_allowed() {
global $DB, $CFG;
@@ -1052,6 +1103,8 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Test allowing of role switching.
*
* @covers ::core_role_set_switch_allowed
*/
public function test_core_role_set_switch_allowed() {
global $DB, $CFG;
@@ -1085,6 +1138,8 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Test allowing of role switching.
*
* @covers ::core_role_set_view_allowed
*/
public function test_core_role_set_view_allowed() {
global $DB, $CFG;
@@ -1118,6 +1173,8 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Test returning of assignable roles in context.
*
* @covers ::get_assignable_roles
*/
public function test_get_assignable_roles() {
global $DB;
@@ -1225,6 +1282,8 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Test user count of assignable roles in context where users are assigned the role via different components.
*
* @covers ::get_assignable_roles
*/
public function test_get_assignable_roles_distinct_usercount() {
global $DB;
@@ -1258,6 +1317,8 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Test getting of all switchable roles.
*
* @covers ::get_switchable_roles
*/
public function test_get_switchable_roles() {
global $DB;
@@ -1316,6 +1377,8 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Test getting of all overridable roles.
*
* @covers ::get_overridable_roles
*/
public function test_get_overridable_roles() {
global $DB;
@@ -1409,6 +1472,8 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Test getting of all overridable roles.
*
* @covers ::get_viewable_roles
*/
public function test_get_viewable_roles_course() {
global $DB;
@@ -1444,6 +1509,8 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Test getting of all overridable roles.
*
* @covers ::get_viewable_roles
*/
public function test_get_viewable_roles_system() {
global $DB;
@@ -1477,6 +1544,8 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Test we have context level defaults.
*
* @covers ::get_default_contextlevels
*/
public function test_get_default_contextlevels() {
$archetypes = get_role_archetypes();
@@ -1492,6 +1561,8 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Test role context level setup.
*
* @covers ::set_role_contextlevels
*/
public function test_set_role_contextlevels() {
global $DB;
@@ -1516,6 +1587,8 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Test getting of role context levels
*
* @covers ::get_roles_for_contextlevels
*/
public function test_get_roles_for_contextlevels() {
global $DB;
@@ -1536,6 +1609,8 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Test default enrol roles.
*
* @covers ::get_default_enrol_roles
*/
public function test_get_default_enrol_roles() {
$this->resetAfterTest();
@@ -1564,6 +1639,8 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Test getting of role users.
*
* @covers ::get_role_users
*/
public function test_get_role_users() {
global $DB;
@@ -1667,6 +1744,8 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Test used role query.
*
* @covers ::get_roles_used_in_context
*/
public function test_get_roles_used_in_context() {
global $DB;
@@ -1707,6 +1786,8 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Test roles used in course.
*
* @covers ::get_user_roles_in_course
*/
public function test_get_user_roles_in_course() {
global $DB, $CFG;
@@ -1773,6 +1854,8 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Test get_user_roles and get_users_roles
*
* @covers ::get_user_roles
*/
public function test_get_user_roles() {
global $DB, $CFG;
@@ -1809,6 +1892,10 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Test has_capability(), has_any_capability() and has_all_capabilities().
*
* @covers ::has_capability
* @covers ::has_any_capability
* @covers ::has_all_capabilities
*/
public function test_has_capability_and_friends() {
global $DB;
@@ -1885,6 +1972,11 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Test that assigning a fake cap does not return.
*
* @covers ::get_users_by_capability
* @covers ::get_with_capability_join
* @covers ::get_with_capability_sql
* @covers ::has_capability
*/
public function test_fake_capability() {
global $DB;
@@ -1934,6 +2026,8 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Test that assigning a fake cap does not return.
*
* @covers ::assign_capability
*/
public function test_fake_capability_assign() {
global $DB;
@@ -1957,6 +2051,8 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Test that assigning a fake cap does not return.
*
* @covers ::unassign_capability
*/
public function test_fake_capability_unassign() {
global $DB;
@@ -1981,6 +2077,9 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Test that the caching in get_role_definitions() and get_role_definitions_uncached()
* works as intended.
*
* @covers ::get_role_definitions
* @covers ::role_change_permission
*/
public function test_role_definition_caching() {
global $DB;
@@ -2048,6 +2147,8 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Tests get_user_capability_course() which checks a capability across all courses.
*
* @covers ::get_user_capability_course
*/
public function test_get_user_capability_course() {
global $CFG, $USER;
@@ -2328,6 +2429,9 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Test if course creator future capability lookup works.
*
* @covers ::guess_if_creator_will_have_course_capability
* @covers ::has_capability
*/
public function test_guess_if_creator_will_have_course_capability() {
global $DB, $CFG, $USER;
@@ -2453,6 +2557,8 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Test require_capability() exceptions.
*
* @covers ::require_capability
*/
public function test_require_capability() {
$this->resetAfterTest();
@@ -2487,6 +2593,9 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Test that enrolled users SQL does not return any values for users in
* other courses.
*
* @covers ::get_enrolled_users
* @covers ::get_suspended_userids
*/
public function test_get_enrolled_sql_different_course() {
global $DB;
@@ -2517,6 +2626,9 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Test that enrolled users SQL does not return any values for role
* assignments without an enrolment.
*
* @covers ::get_enrolled_users
* @covers ::get_suspended_userids
*/
public function test_get_enrolled_sql_role_only() {
global $DB;
@@ -2545,6 +2657,9 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Test that multiple enrolments for the same user are counted correctly.
*
* @covers ::get_enrolled_users
* @covers ::get_suspended_userids
*/
public function test_get_enrolled_sql_multiple_enrolments() {
global $DB;
@@ -2594,6 +2709,8 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Test that enrolled users SQL does not return any values for users
* without a group when $context is not a valid course context.
*
* @covers ::get_enrolled_users
*/
public function test_get_enrolled_sql_userswithoutgroup() {
global $DB;
@@ -2738,6 +2855,8 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* @dataProvider get_enrolled_sql_provider
* @covers ::get_enrolled_users
* @covers ::get_suspended_userids
*/
public function test_get_enrolled_sql_course($users, $counts) {
global $DB;
@@ -3664,6 +3783,8 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Test that context_system::get_capabilities returns capabilities relevant to all modules.
*
* @covers \context_system::get_capabilities
*/
public function test_context_module_caps_returned_by_get_capabilities_in_sys_context() {
$actual = context_system::instance()->get_capabilities();
@@ -3677,6 +3798,8 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Test that context_coursecat::get_capabilities returns capabilities relevant to all modules.
*
* @covers \context_coursecat::get_capabilities
*/
public function test_context_module_caps_returned_by_get_capabilities_in_course_cat_context() {
$this->resetAfterTest(true);
@@ -3694,6 +3817,8 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Test that context_course::get_capabilities returns capabilities relevant to all modules.
*
* @covers \context_course::get_capabilities
*/
public function test_context_module_caps_returned_by_get_capabilities_in_course_context() {
$this->resetAfterTest(true);
@@ -3712,6 +3837,8 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Test that context_module::get_capabilities returns capabilities relevant to all modules.
*
* @covers \context_module::get_capabilities
*/
public function test_context_module_caps_returned_by_get_capabilities_mod_context() {
$this->resetAfterTest(true);
@@ -3731,6 +3858,8 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Test that {@see context_block::get_capabilities} returns capabilities relevant to blocks
*
* @covers \context_block::get_capabilities
*/
public function test_context_block_caps_returned_by_get_capabilities_block_context(): void {
$this->resetAfterTest();
@@ -3759,6 +3888,8 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Test that {@see context_user::get_capabilities} returns capabilities relevant to users
*
* @covers \context_user::get_capabilities
*/
public function test_context_user_caps_returned_by_get_capabilities_user_context(): void {
$this->resetAfterTest();
@@ -3783,6 +3914,9 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Test updating of role capabilities during upgrade
*
* @covers ::update_capabilities
* @covers ::update_capabilities
*/
public function test_update_capabilities() {
global $DB, $SITE;
@@ -3868,6 +4002,8 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Tests reset_role_capabilities function.
*
* @covers ::reset_role_capabilities
*/
public function test_reset_role_capabilities() {
global $DB;
@@ -3903,6 +4039,8 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Tests count_role_users function.
*
* @covers ::count_role_users
*/
public function test_count_role_users() {
global $DB;
@@ -3941,6 +4079,8 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Test fetching users by capability.
*
* @covers ::get_users_by_capability
*/
public function test_get_users_by_capability() {
global $DB;
@@ -3990,6 +4130,10 @@ class core_accesslib_testcase extends advanced_testcase {
$this->assertFalse(array_key_exists($guest->id, $users));
}
/**
* @covers ::get_with_capability_sql
*/
public function test_get_with_capability_sql() {
global $DB;
@@ -4063,6 +4207,7 @@ class core_accesslib_testcase extends advanced_testcase {
* Test get_with_capability_join.
*
* @dataProvider get_get_with_capability_join_override_cases
* @covers ::get_with_capability_join
*
* @param bool $studentshouldbereturned whether, with this combination of capabilities, the student should be in the results.
* @param array $capabilitiestoprevent capabilities to override to prevent in the course context.
@@ -4110,6 +4255,8 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Test the get_profile_roles() function.
*
* @covers ::get_profile_roles
*/
public function test_get_profile_roles() {
global $DB;
@@ -4308,6 +4455,13 @@ class core_accesslib_testcase extends advanced_testcase {
* Ensure that the is_parent_of() function works as anticipated.
*
* @dataProvider is_parent_of_provider
* @covers \context::is_parent_of
* @covers \context_block::is_parent_of
* @covers \context_course::is_parent_of
* @covers \context_coursecat::is_parent_of
* @covers \context_module::is_parent_of
* @covers \context_system::is_parent_of
* @covers \context_user::is_parent_of
* @param string $contextpath The path of the context being compared with
* @param string $testpath The path of the context being compared
* @param bool $testself Whether to check the current context
@@ -4410,6 +4564,13 @@ class core_accesslib_testcase extends advanced_testcase {
* Ensure that the is_child_of() function works as anticipated.
*
* @dataProvider is_child_of_provider
* @covers \context::is_child_of
* @covers \context_block::is_child_of
* @covers \context_course::is_child_of
* @covers \context_coursecat::is_child_of
* @covers \context_module::is_child_of
* @covers \context_system::is_child_of
* @covers \context_user::is_child_of
* @param string $contextpath The path of the context being compared with
* @param string $testpath The path of the context being compared
* @param bool $testself Whether to check the current context
@@ -4445,6 +4606,8 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Ensure that the get_parent_contexts() function limits the number of queries it performs.
*
* @covers ::get_parent_contexts
*/
public function test_get_parent_contexts_preload() {
global $DB;
@@ -4486,6 +4649,9 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Ensure that get_with_capability_sql and get_with_capability_join respect context locking.
*
* @covers ::get_with_capability_join
* @covers ::get_with_capability_sql
*/
public function test_get_with_capability_sql_locked() {
global $DB;
@@ -4573,6 +4739,8 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Ensure that get_users_by_capability respects context freezing.
*
* @covers ::get_users_by_capability
*/
public function test_get_users_by_capability_locked() {
$this->resetAfterTest();
@@ -4650,6 +4818,8 @@ class core_accesslib_testcase extends advanced_testcase {
/**
* Test require_all_capabilities.
*
* @covers ::require_all_capabilities
*/
public function test_require_all_capabilities() {
global $DB;
+24
View File
@@ -34,6 +34,7 @@ require_once(__DIR__ . '/fixtures/task_fixtures.php');
* @category task
* @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 {
@@ -59,6 +60,8 @@ class core_adhoc_task_testcase extends advanced_testcase {
/**
* Test adhoc task failure retry backoff.
*
* @covers ::get_next_adhoc_task
*/
public function test_get_next_adhoc_task_fail_retry() {
$this->resetAfterTest(true);
@@ -90,6 +93,7 @@ class core_adhoc_task_testcase extends advanced_testcase {
/**
* Test future adhoc task execution.
* @covers ::get_next_adhoc_task
*/
public function test_get_next_adhoc_task_future() {
$this->resetAfterTest(true);
@@ -112,6 +116,7 @@ class core_adhoc_task_testcase extends advanced_testcase {
/**
* Test queueing an adhoc task belonging to a component, where we set the task component accordingly
* @covers ::queue_adhoc_task
*/
public function test_queue_adhoc_task_for_component(): void {
$this->resetAfterTest();
@@ -125,6 +130,7 @@ class core_adhoc_task_testcase extends advanced_testcase {
/**
* Test queueing an adhoc task belonging to a component, where we do not set the task component
* @covers ::queue_adhoc_task
*/
public function test_queue_task_for_component_without_set_component(): void {
$this->resetAfterTest();
@@ -140,6 +146,7 @@ class core_adhoc_task_testcase extends advanced_testcase {
/**
* Test queueing an adhoc task belonging to an invalid component, where we do not set the task component
* @covers ::queue_adhoc_task
*/
public function test_queue_task_for_invalid_component_without_set_component(): void {
$this->resetAfterTest();
@@ -152,6 +159,7 @@ class core_adhoc_task_testcase extends advanced_testcase {
/**
* Test empty set of adhoc tasks
* @covers ::get_adhoc_tasks
*/
public function test_get_adhoc_tasks_empty_set() {
$this->resetAfterTest(true);
@@ -161,6 +169,7 @@ class core_adhoc_task_testcase extends advanced_testcase {
/**
* Test correct set of adhoc tasks is returned for class.
* @covers ::get_adhoc_tasks
*/
public function test_get_adhoc_tasks_result_set() {
$this->resetAfterTest(true);
@@ -192,6 +201,7 @@ class core_adhoc_task_testcase extends advanced_testcase {
/**
* Ensure that the reschedule_or_queue_adhoc_task function will schedule a new task if no tasks exist.
* @covers ::reschedule_or_queue_adhoc_task
*/
public function test_reschedule_or_queue_adhoc_task_no_existing() {
$this->resetAfterTest(true);
@@ -206,6 +216,7 @@ class core_adhoc_task_testcase extends advanced_testcase {
/**
* Ensure that the reschedule_or_queue_adhoc_task function will schedule a new task if a task for the same user does
* not exist.
* @covers ::reschedule_or_queue_adhoc_task
*/
public function test_reschedule_or_queue_adhoc_task_different_user() {
$this->resetAfterTest(true);
@@ -228,6 +239,7 @@ class core_adhoc_task_testcase extends advanced_testcase {
/**
* Ensure that the reschedule_or_queue_adhoc_task function will schedule a new task if a task with different custom
* data exists.
* @covers ::reschedule_or_queue_adhoc_task
*/
public function test_reschedule_or_queue_adhoc_task_different_data() {
$this->resetAfterTest(true);
@@ -248,6 +260,7 @@ class core_adhoc_task_testcase extends advanced_testcase {
/**
* Ensure that the reschedule_or_queue_adhoc_task function will not make any change for matching data if no time was
* specified.
* @covers ::reschedule_or_queue_adhoc_task
*/
public function test_reschedule_or_queue_adhoc_task_match_no_change() {
$this->resetAfterTest(true);
@@ -271,6 +284,7 @@ class core_adhoc_task_testcase extends advanced_testcase {
/**
* Ensure that the reschedule_or_queue_adhoc_task function will update the run time if there are planned changes.
* @covers ::reschedule_or_queue_adhoc_task
*/
public function test_reschedule_or_queue_adhoc_task_match_update_runtime() {
$this->resetAfterTest(true);
@@ -300,6 +314,7 @@ class core_adhoc_task_testcase extends advanced_testcase {
/**
* Test queue_adhoc_task "if not scheduled".
* @covers ::queue_adhoc_task
*/
public function test_queue_adhoc_task_if_not_scheduled() {
$this->resetAfterTest(true);
@@ -366,6 +381,7 @@ class core_adhoc_task_testcase extends advanced_testcase {
/**
* Test that when no userid is specified, it returns empty from the DB
* too.
* @covers \core\task\adhoc_task::get_userid
*/
public function test_adhoc_task_user_empty() {
$this->resetAfterTest(true);
@@ -385,6 +401,9 @@ class core_adhoc_task_testcase extends advanced_testcase {
/**
* Test that when a userid is specified, that userid is subsequently
* returned.
*
* @covers \core\task\adhoc_task::set_userid
* @covers \core\task\adhoc_task::get_userid
*/
public function test_adhoc_task_user_set() {
$this->resetAfterTest(true);
@@ -405,6 +424,8 @@ class core_adhoc_task_testcase extends advanced_testcase {
/**
* Test get_concurrency_limit() method to return 0 by default.
*
* @covers \core\task\adhoc_task::get_concurrency_limit
*/
public function test_get_concurrency_limit() {
$this->resetAfterTest(true);
@@ -415,6 +436,7 @@ class core_adhoc_task_testcase extends advanced_testcase {
/**
* Test get_concurrency_limit() method to return a default value set in config.
* @covers \core\task\adhoc_task::get_concurrency_limit
*/
public function test_get_concurrency_limit_default() {
$this->resetAfterTest(true);
@@ -426,6 +448,7 @@ class core_adhoc_task_testcase extends advanced_testcase {
/**
* Test get_concurrency_limit() method to return a value for specific task class.
* @covers \core\task\adhoc_task::get_concurrency_limit
*/
public function test_get_concurrency_limit_for_task() {
global $CFG;
@@ -439,6 +462,7 @@ class core_adhoc_task_testcase extends advanced_testcase {
/**
* Test adhoc task sorting.
* @covers ::get_next_adhoc_task
*/
public function test_get_next_adhoc_task_sorting() {
$this->resetAfterTest(true);
+3
View File
@@ -76,6 +76,7 @@ class core_adminlib_testcase extends advanced_testcase {
* Test which tables and column should be replaced.
*
* @dataProvider db_should_replace_dataprovider
* @covers ::db_should_replace
* @param string $table name
* @param string $column name
* @param bool $expected whether it should be replaced
@@ -88,6 +89,7 @@ class core_adminlib_testcase extends advanced_testcase {
/**
* Data provider for additional skip tables.
*
* @covers ::db_should_replace
* @return array
*/
public function db_should_replace_additional_skip_tables_dataprovider() {
@@ -119,6 +121,7 @@ class core_adminlib_testcase extends advanced_testcase {
* Test additional skip tables.
*
* @dataProvider db_should_replace_additional_skip_tables_dataprovider
* @covers ::db_should_replace
* @param string $table name
* @param string $column name
* @param bool $expected whether it should be replaced
+4
View File
@@ -25,6 +25,10 @@
defined('MOODLE_INTERNAL') || die();
/**
* @covers ::ajax_capture_output
* @covers ::ajax_check_captured_output
*/
class core_ajaxlib_testcase extends advanced_testcase {
/** @var string Original error log */
protected $oldlog;
+1
View File
@@ -52,6 +52,7 @@ class behat_lib_test extends advanced_testcase {
* Tests for behat_is_requested_url() function.
*
* @dataProvider url_provider
* @covers ::behat_is_requested_url
*
* @param string $url URL used with behat_is_requested_url() function.
* @param bool $expectedvalue Expected value returned by behat_is_requested_url() function.
+74
View File
@@ -38,6 +38,80 @@ return new class extends phpunit_coverage_info {
'filestorage',
];
/** @var array The list of files relative to the plugin root to include in coverage generation. */
protected $includelistfiles = [
'accesslib.php',
'adminlib.php',
'authlib.php',
'badgeslib.php',
'blocklib.php',
'boxlib.php',
'clilib.php',
'completionlib.php',
'conditionlib.php',
'configonlylib.php',
'cronlib.php',
'csslib.php',
'customcheckslib.php',
'dataformatlib.php',
'datalib.php',
'ddllib.php',
'deprecatedlib.php',
'dmllib.php',
'dtllib.php',
'editorlib.php',
'enrollib.php',
'environmentlib.php',
'externallib.php',
'filelib.php',
'filterlib.php',
'flickrlib.php',
'formslib.php',
'gdlib.php',
'gradelib.php',
'graphlib.php',
'grouplib.php',
'installlib.php',
'jslib.php',
'ldaplib.php',
'licenselib.php',
'listlib.php',
'mathslib.php',
'messagelib.php',
'modinfolib.php',
'moodlelib.php',
'myprofilelib.php',
'navigationlib.php',
'oauthlib.php',
'outputactions.php',
'outputcomponents.php',
'outputfactories.php',
'outputfragmentrequirementslib.php',
'outputlib.php',
'outputrenderers.php',
'outputrequirementslib.php',
'pagelib.php',
'pdflib.php',
'phpminimumversionlib.php',
'plagiarismlib.php',
'portfoliolib.php',
'questionlib.php',
'resourcelib.php',
'rsslib.php',
'searchlib.php',
'sessionlib.php',
'setuplib.php',
'soaplib.php',
'statslib.php',
'tablelib.php',
'tokeniserlib.php',
'upgradelib.php',
'uploadlib.php',
'webdavlib.php',
'weblib.php',
'xsendfilelib.php',
];
/** @var array The list of folders relative to the plugin root to exclude from coverage generation. */
protected $excludelistfolders = [
'filestorage/tests',
+34 -1
View File
@@ -32,8 +32,13 @@ defined('MOODLE_INTERNAL') || die();
* @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 <[email protected]>
* @covers \core_date
* @coversDefaultClass \core_date
*/
class core_date_testcase extends advanced_testcase {
class date_test extends advanced_testcase {
/**
* @covers ::get_default_php_timezone
*/
public function test_get_default_php_timezone() {
$this->resetAfterTest();
@@ -50,6 +55,9 @@ class core_date_testcase extends advanced_testcase {
$this->assertSame('GMT', core_date::get_default_php_timezone());
}
/**
* @covers ::normalise_timezone
*/
public function test_normalise_timezone() {
$this->resetAfterTest();
@@ -114,6 +122,9 @@ class core_date_testcase extends advanced_testcase {
$this->assertSame('Pacific/Auckland', core_date::normalise_timezone($tz));
}
/**
* @covers ::normalise_timezone
*/
public function test_windows_conversion() {
$file = __DIR__ . '/fixtures/timezonewindows.xml';
@@ -175,6 +186,9 @@ class core_date_testcase extends advanced_testcase {
}
}
/**
* @covers ::get_localised_timezone
*/
public function test_get_localised_timezone() {
$this->resetAfterTest();
@@ -202,6 +216,9 @@ class core_date_testcase extends advanced_testcase {
$this->assertSame('UTC', $result);
}
/**
* @covers ::get_list_of_timezones
*/
public function test_get_list_of_timezones() {
$this->resetAfterTest();
@@ -250,6 +267,9 @@ class core_date_testcase extends advanced_testcase {
}
/**
* @covers ::get_server_timezone
*/
public function test_get_server_timezone() {
global $CFG;
$this->resetAfterTest();
@@ -275,6 +295,9 @@ class core_date_testcase extends advanced_testcase {
$this->assertSame('Europe/Prague', core_date::get_server_timezone());
}
/**
* @covers ::get_server_timezone_object
*/
public function test_get_server_timezone_object() {
$this->resetAfterTest();
@@ -287,6 +310,9 @@ class core_date_testcase extends advanced_testcase {
}
}
/**
* @covers ::set_default_server_timezone
*/
public function test_set_default_server_timezone() {
global $CFG;
$this->resetAfterTest();
@@ -405,6 +431,7 @@ class core_date_testcase extends advanced_testcase {
/**
* @dataProvider legacyUserTimezoneProvider
* @covers ::get_user_timezone
* @param string $tz The legacy timezone.
* @param string $expected The expected converted timezone.
*/
@@ -413,6 +440,9 @@ class core_date_testcase extends advanced_testcase {
$this->assertEquals($expected, core_date::get_user_timezone($tz));
}
/**
* @covers ::get_user_timezone
*/
public function test_get_user_timezone() {
global $CFG, $USER;
$this->resetAfterTest();
@@ -549,6 +579,9 @@ class core_date_testcase extends advanced_testcase {
$this->assertSame('Pacific/Auckland', core_date::get_user_timezone($tz));
}
/**
* @covers ::get_user_timezone_object
*/
public function test_get_user_timezone_object() {
global $CFG, $USER;
$this->resetAfterTest();
+63 -2
View File
@@ -28,67 +28,104 @@ defined('MOODLE_INTERNAL') || die();
global $CFG;
require_once($CFG->libdir . '/outputcomponents.php');
/**
* Unit tests for the html_writer class.
*
* @copyright 2010 Tim Hunt
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @covers \html_writer
* @coversDefaultClass \html_writer
*/
class core_html_writer_testcase extends basic_testcase {
class html_writer_test extends basic_testcase {
/**
* @covers ::start_tag
*/
public function test_start_tag() {
$this->assertSame('<div>', html_writer::start_tag('div'));
}
/**
* @covers ::start_tag
*/
public function test_start_tag_with_attr() {
$this->assertSame('<div class="frog">',
html_writer::start_tag('div', array('class' => 'frog')));
}
/**
* @covers ::start_tag
*/
public function test_start_tag_with_attrs() {
$this->assertSame('<div class="frog" id="mydiv">',
html_writer::start_tag('div', array('class' => 'frog', 'id' => 'mydiv')));
}
/**
* @covers ::end_tag
*/
public function test_end_tag() {
$this->assertSame('</div>', html_writer::end_tag('div'));
}
/**
* @covers ::empty_Tag
*/
public function test_empty_tag() {
$this->assertSame('<br />', html_writer::empty_tag('br'));
}
/**
* @covers ::empty_Tag
*/
public function test_empty_tag_with_attrs() {
$this->assertSame('<input type="submit" value="frog" />',
html_writer::empty_tag('input', array('type' => 'submit', 'value' => 'frog')));
}
/**
* @covers ::nonempty_tag
*/
public function test_nonempty_tag_with_content() {
$this->assertSame('<div>Hello world!</div>',
html_writer::nonempty_tag('div', 'Hello world!'));
}
/**
* @covers ::nonempty_tag
*/
public function test_nonempty_tag_empty() {
$this->assertSame('',
html_writer::nonempty_tag('div', ''));
}
/**
* @covers ::nonempty_tag
*/
public function test_nonempty_tag_null() {
$this->assertSame('',
html_writer::nonempty_tag('div', null));
}
/**
* @covers ::nonempty_tag
*/
public function test_nonempty_tag_zero() {
$this->assertSame('<div class="score">0</div>',
html_writer::nonempty_tag('div', 0, array('class' => 'score')));
}
/**
* @covers ::nonempty_tag
*/
public function test_nonempty_tag_zero_string() {
$this->assertSame('<div class="score">0</div>',
html_writer::nonempty_tag('div', '0', array('class' => 'score')));
}
/**
* @covers ::div
*/
public function test_div() {
// All options.
$this->assertSame('<div class="frog" id="kermit">ribbit</div>',
@@ -107,6 +144,9 @@ class core_html_writer_testcase extends basic_testcase {
html_writer::div('ribbit'));
}
/**
* @covers ::start_div
*/
public function test_start_div() {
// All options.
$this->assertSame('<div class="frog" id="kermit">',
@@ -125,10 +165,16 @@ class core_html_writer_testcase extends basic_testcase {
html_writer::start_div());
}
/**
* @covers ::end_div
*/
public function test_end_div() {
$this->assertSame('</div>', html_writer::end_div());
}
/**
* @covers ::span
*/
public function test_span() {
// All options.
$this->assertSame('<span class="frog" id="kermit">ribbit</span>',
@@ -147,6 +193,9 @@ class core_html_writer_testcase extends basic_testcase {
html_writer::span('ribbit'));
}
/**
* @covers ::start_span
*/
public function test_start_span() {
// All options.
$this->assertSame('<span class="frog" id="kermit">',
@@ -165,10 +214,19 @@ class core_html_writer_testcase extends basic_testcase {
html_writer::start_span());
}
/**
* @covers ::end_span
*/
public function test_end_span() {
$this->assertSame('</span>', html_writer::end_span());
}
/**
* @covers ::table
* @covers \html_table_row
* @covers \html_table_cell
* @covers \html_table
*/
public function test_table() {
$row = new html_table_row();
@@ -220,6 +278,9 @@ EOF;
$this->assertSame($expected, $output);
}
/**
* @covers ::table
*/
public function test_table_hidden_caption() {
$table = new html_table();
+1
View File
@@ -30,6 +30,7 @@ defined('MOODLE_INTERNAL') || die();
* @package core
* @copyright 2017 Damyon Wiese
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later.
* @coversDefaultClass \core\oauth2\api
*/
class core_oauth2_testcase extends advanced_testcase {
+7 -1
View File
@@ -33,8 +33,10 @@ require_once($CFG->libdir . '/outputlib.php');
*
* @copyright 2012 Sam Hemelryk
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @covers \theme_config
* @coversDefaultClass \theme_config
*/
class core_theme_config_testcase extends advanced_testcase {
class theme_config_test extends advanced_testcase {
/**
* This function will test directives used to serve SVG images to make sure
* this are making the right decisions.
@@ -129,6 +131,8 @@ class core_theme_config_testcase extends advanced_testcase {
/**
* This function will test custom device detection regular expression setting.
*
* @covers \core_useragent
*/
public function test_devicedetectregex() {
global $CFG;
@@ -216,6 +220,8 @@ class core_theme_config_testcase extends advanced_testcase {
/**
* Test that {@see theme_config::get_all_block_regions()} returns localised list of region names.
*
* @covers ::get_all_block_regions
*/
public function test_get_all_block_regions() {
$this->resetAfterTest();
+7 -10
View File
@@ -14,22 +14,15 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Tests the user agent class.
*
* @package core
* @copyright 2013 Sam Hemelryk
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
/**
* User agent test suite.
*
* @package core
* @copyright 2013 Sam Hemelryk
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @covers \core_useragent
*/
class core_useragent_testcase extends advanced_testcase {
class useragent_test extends advanced_testcase {
/**
* Restores the user agent to the default one.
@@ -38,6 +31,11 @@ class core_useragent_testcase extends advanced_testcase {
core_useragent::instance(true);
}
/**
* Data provider for known user agents.
*
* @return array
*/
public function user_agents_providers() {
// Note: When adding new entries to this list, please ensure that any new browser versions are added to the corresponding list.
// This ensures that regression tests are applied to all known user agents.
@@ -1638,7 +1636,6 @@ class core_useragent_testcase extends advanced_testcase {
}
}
/**
* @dataProvider user_agents_providers
*/
+74 -9
View File
@@ -24,11 +24,11 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU Public License
*/
defined('MOODLE_INTERNAL') || die();
class core_weblib_testcase extends advanced_testcase {
class weblib_test extends advanced_testcase {
/**
* @covers ::format_string
*/
public function test_format_string() {
global $CFG;
@@ -113,6 +113,9 @@ class core_weblib_testcase extends advanced_testcase {
$this->assertMatchesRegularExpression("/$expectedfilter/", $cachedresult);
}
/**
* @covers ::s
*/
public function test_s() {
// Special cases.
$this->assertSame('0', s(0));
@@ -163,6 +166,9 @@ class core_weblib_testcase extends advanced_testcase {
}
}
/**
* @covers ::format_text_email
*/
public function test_format_text_email() {
$this->assertSame("This is a TEST\n",
format_text_email('<p>This is a <strong>test</strong></p>', FORMAT_HTML));
@@ -176,6 +182,9 @@ class core_weblib_testcase extends advanced_testcase {
format_text_email('&#x7fd2;&#x7FD2;', FORMAT_HTML));
}
/**
* @covers ::obfuscate_email
*/
public function test_obfuscate_email() {
$email = '[email protected]';
$obfuscated = obfuscate_email($email);
@@ -184,6 +193,9 @@ class core_weblib_testcase extends advanced_testcase {
$this->assertSame($email, $back);
}
/**
* @covers ::obfuscate_text
*/
public function test_obfuscate_text() {
$text = 'Žluťoučký koníček 32131';
$obfuscated = obfuscate_text($text);
@@ -192,6 +204,9 @@ class core_weblib_testcase extends advanced_testcase {
$this->assertSame($text, $back);
}
/**
* @covers ::highlight
*/
public function test_highlight() {
$this->assertSame('This is <span class="highlight">good</span>',
highlight('good', 'This is good'));
@@ -230,19 +245,31 @@ class core_weblib_testcase extends advanced_testcase {
highlight('test -1', '<p>test 1</p><p>1</p>', false, '<b>', '</b>'));
}
/**
* @covers ::replace_ampersands_not_followed_by_entity
*/
public function test_replace_ampersands() {
$this->assertSame("This &amp; that &nbsp;", replace_ampersands_not_followed_by_entity("This & that &nbsp;"));
$this->assertSame("This &amp;nbsp that &nbsp;", replace_ampersands_not_followed_by_entity("This &nbsp that &nbsp;"));
}
/**
* @covers ::strip_links
*/
public function test_strip_links() {
$this->assertSame('this is a link', strip_links('this is a <a href="http://someaddress.com/query">link</a>'));
}
/**
* @covers ::wikify_links
*/
public function test_wikify_links() {
$this->assertSame('this is a link [ http://someaddress.com/query ]', wikify_links('this is a <a href="http://someaddress.com/query">link</a>'));
}
/**
* @covers ::clean_text
*/
public function test_clean_text() {
$text = "lala <applet>xx</applet>";
$this->assertSame($text, clean_text($text, FORMAT_PLAIN));
@@ -251,6 +278,9 @@ class core_weblib_testcase extends advanced_testcase {
$this->assertSame('lala xx', clean_text($text, FORMAT_HTML));
}
/**
* @covers ::qualified_me
*/
public function test_qualified_me() {
global $PAGE, $FULLME, $CFG;
$this->resetAfterTest();
@@ -264,7 +294,10 @@ class core_weblib_testcase extends advanced_testcase {
$this->assertSame($CFG->wwwroot.'/course/view.php?id=1', qualified_me());
}
public function test_null_progres_trace() {
/**
* @covers \null_progress_trace
*/
public function test_null_progress_trace() {
$this->resetAfterTest(false);
$trace = new null_progress_trace();
@@ -277,7 +310,10 @@ class core_weblib_testcase extends advanced_testcase {
$this->expectOutputString('');
}
public function test_text_progres_trace() {
/**
* @covers \null_progress_trace
*/
public function test_text_progress_trace() {
$this->resetAfterTest(false);
$trace = new text_progress_trace();
@@ -288,7 +324,10 @@ class core_weblib_testcase extends advanced_testcase {
$this->expectOutputString("do\n re\n mi\n");
}
public function test_html_progres_trace() {
/**
* @covers \html_progress_trace
*/
public function test_html_progress_trace() {
$this->resetAfterTest(false);
$trace = new html_progress_trace();
@@ -299,6 +338,9 @@ class core_weblib_testcase extends advanced_testcase {
$this->expectOutputString("<p>do</p>\n<p>&#160;&#160;re</p>\n<p>&#160;&#160;&#160;&#160;mi</p>\n");
}
/**
* @covers \html_list_progress_trace
*/
public function test_html_list_progress_trace() {
$this->resetAfterTest(false);
@@ -310,7 +352,10 @@ class core_weblib_testcase extends advanced_testcase {
$this->expectOutputString("<ul>\n<li>do<ul>\n<li>re<ul>\n<li>mi</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n");
}
public function test_progres_trace_buffer() {
/**
* @covers \progress_trace_buffer
*/
public function test_progress_trace_buffer() {
$this->resetAfterTest(false);
$trace = new progress_trace_buffer(new html_progress_trace());
@@ -336,7 +381,10 @@ class core_weblib_testcase extends advanced_testcase {
$this->expectOutputString('');
}
public function test_combined_progres_trace() {
/**
* @covers \combined_progress_trace
*/
public function test_combined_progress_trace() {
$this->resetAfterTest(false);
$trace1 = new progress_trace_buffer(new html_progress_trace(), false);
@@ -352,6 +400,9 @@ class core_weblib_testcase extends advanced_testcase {
$this->expectOutputString('');
}
/**
* @covers ::set_debugging
*/
public function test_set_debugging() {
global $CFG;
@@ -392,6 +443,9 @@ class core_weblib_testcase extends advanced_testcase {
$this->assertFalse($CFG->debugdeveloper);
}
/**
* @covers ::strip_pluginfile_content
*/
public function test_strip_pluginfile_content() {
$source = <<<SOURCE
Hello!
@@ -430,6 +484,9 @@ EXPECTED;
$this->assertSame($expected, strip_pluginfile_content($source));
}
/**
* @covers \purify_html
*/
public function test_purify_html_ruby() {
$this->resetAfterTest();
@@ -452,6 +509,7 @@ EXPECTED;
* @param int|false $format The content format
* @param string $expected Expected value
* @dataProvider provider_content_to_text
* @covers ::content_to_text
*/
public function test_content_to_text($content, $format, $expected) {
$content = content_to_text($content, $format);
@@ -628,6 +686,7 @@ EXPECTED;
* @param string $email the email address to test
* @param boolean $result Expected result (true or false)
* @dataProvider data_validate_email
* @covers ::validate_email
*/
public function test_validate_email($email, $result) {
if ($result) {
@@ -752,6 +811,7 @@ EXPECTED;
* @param string $cfgslasharguments slasharguments setting.
* @param string|false $expected Expected value.
* @dataProvider provider_get_file_argument
* @covers ::get_file_argument
*/
public function test_get_file_argument($server, $cfgslasharguments, $expected) {
global $CFG;
@@ -796,6 +856,8 @@ EXPECTED;
/**
* Tests for extract_draft_file_urls_from_text() function.
*
* @covers ::extract_draft_file_urls_from_text
*/
public function test_extract_draft_file_urls_from_text() {
global $CFG;
@@ -842,6 +904,9 @@ EXPECTED;
$this->assertEquals($draftareas, $extracteddraftareas);
}
/**
* @covers ::print_password_policy
*/
public function test_print_password_policy() {
$this->resetAfterTest(true);
global $CFG;
+28
View File
@@ -0,0 +1,28 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Coverage information for the core_user subsystem.
*
* @copyright 2021 Andrew Nicols <[email protected]>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
return new class extends phpunit_coverage_info {
/** @var array The list of files relative to the plugin root to include in coverage generation. */
protected $includelistfiles = [
'editlib.php',
];
};