MDL-73485 phpunit: externallib, generator and filter tescase names

All externallib_test, generator_test and filter_test classes:

- Namespaced with component[\level2-API]
- Moved to level2-API subdirectory when required.
- Fixed incorrect use statements with leading backslash.
- 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 tests under testing/tests:

1) The core_testing component doesn't exist.
2) But testing/tests are allowed because there is a suite pointing to it (phpunit.xml).
3) So, the only possible namespace for them is "core".
4) And to avoid problems with other core testcases (under lib/tests)
   they have been renamed to have testing_xxxx as prefix.

Finally, also modified calendar/tests/event/events_test.php because it uses
some renamed (core_calendar_externallib_testcase => \core_calendar\externallib_test)
classes.
This commit is contained in:
Eloy Lafuente (stronk7)
2022-01-21 19:48:30 +01:00
parent 1bd5d40c8f
commit 9835d6920f
85 changed files with 2365 additions and 2631 deletions
+46 -51
View File
@@ -13,22 +13,10 @@
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* External learning plans webservice API tests.
*
* @package tool_lp
* @copyright 2015 Damyon Wiese
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
global $CFG;
require_once($CFG->dirroot . '/webservice/tests/helpers.php');
namespace tool_lp;
use core_competency\api;
use tool_lp\external;
use core_competency\invalid_persistent_exception;
use core_competency\plan;
use core_competency\related_competency;
@@ -38,6 +26,13 @@ use core_competency\plan_competency;
use core_competency\template;
use core_competency\template_competency;
use core_competency\course_competency_settings;
use externallib_advanced_testcase;
defined('MOODLE_INTERNAL') || die();
global $CFG;
require_once($CFG->dirroot . '/webservice/tests/helpers.php');
/**
* External learning plans webservice API tests.
@@ -46,24 +41,24 @@ use core_competency\course_competency_settings;
* @copyright 2015 Damyon Wiese
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class tool_lp_external_testcase extends externallib_advanced_testcase {
class externallib_test extends externallib_advanced_testcase {
/** @var stdClass $creator User with enough permissions to create insystem context. */
/** @var \stdClass $creator User with enough permissions to create insystem context. */
protected $creator = null;
/** @var stdClass $catcreator User with enough permissions to create incategory context. */
/** @var \stdClass $catcreator User with enough permissions to create incategory context. */
protected $catcreator = null;
/** @var stdClass $category Category */
/** @var \stdClass $category Category */
protected $category = null;
/** @var stdClass $category Category */
/** @var \stdClass $category Category */
protected $othercategory = null;
/** @var stdClass $user User with enough permissions to view insystem context */
/** @var \stdClass $user User with enough permissions to view insystem context */
protected $user = null;
/** @var stdClass $catuser User with enough permissions to view incategory context */
/** @var \stdClass $catuser User with enough permissions to view incategory context */
protected $catuser = null;
/** @var int Creator role id */
@@ -87,8 +82,8 @@ class tool_lp_external_testcase extends externallib_advanced_testcase {
$catcreator = $this->getDataGenerator()->create_user();
$category = $this->getDataGenerator()->create_category();
$othercategory = $this->getDataGenerator()->create_category();
$syscontext = context_system::instance();
$catcontext = context_coursecat::instance($category->id);
$syscontext = \context_system::instance();
$catcontext = \context_coursecat::instance($category->id);
// Fetching default authenticated user role.
$authrole = $DB->get_record('role', array('id' => $CFG->defaultuserroleid));
@@ -157,33 +152,33 @@ class tool_lp_external_testcase extends externallib_advanced_testcase {
// First we search with no capability assigned.
$this->setUser($ux);
$result = external::search_users('yyylan', 'moodle/competency:planmanage');
$result = external_api::clean_returnvalue(external::search_users_returns(), $result);
$result = \external_api::clean_returnvalue(external::search_users_returns(), $result);
$this->assertCount(0, $result['users']);
$this->assertEquals(0, $result['count']);
// Now we assign a different capability.
$usercontext = context_user::instance($u1->id);
$systemcontext = context_system::instance();
$usercontext = \context_user::instance($u1->id);
$systemcontext = \context_system::instance();
$customrole = $this->assignUserCapability('moodle/competency:planview', $usercontext->id);
$result = external::search_users('yyylan', 'moodle/competency:planmanage');
$result = external_api::clean_returnvalue(external::search_users_returns(), $result);
$result = \external_api::clean_returnvalue(external::search_users_returns(), $result);
$this->assertCount(0, $result['users']);
$this->assertEquals(0, $result['count']);
// Now we assign a matching capability in the same role.
$usercontext = context_user::instance($u1->id);
$usercontext = \context_user::instance($u1->id);
$this->assignUserCapability('moodle/competency:planmanage', $usercontext->id, $customrole);
$result = external::search_users('yyylan', 'moodle/competency:planmanage');
$result = external_api::clean_returnvalue(external::search_users_returns(), $result);
$result = \external_api::clean_returnvalue(external::search_users_returns(), $result);
$this->assertCount(1, $result['users']);
$this->assertEquals(1, $result['count']);
// Now assign another role with the same capability (test duplicates).
role_assign($this->creatorrole, $ux->id, $usercontext->id);
$result = external::search_users('yyylan', 'moodle/competency:planmanage');
$result = external_api::clean_returnvalue(external::search_users_returns(), $result);
$result = \external_api::clean_returnvalue(external::search_users_returns(), $result);
$this->assertCount(1, $result['users']);
$this->assertEquals(1, $result['count']);
@@ -192,7 +187,7 @@ class tool_lp_external_testcase extends externallib_advanced_testcase {
role_assign($this->creatorrole, $ux2->id, $systemcontext->id);
$this->setUser($ux2);
$result = external::search_users('yyylan', 'moodle/competency:planmanage');
$result = external_api::clean_returnvalue(external::search_users_returns(), $result);
$result = \external_api::clean_returnvalue(external::search_users_returns(), $result);
$this->assertCount(1, $result['users']);
$this->assertEquals(1, $result['count']);
@@ -201,7 +196,7 @@ class tool_lp_external_testcase extends externallib_advanced_testcase {
role_assign($this->creatorrole, $ux3->id, $usercontext->id);
$this->setUser($ux3);
$result = external::search_users('yyylan', 'moodle/competency:planmanage');
$result = external_api::clean_returnvalue(external::search_users_returns(), $result);
$result = \external_api::clean_returnvalue(external::search_users_returns(), $result);
$this->assertCount(1, $result['users']);
$this->assertEquals(1, $result['count']);
@@ -211,14 +206,14 @@ class tool_lp_external_testcase extends externallib_advanced_testcase {
// Now add a prevent override (will change nothing because we still have an ALLOW).
assign_capability('moodle/competency:planmanage', CAP_PREVENT, $customrole, $usercontext->id);
$result = external::search_users('yyylan', 'moodle/competency:planmanage');
$result = external_api::clean_returnvalue(external::search_users_returns(), $result);
$result = \external_api::clean_returnvalue(external::search_users_returns(), $result);
$this->assertCount(1, $result['users']);
$this->assertEquals(1, $result['count']);
// Now change to a prohibit override (should prevent access).
assign_capability('moodle/competency:planmanage', CAP_PROHIBIT, $customrole, $usercontext->id);
$result = external::search_users('yyylan', 'moodle/competency:planmanage');
$result = external_api::clean_returnvalue(external::search_users_returns(), $result);
$result = \external_api::clean_returnvalue(external::search_users_returns(), $result);
$this->assertCount(1, $result['users']);
$this->assertEquals(1, $result['count']);
@@ -237,10 +232,10 @@ class tool_lp_external_testcase extends externallib_advanced_testcase {
$slave2 = $dg->create_user(array('lastname' => 'MOODLER'));
$slave3 = $dg->create_user(array('lastname' => 'MOODLER'));
$syscontext = context_system::instance();
$slave1context = context_user::instance($slave1->id);
$slave2context = context_user::instance($slave2->id);
$slave3context = context_user::instance($slave3->id);
$syscontext = \context_system::instance();
$slave1context = \context_user::instance($slave1->id);
$slave2context = \context_user::instance($slave2->id);
$slave3context = \context_user::instance($slave3->id);
// Creating a role giving the site config.
$roleid = $dg->create_role();
@@ -306,19 +301,19 @@ class tool_lp_external_testcase extends externallib_advanced_testcase {
// We need to give the user the capability we are searching for on each of the test users.
$this->setAdminUser();
$usercontext = context_user::instance($u1->id);
$usercontext = \context_user::instance($u1->id);
$dummyrole = $this->assignUserCapability('moodle/competency:planmanage', $usercontext->id);
$usercontext = context_user::instance($u2->id);
$usercontext = \context_user::instance($u2->id);
$this->assignUserCapability('moodle/competency:planmanage', $usercontext->id, $dummyrole);
$usercontext = context_user::instance($u3->id);
$usercontext = \context_user::instance($u3->id);
$this->assignUserCapability('moodle/competency:planmanage', $usercontext->id, $dummyrole);
$this->setUser($ux);
$usercontext = context_user::instance($u1->id);
$usercontext = \context_user::instance($u1->id);
$this->assignUserCapability('moodle/competency:planmanage', $usercontext->id, $dummyrole);
$usercontext = context_user::instance($u2->id);
$usercontext = \context_user::instance($u2->id);
$this->assignUserCapability('moodle/competency:planmanage', $usercontext->id, $dummyrole);
$usercontext = context_user::instance($u3->id);
$usercontext = \context_user::instance($u3->id);
$this->assignUserCapability('moodle/competency:planmanage', $usercontext->id, $dummyrole);
$this->setAdminUser();
@@ -326,14 +321,14 @@ class tool_lp_external_testcase extends externallib_advanced_testcase {
// No identity fields.
$CFG->showuseridentity = '';
$result = external::search_users('cats', 'moodle/competency:planmanage');
$result = external_api::clean_returnvalue(external::search_users_returns(), $result);
$result = \external_api::clean_returnvalue(external::search_users_returns(), $result);
$this->assertCount(0, $result['users']);
$this->assertEquals(0, $result['count']);
// Filter by name.
$CFG->showuseridentity = '';
$result = external::search_users('dyyylan', 'moodle/competency:planmanage');
$result = external_api::clean_returnvalue(external::search_users_returns(), $result);
$result = \external_api::clean_returnvalue(external::search_users_returns(), $result);
$this->assertCount(2, $result['users']);
$this->assertEquals(2, $result['count']);
$this->assertEquals($u2->id, $result['users'][0]['id']);
@@ -342,7 +337,7 @@ class tool_lp_external_testcase extends externallib_advanced_testcase {
// Filter by institution and name.
$CFG->showuseridentity = 'institution';
$result = external::search_users('bob', 'moodle/competency:planmanage');
$result = external_api::clean_returnvalue(external::search_users_returns(), $result);
$result = \external_api::clean_returnvalue(external::search_users_returns(), $result);
$this->assertCount(2, $result['users']);
$this->assertEquals(2, $result['count']);
$this->assertEquals($u1->id, $result['users'][0]['id']);
@@ -351,7 +346,7 @@ class tool_lp_external_testcase extends externallib_advanced_testcase {
// Filter by id number.
$CFG->showuseridentity = 'idnumber';
$result = external::search_users('cats', 'moodle/competency:planmanage');
$result = external_api::clean_returnvalue(external::search_users_returns(), $result);
$result = \external_api::clean_returnvalue(external::search_users_returns(), $result);
$this->assertCount(1, $result['users']);
$this->assertEquals(1, $result['count']);
$this->assertEquals($u1->id, $result['users'][0]['id']);
@@ -365,7 +360,7 @@ class tool_lp_external_testcase extends externallib_advanced_testcase {
// Filter by email.
$CFG->showuseridentity = 'email';
$result = external::search_users('yyy', 'moodle/competency:planmanage');
$result = external_api::clean_returnvalue(external::search_users_returns(), $result);
$result = \external_api::clean_returnvalue(external::search_users_returns(), $result);
$this->assertCount(3, $result['users']);
$this->assertEquals(3, $result['count']);
$this->assertEquals($u2->id, $result['users'][0]['id']);
@@ -378,7 +373,7 @@ class tool_lp_external_testcase extends externallib_advanced_testcase {
// Filter by any.
$CFG->showuseridentity = 'idnumber,email,phone1,phone2,department,institution';
$result = external::search_users('yyy', 'moodle/competency:planmanage');
$result = external_api::clean_returnvalue(external::search_users_returns(), $result);
$result = \external_api::clean_returnvalue(external::search_users_returns(), $result);
$this->assertCount(3, $result['users']);
$this->assertEquals(3, $result['count']);
$this->assertArrayHasKey('idnumber', $result['users'][0]);
@@ -394,12 +389,12 @@ class tool_lp_external_testcase extends externallib_advanced_testcase {
// Only names are included.
$result = external::search_users('fish');
$result = external_api::clean_returnvalue(external::search_users_returns(), $result);
$result = \external_api::clean_returnvalue(external::search_users_returns(), $result);
$this->assertCount(0, $result['users']);
$this->assertEquals(0, $result['count']);
$result = external::search_users('bob', 'moodle/competency:planmanage');
$result = external_api::clean_returnvalue(external::search_users_returns(), $result);
$result = \external_api::clean_returnvalue(external::search_users_returns(), $result);
$this->assertCount(1, $result['users']);
$this->assertEquals(1, $result['count']);
$this->assertEquals($u1->id, $result['users'][0]['id']);
+44 -53
View File
@@ -14,15 +14,9 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Moodle Mobile admin tool external functions tests.
*
* @package tool_mobile
* @category external
* @copyright 2016 Juan Leyva
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since Moodle 3.1
*/
namespace tool_mobile;
use externallib_advanced_testcase;
defined('MOODLE_INTERNAL') || die();
@@ -32,9 +26,6 @@ require_once($CFG->dirroot . '/webservice/tests/helpers.php');
require_once($CFG->dirroot . '/admin/tool/mobile/tests/fixtures/output/mobile.php');
require_once($CFG->dirroot . '/webservice/lib.php');
use tool_mobile\external;
use tool_mobile\api;
/**
* Moodle Mobile admin tool external functions tests.
*
@@ -43,7 +34,7 @@ use tool_mobile\api;
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since Moodle 3.1
*/
class tool_mobile_external_testcase extends externallib_advanced_testcase {
class externallib_test extends externallib_advanced_testcase {
/**
* Test get_plugins_supporting_mobile.
@@ -51,7 +42,7 @@ class tool_mobile_external_testcase extends externallib_advanced_testcase {
*/
public function test_get_plugins_supporting_mobile() {
$result = external::get_plugins_supporting_mobile();
$result = external_api::clean_returnvalue(external::get_plugins_supporting_mobile_returns(), $result);
$result = \external_api::clean_returnvalue(external::get_plugins_supporting_mobile_returns(), $result);
$this->assertCount(0, $result['warnings']);
$this->assertArrayHasKey('plugins', $result);
$this->assertTrue(is_array($result['plugins']));
@@ -62,10 +53,10 @@ class tool_mobile_external_testcase extends externallib_advanced_testcase {
$this->resetAfterTest(true);
$result = external::get_public_config();
$result = external_api::clean_returnvalue(external::get_public_config_returns(), $result);
$result = \external_api::clean_returnvalue(external::get_public_config_returns(), $result);
// Test default values.
$context = context_system::instance();
$context = \context_system::instance();
list($authinstructions, $notusedformat) = external_format_text($CFG->auth_instructions, FORMAT_MOODLE, $context->id);
list($maintenancemessage, $notusedformat) = external_format_text($CFG->maintenance_message, FORMAT_MOODLE, $context->id);
@@ -123,7 +114,7 @@ class tool_mobile_external_testcase extends externallib_advanced_testcase {
$irecord = $issuer->to_record();
$irecord->clientid = 'mock';
$irecord->clientsecret = 'mock';
core\oauth2\api::update_issuer($irecord);
\core\oauth2\api::update_issuer($irecord);
set_config('hostname', 'localhost', 'auth_cas');
set_config('auth_logo', 'http://invalidurl.com//invalid/', 'auth_cas');
@@ -151,7 +142,7 @@ class tool_mobile_external_testcase extends externallib_advanced_testcase {
}
$result = external::get_public_config();
$result = external_api::clean_returnvalue(external::get_public_config_returns(), $result);
$result = \external_api::clean_returnvalue(external::get_public_config_returns(), $result);
// First check providers.
$identityproviders = $result['identityproviders'];
unset($result['identityproviders']);
@@ -170,7 +161,7 @@ class tool_mobile_external_testcase extends externallib_advanced_testcase {
$newurl = 'validimage.png';
set_config('auth_logo', $newurl, 'auth_cas');
$result = external::get_public_config();
$result = external_api::clean_returnvalue(external::get_public_config_returns(), $result);
$result = \external_api::clean_returnvalue(external::get_public_config_returns(), $result);
$this->assertStringContainsString($newurl, $result['identityproviders'][1]['iconurl']);
}
@@ -187,13 +178,13 @@ class tool_mobile_external_testcase extends externallib_advanced_testcase {
set_config('sitepolicy', $mysitepolicy);
$result = external::get_config();
$result = external_api::clean_returnvalue(external::get_config_returns(), $result);
$result = \external_api::clean_returnvalue(external::get_config_returns(), $result);
// SITE summary is null in phpunit which gets transformed to an empty string by format_text.
list($sitesummary, $unused) = external_format_text($SITE->summary, $SITE->summaryformat, context_system::instance()->id);
list($sitesummary, $unused) = external_format_text($SITE->summary, $SITE->summaryformat, \context_system::instance()->id);
// Test default values.
$context = context_system::instance();
$context = \context_system::instance();
$expected = array(
array('name' => 'fullname', 'value' => $SITE->fullname),
array('name' => 'shortname', 'value' => $SITE->shortname),
@@ -247,7 +238,7 @@ class tool_mobile_external_testcase extends externallib_advanced_testcase {
array_splice($expected, 11);
$result = external::get_config('frontpagesettings');
$result = external_api::clean_returnvalue(external::get_config_returns(), $result);
$result = \external_api::clean_returnvalue(external::get_config_returns(), $result);
$this->assertCount(0, $result['warnings']);
$this->assertEquals($expected, $result['settings']);
}
@@ -273,7 +264,7 @@ class tool_mobile_external_testcase extends externallib_advanced_testcase {
$_GET['wstoken'] = $token->token; // Mock parameters.
// Fake the app.
core_useragent::instance(true, 'Mozilla/5.0 (Linux; Android 7.1.1; Moto G Play Build/NPIS26.48-43-2; wv) ' .
\core_useragent::instance(true, 'Mozilla/5.0 (Linux; Android 7.1.1; Moto G Play Build/NPIS26.48-43-2; wv) ' .
'AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/71.0.3578.99 Mobile Safari/537.36 MoodleMobile');
// Even if we force the password change for the current user we should be able to retrieve the key.
@@ -281,9 +272,9 @@ class tool_mobile_external_testcase extends externallib_advanced_testcase {
$this->setCurrentTimeStart();
$result = external::get_autologin_key($token->privatetoken);
$result = external_api::clean_returnvalue(external::get_autologin_key_returns(), $result);
$result = \external_api::clean_returnvalue(external::get_autologin_key_returns(), $result);
// Validate the key.
$this->assertEquals(32, core_text::strlen($result['key']));
$this->assertEquals(32, \core_text::strlen($result['key']));
$key = $DB->get_record('user_private_key', array('value' => $result['key']));
$this->assertEquals($USER->id, $key->userid);
$this->assertTimeCurrent($key->validuntil - api::LOGIN_KEY_TTL);
@@ -304,7 +295,7 @@ class tool_mobile_external_testcase extends externallib_advanced_testcase {
$this->resetAfterTest(true);
// Fake the app.
core_useragent::instance(true, 'Mozilla/5.0 (Linux; Android 7.1.1; Moto G Play Build/NPIS26.48-43-2; wv) ' .
\core_useragent::instance(true, 'Mozilla/5.0 (Linux; Android 7.1.1; Moto G Play Build/NPIS26.48-43-2; wv) ' .
'AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/71.0.3578.99 Mobile Safari/537.36 MoodleMobile');
// Need to disable webservices to verify that's checked.
@@ -324,7 +315,7 @@ class tool_mobile_external_testcase extends externallib_advanced_testcase {
global $CFG;
// Fake the app.
core_useragent::instance(true, 'Mozilla/5.0 (Linux; Android 7.1.1; Moto G Play Build/NPIS26.48-43-2; wv) ' .
\core_useragent::instance(true, 'Mozilla/5.0 (Linux; Android 7.1.1; Moto G Play Build/NPIS26.48-43-2; wv) ' .
'AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/71.0.3578.99 Mobile Safari/537.36 MoodleMobile');
// Need to simulate a non HTTPS site here.
@@ -348,7 +339,7 @@ class tool_mobile_external_testcase extends externallib_advanced_testcase {
$this->setAdminUser();
// Fake the app.
core_useragent::instance(true, 'Mozilla/5.0 (Linux; Android 7.1.1; Moto G Play Build/NPIS26.48-43-2; wv) ' .
\core_useragent::instance(true, 'Mozilla/5.0 (Linux; Android 7.1.1; Moto G Play Build/NPIS26.48-43-2; wv) ' .
'AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/71.0.3578.99 Mobile Safari/537.36 MoodleMobile');
$this->expectException('moodle_exception');
@@ -372,17 +363,17 @@ class tool_mobile_external_testcase extends externallib_advanced_testcase {
$_GET['wstoken'] = $token->token; // Mock parameters.
// Fake the app.
core_useragent::instance(true, 'Mozilla/5.0 (Linux; Android 7.1.1; Moto G Play Build/NPIS26.48-43-2; wv) ' .
\core_useragent::instance(true, 'Mozilla/5.0 (Linux; Android 7.1.1; Moto G Play Build/NPIS26.48-43-2; wv) ' .
'AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/71.0.3578.99 Mobile Safari/537.36 MoodleMobile');
$result = external::get_autologin_key($token->privatetoken);
$result = external_api::clean_returnvalue(external::get_autologin_key_returns(), $result);
$result = \external_api::clean_returnvalue(external::get_autologin_key_returns(), $result);
// Mock last time request.
$mocktime = time() - 7 * MINSECS;
set_user_preference('tool_mobile_autologin_request_last', $mocktime, $USER);
$result = external::get_autologin_key($token->privatetoken);
$result = external_api::clean_returnvalue(external::get_autologin_key_returns(), $result);
$result = \external_api::clean_returnvalue(external::get_autologin_key_returns(), $result);
// We just requested one token, we must wait.
$this->expectException('moodle_exception');
@@ -411,7 +402,7 @@ class tool_mobile_external_testcase extends externallib_advanced_testcase {
$paramval = 16;
$result = external::get_content('tool_mobile', 'test_view', array(array('name' => 'param1', 'value' => $paramval)));
$result = external_api::clean_returnvalue(external::get_content_returns(), $result);
$result = \external_api::clean_returnvalue(external::get_content_returns(), $result);
$this->assertCount(1, $result['templates']);
$this->assertCount(1, $result['otherdata']);
$this->assertCount(2, $result['restrict']['users']);
@@ -435,7 +426,7 @@ class tool_mobile_external_testcase extends externallib_advanced_testcase {
$paramval = 16;
$result = external::get_content('tool_mobile', 'test_view_disabled',
array(array('name' => 'param1', 'value' => $paramval)));
$result = external_api::clean_returnvalue(external::get_content_returns(), $result);
$result = \external_api::clean_returnvalue(external::get_content_returns(), $result);
$this->assertTrue($result['disabled']);
}
@@ -492,7 +483,7 @@ class tool_mobile_external_testcase extends externallib_advanced_testcase {
$token = external_generate_token_for_current_user($service);
$_POST['wstoken'] = $token->token;
// Workaround for external_api::call_external_function requiring sesskey.
// Workaround for \external_api::call_external_function requiring sesskey.
$_POST['sesskey'] = sesskey();
// Call some functions.
@@ -518,21 +509,21 @@ class tool_mobile_external_testcase extends externallib_advanced_testcase {
$result = external::call_external_functions($requests);
// We need to execute the return values cleaning process to simulate the web service server.
$result = external_api::clean_returnvalue(external::call_external_functions_returns(), $result);
$result = \external_api::clean_returnvalue(external::call_external_functions_returns(), $result);
// Only 3 responses, the 4th request is not executed because the 3rd throws an exception.
$this->assertCount(3, $result['responses']);
$this->assertFalse($result['responses'][0]['error']);
$coursedata = external_api::clean_returnvalue(
core_course_external::get_courses_by_field_returns(),
core_course_external::get_courses_by_field('id', $course->id));
$coursedata = \external_api::clean_returnvalue(
\core_course_external::get_courses_by_field_returns(),
\core_course_external::get_courses_by_field('id', $course->id));
$this->assertEquals(json_encode($coursedata), $result['responses'][0]['data']);
$this->assertFalse($result['responses'][1]['error']);
$userdata = external_api::clean_returnvalue(
core_user_external::get_users_by_field_returns(),
core_user_external::get_users_by_field('id', [$user1->id]));
$userdata = \external_api::clean_returnvalue(
\core_user_external::get_users_by_field_returns(),
\core_user_external::get_users_by_field('id', [$user1->id]));
$this->assertEquals(json_encode($userdata), $result['responses'][1]['data']);
$this->assertTrue($result['responses'][2]['error']);
@@ -627,11 +618,11 @@ class tool_mobile_external_testcase extends externallib_advanced_testcase {
$token = external_generate_token_for_current_user($service);
// Fake the app.
core_useragent::instance(true, 'Mozilla/5.0 (Linux; Android 7.1.1; Moto G Play Build/NPIS26.48-43-2; wv) ' .
\core_useragent::instance(true, 'Mozilla/5.0 (Linux; Android 7.1.1; Moto G Play Build/NPIS26.48-43-2; wv) ' .
'AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/71.0.3578.99 Mobile Safari/537.36 MoodleMobile');
$result = external::get_tokens_for_qr_login($qrloginkey, $USER->id);
$result = external_api::clean_returnvalue(external::get_tokens_for_qr_login_returns(), $result);
$result = \external_api::clean_returnvalue(external::get_tokens_for_qr_login_returns(), $result);
$this->assertEmpty($result['warnings']);
$this->assertEquals($token->token, $result['token']);
@@ -651,7 +642,7 @@ class tool_mobile_external_testcase extends externallib_advanced_testcase {
$this->resetAfterTest(true);
$this->setAdminUser();
set_config('qrcodetype', tool_mobile\api::QR_CODE_DISABLED, 'tool_mobile');
set_config('qrcodetype', api::QR_CODE_DISABLED, 'tool_mobile');
$this->expectExceptionMessage(get_string('qrcodedisabled', 'tool_mobile'));
$result = external::get_tokens_for_qr_login('', $USER->id);
@@ -668,7 +659,7 @@ class tool_mobile_external_testcase extends externallib_advanced_testcase {
$this->setUser($user);
// Fake the app.
core_useragent::instance(true, 'Mozilla/5.0 (Linux; Android 7.1.1; Moto G Play Build/NPIS26.48-43-2; wv) ' .
\core_useragent::instance(true, 'Mozilla/5.0 (Linux; Android 7.1.1; Moto G Play Build/NPIS26.48-43-2; wv) ' .
'AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/71.0.3578.99 Mobile Safari/537.36 MoodleMobile');
// Need to disable webservices to verify that's checked.
@@ -688,7 +679,7 @@ class tool_mobile_external_testcase extends externallib_advanced_testcase {
global $CFG, $USER;
// Fake the app.
core_useragent::instance(true, 'Mozilla/5.0 (Linux; Android 7.1.1; Moto G Play Build/NPIS26.48-43-2; wv) ' .
\core_useragent::instance(true, 'Mozilla/5.0 (Linux; Android 7.1.1; Moto G Play Build/NPIS26.48-43-2; wv) ' .
'AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/71.0.3578.99 Mobile Safari/537.36 MoodleMobile');
// Need to simulate a non HTTPS site here.
@@ -712,7 +703,7 @@ class tool_mobile_external_testcase extends externallib_advanced_testcase {
$this->setAdminUser();
// Fake the app.
core_useragent::instance(true, 'Mozilla/5.0 (Linux; Android 7.1.1; Moto G Play Build/NPIS26.48-43-2; wv) ' .
\core_useragent::instance(true, 'Mozilla/5.0 (Linux; Android 7.1.1; Moto G Play Build/NPIS26.48-43-2; wv) ' .
'AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/71.0.3578.99 Mobile Safari/537.36 MoodleMobile');
$this->expectException('moodle_exception');
@@ -744,7 +735,7 @@ class tool_mobile_external_testcase extends externallib_advanced_testcase {
set_config('sitesubscriptionkey', json_encode($sitesubscriptionkey), 'tool_mobile');
$result = external::validate_subscription_key($sitesubscriptionkey['key']);
$result = external_api::clean_returnvalue(external::validate_subscription_key_returns(), $result);
$result = \external_api::clean_returnvalue(external::validate_subscription_key_returns(), $result);
$this->assertEmpty($result['warnings']);
$this->assertTrue($result['validated']);
}
@@ -759,13 +750,13 @@ class tool_mobile_external_testcase extends externallib_advanced_testcase {
set_config('sitesubscriptionkey', json_encode($sitesubscriptionkey), 'tool_mobile');
$result = external::validate_subscription_key('fakekey');
$result = external_api::clean_returnvalue(external::validate_subscription_key_returns(), $result);
$result = \external_api::clean_returnvalue(external::validate_subscription_key_returns(), $result);
$this->assertEmpty($result['warnings']);
$this->assertFalse($result['validated']);
// The valid one has been invalidated because the previous attempt.
$result = external::validate_subscription_key($sitesubscriptionkey['key']);
$result = external_api::clean_returnvalue(external::validate_subscription_key_returns(), $result);
$result = \external_api::clean_returnvalue(external::validate_subscription_key_returns(), $result);
$this->assertEmpty($result['warnings']);
$this->assertFalse($result['validated']);
}
@@ -777,7 +768,7 @@ class tool_mobile_external_testcase extends externallib_advanced_testcase {
$this->resetAfterTest(true);
$result = external::validate_subscription_key('fakekey');
$result = external_api::clean_returnvalue(external::validate_subscription_key_returns(), $result);
$result = \external_api::clean_returnvalue(external::validate_subscription_key_returns(), $result);
$this->assertEmpty($result['warnings']);
$this->assertFalse($result['validated']);
}
@@ -792,7 +783,7 @@ class tool_mobile_external_testcase extends externallib_advanced_testcase {
set_config('sitesubscriptionkey', json_encode($sitesubscriptionkey), 'tool_mobile');
$result = external::validate_subscription_key($sitesubscriptionkey['key']);
$result = external_api::clean_returnvalue(external::validate_subscription_key_returns(), $result);
$result = \external_api::clean_returnvalue(external::validate_subscription_key_returns(), $result);
$this->assertEmpty($result['warnings']);
$this->assertFalse($result['validated']);
}
+4 -13
View File
@@ -14,16 +14,7 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* PHPUnit data generator tests.
*
* @package tool_monitor
* @category test
* @copyright 2014 onwards Simey Lameze <[email protected]>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
namespace tool_monitor;
/**
* PHPUnit data generator test case.
@@ -34,7 +25,7 @@ defined('MOODLE_INTERNAL') || die();
* @copyright 2014 onwards Simey Lameze <[email protected]>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class tool_monitor_generator_testcase extends advanced_testcase {
class generator_test extends \advanced_testcase {
/**
* Set up method.
@@ -55,7 +46,7 @@ class tool_monitor_generator_testcase extends advanced_testcase {
$rulegenerator = $this->getDataGenerator()->get_plugin_generator('tool_monitor');
$record = new stdClass();
$record = new \stdClass();
$record->courseid = $course->id;
$record->userid = $user->id;
@@ -77,7 +68,7 @@ class tool_monitor_generator_testcase extends advanced_testcase {
$monitorgenerator = $this->getDataGenerator()->get_plugin_generator('tool_monitor');
$rule = $monitorgenerator->create_rule();
$record = new stdClass();
$record = new \stdClass();
$record->courseid = $course->id;
$record->userid = $user->id;
$record->ruleid = $rule->id;
+27 -34
View File
@@ -14,13 +14,10 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* External policy webservice API tests.
*
* @package tool_policy
* @copyright 2018 Sara Arjona <[email protected]>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
namespace tool_policy;
use externallib_advanced_testcase;
use tool_mobile\external as external_mobile;
defined('MOODLE_INTERNAL') || die();
@@ -30,10 +27,6 @@ require_once($CFG->libdir . '/externallib.php');
require_once($CFG->dirroot . '/webservice/tests/helpers.php');
require_once($CFG->dirroot . '/user/externallib.php');
use tool_policy\api;
use tool_policy\external;
use tool_mobile\external as external_mobile;
/**
* External policy webservice API tests.
*
@@ -41,7 +34,7 @@ use tool_mobile\external as external_mobile;
* @copyright 2018 Sara Arjona <[email protected]>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class tool_policy_external_testcase extends externallib_advanced_testcase {
class externallib_test extends externallib_advanced_testcase {
/**
* Setup function- we will create some policy docs.
@@ -73,8 +66,8 @@ class tool_policy_external_testcase extends externallib_advanced_testcase {
$this->parent = $this->getDataGenerator()->create_user();
$this->adult = $this->getDataGenerator()->create_user();
$syscontext = context_system::instance();
$childcontext = context_user::instance($this->child->id);
$syscontext = \context_system::instance();
$childcontext = \context_user::instance($this->child->id);
$roleminorid = create_role('Digital minor', 'digiminor', 'Not old enough to accept site policies themselves');
$roleparentid = create_role('Parent', 'parent', 'Can accept policies on behalf of their child');
@@ -94,21 +87,21 @@ class tool_policy_external_testcase extends externallib_advanced_testcase {
// View current policy version.
$result = external::get_policy_version($this->policy2->get('id'));
$result = external_api::clean_returnvalue(external::get_policy_version_returns(), $result);
$result = \external_api::clean_returnvalue(external::get_policy_version_returns(), $result);
$this->assertCount(1, $result['result']);
$this->assertEquals($this->policy1->get('name'), $result['result']['policy']['name']);
$this->assertEquals($this->policy1->get('content'), $result['result']['policy']['content']);
// View draft policy version.
$result = external::get_policy_version($this->policy3->get('id'));
$result = external_api::clean_returnvalue(external::get_policy_version_returns(), $result);
$result = \external_api::clean_returnvalue(external::get_policy_version_returns(), $result);
$this->assertCount(0, $result['result']);
$this->assertCount(1, $result['warnings']);
$this->assertEquals(array_pop($result['warnings'])['warningcode'], 'errorusercantviewpolicyversion');
// Add test for non existing versionid.
$result = external::get_policy_version(999);
$result = external_api::clean_returnvalue(external::get_policy_version_returns(), $result);
$result = \external_api::clean_returnvalue(external::get_policy_version_returns(), $result);
$this->assertCount(0, $result['result']);
$this->assertCount(1, $result['warnings']);
$this->assertEquals(array_pop($result['warnings'])['warningcode'], 'errorpolicyversionnotfound');
@@ -116,7 +109,7 @@ class tool_policy_external_testcase extends externallib_advanced_testcase {
// View previous non-accepted version in behalf of a child.
$this->setUser($this->parent);
$result = external::get_policy_version($this->policy1->get('id'), $this->child->id);
$result = external_api::clean_returnvalue(external::get_policy_version_returns(), $result);
$result = \external_api::clean_returnvalue(external::get_policy_version_returns(), $result);
$this->assertCount(0, $result['result']);
$this->assertCount(1, $result['warnings']);
$this->assertEquals(array_pop($result['warnings'])['warningcode'], 'errorusercantviewpolicyversion');
@@ -124,7 +117,7 @@ class tool_policy_external_testcase extends externallib_advanced_testcase {
// Let the parent accept the policy on behalf of her child and view it again.
api::accept_policies($this->policy1->get('id'), $this->child->id);
$result = external::get_policy_version($this->policy1->get('id'), $this->child->id);
$result = external_api::clean_returnvalue(external::get_policy_version_returns(), $result);
$result = \external_api::clean_returnvalue(external::get_policy_version_returns(), $result);
$this->assertCount(1, $result['result']);
$this->assertEquals($this->policy1->get('name'), $result['result']['policy']['name']);
$this->assertEquals($this->policy1->get('content'), $result['result']['policy']['content']);
@@ -132,7 +125,7 @@ class tool_policy_external_testcase extends externallib_advanced_testcase {
// Only parent is able to view the child policy version accepted by her child.
$this->setUser($this->adult);
$result = external::get_policy_version($this->policy1->get('id'), $this->child->id);
$result = external_api::clean_returnvalue(external::get_policy_version_returns(), $result);
$result = \external_api::clean_returnvalue(external::get_policy_version_returns(), $result);
$this->assertCount(0, $result['result']);
$this->assertCount(1, $result['warnings']);
$this->assertEquals(array_pop($result['warnings'])['warningcode'], 'errorusercantviewpolicyversion');
@@ -148,9 +141,9 @@ class tool_policy_external_testcase extends externallib_advanced_testcase {
// Set the handler for the site policy, make sure it substitutes link to the sitepolicy.
$CFG->sitepolicyhandler = 'tool_policy';
$sitepolicymanager = new core_privacy\local\sitepolicy\manager();
$sitepolicymanager = new \core_privacy\local\sitepolicy\manager();
$result = external_mobile::get_config();
$result = external_api::clean_returnvalue(external_mobile::get_config_returns(), $result);
$result = \external_api::clean_returnvalue(external_mobile::get_config_returns(), $result);
$toolsitepolicy = $sitepolicymanager->get_embed_url();
foreach (array_values($result['settings']) as $r) {
if ($r['name'] == 'sitepolicy') {
@@ -173,25 +166,25 @@ class tool_policy_external_testcase extends externallib_advanced_testcase {
// Set mock site policy handler. See function tool_phpunit_site_policy_handler() below.
$CFG->sitepolicyhandler = 'tool_policy';
$this->assertEquals(0, $USER->policyagreed);
$sitepolicymanager = new core_privacy\local\sitepolicy\manager();
$sitepolicymanager = new \core_privacy\local\sitepolicy\manager();
// Make sure user can not login.
$toolconsentpage = $sitepolicymanager->get_redirect_url();
$this->expectException('moodle_exception');
$this->expectException(\moodle_exception::class);
$this->expectExceptionMessage(get_string('sitepolicynotagreed', 'error', $toolconsentpage->out()));
core_user_external::validate_context(context_system::instance());
\core_user_external::validate_context(\context_system::instance());
// Call WS to agree to the site policy. It will call tool_policy handler.
$result = core_user_external::agree_site_policy();
$result = external_api::clean_returnvalue(core_user_external::agree_site_policy_returns(), $result);
$result = \core_user_external::agree_site_policy();
$result = \external_api::clean_returnvalue(\core_user_external::agree_site_policy_returns(), $result);
$this->assertTrue($result['status']);
$this->assertCount(0, $result['warnings']);
$this->assertEquals(1, $USER->policyagreed);
$this->assertEquals(1, $DB->get_field('user', 'policyagreed', array('id' => $USER->id)));
// Try again, we should get a warning.
$result = core_user_external::agree_site_policy();
$result = external_api::clean_returnvalue(core_user_external::agree_site_policy_returns(), $result);
$result = \core_user_external::agree_site_policy();
$result = \external_api::clean_returnvalue(\core_user_external::agree_site_policy_returns(), $result);
$this->assertFalse($result['status']);
$this->assertCount(1, $result['warnings']);
$this->assertEquals('alreadyagreed', $result['warnings'][0]['warningcode']);
@@ -205,8 +198,8 @@ class tool_policy_external_testcase extends externallib_advanced_testcase {
$this->resetAfterTest(true);
$CFG->sitepolicyhandler = 'tool_policy';
$syscontext = context_system::instance();
$sitepolicymanager = new core_privacy\local\sitepolicy\manager();
$syscontext = \context_system::instance();
$sitepolicymanager = new \core_privacy\local\sitepolicy\manager();
$adult = $this->getDataGenerator()->create_user();
@@ -218,15 +211,15 @@ class tool_policy_external_testcase extends externallib_advanced_testcase {
// Default user can accept policies.
$this->setUser($adult);
$result = external_mobile::get_config();
$result = external_api::clean_returnvalue(external_mobile::get_config_returns(), $result);
$result = \external_api::clean_returnvalue(external_mobile::get_config_returns(), $result);
$toolsitepolicy = $sitepolicymanager->accept();
$this->assertTrue($toolsitepolicy);
// Child user can not accept policies.
$this->setUser($child);
$result = external_mobile::get_config();
$result = external_api::clean_returnvalue(external_mobile::get_config_returns(), $result);
$this->expectException('required_capability_exception');
$result = \external_api::clean_returnvalue(external_mobile::get_config_returns(), $result);
$this->expectException(\required_capability_exception::class);
$sitepolicymanager->accept();
}
}
@@ -14,14 +14,16 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
namespace tool_templatelibrary;
use externallib_advanced_testcase;
defined('MOODLE_INTERNAL') || die();
global $CFG;
require_once($CFG->dirroot . '/webservice/tests/helpers.php');
use tool_templatelibrary\external;
/**
* External learning plans webservice API tests.
*
@@ -29,7 +31,7 @@ use tool_templatelibrary\external;
* @copyright 2015 Damyon Wiese
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class tool_templatelibrary_external_testcase extends externallib_advanced_testcase {
class externallib_test extends externallib_advanced_testcase {
/**
* Test list all.
+9 -12
View File
@@ -14,14 +14,11 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Backup webservice tests.
*
* @package core_backup
* @copyright 2020 onward The Moodle Users Association <https://moodleassociation.org/>
* @author Matt Porritt <[email protected]>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
namespace core_backup;
use backup;
use core_backup_external;
use externallib_advanced_testcase;
defined('MOODLE_INTERNAL') || die();
@@ -39,7 +36,7 @@ require_once($CFG->dirroot . '/backup/externallib.php');
* @author Matt Porritt <[email protected]>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class backup_external_testcase extends externallib_advanced_testcase {
class externallib_test extends externallib_advanced_testcase {
/**
* Set up tasks for all tests.
@@ -93,7 +90,7 @@ class backup_external_testcase extends externallib_advanced_testcase {
$returnvalue = core_backup_external::get_copy_progress($params);
// We need to execute the return values cleaning process to simulate the web service server.
$returnvalue = external_api::clean_returnvalue(core_backup_external::get_copy_progress_returns(), $returnvalue);
$returnvalue = \external_api::clean_returnvalue(core_backup_external::get_copy_progress_returns(), $returnvalue);
$this->assertEquals(\backup::STATUS_AWAITING, $returnvalue[0]['status']);
$this->assertEquals(0, $returnvalue[0]['progress']);
@@ -114,7 +111,7 @@ class backup_external_testcase extends externallib_advanced_testcase {
$params = array('copies' => $copydetails);
$returnvalue = core_backup_external::get_copy_progress($params);
$returnvalue = external_api::clean_returnvalue(core_backup_external::get_copy_progress_returns(), $returnvalue);
$returnvalue = \external_api::clean_returnvalue(core_backup_external::get_copy_progress_returns(), $returnvalue);
$this->assertEquals(\backup::STATUS_FINISHED_OK, $returnvalue[0]['status']);
$this->assertEquals(1, $returnvalue[0]['progress']);
@@ -163,7 +160,7 @@ class backup_external_testcase extends externallib_advanced_testcase {
$returnvalue = core_backup_external::submit_copy_form($jsonformdata);
$returnjson = external_api::clean_returnvalue(core_backup_external::submit_copy_form_returns(), $returnvalue);
$returnjson = \external_api::clean_returnvalue(core_backup_external::submit_copy_form_returns(), $returnvalue);
$copyids = json_decode($returnjson, true);
$backuprec = $DB->get_record('backup_controllers', array('backupid' => $copyids['backupid']));
+2 -12
View File
@@ -14,17 +14,7 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* PHPUnit data generator tests
*
* @package block_online_users
* @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 block_online_users;
/**
* PHPUnit data generator testcase
@@ -34,7 +24,7 @@ defined('MOODLE_INTERNAL') || die();
* @copyright 2012 Petr Skoda {@link http://skodak.org}
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class block_online_users_generator_testcase extends advanced_testcase {
class generator_test extends \advanced_testcase {
public function test_generator() {
global $DB;
@@ -14,15 +14,9 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* External block functions unit tests
*
* @package block_recentlyaccesseditems
* @category external
* @copyright 2018 Victor Deniz <[email protected]>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since Moodle 3.6
*/
namespace block_recentlyaccesseditems;
use externallib_advanced_testcase;
defined('MOODLE_INTERNAL') || die();
@@ -39,7 +33,7 @@ require_once($CFG->dirroot . '/webservice/tests/helpers.php');
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since Moodle 3.6
*/
class block_recentlyaccesseditems_externallib_testcase extends externallib_advanced_testcase {
class externallib_test extends externallib_advanced_testcase {
/**
* Test the get_recent_items function.
@@ -76,7 +70,7 @@ class block_recentlyaccesseditems_externallib_testcase extends externallib_advan
// Student access all forums.
foreach ($forum as $module) {
$event = \mod_forum\event\course_module_viewed::create(array('context' => context_module::instance($module->cmid),
$event = \mod_forum\event\course_module_viewed::create(array('context' => \context_module::instance($module->cmid),
'objectid' => $module->id));
$event->trigger();
$this->waitForSecond();
@@ -88,7 +82,7 @@ class block_recentlyaccesseditems_externallib_testcase extends externallib_advan
// Student access all assignments.
foreach ($chat as $module) {
$event = \mod_chat\event\course_module_viewed::create(array('context' => context_module::instance($module->cmid),
$event = \mod_chat\event\course_module_viewed::create(array('context' => \context_module::instance($module->cmid),
'objectid' => $module->id));
$event->trigger();
$this->waitForSecond();
@@ -114,4 +108,4 @@ class block_recentlyaccesseditems_externallib_testcase extends externallib_advan
$result = \block_recentlyaccesseditems\external::get_recent_items();
$this->assertCount((count($forum) + count($chat)) - 3, $result);
}
}
}
+30 -35
View File
@@ -14,15 +14,10 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* External block functions unit tests
*
* @package core_block
* @category external
* @copyright 2017 Juan Leyva <[email protected]>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since Moodle 3.3
*/
namespace core_block;
use core_block_external;
use externallib_advanced_testcase;
defined('MOODLE_INTERNAL') || die();
@@ -40,7 +35,7 @@ require_once($CFG->dirroot . '/my/lib.php');
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since Moodle 3.0
*/
class core_block_externallib_testcase extends externallib_advanced_testcase {
class externallib_test extends externallib_advanced_testcase {
/**
* Test get_course_blocks
@@ -55,8 +50,8 @@ class core_block_externallib_testcase extends externallib_advanced_testcase {
$studentrole = $DB->get_record('role', array('shortname' => 'student'));
$this->getDataGenerator()->enrol_user($user->id, $course->id, $studentrole->id);
$page = new moodle_page();
$page->set_context(context_course::instance($course->id));
$page = new \moodle_page();
$page->set_context(\context_course::instance($course->id));
$page->set_pagelayout('course');
$course->format = course_get_format($course)->get_format();
$page->set_pagetype('course-view-' . $course->format);
@@ -68,7 +63,7 @@ class core_block_externallib_testcase extends externallib_advanced_testcase {
// Check for the new block.
$result = core_block_external::get_course_blocks($course->id);
// We need to execute the return values cleaning process to simulate the web service server.
$result = external_api::clean_returnvalue(core_block_external::get_course_blocks_returns(), $result);
$result = \external_api::clean_returnvalue(core_block_external::get_course_blocks_returns(), $result);
// Expect the new block.
$this->assertCount(1, $result['blocks']);
@@ -85,8 +80,8 @@ class core_block_externallib_testcase extends externallib_advanced_testcase {
$user = $this->getDataGenerator()->create_user();
$page = new moodle_page();
$page->set_context(context_course::instance(SITEID));
$page = new \moodle_page();
$page->set_context(\context_course::instance(SITEID));
$page->set_pagelayout('frontpage');
$page->set_pagetype('site-index');
$page->blocks->load_blocks();
@@ -97,7 +92,7 @@ class core_block_externallib_testcase extends externallib_advanced_testcase {
// Check for the new block.
$result = core_block_external::get_course_blocks(SITEID);
// We need to execute the return values cleaning process to simulate the web service server.
$result = external_api::clean_returnvalue(core_block_external::get_course_blocks_returns(), $result);
$result = \external_api::clean_returnvalue(core_block_external::get_course_blocks_returns(), $result);
// Expect the new block.
$this->assertCount(1, $result['blocks']);
@@ -124,7 +119,7 @@ class core_block_externallib_testcase extends externallib_advanced_testcase {
// Try default blocks.
$result = core_block_external::get_course_blocks($course->id);
// We need to execute the return values cleaning process to simulate the web service server.
$result = external_api::clean_returnvalue(core_block_external::get_course_blocks_returns(), $result);
$result = \external_api::clean_returnvalue(core_block_external::get_course_blocks_returns(), $result);
// Expect 4 default blocks.
$this->assertCount(4, $result['blocks']);
@@ -151,13 +146,13 @@ class core_block_externallib_testcase extends externallib_advanced_testcase {
$course = $this->getDataGenerator()->create_course();
$studentrole = $DB->get_record('role', array('shortname' => 'student'));
$this->getDataGenerator()->enrol_user($user->id, $course->id, $studentrole->id);
$coursecontext = context_course::instance($course->id);
$coursecontext = \context_course::instance($course->id);
// Create a HTML block.
$title = 'Some course info';
$body = 'Some course info<br /><p>Some contents</p>';
$bodyformat = FORMAT_MOODLE;
$page = new moodle_page();
$page = new \moodle_page();
$page->set_context($coursecontext);
$page->set_pagelayout('course');
$course->format = course_get_format($course)->get_format();
@@ -168,7 +163,7 @@ class core_block_externallib_testcase extends externallib_advanced_testcase {
$this->setUser($user);
// Re-create the page.
$page = new moodle_page();
$page = new \moodle_page();
$page->set_context($coursecontext);
$page->set_pagelayout('course');
$course->format = course_get_format($course)->get_format();
@@ -192,7 +187,7 @@ class core_block_externallib_testcase extends externallib_advanced_testcase {
$block->instance_config_save((object) $configdata);
$filename = 'img.png';
$filerecord = array(
'contextid' => context_block::instance($block->instance->id)->id,
'contextid' => \context_block::instance($block->instance->id)->id,
'component' => 'block_html',
'filearea' => 'content',
'itemid' => 0,
@@ -207,7 +202,7 @@ class core_block_externallib_testcase extends externallib_advanced_testcase {
// Check for the new block.
$result = core_block_external::get_course_blocks($course->id, true);
// We need to execute the return values cleaning process to simulate the web service server.
$result = external_api::clean_returnvalue(core_block_external::get_course_blocks_returns(), $result);
$result = \external_api::clean_returnvalue(core_block_external::get_course_blocks_returns(), $result);
// Expect the new block.
$this->assertCount(1, $result['blocks']);
@@ -255,13 +250,13 @@ class core_block_externallib_testcase extends externallib_advanced_testcase {
$course = $this->getDataGenerator()->create_course();
$studentrole = $DB->get_record('role', array('shortname' => 'student'));
$this->getDataGenerator()->enrol_user($user->id, $course->id, $studentrole->id);
$coursecontext = context_course::instance($course->id);
$coursecontext = \context_course::instance($course->id);
// Create a HTML block.
$title = 'My block $$(a+b)=2$$';
$body = 'My block contents $$(a+b)=2$$';
$bodyformat = FORMAT_MOODLE;
$page = new moodle_page();
$page = new \moodle_page();
$page->set_context($coursecontext);
$page->set_pagelayout('course');
$course->format = course_get_format($course)->get_format();
@@ -272,7 +267,7 @@ class core_block_externallib_testcase extends externallib_advanced_testcase {
$this->setUser($user);
// Re-create the page.
$page = new moodle_page();
$page = new \moodle_page();
$page->set_context($coursecontext);
$page->set_pagelayout('course');
$course->format = course_get_format($course)->get_format();
@@ -297,10 +292,10 @@ class core_block_externallib_testcase extends externallib_advanced_testcase {
// Check for the new block.
$result = core_block_external::get_course_blocks($course->id, true);
$result = external_api::clean_returnvalue(core_block_external::get_course_blocks_returns(), $result);
$result = \external_api::clean_returnvalue(core_block_external::get_course_blocks_returns(), $result);
// Format the original data.
$sitecontext = context_system::instance();
$sitecontext = \context_system::instance();
$title = external_format_string($title, $coursecontext->id);
list($body, $bodyformat) = external_format_text($body, $bodyformat, $coursecontext->id, 'block_html', 'content');
@@ -336,7 +331,7 @@ class core_block_externallib_testcase extends externallib_advanced_testcase {
// Check for the default blocks.
$result = core_block_external::get_dashboard_blocks($user->id);
// We need to execute the return values cleaning process to simulate the web service server.
$result = external_api::clean_returnvalue(core_block_external::get_dashboard_blocks_returns(), $result);
$result = \external_api::clean_returnvalue(core_block_external::get_dashboard_blocks_returns(), $result);
// Expect all blogs except learning plans one (no learning plans to show).
$this->assertCount(count($alldefaultblocksordered) - 1, $result['blocks']);
$returnedblocks = array();
@@ -373,10 +368,10 @@ class core_block_externallib_testcase extends externallib_advanced_testcase {
$alldefaultblocks = $DB->get_records_menu('block_instances', array('pagetypepattern' => 'my-index'), '', 'id, blockname');
// Now, add a sticky block.
$page = new moodle_page();
$page->set_context(context_system::instance());
$page = new \moodle_page();
$page->set_context(\context_system::instance());
$page->set_pagetype('my-index');
$page->set_url(new moodle_url('/'));
$page->set_url(new \moodle_url('/'));
$page->blocks->add_region('side-pre');
$page->blocks->load_blocks();
$page->blocks->add_block('myprofile', 'side-pre', 0, true, '*');
@@ -386,7 +381,7 @@ class core_block_externallib_testcase extends externallib_advanced_testcase {
// Check for the default blocks plus the sticky.
$result = core_block_external::get_dashboard_blocks($user->id);
// We need to execute the return values cleaning process to simulate the web service server.
$result = external_api::clean_returnvalue(core_block_external::get_dashboard_blocks_returns(), $result);
$result = \external_api::clean_returnvalue(core_block_external::get_dashboard_blocks_returns(), $result);
// Expect all blogs plus sticky one except learning plans one (no learning plans to show).
$this->assertCount(count($alldefaultblocks), $result['blocks']);
$found = false;
@@ -416,8 +411,8 @@ class core_block_externallib_testcase extends externallib_advanced_testcase {
$alldefaultblocks = $DB->get_records_menu('block_instances', array('pagetypepattern' => 'my-index'), '', 'id, blockname');
// Add a custom block.
$page = new moodle_page();
$page->set_context(context_user::instance($user->id));
$page = new \moodle_page();
$page->set_context(\context_user::instance($user->id));
$page->set_pagelayout('mydashboard');
$page->set_pagetype('my-index');
$page->blocks->add_region('content');
@@ -431,7 +426,7 @@ class core_block_externallib_testcase extends externallib_advanced_testcase {
// Check for the new block as admin for a user.
$result = core_block_external::get_dashboard_blocks($user->id);
// We need to execute the return values cleaning process to simulate the web service server.
$result = external_api::clean_returnvalue(core_block_external::get_dashboard_blocks_returns(), $result);
$result = \external_api::clean_returnvalue(core_block_external::get_dashboard_blocks_returns(), $result);
// Expect all default blogs plys the one we added except learning plans one (no learning plans to show).
$this->assertCount(count($alldefaultblocks), $result['blocks']);
$found = false;
+7 -7
View File
@@ -74,7 +74,7 @@ class events_test extends \advanced_testcase {
$record = new \stdClass();
$record->courseid = 0;
$time = time();
$calevent = core_calendar_externallib_testcase::create_calendar_event('event', $this->user->id, 'user', 0, $time,
$calevent = \core_calendar\externallib_test::create_calendar_event('event', $this->user->id, 'user', 0, $time,
$record); // User event.
// Capture the event.
@@ -96,7 +96,7 @@ class events_test extends \advanced_testcase {
// Now we create a repeated course event.
$record = new \stdClass();
$record->courseid = $this->course->id;
$calevent = core_calendar_externallib_testcase::create_calendar_event('course', $this->user->id, 'course', 10, $time,
$calevent = \core_calendar\externallib_test::create_calendar_event('course', $this->user->id, 'course', 10, $time,
$record);
$events = $sink->get_events();
$sink->close();
@@ -177,7 +177,7 @@ class events_test extends \advanced_testcase {
$record = new \stdClass();
$record->courseid = 0;
$time = time();
$calevent = core_calendar_externallib_testcase::create_calendar_event('event', $this->user->id, 'user', 0, $time,
$calevent = \core_calendar\externallib_test::create_calendar_event('event', $this->user->id, 'user', 0, $time,
$record); // User event.
// Catch the events.
@@ -203,7 +203,7 @@ class events_test extends \advanced_testcase {
// Now we create a repeated course event and update it.
$record = new \stdClass();
$record->courseid = $this->course->id;
$calevent = core_calendar_externallib_testcase::create_calendar_event('course', $this->user->id, 'course', 10, time(),
$calevent = \core_calendar\externallib_test::create_calendar_event('course', $this->user->id, 'course', 10, time(),
$record);
$sink->clear();
@@ -234,7 +234,7 @@ class events_test extends \advanced_testcase {
// Create a calendar event.
$time = time();
$calevent = core_calendar_externallib_testcase::create_calendar_event('Some wickedly awesome event yo!',
$calevent = \core_calendar\externallib_test::create_calendar_event('Some wickedly awesome event yo!',
$this->user->id, 'user', 0, $time);
// Updated the visibility of the calendar event.
@@ -327,7 +327,7 @@ class events_test extends \advanced_testcase {
$record->courseid = 0;
$record->repeatid = 0;
$time = time();
$calevent = core_calendar_externallib_testcase::create_calendar_event('event', $this->user->id, 'user', 0, $time,
$calevent = \core_calendar\externallib_test::create_calendar_event('event', $this->user->id, 'user', 0, $time,
$record); // User event.
$dbrecord = $DB->get_record('event', array('id' => $calevent->id), '*', MUST_EXIST);
@@ -350,7 +350,7 @@ class events_test extends \advanced_testcase {
// Now we create a repeated course event and delete it.
$record = new \stdClass();
$record->courseid = $this->course->id;
$calevent = core_calendar_externallib_testcase::create_calendar_event('course', $this->user->id, 'course', 10, time(),
$calevent = \core_calendar\externallib_test::create_calendar_event('course', $this->user->id, 'course', 10, time(),
$record);
$sink->clear();
File diff suppressed because it is too large Load Diff
+50 -46
View File
@@ -14,14 +14,10 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* External cohort API
*
* @package core_cohort
* @category external
* @copyright MediaTouch 2000 srl
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
namespace core_cohort;
use core_cohort_external;
use externallib_advanced_testcase;
defined('MOODLE_INTERNAL') || die();
@@ -30,7 +26,15 @@ global $CFG;
require_once($CFG->dirroot . '/webservice/tests/helpers.php');
require_once($CFG->dirroot . '/cohort/externallib.php');
class core_cohort_externallib_testcase extends externallib_advanced_testcase {
/**
* External cohort API
*
* @package core_cohort
* @category external
* @copyright MediaTouch 2000 srl
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class externallib_test extends externallib_advanced_testcase {
/**
* Test create_cohorts
@@ -42,7 +46,7 @@ class core_cohort_externallib_testcase extends externallib_advanced_testcase {
set_config('allowcohortthemes', 1);
$contextid = context_system::instance()->id;
$contextid = \context_system::instance()->id;
$category = $this->getDataGenerator()->create_category();
$cohort1 = array(
@@ -80,7 +84,7 @@ class core_cohort_externallib_testcase extends externallib_advanced_testcase {
// Call the external function.
$this->setCurrentTimeStart();
$createdcohorts = core_cohort_external::create_cohorts(array($cohort1, $cohort2));
$createdcohorts = external_api::clean_returnvalue(core_cohort_external::create_cohorts_returns(), $createdcohorts);
$createdcohorts = \external_api::clean_returnvalue(core_cohort_external::create_cohorts_returns(), $createdcohorts);
// Check we retrieve the good total number of created cohorts + no error on capability.
$this->assertEquals(2, count($createdcohorts));
@@ -97,7 +101,7 @@ class core_cohort_externallib_testcase extends externallib_advanced_testcase {
// As $CFG->allowcohortthemes is enabled, theme must be initialised.
$this->assertEquals($dbcohort->theme, $cohort1['theme']);
} else if ($createdcohort['idnumber'] == $cohort2['idnumber']) {
$this->assertEquals($dbcohort->contextid, context_system::instance()->id);
$this->assertEquals($dbcohort->contextid, \context_system::instance()->id);
$this->assertEquals($dbcohort->name, $cohort2['name']);
$this->assertEquals($dbcohort->description, $cohort2['description']);
$this->assertEquals($dbcohort->visible, $cohort2['visible']);
@@ -113,7 +117,7 @@ class core_cohort_externallib_testcase extends externallib_advanced_testcase {
// Call when $CFG->allowcohortthemes is disabled.
set_config('allowcohortthemes', 0);
$createdcohorts = core_cohort_external::create_cohorts(array($cohort4));
$createdcohorts = external_api::clean_returnvalue(core_cohort_external::create_cohorts_returns(), $createdcohorts);
$createdcohorts = \external_api::clean_returnvalue(core_cohort_external::create_cohorts_returns(), $createdcohorts);
foreach ($createdcohorts as $createdcohort) {
$dbcohort = $DB->get_record('cohort', array('id' => $createdcohort['id']));
if ($createdcohort['idnumber'] == $cohort4['idnumber']) {
@@ -129,7 +133,7 @@ class core_cohort_externallib_testcase extends externallib_advanced_testcase {
// Call without required capability.
$this->unassignUserCapability('moodle/cohort:manage', $contextid, $roleid);
$this->expectException(required_capability_exception::class);
$this->expectException(\required_capability_exception::class);
$createdcohorts = core_cohort_external::create_cohorts(array($cohort3));
}
@@ -161,7 +165,7 @@ class core_cohort_externallib_testcase extends externallib_advanced_testcase {
$cohort1 = self::getDataGenerator()->create_cohort();
$cohort2 = self::getDataGenerator()->create_cohort();
$this->unassignUserCapability('moodle/cohort:manage', $contextid, $roleid);
$this->expectException(required_capability_exception::class);
$this->expectException(\required_capability_exception::class);
core_cohort_external::delete_cohorts(array($cohort1->id, $cohort2->id));
}
@@ -185,13 +189,13 @@ class core_cohort_externallib_testcase extends externallib_advanced_testcase {
$cohort1 = self::getDataGenerator()->create_cohort($cohort1);
$cohort2 = self::getDataGenerator()->create_cohort();
$context = context_system::instance();
$context = \context_system::instance();
$roleid = $this->assignUserCapability('moodle/cohort:view', $context->id);
// Call the external function.
$returnedcohorts = core_cohort_external::get_cohorts(array(
$cohort1->id, $cohort2->id));
$returnedcohorts = external_api::clean_returnvalue(core_cohort_external::get_cohorts_returns(), $returnedcohorts);
$returnedcohorts = \external_api::clean_returnvalue(core_cohort_external::get_cohorts_returns(), $returnedcohorts);
// Check we retrieve the good total number of enrolled cohorts + no error on capability.
$this->assertEquals(2, count($returnedcohorts));
@@ -211,7 +215,7 @@ class core_cohort_externallib_testcase extends externallib_advanced_testcase {
// Call the external function.
$returnedcohorts = core_cohort_external::get_cohorts(array(
$cohort1->id, $cohort2->id));
$returnedcohorts = external_api::clean_returnvalue(core_cohort_external::get_cohorts_returns(), $returnedcohorts);
$returnedcohorts = \external_api::clean_returnvalue(core_cohort_external::get_cohorts_returns(), $returnedcohorts);
// Check we retrieve the good total number of enrolled cohorts + no error on capability.
$this->assertEquals(2, count($returnedcohorts));
@@ -220,7 +224,7 @@ class core_cohort_externallib_testcase extends externallib_advanced_testcase {
set_config('allowcohortthemes', 0);
$returnedcohorts = core_cohort_external::get_cohorts(array(
$cohort1->id));
$returnedcohorts = external_api::clean_returnvalue(core_cohort_external::get_cohorts_returns(), $returnedcohorts);
$returnedcohorts = \external_api::clean_returnvalue(core_cohort_external::get_cohorts_returns(), $returnedcohorts);
foreach ($returnedcohorts as $enrolledcohort) {
if ($enrolledcohort['idnumber'] == $cohort1->idnumber) {
$this->assertNull($enrolledcohort['theme']);
@@ -249,7 +253,7 @@ class core_cohort_externallib_testcase extends externallib_advanced_testcase {
'theme' => 'classic'
);
$context = context_system::instance();
$context = \context_system::instance();
$roleid = $this->assignUserCapability('moodle/cohort:manage', $context->id);
// Call the external function.
@@ -287,7 +291,7 @@ class core_cohort_externallib_testcase extends externallib_advanced_testcase {
// Call without required capability.
$this->unassignUserCapability('moodle/cohort:manage', $context->id, $roleid);
$this->expectException(required_capability_exception::class);
$this->expectException(\required_capability_exception::class);
core_cohort_external::update_cohorts(array($cohort1));
}
@@ -308,7 +312,7 @@ class core_cohort_externallib_testcase extends externallib_advanced_testcase {
try {
core_cohort_external::update_cohorts(array($cohort1));
$this->fail('Expecting invalid_parameter_exception exception, none occured');
} catch (invalid_parameter_exception $e1) {
} catch (\invalid_parameter_exception $e1) {
$this->assertStringContainsString('Invalid external api parameter: the value is "THIS IS NOT AN ID"', $e1->debuginfo);
}
@@ -316,7 +320,7 @@ class core_cohort_externallib_testcase extends externallib_advanced_testcase {
try {
core_cohort_external::update_cohorts(array($cohort1));
$this->fail('Expecting invalid_parameter_exception exception, none occured');
} catch (invalid_parameter_exception $e2) {
} catch (\invalid_parameter_exception $e2) {
$this->assertStringContainsString('Invalid external api parameter: the value is "9.999"', $e2->debuginfo);
}
}
@@ -335,8 +339,8 @@ class core_cohort_externallib_testcase extends externallib_advanced_testcase {
$category2 = self::getDataGenerator()->create_category(array(
'name' => 'Test category 2'
));
$context1 = context_coursecat::instance($category1->id);
$context2 = context_coursecat::instance($category2->id);
$context1 = \context_coursecat::instance($category1->id);
$context2 = \context_coursecat::instance($category2->id);
$cohort = array(
'contextid' => $context1->id,
@@ -358,7 +362,7 @@ class core_cohort_externallib_testcase extends externallib_advanced_testcase {
// Call the external function.
// Should fail because we don't have permission on the dest category
$this->expectException(required_capability_exception::class);
$this->expectException(\required_capability_exception::class);
core_cohort_external::update_cohorts(array($cohortupdate));
}
@@ -376,8 +380,8 @@ class core_cohort_externallib_testcase extends externallib_advanced_testcase {
$category2 = self::getDataGenerator()->create_category(array(
'name' => 'Test category 2'
));
$context1 = context_coursecat::instance($category1->id);
$context2 = context_coursecat::instance($category2->id);
$context1 = \context_coursecat::instance($category1->id);
$context2 = \context_coursecat::instance($category2->id);
$cohort = array(
'contextid' => $context1->id,
@@ -399,7 +403,7 @@ class core_cohort_externallib_testcase extends externallib_advanced_testcase {
// Call the external function.
// Should fail because we don't have permission on the src category
$this->expectException(required_capability_exception::class);
$this->expectException(\required_capability_exception::class);
core_cohort_external::update_cohorts(array($cohortupdate));
}
@@ -411,7 +415,7 @@ class core_cohort_externallib_testcase extends externallib_advanced_testcase {
$this->resetAfterTest(true); // Reset all changes automatically after this test.
$contextid = context_system::instance()->id;
$contextid = \context_system::instance()->id;
$cohort = array(
'contextid' => $contextid,
@@ -433,7 +437,7 @@ class core_cohort_externallib_testcase extends externallib_advanced_testcase {
// Call the external function.
$addcohortmembers = core_cohort_external::add_cohort_members(array($cohort1));
$addcohortmembers = external_api::clean_returnvalue(core_cohort_external::add_cohort_members_returns(), $addcohortmembers);
$addcohortmembers = \external_api::clean_returnvalue(core_cohort_external::add_cohort_members_returns(), $addcohortmembers);
// Check we retrieve the good total number of created cohorts + no error on capability.
$this->assertEquals(1, count($addcohortmembers));
@@ -450,7 +454,7 @@ class core_cohort_externallib_testcase extends externallib_advanced_testcase {
'usertype' => array('type' => 'id', 'value' => '2')
);
$this->unassignUserCapability('moodle/cohort:assign', $contextid, $roleid);
$this->expectException(required_capability_exception::class);
$this->expectException(\required_capability_exception::class);
$addcohortmembers = core_cohort_external::add_cohort_members(array($cohort2));
}
@@ -467,7 +471,7 @@ class core_cohort_externallib_testcase extends externallib_advanced_testcase {
$cohort2 = self::getDataGenerator()->create_cohort();
$user2 = self::getDataGenerator()->create_user();
$context = context_system::instance();
$context = \context_system::instance();
$roleid = $this->assignUserCapability('moodle/cohort:assign', $context->id);
$cohortaddmember1 = array(
@@ -475,14 +479,14 @@ class core_cohort_externallib_testcase extends externallib_advanced_testcase {
'usertype' => array('type' => 'id', 'value' => $user1->id)
);
$cohortmembers1 = core_cohort_external::add_cohort_members(array($cohortaddmember1));
$cohortmembers1 = external_api::clean_returnvalue(core_cohort_external::add_cohort_members_returns(), $cohortmembers1);
$cohortmembers1 = \external_api::clean_returnvalue(core_cohort_external::add_cohort_members_returns(), $cohortmembers1);
$cohortaddmember2 = array(
'cohorttype' => array('type' => 'id', 'value' => $cohort2->id),
'usertype' => array('type' => 'id', 'value' => $user2->id)
);
$cohortmembers2 = core_cohort_external::add_cohort_members(array($cohortaddmember2));
$cohortmembers2 = external_api::clean_returnvalue(core_cohort_external::add_cohort_members_returns(), $cohortmembers2);
$cohortmembers2 = \external_api::clean_returnvalue(core_cohort_external::add_cohort_members_returns(), $cohortmembers2);
// Check we retrieve no cohorts + no error on capability.
$this->assertEquals(2, $DB->count_records_select('cohort_members', ' ((cohortid = :idcohort1 AND userid = :iduser1)
@@ -507,7 +511,7 @@ class core_cohort_externallib_testcase extends externallib_advanced_testcase {
// Call without required capability.
$this->unassignUserCapability('moodle/cohort:assign', $context->id, $roleid);
$this->expectException(required_capability_exception::class);
$this->expectException(\required_capability_exception::class);
core_cohort_external::delete_cohort_members(array($cohortdel1, $cohortdel2));
}
@@ -526,9 +530,9 @@ class core_cohort_externallib_testcase extends externallib_advanced_testcase {
$category = $this->getDataGenerator()->create_category();
$othercategory = $this->getDataGenerator()->create_category();
$course = $this->getDataGenerator()->create_course();
$syscontext = context_system::instance();
$catcontext = context_coursecat::instance($category->id);
$coursecontext = context_course::instance($course->id);
$syscontext = \context_system::instance();
$catcontext = \context_coursecat::instance($category->id);
$coursecontext = \context_course::instance($course->id);
// Fetching default authenticated user role.
$authrole = $DB->get_record('role', array('id' => $CFG->defaultuserroleid));
@@ -553,10 +557,10 @@ class core_cohort_externallib_testcase extends externallib_advanced_testcase {
// Enrol user in the course.
$this->getDataGenerator()->enrol_user($courseuser->id, $course->id, 'courserole');
$syscontext = array('contextid' => context_system::instance()->id);
$catcontext = array('contextid' => context_coursecat::instance($category->id)->id);
$othercatcontext = array('contextid' => context_coursecat::instance($othercategory->id)->id);
$coursecontext = array('contextid' => context_course::instance($course->id)->id);
$syscontext = array('contextid' => \context_system::instance()->id);
$catcontext = array('contextid' => \context_coursecat::instance($category->id)->id);
$othercatcontext = array('contextid' => \context_coursecat::instance($othercategory->id)->id);
$coursecontext = array('contextid' => \context_course::instance($course->id)->id);
$cohort1 = $this->getDataGenerator()->create_cohort(array_merge($syscontext, array('name' => 'Cohortsearch 1')));
$cohort2 = $this->getDataGenerator()->create_cohort(array_merge($catcontext, array('name' => 'Cohortsearch 2')));
@@ -567,7 +571,7 @@ class core_cohort_externallib_testcase extends externallib_advanced_testcase {
try {
$result = core_cohort_external::search_cohorts("Cohortsearch", $syscontext, 'parents');
$this->fail('Invalid permissions in system');
} catch (required_capability_exception $e) {
} catch (\required_capability_exception $e) {
// All good.
}
@@ -576,7 +580,7 @@ class core_cohort_externallib_testcase extends externallib_advanced_testcase {
try {
$result = core_cohort_external::search_cohorts("Cohortsearch", $catcontext, 'parents');
$this->fail('Invalid permissions in category');
} catch (required_capability_exception $e) {
} catch (\required_capability_exception $e) {
// All good.
}
@@ -618,7 +622,7 @@ class core_cohort_externallib_testcase extends externallib_advanced_testcase {
try {
$result = core_cohort_external::search_cohorts("Cohortsearch", $syscontext, 'invalid');
$this->fail('Invalid parameter includes');
} catch (coding_exception $e) {
} catch (\coding_exception $e) {
// All good.
}
}
+19 -23
View File
@@ -14,15 +14,11 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* External comment functions unit tests
*
* @package core_comment
* @category external
* @copyright 2015 Juan Leyva <[email protected]>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since Moodle 2.9
*/
namespace core_comment;
use comment_exception;
use core_comment_external;
use externallib_advanced_testcase;
defined('MOODLE_INTERNAL') || die();
@@ -39,7 +35,7 @@ require_once($CFG->dirroot . '/webservice/tests/helpers.php');
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since Moodle 2.9
*/
class core_comment_externallib_testcase extends externallib_advanced_testcase {
class externallib_test extends externallib_advanced_testcase {
/**
* Tests set up
@@ -71,7 +67,7 @@ class core_comment_externallib_testcase extends externallib_advanced_testcase {
$this->getDataGenerator()->enrol_user($teacher1->id, $course1->id, $teacherrole->id);
// Create a database module instance.
$record = new stdClass();
$record = new \stdClass();
$record->course = $course1->id;
$record->name = "Mod data test";
$record->intro = "Some intro of some sort";
@@ -80,7 +76,7 @@ class core_comment_externallib_testcase extends externallib_advanced_testcase {
$module1 = $this->getDataGenerator()->create_module('data', $record);
$field = data_get_field_new('text', $module1);
$fielddetail = new stdClass();
$fielddetail = new \stdClass();
$fielddetail->name = 'Name';
$fielddetail->description = 'Some name';
@@ -125,7 +121,7 @@ class core_comment_externallib_testcase extends externallib_advanced_testcase {
]
];
$result = core_comment_external::add_comments($inputdata);
$result = external_api::clean_returnvalue(core_comment_external::add_comments_returns(), $result);
$result = \external_api::clean_returnvalue(core_comment_external::add_comments_returns(), $result);
$ids = array_column($result, 'id');
// Verify we can get the comments.
@@ -136,7 +132,7 @@ class core_comment_externallib_testcase extends externallib_advanced_testcase {
$area = 'database_entry';
$page = 0;
$result = core_comment_external::get_comments($contextlevel, $instanceid, $component, $itemid, $area, $page);
$result = external_api::clean_returnvalue(core_comment_external::get_comments_returns(), $result);
$result = \external_api::clean_returnvalue(core_comment_external::get_comments_returns(), $result);
$this->assertCount(0, $result['warnings']);
$this->assertCount(2, $result['comments']);
@@ -153,7 +149,7 @@ class core_comment_externallib_testcase extends externallib_advanced_testcase {
// Test sort direction and pagination.
$CFG->commentsperpage = 1;
$result = core_comment_external::get_comments($contextlevel, $instanceid, $component, $itemid, $area, $page, 'ASC');
$result = external_api::clean_returnvalue(core_comment_external::get_comments_returns(), $result);
$result = \external_api::clean_returnvalue(core_comment_external::get_comments_returns(), $result);
$this->assertCount(0, $result['warnings']);
$this->assertCount(1, $result['comments']); // Only one per page.
@@ -163,7 +159,7 @@ class core_comment_externallib_testcase extends externallib_advanced_testcase {
// Next page.
$result = core_comment_external::get_comments($contextlevel, $instanceid, $component, $itemid, $area, $page + 1, 'ASC');
$result = external_api::clean_returnvalue(core_comment_external::get_comments_returns(), $result);
$result = \external_api::clean_returnvalue(core_comment_external::get_comments_returns(), $result);
$this->assertCount(0, $result['warnings']);
$this->assertCount(1, $result['comments']);
@@ -239,7 +235,7 @@ class core_comment_externallib_testcase extends externallib_advanced_testcase {
'area' => 'database_entry'
]
]);
$result = external_api::clean_returnvalue(core_comment_external::add_comments_returns(), $result);
$result = \external_api::clean_returnvalue(core_comment_external::add_comments_returns(), $result);
// Verify the result contains 1 result having the correct structure.
$this->assertCount(1, $result);
@@ -322,7 +318,7 @@ class core_comment_externallib_testcase extends externallib_advanced_testcase {
]
];
$result = core_comment_external::add_comments($inputdata);
$result = external_api::clean_returnvalue(core_comment_external::add_comments_returns(), $result);
$result = \external_api::clean_returnvalue(core_comment_external::add_comments_returns(), $result);
// Two comments should have been created.
$this->assertCount(2, $result);
@@ -394,14 +390,14 @@ class core_comment_externallib_testcase extends externallib_advanced_testcase {
'area' => 'database_entry'
]
]);
$result = external_api::clean_returnvalue(core_comment_external::add_comments_returns(), $result);
$result = \external_api::clean_returnvalue(core_comment_external::add_comments_returns(), $result);
// Delete those comments we just created.
$result = core_comment_external::delete_comments([
$result[0]['id'],
$result[1]['id']
]);
$result = external_api::clean_returnvalue(core_comment_external::delete_comments_returns(), $result);
$result = \external_api::clean_returnvalue(core_comment_external::delete_comments_returns(), $result);
$this->assertEquals([], $result);
}
@@ -423,7 +419,7 @@ class core_comment_externallib_testcase extends externallib_advanced_testcase {
'area' => 'database_entry'
]
]);
$result = external_api::clean_returnvalue(core_comment_external::add_comments_returns(), $result);
$result = \external_api::clean_returnvalue(core_comment_external::add_comments_returns(), $result);
// Now, as student 2, try to delete the comment made by student 1. Verify we can't.
$this->setUser($student2);
@@ -449,12 +445,12 @@ class core_comment_externallib_testcase extends externallib_advanced_testcase {
'area' => 'database_entry'
]
]);
$result = external_api::clean_returnvalue(core_comment_external::add_comments_returns(), $result);
$result = \external_api::clean_returnvalue(core_comment_external::add_comments_returns(), $result);
// Verify teachers can delete the comment.
$this->setUser($teacher1);
$result = core_comment_external::delete_comments([$result[0]['id']]);
$result = external_api::clean_returnvalue(core_comment_external::delete_comments_returns(), $result);
$result = \external_api::clean_returnvalue(core_comment_external::delete_comments_returns(), $result);
$this->assertEquals([], $result);
}
}
+2 -25
View File
@@ -14,30 +14,7 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Tool LP data generator tests.
*
* @package core_competency
* @category test
* @copyright 2015 Frédéric Massart - FMCorz.net
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
use core_competency\competency;
use core_competency\competency_framework;
use core_competency\course_competency;
use core_competency\course_module_competency;
use core_competency\plan;
use core_competency\related_competency;
use core_competency\template;
use core_competency\template_cohort;
use core_competency\template_competency;
use core_competency\user_competency;
use core_competency\user_competency_plan;
use core_competency\plan_competency;
use core_competency\evidence;
defined('MOODLE_INTERNAL') || die();
namespace core_competency;
/**
* Tool LP data generator testcase.
@@ -47,7 +24,7 @@ defined('MOODLE_INTERNAL') || die();
* @copyright 2015 Frédéric Massart - FMCorz.net
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class core_competency_generator_testcase extends advanced_testcase {
class generator_test extends \advanced_testcase {
public function test_create_framework() {
$this->resetAfterTest(true);
+39 -44
View File
@@ -14,15 +14,10 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* External completion functions unit tests
*
* @package core_completion
* @category external
* @copyright 2015 Juan Leyva <[email protected]>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since Moodle 2.9
*/
namespace core_completion;
use core_completion_external;
use externallib_advanced_testcase;
defined('MOODLE_INTERNAL') || die();
@@ -39,7 +34,7 @@ require_once($CFG->dirroot . '/webservice/tests/helpers.php');
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since Moodle 2.9
*/
class core_completion_externallib_testcase extends externallib_advanced_testcase {
class externallib_test extends externallib_advanced_testcase {
/**
* Test update_activity_completion_status_manually
@@ -63,7 +58,7 @@ class core_completion_externallib_testcase extends externallib_advanced_testcase
$result = core_completion_external::update_activity_completion_status_manually($data->cmid, true);
// We need to execute the return values cleaning process to simulate the web service server.
$result = external_api::clean_returnvalue(
$result = \external_api::clean_returnvalue(
core_completion_external::update_activity_completion_status_manually_returns(), $result);
// Check in DB.
@@ -71,14 +66,14 @@ class core_completion_externallib_testcase extends externallib_advanced_testcase
array('coursemoduleid' => $data->cmid)));
// Check using the API.
$completion = new completion_info($course);
$completion = new \completion_info($course);
$completiondata = $completion->get_data($cm);
$this->assertEquals(1, $completiondata->completionstate);
$this->assertTrue($result['status']);
$result = core_completion_external::update_activity_completion_status_manually($data->cmid, false);
// We need to execute the return values cleaning process to simulate the web service server.
$result = external_api::clean_returnvalue(
$result = \external_api::clean_returnvalue(
core_completion_external::update_activity_completion_status_manually_returns(), $result);
$this->assertEquals(0, $DB->get_field('course_modules_completion', 'completionstate',
@@ -103,7 +98,7 @@ class core_completion_externallib_testcase extends externallib_advanced_testcase
$course = $this->getDataGenerator()->create_course(array('enablecompletion' => 1,
'groupmode' => SEPARATEGROUPS,
'groupmodeforce' => 1));
availability_completion\condition::wipe_static_cache();
\availability_completion\condition::wipe_static_cache();
$data = $this->getDataGenerator()->create_module('data',
['course' => $course->id],
@@ -143,12 +138,12 @@ class core_completion_externallib_testcase extends externallib_advanced_testcase
$this->setUser($student);
// Forum complete.
$completion = new completion_info($course);
$completion = new \completion_info($course);
$completion->update_state($cmforum, COMPLETION_COMPLETE);
$result = core_completion_external::get_activities_completion_status($course->id, $student->id);
// We need to execute the return values cleaning process to simulate the web service server.
$result = external_api::clean_returnvalue(
$result = \external_api::clean_returnvalue(
core_completion_external::get_activities_completion_status_returns(), $result);
// We added 5 activities, but only 4 with completion enabled and one of those is hidden.
@@ -206,7 +201,7 @@ class core_completion_externallib_testcase extends externallib_advanced_testcase
$this->setUser($teacher);
$result = core_completion_external::get_activities_completion_status($course->id, $student->id);
// We need to execute the return values cleaning process to simulate the web service server.
$result = external_api::clean_returnvalue(
$result = \external_api::clean_returnvalue(
core_completion_external::get_activities_completion_status_returns(), $result);
$this->assertCount($numberofcompletions, $result['statuses']);
@@ -216,7 +211,7 @@ class core_completion_externallib_testcase extends externallib_advanced_testcase
$result = core_completion_external::get_activities_completion_status($course->id, $student->id);
// We need to execute the return values cleaning process to simulate the web service server.
$result = external_api::clean_returnvalue(
$result = \external_api::clean_returnvalue(
core_completion_external::get_activities_completion_status_returns(), $result);
// Check forum has been overriden by the teacher.
@@ -232,12 +227,12 @@ class core_completion_externallib_testcase extends externallib_advanced_testcase
// Teacher should see his own completion status.
// Forum complete for teacher.
$completion = new completion_info($course);
$completion = new \completion_info($course);
$completion->update_state($cmforum, COMPLETION_COMPLETE);
$result = core_completion_external::get_activities_completion_status($course->id, $teacher->id);
// We need to execute the return values cleaning process to simulate the web service server.
$result = external_api::clean_returnvalue(
$result = \external_api::clean_returnvalue(
core_completion_external::get_activities_completion_status_returns(), $result);
$this->assertCount($numberofcompletions, $result['statuses']);
@@ -261,14 +256,14 @@ class core_completion_externallib_testcase extends externallib_advanced_testcase
$this->assertEquals(4, $activitiesfound);
// Change teacher role capabilities (disable access all groups).
$context = context_course::instance($course->id);
$context = \context_course::instance($course->id);
assign_capability('moodle/site:accessallgroups', CAP_PROHIBIT, $teacherrole->id, $context);
accesslib_clear_all_caches_for_unit_testing();
try {
$result = core_completion_external::get_activities_completion_status($course->id, $student->id);
$this->fail('Exception expected due to groups permissions.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('accessdenied', $e->errorcode);
}
@@ -276,7 +271,7 @@ class core_completion_externallib_testcase extends externallib_advanced_testcase
groups_add_member($group1->id, $teacher->id);
$result = core_completion_external::get_activities_completion_status($course->id, $student->id);
// We need to execute the return values cleaning process to simulate the web service server.
$result = external_api::clean_returnvalue(
$result = \external_api::clean_returnvalue(
core_completion_external::get_activities_completion_status_returns(), $result);
$this->assertCount($numberofcompletions, $result['statuses']);
}
@@ -307,34 +302,34 @@ class core_completion_externallib_testcase extends externallib_advanced_testcase
// Manually complete the data activity as the student.
$this->setUser($student);
$completion = new completion_info($course);
$completion = new \completion_info($course);
$completion->update_state($cmdata, COMPLETION_COMPLETE);
// Test overriding the status of the manual-completion-activity 'incomplete'.
$this->setUser($teacher);
$result = core_completion_external::override_activity_completion_status($student->id, $data->cmid, COMPLETION_INCOMPLETE);
$result = external_api::clean_returnvalue(core_completion_external::override_activity_completion_status_returns(), $result);
$result = \external_api::clean_returnvalue(core_completion_external::override_activity_completion_status_returns(), $result);
$this->assertEquals($result['state'], COMPLETION_INCOMPLETE);
$completiondata = $completion->get_data($cmdata, false, $student->id);
$this->assertEquals(COMPLETION_INCOMPLETE, $completiondata->completionstate);
// Test overriding the status of the manual-completion-activity back to 'complete'.
$result = core_completion_external::override_activity_completion_status($student->id, $data->cmid, COMPLETION_COMPLETE);
$result = external_api::clean_returnvalue(core_completion_external::override_activity_completion_status_returns(), $result);
$result = \external_api::clean_returnvalue(core_completion_external::override_activity_completion_status_returns(), $result);
$this->assertEquals($result['state'], COMPLETION_COMPLETE);
$completiondata = $completion->get_data($cmdata, false, $student->id);
$this->assertEquals(COMPLETION_COMPLETE, $completiondata->completionstate);
// Test overriding the status of the auto-completion-activity to 'complete'.
$result = core_completion_external::override_activity_completion_status($student->id, $forum->cmid, COMPLETION_COMPLETE);
$result = external_api::clean_returnvalue(core_completion_external::override_activity_completion_status_returns(), $result);
$result = \external_api::clean_returnvalue(core_completion_external::override_activity_completion_status_returns(), $result);
$this->assertEquals($result['state'], COMPLETION_COMPLETE);
$completionforum = $completion->get_data($cmforum, false, $student->id);
$this->assertEquals(COMPLETION_COMPLETE, $completionforum->completionstate);
// Test overriding the status of the auto-completion-activity to 'incomplete'.
$result = core_completion_external::override_activity_completion_status($student->id, $forum->cmid, COMPLETION_INCOMPLETE);
$result = external_api::clean_returnvalue(core_completion_external::override_activity_completion_status_returns(), $result);
$result = \external_api::clean_returnvalue(core_completion_external::override_activity_completion_status_returns(), $result);
$this->assertEquals($result['state'], COMPLETION_INCOMPLETE);
$completionforum = $completion->get_data($cmforum, false, $student->id);
$this->assertEquals(COMPLETION_INCOMPLETE, $completionforum->completionstate);
@@ -360,7 +355,7 @@ class core_completion_externallib_testcase extends externallib_advanced_testcase
$this->getDataGenerator()->enrol_user($student->id, $course->id, $studentrole->id);
$teacherrole = $DB->get_record('role', ['shortname' => 'teacher']);
$this->getDataGenerator()->enrol_user($teacher->id, $course->id, $teacherrole->id);
$coursecontext = context_course::instance($course->id);
$coursecontext = \context_course::instance($course->id);
// Create an activity with automatic completion (a forum).
$forum = $this->getDataGenerator()->create_module('forum', ['course' => $course->id],
@@ -418,11 +413,11 @@ class core_completion_externallib_testcase extends externallib_advanced_testcase
groups_add_member($group2->id, $teacher->id);
// Set completion rules.
$completion = new completion_info($course);
$completion = new \completion_info($course);
// Loop through each criteria type and run its update_config() method.
$criteriadata = new stdClass();
$criteriadata = new \stdClass();
$criteriadata->id = $course->id;
$criteriadata->criteria_activity = array();
// Some activities.
@@ -446,12 +441,12 @@ class core_completion_externallib_testcase extends externallib_advanced_testcase
'course' => $course->id,
'criteriatype' => null
);
$aggregation = new completion_aggregation($aggdata);
$aggregation = new \completion_aggregation($aggdata);
$aggregation->setMethod(COMPLETION_AGGREGATION_ALL);
$aggregation->save();
$aggdata['criteriatype'] = COMPLETION_CRITERIA_TYPE_ACTIVITY;
$aggregation = new completion_aggregation($aggdata);
$aggregation = new \completion_aggregation($aggdata);
$aggregation->setMethod(COMPLETION_AGGREGATION_ALL);
$aggregation->save();
@@ -459,7 +454,7 @@ class core_completion_externallib_testcase extends externallib_advanced_testcase
$result = core_completion_external::get_course_completion_status($course->id, $student->id);
// We need to execute the return values cleaning process to simulate the web service server.
$studentresult = external_api::clean_returnvalue(
$studentresult = \external_api::clean_returnvalue(
core_completion_external::get_course_completion_status_returns(), $result);
// 3 different criteria.
@@ -476,20 +471,20 @@ class core_completion_externallib_testcase extends externallib_advanced_testcase
$this->setUser($teacher);
$result = core_completion_external::get_course_completion_status($course->id, $student->id);
// We need to execute the return values cleaning process to simulate the web service server.
$teacherresult = external_api::clean_returnvalue(
$teacherresult = \external_api::clean_returnvalue(
core_completion_external::get_course_completion_status_returns(), $result);
$this->assertEquals($studentresult, $teacherresult);
// Change teacher role capabilities (disable access al goups).
$context = context_course::instance($course->id);
$context = \context_course::instance($course->id);
assign_capability('moodle/site:accessallgroups', CAP_PROHIBIT, $teacherrole->id, $context);
accesslib_clear_all_caches_for_unit_testing();
try {
$result = core_completion_external::get_course_completion_status($course->id, $student->id);
$this->fail('Exception expected due to groups permissions.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('accessdenied', $e->errorcode);
}
@@ -497,7 +492,7 @@ class core_completion_externallib_testcase extends externallib_advanced_testcase
groups_add_member($group1->id, $teacher->id);
$result = core_completion_external::get_course_completion_status($course->id, $student->id);
// We need to execute the return values cleaning process to simulate the web service server.
$teacherresult = external_api::clean_returnvalue(
$teacherresult = \external_api::clean_returnvalue(
core_completion_external::get_course_completion_status_returns(), $result);
$this->assertEquals($studentresult, $teacherresult);
@@ -523,9 +518,9 @@ class core_completion_externallib_testcase extends externallib_advanced_testcase
$this->getDataGenerator()->enrol_user($student->id, $course->id, $studentrole->id);
// Set completion rules.
$completion = new completion_info($course);
$completion = new \completion_info($course);
$criteriadata = new stdClass();
$criteriadata = new \stdClass();
$criteriadata->id = $course->id;
$criteriadata->criteria_activity = array();
@@ -540,7 +535,7 @@ class core_completion_externallib_testcase extends externallib_advanced_testcase
'course' => $course->id,
'criteriatype' => null
);
$aggregation = new completion_aggregation($aggdata);
$aggregation = new \completion_aggregation($aggdata);
$aggregation->setMethod(COMPLETION_AGGREGATION_ALL);
$aggregation->save();
@@ -548,7 +543,7 @@ class core_completion_externallib_testcase extends externallib_advanced_testcase
$result = core_completion_external::mark_course_self_completed($course->id);
// We need to execute the return values cleaning process to simulate the web service server.
$result = external_api::clean_returnvalue(
$result = \external_api::clean_returnvalue(
core_completion_external::mark_course_self_completed_returns(), $result);
// We expect a valid result.
@@ -556,7 +551,7 @@ class core_completion_externallib_testcase extends externallib_advanced_testcase
$result = core_completion_external::get_course_completion_status($course->id, $student->id);
// We need to execute the return values cleaning process to simulate the web service server.
$result = external_api::clean_returnvalue(
$result = \external_api::clean_returnvalue(
core_completion_external::get_course_completion_status_returns(), $result);
// Course must be completed.
@@ -565,7 +560,7 @@ class core_completion_externallib_testcase extends externallib_advanced_testcase
try {
$result = core_completion_external::mark_course_self_completed($course->id);
$this->fail('Exception expected due course already self completed.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('useralreadymarkedcomplete', $e->errorcode);
}
+4 -13
View File
@@ -14,16 +14,7 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* core_customfield test data generator test.
*
* @package core_customfield
* @category test
* @copyright 2018 Ruslan Kabalin
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
namespace core_customfield;
/**
* core_customfield test data generator testcase.
@@ -33,13 +24,13 @@ defined('MOODLE_INTERNAL') || die();
* @copyright 2018 Ruslan Kabalin
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class core_customfield_generator_testcase extends advanced_testcase {
class generator_test extends \advanced_testcase {
/**
* Get generator
* @return core_customfield_generator
*/
protected function get_generator(): core_customfield_generator {
protected function get_generator(): \core_customfield_generator {
return $this->getDataGenerator()->get_plugin_generator('core_customfield');
}
@@ -69,7 +60,7 @@ class core_customfield_generator_testcase extends advanced_testcase {
$this->assertInstanceOf('\core_customfield\field_controller', $field);
$this->assertTrue(\core_customfield\field::record_exists($field->get('id')));
$category = core_customfield\category_controller::create($category->get('id'));
$category = \core_customfield\category_controller::create($category->get('id'));
$category = \core_customfield\api::get_categories_with_fields($category->get('component'),
$category->get('area'), $category->get('itemid'))[$category->get('id')];
$this->assertCount(1, $category->get_fields());
+30 -26
View File
@@ -14,6 +14,18 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
namespace enrol_manual;
use enrol_manual_external;
use externallib_advanced_testcase;
defined('MOODLE_INTERNAL') || die();
global $CFG;
require_once($CFG->dirroot . '/webservice/tests/helpers.php');
require_once($CFG->dirroot . '/enrol/manual/externallib.php');
/**
* Enrol manual external PHPunit tests
*
@@ -23,15 +35,7 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since Moodle 2.4
*/
defined('MOODLE_INTERNAL') || die();
global $CFG;
require_once($CFG->dirroot . '/webservice/tests/helpers.php');
require_once($CFG->dirroot . '/enrol/manual/externallib.php');
class enrol_manual_externallib_testcase extends externallib_advanced_testcase {
class externallib_test extends externallib_advanced_testcase {
/**
* Test get_enrolled_users
@@ -49,8 +53,8 @@ class enrol_manual_externallib_testcase extends externallib_advanced_testcase {
$user1 = self::getDataGenerator()->create_user();
$user2 = self::getDataGenerator()->create_user();
$context1 = context_course::instance($course1->id);
$context2 = context_course::instance($course2->id);
$context1 = \context_course::instance($course1->id);
$context2 = \context_course::instance($course2->id);
$instance1 = $DB->get_record('enrol', array('courseid' => $course1->id, 'enrol' => 'manual'), '*', MUST_EXIST);
$instance2 = $DB->get_record('enrol', array('courseid' => $course2->id, 'enrol' => 'manual'), '*', MUST_EXIST);
@@ -83,7 +87,7 @@ class enrol_manual_externallib_testcase extends externallib_advanced_testcase {
array('roleid' => 3, 'userid' => $user1->id, 'courseid' => $course1->id),
));
$this->fail('Exception expected if not having capability to enrol');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertInstanceOf('required_capability_exception', $e);
$this->assertSame('nopermissions', $e->errorcode);
}
@@ -96,7 +100,7 @@ class enrol_manual_externallib_testcase extends externallib_advanced_testcase {
array('roleid' => 1, 'userid' => $user1->id, 'courseid' => $course1->id),
));
$this->fail('Exception expected if not allowed to assign role.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertSame('wsusercannotassign', $e->errorcode);
}
$this->assertEquals(0, $DB->count_records('user_enrolments'));
@@ -110,7 +114,7 @@ class enrol_manual_externallib_testcase extends externallib_advanced_testcase {
array('roleid' => 3, 'userid' => $user1->id, 'courseid' => $course2->id),
));
$this->fail('Exception expected if course does not have manual instance');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertSame('wsnoinstance', $e->errorcode);
}
}
@@ -131,7 +135,7 @@ class enrol_manual_externallib_testcase extends externallib_advanced_testcase {
$enrol = enrol_get_plugin('manual');
// Create a course.
$course = self::getDataGenerator()->create_course();
$coursecontext = context_course::instance($course->id);
$coursecontext = \context_course::instance($course->id);
$enrolinstance = $DB->get_record('enrol', array('courseid' => $course->id, 'enrol' => 'manual'), '*', MUST_EXIST);
// Set the capability for the user.
$roleid = $this->assignUserCapability('enrol/manual:enrol', $coursecontext);
@@ -164,7 +168,7 @@ class enrol_manual_externallib_testcase extends externallib_advanced_testcase {
$this->setUser($user); // Log this user in.
// Create a course.
$course = self::getDataGenerator()->create_course();
$coursecontext = context_course::instance($course->id);
$coursecontext = \context_course::instance($course->id);
$enrolinstance = $DB->get_record('enrol', array('courseid' => $course->id, 'enrol' => 'manual'), '*', MUST_EXIST);
// Set the capability for the user.
$roleid = $this->assignUserCapability('enrol/manual:enrol', $coursecontext);
@@ -203,7 +207,7 @@ class enrol_manual_externallib_testcase extends externallib_advanced_testcase {
$this->setUser($user); // Log this user in.
// Create a course.
$course = self::getDataGenerator()->create_course();
$coursecontext = context_course::instance($course->id);
$coursecontext = \context_course::instance($course->id);
$enrolinstance = $DB->get_record('enrol', array('courseid' => $course->id, 'enrol' => 'manual'), '*', MUST_EXIST);
$enrol = enrol_get_plugin('manual');
// Create a student and enrol them into the course.
@@ -216,8 +220,8 @@ class enrol_manual_externallib_testcase extends externallib_advanced_testcase {
array('userid' => $student->id, 'courseid' => $course->id),
));
$this->fail('Exception expected: User cannot log in to the course');
} catch (Exception $ex) {
$this->assertTrue($ex instanceof require_login_exception);
} catch (\Exception $ex) {
$this->assertTrue($ex instanceof \require_login_exception);
}
// Set the capability for the course, then try again.
$roleid = $this->assignUserCapability('moodle/course:view', $coursecontext);
@@ -226,8 +230,8 @@ class enrol_manual_externallib_testcase extends externallib_advanced_testcase {
array('userid' => $student->id, 'courseid' => $course->id),
));
$this->fail('Exception expected: User cannot log in to the course');
} catch (Exception $ex) {
$this->assertTrue($ex instanceof required_capability_exception);
} catch (\Exception $ex) {
$this->assertTrue($ex instanceof \required_capability_exception);
}
// Assign unenrol capability.
$this->assignUserCapability('enrol/manual:unenrol', $coursecontext, $roleid);
@@ -251,7 +255,7 @@ class enrol_manual_externallib_testcase extends externallib_advanced_testcase {
$enrol = enrol_get_plugin('manual');
// Create a course.
$course = self::getDataGenerator()->create_course();
$coursecontext = context_course::instance($course->id);
$coursecontext = \context_course::instance($course->id);
$enrolinstance = $DB->get_record('enrol', array('courseid' => $course->id, 'enrol' => 'manual'), '*', MUST_EXIST);
// Set the capability for the user.
$roleid = $this->assignUserCapability('enrol/manual:enrol', $coursecontext);
@@ -267,8 +271,8 @@ class enrol_manual_externallib_testcase extends externallib_advanced_testcase {
array('userid' => $student->id + 1, 'courseid' => $course->id),
));
$this->fail('Exception expected: invalid student id');
} catch (Exception $ex) {
$this->assertTrue($ex instanceof invalid_parameter_exception);
} catch (\Exception $ex) {
$this->assertTrue($ex instanceof \invalid_parameter_exception);
}
$DB->delete_records('enrol', array('id' => $enrolinstance->id));
try {
@@ -276,8 +280,8 @@ class enrol_manual_externallib_testcase extends externallib_advanced_testcase {
array('userid' => $student->id + 1, 'courseid' => $course->id),
));
$this->fail('Exception expected: invalid student id');
} catch (Exception $ex) {
$this->assertTrue($ex instanceof moodle_exception);
} catch (\Exception $ex) {
$this->assertTrue($ex instanceof \moodle_exception);
}
}
}
+31 -27
View File
@@ -14,14 +14,10 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Self enrol external PHPunit tests
*
* @package enrol_self
* @copyright 2013 Rajesh Taneja <[email protected]>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since Moodle 2.6
*/
namespace enrol_self;
use enrol_self_external;
use externallib_advanced_testcase;
defined('MOODLE_INTERNAL') || die();
@@ -30,7 +26,15 @@ global $CFG;
require_once($CFG->dirroot . '/webservice/tests/helpers.php');
require_once($CFG->dirroot . '/enrol/self/externallib.php');
class enrol_self_external_testcase extends externallib_advanced_testcase {
/**
* Self enrol external PHPunit tests
*
* @package enrol_self
* @copyright 2013 Rajesh Taneja <[email protected]>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since Moodle 2.6
*/
class externallib_test extends externallib_advanced_testcase {
/**
* Test get_instance_info
@@ -47,7 +51,7 @@ class enrol_self_external_testcase extends externallib_advanced_testcase {
$studentrole = $DB->get_record('role', array('shortname'=>'student'));
$this->assertNotEmpty($studentrole);
$coursedata = new stdClass();
$coursedata = new \stdClass();
$coursedata->visible = 0;
$course = self::getDataGenerator()->create_course($coursedata);
@@ -72,7 +76,7 @@ class enrol_self_external_testcase extends externallib_advanced_testcase {
$this->setAdminUser();
$instanceinfo1 = enrol_self_external::get_instance_info($instanceid1);
$instanceinfo1 = external_api::clean_returnvalue(enrol_self_external::get_instance_info_returns(), $instanceinfo1);
$instanceinfo1 = \external_api::clean_returnvalue(enrol_self_external::get_instance_info_returns(), $instanceinfo1);
$this->assertEquals($instanceid1, $instanceinfo1['id']);
$this->assertEquals($course->id, $instanceinfo1['courseid']);
@@ -82,7 +86,7 @@ class enrol_self_external_testcase extends externallib_advanced_testcase {
$this->assertFalse(isset($instanceinfo1['enrolpassword']));
$instanceinfo2 = enrol_self_external::get_instance_info($instanceid2);
$instanceinfo2 = external_api::clean_returnvalue(enrol_self_external::get_instance_info_returns(), $instanceinfo2);
$instanceinfo2 = \external_api::clean_returnvalue(enrol_self_external::get_instance_info_returns(), $instanceinfo2);
$this->assertEquals($instanceid2, $instanceinfo2['id']);
$this->assertEquals($course->id, $instanceinfo2['courseid']);
$this->assertEquals('self', $instanceinfo2['type']);
@@ -91,7 +95,7 @@ class enrol_self_external_testcase extends externallib_advanced_testcase {
$this->assertFalse(isset($instanceinfo2['enrolpassword']));
$instanceinfo3 = enrol_self_external::get_instance_info($instanceid3);
$instanceinfo3 = external_api::clean_returnvalue(enrol_self_external::get_instance_info_returns(), $instanceinfo3);
$instanceinfo3 = \external_api::clean_returnvalue(enrol_self_external::get_instance_info_returns(), $instanceinfo3);
$this->assertEquals($instanceid3, $instanceinfo3['id']);
$this->assertEquals($course->id, $instanceinfo3['courseid']);
$this->assertEquals('self', $instanceinfo3['type']);
@@ -104,7 +108,7 @@ class enrol_self_external_testcase extends externallib_advanced_testcase {
$this->setUser($user);
try {
enrol_self_external::get_instance_info($instanceid3);
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('coursehidden', $e->errorcode);
}
}
@@ -127,8 +131,8 @@ class enrol_self_external_testcase extends externallib_advanced_testcase {
$user3 = self::getDataGenerator()->create_user();
$user4 = self::getDataGenerator()->create_user();
$context1 = context_course::instance($course1->id);
$context2 = context_course::instance($course2->id);
$context1 = \context_course::instance($course1->id);
$context2 = \context_course::instance($course2->id);
$selfplugin = enrol_get_plugin('self');
$studentrole = $DB->get_record('role', array('shortname' => 'student'));
@@ -147,7 +151,7 @@ class enrol_self_external_testcase extends externallib_advanced_testcase {
// Self enrol me.
$result = enrol_self_external::enrol_user($course1->id);
$result = external_api::clean_returnvalue(enrol_self_external::enrol_user_returns(), $result);
$result = \external_api::clean_returnvalue(enrol_self_external::enrol_user_returns(), $result);
self::assertTrue($result['status']);
self::assertEquals(1, $DB->count_records('user_enrolments', array('enrolid' => $instance1->id)));
@@ -160,7 +164,7 @@ class enrol_self_external_testcase extends externallib_advanced_testcase {
// Try instance not enabled.
try {
enrol_self_external::enrol_user($course2->id);
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
self::assertEquals('canntenrol', $e->errorcode);
}
@@ -169,14 +173,14 @@ class enrol_self_external_testcase extends externallib_advanced_testcase {
// Try not passing a key.
$result = enrol_self_external::enrol_user($course2->id);
$result = external_api::clean_returnvalue(enrol_self_external::enrol_user_returns(), $result);
$result = \external_api::clean_returnvalue(enrol_self_external::enrol_user_returns(), $result);
self::assertFalse($result['status']);
self::assertCount(1, $result['warnings']);
self::assertEquals('4', $result['warnings'][0]['warningcode']);
// Try passing an invalid key.
$result = enrol_self_external::enrol_user($course2->id, 'invalidkey');
$result = external_api::clean_returnvalue(enrol_self_external::enrol_user_returns(), $result);
$result = \external_api::clean_returnvalue(enrol_self_external::enrol_user_returns(), $result);
self::assertFalse($result['status']);
self::assertCount(1, $result['warnings']);
self::assertEquals('4', $result['warnings'][0]['warningcode']);
@@ -184,14 +188,14 @@ class enrol_self_external_testcase extends externallib_advanced_testcase {
// Try passing an invalid key with hint.
$selfplugin->set_config('showhint', true);
$result = enrol_self_external::enrol_user($course2->id, 'invalidkey');
$result = external_api::clean_returnvalue(enrol_self_external::enrol_user_returns(), $result);
$result = \external_api::clean_returnvalue(enrol_self_external::enrol_user_returns(), $result);
self::assertFalse($result['status']);
self::assertCount(1, $result['warnings']);
self::assertEquals('3', $result['warnings'][0]['warningcode']);
// Everything correct, now.
$result = enrol_self_external::enrol_user($course2->id, 'abcdef');
$result = external_api::clean_returnvalue(enrol_self_external::enrol_user_returns(), $result);
$result = \external_api::clean_returnvalue(enrol_self_external::enrol_user_returns(), $result);
self::assertTrue($result['status']);
self::assertEquals(1, $DB->count_records('user_enrolments', array('enrolid' => $instance2->id)));
@@ -208,14 +212,14 @@ class enrol_self_external_testcase extends externallib_advanced_testcase {
self::setUser($user2);
// Try passing and invalid key for group.
$result = enrol_self_external::enrol_user($course2->id, 'invalidkey');
$result = external_api::clean_returnvalue(enrol_self_external::enrol_user_returns(), $result);
$result = \external_api::clean_returnvalue(enrol_self_external::enrol_user_returns(), $result);
self::assertFalse($result['status']);
self::assertCount(1, $result['warnings']);
self::assertEquals('2', $result['warnings'][0]['warningcode']);
// Now, everything ok.
$result = enrol_self_external::enrol_user($course2->id, 'zyx');
$result = external_api::clean_returnvalue(enrol_self_external::enrol_user_returns(), $result);
$result = \external_api::clean_returnvalue(enrol_self_external::enrol_user_returns(), $result);
self::assertTrue($result['status']);
self::assertEquals(2, $DB->count_records('user_enrolments', array('enrolid' => $instance2->id)));
@@ -232,20 +236,20 @@ class enrol_self_external_testcase extends externallib_advanced_testcase {
self::setUser($user3);
$result = enrol_self_external::enrol_user($course2->id, 'invalidkey');
$result = external_api::clean_returnvalue(enrol_self_external::enrol_user_returns(), $result);
$result = \external_api::clean_returnvalue(enrol_self_external::enrol_user_returns(), $result);
self::assertFalse($result['status']);
self::assertCount(2, $result['warnings']);
// Now, everything ok.
$result = enrol_self_external::enrol_user($course2->id, 'zyx');
$result = external_api::clean_returnvalue(enrol_self_external::enrol_user_returns(), $result);
$result = \external_api::clean_returnvalue(enrol_self_external::enrol_user_returns(), $result);
self::assertTrue($result['status']);
self::assertTrue(is_enrolled($context2, $user3));
// Now test passing an instance id.
self::setUser($user4);
$result = enrol_self_external::enrol_user($course2->id, 'abcdef', $instance3id);
$result = external_api::clean_returnvalue(enrol_self_external::enrol_user_returns(), $result);
$result = \external_api::clean_returnvalue(enrol_self_external::enrol_user_returns(), $result);
self::assertTrue($result['status']);
self::assertTrue(is_enrolled($context2, $user3));
self::assertCount(0, $result['warnings']);
+53 -47
View File
@@ -14,6 +14,12 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
namespace core_enrol;
use core_enrol_external;
use enrol_user_enrolment_form;
use externallib_advanced_testcase;
defined('MOODLE_INTERNAL') || die();
global $CFG;
@@ -30,7 +36,7 @@ require_once($CFG->dirroot . '/enrol/externallib.php');
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since Moodle 2.4
*/
class core_enrol_externallib_testcase extends externallib_advanced_testcase {
class externallib_test extends externallib_advanced_testcase {
/**
* dataProvider for test_get_enrolled_users_visibility().
@@ -256,7 +262,7 @@ class core_enrol_externallib_testcase extends externallib_advanced_testcase {
// Create the course and the users.
$course = $this->getDataGenerator()->create_course(array('groupmode' => $settings['coursegroupmode']));
$coursecontext = context_course::instance($course->id);
$coursecontext = \context_course::instance($course->id);
$user0 = $this->getDataGenerator()->create_user(array('username' => 'user0')); // A user without group.
$user1 = $this->getDataGenerator()->create_user(array('username' => 'user1')); // User for group 1.
$user2 = $this->getDataGenerator()->create_user(array('username' => 'user2')); // Two users for group 2.
@@ -342,7 +348,7 @@ class core_enrol_externallib_testcase extends externallib_advanced_testcase {
$enrolledusers = core_enrol_external::get_enrolled_users($course->id, $options);
// We need to execute the return values cleaning process to simulate the web service server.
$enrolledusers = external_api::clean_returnvalue(core_enrol_external::get_enrolled_users_returns(), $enrolledusers);
$enrolledusers = \external_api::clean_returnvalue(core_enrol_external::get_enrolled_users_returns(), $enrolledusers);
// We are only interested in ids to check visibility.
$viewed = array();
@@ -365,7 +371,7 @@ class core_enrol_externallib_testcase extends externallib_advanced_testcase {
// Create the course and the users.
$course = $this->getDataGenerator()->create_course();
$coursecontext = context_course::instance($course->id);
$coursecontext = \context_course::instance($course->id);
$user0 = $this->getDataGenerator()->create_user(['username' => 'user0active']);
$user1 = $this->getDataGenerator()->create_user(['username' => 'user1active']);
$user2 = $this->getDataGenerator()->create_user(['username' => 'user2active']);
@@ -399,7 +405,7 @@ class core_enrol_externallib_testcase extends externallib_advanced_testcase {
$suspendedusers = core_enrol_external::get_enrolled_users($course->id, $options);
// We need to execute the return values cleaning process to simulate the web service server.
$suspendedusers = external_api::clean_returnvalue(core_enrol_external::get_enrolled_users_returns(), $suspendedusers);
$suspendedusers = \external_api::clean_returnvalue(core_enrol_external::get_enrolled_users_returns(), $suspendedusers);
$this->assertCount(2, $suspendedusers);
foreach ($suspendedusers as $suspendeduser) {
@@ -414,7 +420,7 @@ class core_enrol_externallib_testcase extends externallib_advanced_testcase {
$activeusers = core_enrol_external::get_enrolled_users($course->id, $options);
// We need to execute the return values cleaning process to simulate the web service server.
$activeusers = external_api::clean_returnvalue(core_enrol_external::get_enrolled_users_returns(), $activeusers);
$activeusers = \external_api::clean_returnvalue(core_enrol_external::get_enrolled_users_returns(), $activeusers);
$this->assertCount(4, $activeusers);
foreach ($activeusers as $activeuser) {
@@ -428,7 +434,7 @@ class core_enrol_externallib_testcase extends externallib_advanced_testcase {
$allusers = core_enrol_external::get_enrolled_users($course->id, $options);
// We need to execute the return values cleaning process to simulate the web service server.
$allusers = external_api::clean_returnvalue(core_enrol_external::get_enrolled_users_returns(), $allusers);
$allusers = \external_api::clean_returnvalue(core_enrol_external::get_enrolled_users_returns(), $allusers);
$this->assertCount(6, $allusers);
// Active and suspended. Test exception is thrown.
@@ -475,8 +481,8 @@ class core_enrol_externallib_testcase extends externallib_advanced_testcase {
$course1 = self::getDataGenerator()->create_course($coursedata1);
$course2 = self::getDataGenerator()->create_course($coursedata2);
$courses = array($course1, $course2);
$contexts = array ($course1->id => context_course::instance($course1->id),
$course2->id => context_course::instance($course2->id));
$contexts = array ($course1->id => \context_course::instance($course1->id),
$course2->id => \context_course::instance($course2->id));
$student = $this->getDataGenerator()->create_user();
$otherstudent = $this->getDataGenerator()->create_user();
@@ -496,15 +502,15 @@ class core_enrol_externallib_testcase extends externallib_advanced_testcase {
// Force completion, setting at least one criteria.
require_once($CFG->dirroot.'/completion/criteria/completion_criteria_self.php');
$criteriadata = new stdClass();
$criteriadata = new \stdClass();
$criteriadata->id = $course1->id;
// Self completion.
$criteriadata->criteria_self = 1;
$criterion = new completion_criteria_self();
$criterion = new \completion_criteria_self();
$criterion->update_config($criteriadata);
$ccompletion = new completion_completion(array('course' => $course1->id, 'userid' => $student->id));
$ccompletion = new \completion_completion(array('course' => $course1->id, 'userid' => $student->id));
$ccompletion->mark_complete();
// Set course hidden and favourited.
@@ -517,7 +523,7 @@ class core_enrol_externallib_testcase extends externallib_advanced_testcase {
$enrolledincourses = core_enrol_external::get_users_courses($student->id, true);
// We need to execute the return values cleaning process to simulate the web service server.
$enrolledincourses = external_api::clean_returnvalue(core_enrol_external::get_users_courses_returns(), $enrolledincourses);
$enrolledincourses = \external_api::clean_returnvalue(core_enrol_external::get_users_courses_returns(), $enrolledincourses);
// Check we retrieve the good total number of enrolled users.
$this->assertEquals(2, count($enrolledincourses));
@@ -564,7 +570,7 @@ class core_enrol_externallib_testcase extends externallib_advanced_testcase {
// Check that returnusercount works correctly.
$enrolledincourses = core_enrol_external::get_users_courses($student->id, false);
$enrolledincourses = external_api::clean_returnvalue(core_enrol_external::get_users_courses_returns(), $enrolledincourses);
$enrolledincourses = \external_api::clean_returnvalue(core_enrol_external::get_users_courses_returns(), $enrolledincourses);
foreach ($enrolledincourses as $courseenrol) {
$this->assertFalse(isset($courseenrol['enrolledusercount']));
}
@@ -573,7 +579,7 @@ class core_enrol_externallib_testcase extends externallib_advanced_testcase {
$this->setAdminUser();
$enrolledincourses = core_enrol_external::get_users_courses($student->id, true);
$enrolledincourses = external_api::clean_returnvalue(core_enrol_external::get_users_courses_returns(), $enrolledincourses);
$enrolledincourses = \external_api::clean_returnvalue(core_enrol_external::get_users_courses_returns(), $enrolledincourses);
$this->assertEquals(2, count($enrolledincourses));
foreach ($enrolledincourses as $courseenrol) {
if ($courseenrol['id'] == $course1->id) {
@@ -596,7 +602,7 @@ class core_enrol_externallib_testcase extends externallib_advanced_testcase {
$this->setUser($otherstudent);
$enrolledincourses = core_enrol_external::get_users_courses($student->id, true);
$enrolledincourses = external_api::clean_returnvalue(core_enrol_external::get_users_courses_returns(), $enrolledincourses);
$enrolledincourses = \external_api::clean_returnvalue(core_enrol_external::get_users_courses_returns(), $enrolledincourses);
$this->assertEquals(1, count($enrolledincourses));
$this->assertEquals($timenow, $enrolledincourses[0]['lastaccess']); // I can see this, not hidden.
@@ -605,7 +611,7 @@ class core_enrol_externallib_testcase extends externallib_advanced_testcase {
// Change some global profile visibility fields.
$CFG->hiddenuserfields = 'lastaccess';
$enrolledincourses = core_enrol_external::get_users_courses($student->id, true);
$enrolledincourses = external_api::clean_returnvalue(core_enrol_external::get_users_courses_returns(), $enrolledincourses);
$enrolledincourses = \external_api::clean_returnvalue(core_enrol_external::get_users_courses_returns(), $enrolledincourses);
$this->assertEquals(0, $enrolledincourses[0]['lastaccess']); // I can't see this, hidden by global setting.
}
@@ -619,7 +625,7 @@ class core_enrol_externallib_testcase extends externallib_advanced_testcase {
$this->resetAfterTest();
$course = $this->getDataGenerator()->create_course();
$context = context_course::instance($course->id);
$context = \context_course::instance($course->id);
$user1 = $this->getDataGenerator()->create_and_enrol($course, 'student');
$user2 = $this->getDataGenerator()->create_and_enrol($course, 'student');
@@ -707,7 +713,7 @@ class core_enrol_externallib_testcase extends externallib_advanced_testcase {
];
$course = self::getDataGenerator()->create_course($coursedata);
$context = context_course::instance($course->id);
$context = \context_course::instance($course->id);
// Enrol a student in the course.
$student = $this->getDataGenerator()->create_user();
@@ -720,7 +726,7 @@ class core_enrol_externallib_testcase extends externallib_advanced_testcase {
$enrolledincourses = core_enrol_external::get_users_courses($student->id, true);
// We need to execute the return values cleaning process to simulate the web service server.
$enrolledincourses = external_api::clean_returnvalue(core_enrol_external::get_users_courses_returns(), $enrolledincourses);
$enrolledincourses = \external_api::clean_returnvalue(core_enrol_external::get_users_courses_returns(), $enrolledincourses);
// Check that the amount of courses is the right one.
$this->assertCount(1, $enrolledincourses);
@@ -758,7 +764,7 @@ class core_enrol_externallib_testcase extends externallib_advanced_testcase {
$this->assertNotEmpty($studentrole);
$course1 = self::getDataGenerator()->create_course();
$coursedata = new stdClass();
$coursedata = new \stdClass();
$coursedata->visible = 0;
$course2 = self::getDataGenerator()->create_course($coursedata);
@@ -781,7 +787,7 @@ class core_enrol_externallib_testcase extends externallib_advanced_testcase {
// Check if information is returned.
$enrolmentmethods = core_enrol_external::get_course_enrolment_methods($course1->id);
$enrolmentmethods = external_api::clean_returnvalue(core_enrol_external::get_course_enrolment_methods_returns(),
$enrolmentmethods = \external_api::clean_returnvalue(core_enrol_external::get_course_enrolment_methods_returns(),
$enrolmentmethods);
// Enrolment information is currently returned by self enrolment plugin, so count == 1.
// This should be changed as we implement get_enrol_info() for other enrolment plugins.
@@ -799,7 +805,7 @@ class core_enrol_externallib_testcase extends externallib_advanced_testcase {
'customint6' => 1,
'password' => 'test'));
$enrolmentmethods = core_enrol_external::get_course_enrolment_methods($course2->id);
$enrolmentmethods = external_api::clean_returnvalue(core_enrol_external::get_course_enrolment_methods_returns(),
$enrolmentmethods = \external_api::clean_returnvalue(core_enrol_external::get_course_enrolment_methods_returns(),
$enrolmentmethods);
$this->assertCount(1, $enrolmentmethods);
@@ -814,7 +820,7 @@ class core_enrol_externallib_testcase extends externallib_advanced_testcase {
$this->setUser($user);
try {
core_enrol_external::get_course_enrolment_methods($course2->id);
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('coursehidden', $e->errorcode);
}
}
@@ -824,7 +830,7 @@ class core_enrol_externallib_testcase extends externallib_advanced_testcase {
$this->resetAfterTest(true);
$return = new stdClass();
$return = new \stdClass();
$return->course = self::getDataGenerator()->create_course();
$return->user1 = self::getDataGenerator()->create_user();
@@ -833,7 +839,7 @@ class core_enrol_externallib_testcase extends externallib_advanced_testcase {
$this->setUser($return->user3);
// Set the required capabilities by the external function.
$return->context = context_course::instance($return->course->id);
$return->context = \context_course::instance($return->course->id);
$return->roleid = $this->assignUserCapability($capability, $return->context->id);
$this->assignUserCapability('moodle/user:viewdetails', $return->context->id, $return->roleid);
@@ -857,7 +863,7 @@ class core_enrol_externallib_testcase extends externallib_advanced_testcase {
$enrolledusers = core_enrol_external::get_enrolled_users($data->course->id);
// We need to execute the return values cleaning process to simulate the web service server.
$enrolledusers = external_api::clean_returnvalue(core_enrol_external::get_enrolled_users_returns(), $enrolledusers);
$enrolledusers = \external_api::clean_returnvalue(core_enrol_external::get_enrolled_users_returns(), $enrolledusers);
// Check the result set.
$this->assertEquals(3, count($enrolledusers));
@@ -879,7 +885,7 @@ class core_enrol_externallib_testcase extends externallib_advanced_testcase {
));
// We need to execute the return values cleaning process to simulate the web service server.
$enrolledusers = external_api::clean_returnvalue(core_enrol_external::get_enrolled_users_returns(), $enrolledusers);
$enrolledusers = \external_api::clean_returnvalue(core_enrol_external::get_enrolled_users_returns(), $enrolledusers);
// Check the result set, we should only get the 3rd result, which is $user3.
$this->assertCount(1, $enrolledusers);
@@ -900,7 +906,7 @@ class core_enrol_externallib_testcase extends externallib_advanced_testcase {
// Call the external function.
$enrolledusers = core_enrol_external::get_enrolled_users($data->course->id);
// We need to execute the return values cleaning process to simulate the web service server.
$enrolledusers = external_api::clean_returnvalue(core_enrol_external::get_enrolled_users_returns(), $enrolledusers);
$enrolledusers = \external_api::clean_returnvalue(core_enrol_external::get_enrolled_users_returns(), $enrolledusers);
// Check the result set.
$this->assertEquals(3, count($enrolledusers));
@@ -919,7 +925,7 @@ class core_enrol_externallib_testcase extends externallib_advanced_testcase {
$DB->insert_record('user_lastaccess', $lastaccess);
$enrolledusers = core_enrol_external::get_enrolled_users($data->course->id);
$enrolledusers = external_api::clean_returnvalue(core_enrol_external::get_enrolled_users_returns(), $enrolledusers);
$enrolledusers = \external_api::clean_returnvalue(core_enrol_external::get_enrolled_users_returns(), $enrolledusers);
// Check the result set.
$this->assertEquals(3, count($enrolledusers));
@@ -938,7 +944,7 @@ class core_enrol_externallib_testcase extends externallib_advanced_testcase {
// Call without required capability.
$this->unassignUserCapability($capability, $data->context->id, $data->roleid);
$this->expectException(moodle_exception::class);
$this->expectException(\moodle_exception::class);
$categories = core_enrol_external::get_enrolled_users($data->course->id);
}
@@ -947,11 +953,11 @@ class core_enrol_externallib_testcase extends externallib_advanced_testcase {
$this->resetAfterTest(true);
$return = new stdClass();
$return = new \stdClass();
// Create the course and fetch its context.
$return->course = self::getDataGenerator()->create_course();
$context = context_course::instance($return->course->id);
$context = \context_course::instance($return->course->id);
// Create one teacher, and two students.
$return->teacher = self::getDataGenerator()->create_user();
@@ -1001,7 +1007,7 @@ class core_enrol_externallib_testcase extends externallib_advanced_testcase {
);
// We need to execute the return values cleaning process to simulate the web service server.
$result = external_api::clean_returnvalue(core_enrol_external::get_enrolled_users_with_capability_returns(), $result);
$result = \external_api::clean_returnvalue(core_enrol_external::get_enrolled_users_with_capability_returns(), $result);
// Check an array containing the expected user for the course capability is returned.
$expecteduserlist = $result[0];
@@ -1034,7 +1040,7 @@ class core_enrol_externallib_testcase extends externallib_advanced_testcase {
);
// We need to execute the return values cleaning process to simulate the web service server.
$result = external_api::clean_returnvalue(core_enrol_external::get_enrolled_users_with_capability_returns(), $result);
$result = \external_api::clean_returnvalue(core_enrol_external::get_enrolled_users_with_capability_returns(), $result);
// Check an array containing the expected user for the course capability is returned.
$expecteduserlist = $result[0]['users'];
@@ -1062,7 +1068,7 @@ class core_enrol_externallib_testcase extends externallib_advanced_testcase {
$result = core_enrol_external::get_enrolled_users_with_capability($parameters, array());
// We need to execute the return values cleaning process to simulate the web service server.
$result = external_api::clean_returnvalue(core_enrol_external::get_enrolled_users_with_capability_returns(), $result);
$result = \external_api::clean_returnvalue(core_enrol_external::get_enrolled_users_with_capability_returns(), $result);
// Check an array containing the expected user for the course capability is returned.
$expecteduserlist = $result[0];
@@ -1084,7 +1090,7 @@ class core_enrol_externallib_testcase extends externallib_advanced_testcase {
$result = core_enrol_external::get_enrolled_users_with_capability($parameters, array());
// We need to execute the return values cleaning process to simulate the web service server.
$result = external_api::clean_returnvalue(core_enrol_external::get_enrolled_users_with_capability_returns(), $result);
$result = \external_api::clean_returnvalue(core_enrol_external::get_enrolled_users_with_capability_returns(), $result);
// Check the result set.
$expecteduserlist = $result[0];
@@ -1141,21 +1147,21 @@ class core_enrol_externallib_testcase extends externallib_advanced_testcase {
// Login as teacher.
$this->setUser($teacher);
$now = new DateTime();
$now = new \DateTime();
$nowtime = $now->getTimestamp();
// Invalid data.
$data = core_enrol_external::edit_user_enrolment($course->id, $ueid, ENROL_USER_ACTIVE, $nowtime, $nowtime);
$data = external_api::clean_returnvalue(core_enrol_external::edit_user_enrolment_returns(), $data);
$data = \external_api::clean_returnvalue(core_enrol_external::edit_user_enrolment_returns(), $data);
$this->assertFalse($data['result']);
$this->assertNotEmpty($data['errors']);
// Valid data.
$nextmonth = clone($now);
$nextmonth->add(new DateInterval('P1M'));
$nextmonth->add(new \DateInterval('P1M'));
$nextmonthtime = $nextmonth->getTimestamp();
$data = core_enrol_external::edit_user_enrolment($course->id, $ueid, ENROL_USER_ACTIVE, $nowtime, $nextmonthtime);
$data = external_api::clean_returnvalue(core_enrol_external::edit_user_enrolment_returns(), $data);
$data = \external_api::clean_returnvalue(core_enrol_external::edit_user_enrolment_returns(), $data);
$this->assertTrue($data['result']);
$this->assertEmpty($data['errors']);
@@ -1167,7 +1173,7 @@ class core_enrol_externallib_testcase extends externallib_advanced_testcase {
// Suspend user.
$data = core_enrol_external::edit_user_enrolment($course->id, $ueid, ENROL_USER_SUSPENDED);
$data = external_api::clean_returnvalue(core_enrol_external::edit_user_enrolment_returns(), $data);
$data = \external_api::clean_returnvalue(core_enrol_external::edit_user_enrolment_returns(), $data);
$this->assertTrue($data['result']);
$this->assertEmpty($data['errors']);
@@ -1180,10 +1186,10 @@ class core_enrol_externallib_testcase extends externallib_advanced_testcase {
* dataProvider for test_submit_user_enrolment_form().
*/
public function submit_user_enrolment_form_provider() {
$now = new DateTime();
$now = new \DateTime();
$nextmonth = clone($now);
$nextmonth->add(new DateInterval('P1M'));
$nextmonth->add(new \DateInterval('P1M'));
return [
'Invalid data' => [
@@ -1309,7 +1315,7 @@ class core_enrol_externallib_testcase extends externallib_advanced_testcase {
$querystring = http_build_query($formdata, '', '&');
$result = external_api::clean_returnvalue(
$result = \external_api::clean_returnvalue(
core_enrol_external::submit_user_enrolment_form_returns(),
core_enrol_external::submit_user_enrolment_form($querystring)
);
@@ -1374,13 +1380,13 @@ class core_enrol_externallib_testcase extends externallib_advanced_testcase {
// Invalid data by passing invalid ueid.
$data = core_enrol_external::unenrol_user_enrolment(101010);
$data = external_api::clean_returnvalue(core_enrol_external::unenrol_user_enrolment_returns(), $data);
$data = \external_api::clean_returnvalue(core_enrol_external::unenrol_user_enrolment_returns(), $data);
$this->assertFalse($data['result']);
$this->assertNotEmpty($data['errors']);
// Valid data.
$data = core_enrol_external::unenrol_user_enrolment($ueid);
$data = external_api::clean_returnvalue(core_enrol_external::unenrol_user_enrolment_returns(), $data);
$data = \external_api::clean_returnvalue(core_enrol_external::unenrol_user_enrolment_returns(), $data);
$this->assertTrue($data['result']);
$this->assertEmpty($data['errors']);
+37 -32
View File
@@ -14,6 +14,18 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
namespace core_files;
use core_files_external;
use core_files\external\delete\draft;
use core_files\external\get\unused_draft;
defined('MOODLE_INTERNAL') || die();
global $CFG;
require_once($CFG->dirroot . '/webservice/tests/helpers.php');
require_once($CFG->dirroot . '/files/externallib.php');
/**
* PHPunit tests for external files API.
@@ -24,14 +36,7 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since Moodle 2.6
*/
defined('MOODLE_INTERNAL') || die();
global $CFG;
require_once($CFG->dirroot . '/webservice/tests/helpers.php');
require_once($CFG->dirroot . '/files/externallib.php');
class core_files_externallib_testcase extends advanced_testcase {
class externallib_test extends \advanced_testcase {
/*
* Test core_files_external::upload().
@@ -42,7 +47,7 @@ class core_files_externallib_testcase extends advanced_testcase {
$this->resetAfterTest();
$this->setAdminUser();
$context = context_user::instance($USER->id);
$context = \context_user::instance($USER->id);
$contextid = $context->id;
$component = "user";
$filearea = "draft";
@@ -61,7 +66,7 @@ class core_files_externallib_testcase extends advanced_testcase {
// Call the api to create a file.
$fileinfo = core_files_external::upload($contextid, $component, $filearea, $itemid, $filepath,
$filename, $filecontent, $contextlevel, $instanceid);
$fileinfo = external_api::clean_returnvalue(core_files_external::upload_returns(), $fileinfo);
$fileinfo = \external_api::clean_returnvalue(core_files_external::upload_returns(), $fileinfo);
// Get the created draft item id.
$itemid = $fileinfo['itemid'];
@@ -77,7 +82,7 @@ class core_files_externallib_testcase extends advanced_testcase {
// Call the api to create a file.
$fileinfo = core_files_external::upload($contextid, $component, $filearea, $itemid,
$filepath, $filename, $filecontent, $contextlevel, $instanceid);
$fileinfo = external_api::clean_returnvalue(core_files_external::upload_returns(), $fileinfo);
$fileinfo = \external_api::clean_returnvalue(core_files_external::upload_returns(), $fileinfo);
$file = $browser->get_file_info($context, $component, $filearea, $itemid, $filepath, $filename);
$this->assertNotEmpty($file);
@@ -90,7 +95,7 @@ class core_files_externallib_testcase extends advanced_testcase {
$this->assertEmpty($file);
$fileinfo = core_files_external::upload($contextid, $component, $filearea, $itemid, $filepath,
$filename, $filecontent, $contextlevel, $instanceid);
$fileinfo = external_api::clean_returnvalue(core_files_external::upload_returns(), $fileinfo);
$fileinfo = \external_api::clean_returnvalue(core_files_external::upload_returns(), $fileinfo);
$file = $browser->get_file_info($context, $component, $filearea, $itemid, $filepath, $filename);
$this->assertNotEmpty($file);
@@ -108,7 +113,7 @@ class core_files_externallib_testcase extends advanced_testcase {
$this->resetAfterTest();
$this->setAdminUser();
$context = context_user::instance($USER->id);
$context = \context_user::instance($USER->id);
$contextid = $context->id;
$component = "backup";
$filearea = "draft";
@@ -133,7 +138,7 @@ class core_files_externallib_testcase extends advanced_testcase {
$this->resetAfterTest();
$this->setAdminUser();
$context = context_user::instance($USER->id);
$context = \context_user::instance($USER->id);
$contextid = $context->id;
$component = "user";
$filearea = "draft";
@@ -147,7 +152,7 @@ class core_files_externallib_testcase extends advanced_testcase {
// Make sure the file is created.
$fileinfo = core_files_external::upload($contextid, $component, $filearea, $itemid, $filepath, $filename, $filecontent,
'user', $USER->id);
$fileinfo = external_api::clean_returnvalue(core_files_external::upload_returns(), $fileinfo);
$fileinfo = \external_api::clean_returnvalue(core_files_external::upload_returns(), $fileinfo);
$browser = get_file_browser();
$file = $browser->get_file_info($context, $component, $filearea, $itemid, $filepath, $filename);
$this->assertNotEmpty($file);
@@ -167,7 +172,7 @@ class core_files_externallib_testcase extends advanced_testcase {
// Create a course.
$course = $this->getDataGenerator()->create_course();
$record = new stdClass();
$record = new \stdClass();
$record->course = $course->id;
$record->name = "Mod data upload test";
$record->intro = "Some intro of some sort";
@@ -178,7 +183,7 @@ class core_files_externallib_testcase extends advanced_testcase {
// Create a new field in the database activity.
$field = data_get_field_new('file', $module);
// Add more detail about the field.
$fielddetail = new stdClass();
$fielddetail = new \stdClass();
$fielddetail->d = $module->id;
$fielddetail->mode = 'add';
$fielddetail->type = 'file';
@@ -200,8 +205,8 @@ class core_files_externallib_testcase extends advanced_testcase {
// Insert the information about the file.
$contentid = $DB->insert_record('data_content', $datacontent);
// Required information for uploading a file.
$context = context_module::instance($module->cmid);
$usercontext = context_user::instance($USER->id);
$context = \context_module::instance($module->cmid);
$usercontext = \context_user::instance($USER->id);
$component = 'mod_data';
$filearea = 'content';
$itemid = $contentid;
@@ -228,10 +233,10 @@ class core_files_externallib_testcase extends advanced_testcase {
// The first time is with a valid context ID.
$filename = '';
$testfilelisting = core_files_external::get_files($context->id, $component, $filearea, $itemid, '/', $filename);
$testfilelisting = external_api::clean_returnvalue(core_files_external::get_files_returns(), $testfilelisting);
$testfilelisting = \external_api::clean_returnvalue(core_files_external::get_files_returns(), $testfilelisting);
// With the information that we have provided we should get an object exactly like the one below.
$coursecontext = context_course::instance($course->id);
$coursecontext = \context_course::instance($course->id);
$testdata = array();
$testdata['parents'] = array();
$testdata['parents']['0'] = array('contextid' => 1,
@@ -289,7 +294,7 @@ class core_files_externallib_testcase extends advanced_testcase {
$contextlevel = 'module';
$instanceid = $module->cmid;
$testfilelisting = core_files_external::get_files($nocontext, $component, $filearea, $itemid, '/', $filename, $modified, $contextlevel, $instanceid);
$testfilelisting = external_api::clean_returnvalue(core_files_external::get_files_returns(), $testfilelisting);
$testfilelisting = \external_api::clean_returnvalue(core_files_external::get_files_returns(), $testfilelisting);
$this->assertEquals($testfilelisting, $testdata);
}
@@ -305,7 +310,7 @@ class core_files_externallib_testcase extends advanced_testcase {
// Add files to user draft area.
$draftitemid = file_get_unused_draft_itemid();
$context = context_user::instance($USER->id);
$context = \context_user::instance($USER->id);
$filerecordinline = array(
'contextid' => $context->id,
'component' => 'user',
@@ -325,12 +330,12 @@ class core_files_externallib_testcase extends advanced_testcase {
// Check two files were created (one file and one directory).
$files = core_files_external::get_files($context->id, 'user', 'draft', $draftitemid, '/', '');
$files = external_api::clean_returnvalue(core_files_external::get_files_returns(), $files);
$files = \external_api::clean_returnvalue(core_files_external::get_files_returns(), $files);
$this->assertCount(2, $files['files']);
// Check the folder has one file.
$files = core_files_external::get_files($context->id, 'user', 'draft', $draftitemid, '/fakefolder/', '');
$files = external_api::clean_returnvalue(core_files_external::get_files_returns(), $files);
$files = \external_api::clean_returnvalue(core_files_external::get_files_returns(), $files);
$this->assertCount(1, $files['files']);
// Delete a file and a folder.
@@ -338,12 +343,12 @@ class core_files_externallib_testcase extends advanced_testcase {
['filepath' => '/', 'filename' => 'faketxt.txt'],
['filepath' => '/fakefolder/', 'filename' => ''],
];
$paths = core_files\external\delete\draft::execute($draftitemid, $filestodelete);
$paths = external_api::clean_returnvalue(core_files\external\delete\draft::execute_returns(), $paths);
$paths = draft::execute($draftitemid, $filestodelete);
$paths = \external_api::clean_returnvalue(draft::execute_returns(), $paths);
// Check everything was deleted.
$files = core_files_external::get_files($context->id, 'user', 'draft', $draftitemid, '/', '');
$files = external_api::clean_returnvalue(core_files_external::get_files_returns(), $files);
$files = \external_api::clean_returnvalue(core_files_external::get_files_returns(), $files);
$this->assertCount(0, $files['files']);
}
@@ -357,8 +362,8 @@ class core_files_externallib_testcase extends advanced_testcase {
$this->setAdminUser();
// Add files to user draft area.
$result = core_files\external\get\unused_draft::execute();
$result = external_api::clean_returnvalue(core_files\external\get\unused_draft::execute_returns(), $result);
$result = unused_draft::execute();
$result = \external_api::clean_returnvalue(unused_draft::execute_returns(), $result);
$filerecordinline = [
'contextid' => $result['contextid'],
@@ -377,10 +382,10 @@ class core_files_externallib_testcase extends advanced_testcase {
$filerecordinline['filename'] = 'fakeimage.png';
$fs->create_file_from_string($filerecordinline, 'img...');
$context = context_user::instance($USER->id);
$context = \context_user::instance($USER->id);
// Check two files were created (one file and one directory).
$files = core_files_external::get_files($context->id, 'user', 'draft', $result['itemid'], '/', '');
$files = external_api::clean_returnvalue(core_files_external::get_files_returns(), $files);
$files = \external_api::clean_returnvalue(core_files_external::get_files_returns(), $files);
$this->assertCount(2, $files['files']);
}
}
+6 -9
View File
@@ -23,10 +23,7 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
global $CFG;
require_once($CFG->dirroot . '/filter/activitynames/filter.php'); // Include the code to test.
namespace filter_activitynames;
/**
* Test case for the activity names auto-linking filter.
@@ -34,14 +31,14 @@ require_once($CFG->dirroot . '/filter/activitynames/filter.php'); // Include the
* @copyright 2018 The Open University
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class filter_activitynames_filter_testcase extends advanced_testcase {
class filter_test extends \advanced_testcase {
public function test_links() {
$this->resetAfterTest(true);
// Create a test course.
$course = $this->getDataGenerator()->create_course();
$context = context_course::instance($course->id);
$context = \context_course::instance($course->id);
// Create two pages that will be linked to.
$page1 = $this->getDataGenerator()->create_module('page',
@@ -79,7 +76,7 @@ class filter_activitynames_filter_testcase extends advanced_testcase {
// Create a test course.
$course = $this->getDataGenerator()->create_course();
$context = context_course::instance($course->id);
$context = \context_course::instance($course->id);
// Work around an issue with the activity names filter which maintains a static cache
// of activities for current course ID. We can re-build the cache by switching user.
@@ -109,8 +106,8 @@ class filter_activitynames_filter_testcase extends advanced_testcase {
// Create a test courses.
$course1 = $this->getDataGenerator()->create_course();
$course2 = $this->getDataGenerator()->create_course();
$context1 = context_course::instance($course1->id);
$context2 = context_course::instance($course2->id);
$context1 = \context_course::instance($course1->id);
$context2 = \context_course::instance($course2->id);
// Create page 1.
$page1 = $this->getDataGenerator()->create_module('page',
+6 -2
View File
@@ -23,6 +23,10 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
namespace filter_algebra;
use filter_algebra;
defined('MOODLE_INTERNAL') || die();
global $CFG;
@@ -40,13 +44,13 @@ require_once($CFG->dirroot . '/filter/algebra/filter.php');
* @copyright 2012 Tim Hunt
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class filter_algebra_testcase extends basic_testcase {
class filter_test extends \basic_testcase {
protected $filter;
protected function setUp(): void {
parent::setUp();
$this->filter = new filter_algebra(context_system::instance(), array());
$this->filter = new filter_algebra(\context_system::instance(), array());
}
function test_algebra_filter_no_algebra() {
+8 -11
View File
@@ -23,10 +23,7 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
global $CFG;
require_once($CFG->dirroot . '/filter/data/filter.php');
namespace filter_data;
/**
* Tests for filter_data.
@@ -35,7 +32,7 @@ require_once($CFG->dirroot . '/filter/data/filter.php');
* @copyright 2015 David Monllao
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class filter_data_filter_testcase extends advanced_testcase {
class filter_test extends \advanced_testcase {
/**
* Tests that the filter applies the required changes.
@@ -46,17 +43,17 @@ class filter_data_filter_testcase extends advanced_testcase {
$this->resetAfterTest(true);
$this->setAdminUser();
filter_manager::reset_caches();
\filter_manager::reset_caches();
filter_set_global_state('data', TEXTFILTER_ON);
$course1 = $this->getDataGenerator()->create_course();
$coursecontext1 = context_course::instance($course1->id);
$coursecontext1 = \context_course::instance($course1->id);
$course2 = $this->getDataGenerator()->create_course();
$coursecontext2 = context_course::instance($course2->id);
$coursecontext2 = \context_course::instance($course2->id);
$sitecontext = context_course::instance(SITEID);
$sitecontext = \context_course::instance(SITEID);
$site = get_site();
$this->add_simple_database_instance($site, array('SiteEntry'));
@@ -83,7 +80,7 @@ class filter_data_filter_testcase extends advanced_testcase {
/**
* Adds a database instance to the provided course + a text field + adds all attached entries.
*
* @param stdClass $course
* @param \stdClass $course
* @param array $entries A list of entry names.
* @return void
*/
@@ -95,7 +92,7 @@ class filter_data_filter_testcase extends advanced_testcase {
// A database field.
$field = data_get_field_new('text', $database);
$fielddetail = new stdClass();
$fielddetail = new \stdClass();
$fielddetail->d = $database->id;
$fielddetail->mode = 'add';
$fielddetail->type = 'text';
+5 -1
View File
@@ -23,6 +23,10 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
namespace filter_displayh5p;
use filter_displayh5p;
defined('MOODLE_INTERNAL') || die();
global $CFG;
@@ -34,7 +38,7 @@ require_once($CFG->dirroot.'/filter/displayh5p/filter.php');
* @copyright 2019 Victor Deniz <[email protected]>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class filter_displayh5p_testcase extends advanced_testcase {
class filter_test extends \advanced_testcase {
public function setUp(): void {
parent::setUp();
+7 -3
View File
@@ -23,6 +23,10 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
namespace filter_emoticon;
use filter_emoticon;
defined('MOODLE_INTERNAL') || die();
global $CFG;
@@ -31,7 +35,7 @@ require_once($CFG->dirroot . '/filter/emoticon/filter.php'); // Include the code
/**
* Skype icons filter testcase.
*/
class filter_emoticon_testcase extends advanced_testcase {
class filter_test extends \advanced_testcase {
/**
* Test that filter ignores nolink/pre element, and processes remaining text
@@ -185,7 +189,7 @@ class filter_emoticon_testcase extends advanced_testcase {
// Empty the emoticons array.
$CFG->emoticons = null;
$filter = new filter_emoticon(context_system::instance(), array('originalformat' => FORMAT_HTML));
$filter = new filter_emoticon(\context_system::instance(), array('originalformat' => FORMAT_HTML));
$input = '(grr)';
$expected = '(grr)';
@@ -205,7 +209,7 @@ class testable_filter_emoticon extends filter_emoticon {
parent::$emoticontexts = array();
parent::$emoticonimgs = array();
// Use this context for filtering.
$this->context = context_system::instance();
$this->context = \context_system::instance();
// Define FORMAT_HTML as only one filtering in DB.
set_config('formats', implode(',', array(FORMAT_HTML)), 'filter_emoticon');
}
+9 -12
View File
@@ -23,15 +23,12 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
global $CFG;
require_once($CFG->dirroot . '/filter/glossary/filter.php'); // Include the code to test.
namespace filter_glossary;
/**
* Test case for glossary.
*/
class filter_glossary_filter_testcase extends advanced_testcase {
class filter_test extends \advanced_testcase {
public function test_link_to_entry_with_alias() {
global $CFG;
@@ -43,7 +40,7 @@ class filter_glossary_filter_testcase extends advanced_testcase {
// Create a test course.
$course = $this->getDataGenerator()->create_course();
$context = context_course::instance($course->id);
$context = \context_course::instance($course->id);
// Create a glossary.
$glossary = $this->getDataGenerator()->create_module('glossary',
@@ -84,7 +81,7 @@ class filter_glossary_filter_testcase extends advanced_testcase {
// Create a test course.
$course = $this->getDataGenerator()->create_course();
$context = context_course::instance($course->id);
$context = \context_course::instance($course->id);
// Create a glossary.
$glossary = $this->getDataGenerator()->create_module('glossary',
@@ -121,7 +118,7 @@ class filter_glossary_filter_testcase extends advanced_testcase {
// Create a test course.
$course = $this->getDataGenerator()->create_course();
$context = context_course::instance($course->id);
$context = \context_course::instance($course->id);
// Create a glossary.
$glossary = $this->getDataGenerator()->create_module('glossary',
@@ -159,7 +156,7 @@ class filter_glossary_filter_testcase extends advanced_testcase {
// Create a test course.
$course = $this->getDataGenerator()->create_course();
$context = context_course::instance($course->id);
$context = \context_course::instance($course->id);
// Create a glossary.
$glossary = $this->getDataGenerator()->create_module('glossary',
@@ -205,7 +202,7 @@ class filter_glossary_filter_testcase extends advanced_testcase {
// Create a test course.
$course = $this->getDataGenerator()->create_course();
$context = context_course::instance($course->id);
$context = \context_course::instance($course->id);
// Create a glossary.
$glossary = $this->getDataGenerator()->create_module('glossary',
@@ -249,7 +246,7 @@ class filter_glossary_filter_testcase extends advanced_testcase {
// Create a test course.
$course = $this->getDataGenerator()->create_course();
$context = context_course::instance($course->id);
$context = \context_course::instance($course->id);
// Create a glossary.
$glossary = $this->getDataGenerator()->create_module('glossary',
@@ -288,7 +285,7 @@ class filter_glossary_filter_testcase extends advanced_testcase {
// Create a test course.
$course = $this->getDataGenerator()->create_course();
$context = context_course::instance($course->id);
$context = \context_course::instance($course->id);
// Create a glossary.
$glossary = $this->getDataGenerator()->create_module('glossary',
+6 -2
View File
@@ -23,6 +23,10 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
namespace filter_mathjaxloader;
use filter_mathjaxloader;
defined('MOODLE_INTERNAL') || die();
global $CFG;
@@ -34,7 +38,7 @@ require_once($CFG->dirroot.'/filter/mathjaxloader/filter.php');
* @copyright 2017 David Mudrak <[email protected]>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class filter_mathjaxloader_filter_testcase extends advanced_testcase {
class filter_test extends \advanced_testcase {
/**
* Test the functionality of {@link filter_mathjaxloader::map_language_code()}.
@@ -46,7 +50,7 @@ class filter_mathjaxloader_filter_testcase extends advanced_testcase {
*/
public function test_map_language_code($moodlelangcode, $mathjaxlangcode) {
$filter = new filter_mathjaxloader(context_system::instance(), []);
$filter = new filter_mathjaxloader(\context_system::instance(), []);
$this->assertEquals($mathjaxlangcode, $filter->map_language_code($moodlelangcode));
}
+5 -1
View File
@@ -23,13 +23,17 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
namespace filter_mediaplugin;
use filter_mediaplugin;
defined('MOODLE_INTERNAL') || die();
global $CFG;
require_once($CFG->dirroot . '/filter/mediaplugin/filter.php'); // Include the code to test
class filter_mediaplugin_testcase extends advanced_testcase {
class filter_test extends \advanced_testcase {
function test_filter_mediaplugin_link() {
$this->resetAfterTest(true);
+4 -3
View File
@@ -23,8 +23,9 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
namespace filter_multilang;
use filter_multilang;
/**
* Tests for filter_multilang.
@@ -32,7 +33,7 @@ defined('MOODLE_INTERNAL') || die();
* @copyright 2019 The Open University
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class filter_multilang_filter_testcase extends advanced_testcase {
class filter_test extends \advanced_testcase {
public function setUp(): void {
parent::setUp();
@@ -142,7 +143,7 @@ class filter_multilang_filter_testcase extends advanced_testcase {
$this->setup_parent_language($child, $parent);
}
$filtered = format_text($input, FORMAT_HTML, array('context' => context_system::instance()));
$filtered = format_text($input, FORMAT_HTML, array('context' => \context_system::instance()));
$this->assertEquals($expectedoutput, $filtered);
}
}
+6 -2
View File
@@ -22,6 +22,10 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
namespace filter_tex;
use filter_tex;
defined('MOODLE_INTERNAL') || die();
global $CFG;
@@ -36,14 +40,14 @@ require_once($CFG->dirroot . '/filter/tex/filter.php');
* @copyright 2014 Damyon Wiese
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class filter_tex_testcase extends advanced_testcase {
class filter_test extends \advanced_testcase {
protected $filter;
protected function setUp(): void {
parent::setUp();
$this->resetAfterTest(true);
$this->filter = new filter_tex(context_system::instance(), array());
$this->filter = new filter_tex(\context_system::instance(), array());
}
function run_with_delimiters($start, $end, $filtershouldrun) {
+5 -1
View File
@@ -23,13 +23,17 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
namespace filter_urltolink;
use filter_urltolink;
defined('MOODLE_INTERNAL') || die();
global $CFG;
require_once($CFG->dirroot . '/filter/urltolink/filter.php'); // Include the code to test
class filter_urltolink_filter_testcase extends basic_testcase {
class filter_test extends \basic_testcase {
function get_convert_urls_into_links_test_cases() {
// Create a 4095 and 4096 long URLs.
@@ -14,14 +14,10 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Overview grade report functions unit tests
*
* @package gradereport_overview
* @category external
* @copyright 2015 Juan Leyva <[email protected]>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
namespace gradereport_overview;
use externallib_advanced_testcase;
use gradereport_overview_external;
defined('MOODLE_INTERNAL') || die();
@@ -37,7 +33,7 @@ require_once($CFG->dirroot . '/webservice/tests/helpers.php');
* @copyright 2015 Juan Leyva <[email protected]>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class gradereport_overview_externallib_testcase extends externallib_advanced_testcase {
class externallib_test extends externallib_advanced_testcase {
/**
* Set up for every test
@@ -91,7 +87,7 @@ class gradereport_overview_externallib_testcase extends externallib_advanced_tes
// A user can see his own grades in both courses.
$this->setUser($this->student1);
$studentgrades = gradereport_overview_external::get_course_grades();
$studentgrades = external_api::clean_returnvalue(gradereport_overview_external::get_course_grades_returns(), $studentgrades);
$studentgrades = \external_api::clean_returnvalue(gradereport_overview_external::get_course_grades_returns(), $studentgrades);
$this->assertCount(0, $studentgrades['warnings']);
$this->assertCount(2, $studentgrades['grades']);
@@ -110,7 +106,7 @@ class gradereport_overview_externallib_testcase extends externallib_advanced_tes
// Second student, no grade in one course.
$this->setUser($this->student2);
$studentgrades = gradereport_overview_external::get_course_grades();
$studentgrades = external_api::clean_returnvalue(gradereport_overview_external::get_course_grades_returns(), $studentgrades);
$studentgrades = \external_api::clean_returnvalue(gradereport_overview_external::get_course_grades_returns(), $studentgrades);
$this->assertCount(0, $studentgrades['warnings']);
$this->assertCount(2, $studentgrades['grades']);
@@ -136,7 +132,7 @@ class gradereport_overview_externallib_testcase extends externallib_advanced_tes
$this->setAdminUser();
$studentgrades = gradereport_overview_external::get_course_grades($this->student1->id);
$studentgrades = external_api::clean_returnvalue(gradereport_overview_external::get_course_grades_returns(), $studentgrades);
$studentgrades = \external_api::clean_returnvalue(gradereport_overview_external::get_course_grades_returns(), $studentgrades);
$this->assertCount(0, $studentgrades['warnings']);
$this->assertCount(2, $studentgrades['grades']);
foreach ($studentgrades['grades'] as $grade) {
@@ -150,13 +146,13 @@ class gradereport_overview_externallib_testcase extends externallib_advanced_tes
}
$studentgrades = gradereport_overview_external::get_course_grades($this->student2->id);
$studentgrades = external_api::clean_returnvalue(gradereport_overview_external::get_course_grades_returns(), $studentgrades);
$studentgrades = \external_api::clean_returnvalue(gradereport_overview_external::get_course_grades_returns(), $studentgrades);
$this->assertCount(0, $studentgrades['warnings']);
$this->assertCount(2, $studentgrades['grades']);
// Admins don't see grades.
$studentgrades = gradereport_overview_external::get_course_grades();
$studentgrades = external_api::clean_returnvalue(gradereport_overview_external::get_course_grades_returns(), $studentgrades);
$studentgrades = \external_api::clean_returnvalue(gradereport_overview_external::get_course_grades_returns(), $studentgrades);
$this->assertCount(0, $studentgrades['warnings']);
$this->assertCount(0, $studentgrades['grades']);
}
@@ -169,7 +165,7 @@ class gradereport_overview_externallib_testcase extends externallib_advanced_tes
$this->setUser($this->teacher);
$studentgrades = gradereport_overview_external::get_course_grades();
$studentgrades = external_api::clean_returnvalue(gradereport_overview_external::get_course_grades_returns(), $studentgrades);
$studentgrades = \external_api::clean_returnvalue(gradereport_overview_external::get_course_grades_returns(), $studentgrades);
$this->assertCount(0, $studentgrades['warnings']);
$this->assertCount(0, $studentgrades['grades']);
}
@@ -196,26 +192,26 @@ class gradereport_overview_externallib_testcase extends externallib_advanced_tes
$this->setUser($this->student1);
$result = gradereport_overview_external::view_grade_report($this->course1->id);
$result = external_api::clean_returnvalue(gradereport_overview_external::view_grade_report_returns(), $result);
$result = \external_api::clean_returnvalue(gradereport_overview_external::view_grade_report_returns(), $result);
$events = $sink->get_events();
$this->assertCount(1, $events);
$event = reset($events);
// Check the event details are correct.
$this->assertInstanceOf('\gradereport_overview\event\grade_report_viewed', $event);
$this->assertEquals(context_course::instance($this->course1->id), $event->get_context());
$this->assertEquals(\context_course::instance($this->course1->id), $event->get_context());
$this->assertEquals($USER->id, $event->get_data()['relateduserid']);
$this->setUser($this->teacher);
$result = gradereport_overview_external::view_grade_report($this->course1->id, $this->student1->id);
$result = external_api::clean_returnvalue(gradereport_overview_external::view_grade_report_returns(), $result);
$result = \external_api::clean_returnvalue(gradereport_overview_external::view_grade_report_returns(), $result);
$events = $sink->get_events();
$event = reset($events);
$sink->close();
// Check the event details are correct.
$this->assertInstanceOf('\gradereport_overview\event\grade_report_viewed', $event);
$this->assertEquals(context_course::instance($this->course1->id), $event->get_context());
$this->assertEquals(\context_course::instance($this->course1->id), $event->get_context());
$this->assertEquals($this->student1->id, $event->get_data()['relateduserid']);
}
+20 -24
View File
@@ -14,14 +14,10 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* User grade report functions unit tests
*
* @package gradereport_user
* @category external
* @copyright 2015 Juan Leyva <[email protected]>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
namespace gradereport_user;
use externallib_advanced_testcase;
use gradereport_user_external;
defined('MOODLE_INTERNAL') || die();
@@ -38,7 +34,7 @@ require_once($CFG->dirroot . '/grade/report/user/externallib.php');
* @copyright 2015 Juan Leyva <[email protected]>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class gradereport_user_externallib_testcase extends externallib_advanced_testcase {
class externallib_test extends externallib_advanced_testcase {
/**
* Loads some data to be used by the different tests
@@ -62,7 +58,7 @@ class gradereport_user_externallib_testcase extends externallib_advanced_testcas
$teacher = $this->getDataGenerator()->create_user();
$this->getDataGenerator()->enrol_user($teacher->id, $course->id, $teacherrole->id);
$context = context_course::instance($course->id);
$context = \context_course::instance($course->id);
assign_capability('moodle/site:accessallgroups', CAP_PROHIBIT, $teacherrole->id, $context);
accesslib_clear_all_caches_for_unit_testing();
@@ -100,7 +96,7 @@ class gradereport_user_externallib_testcase extends externallib_advanced_testcas
$this->setUser($teacher);
$studentgrades = gradereport_user_external::get_grades_table($course->id);
$studentgrades = external_api::clean_returnvalue(gradereport_user_external::get_grades_table_returns(), $studentgrades);
$studentgrades = \external_api::clean_returnvalue(gradereport_user_external::get_grades_table_returns(), $studentgrades);
// No warnings returned.
$this->assertCount(0, $studentgrades['warnings']);
@@ -132,7 +128,7 @@ class gradereport_user_externallib_testcase extends externallib_advanced_testcas
// A user can see his own grades.
$this->setUser($student1);
$studentgrade = gradereport_user_external::get_grades_table($course->id, $student1->id);
$studentgrade = external_api::clean_returnvalue(gradereport_user_external::get_grades_table_returns(), $studentgrade);
$studentgrade = \external_api::clean_returnvalue(gradereport_user_external::get_grades_table_returns(), $studentgrade);
// No warnings returned.
$this->assertTrue(count($studentgrade['warnings']) == 0);
@@ -161,7 +157,7 @@ class gradereport_user_externallib_testcase extends externallib_advanced_testcas
try {
$studentgrade = gradereport_user_external::get_grades_table($course->id, $student1->id);
$this->fail('Exception expected due to not perissions to view other user grades.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('notingroup', $e->errorcode);
}
}
@@ -183,33 +179,33 @@ class gradereport_user_externallib_testcase extends externallib_advanced_testcas
$this->setUser($student1);
$result = gradereport_user_external::view_grade_report($course->id);
$result = external_api::clean_returnvalue(gradereport_user_external::view_grade_report_returns(), $result);
$result = \external_api::clean_returnvalue(gradereport_user_external::view_grade_report_returns(), $result);
$events = $sink->get_events();
$this->assertCount(1, $events);
$event = reset($events);
// Check the event details are correct.
$this->assertInstanceOf('\gradereport_user\event\grade_report_viewed', $event);
$this->assertEquals(context_course::instance($course->id), $event->get_context());
$this->assertEquals(\context_course::instance($course->id), $event->get_context());
$this->assertEquals($USER->id, $event->get_data()['relateduserid']);
$this->setUser($teacher);
$result = gradereport_user_external::view_grade_report($course->id, $student1->id);
$result = external_api::clean_returnvalue(gradereport_user_external::view_grade_report_returns(), $result);
$result = \external_api::clean_returnvalue(gradereport_user_external::view_grade_report_returns(), $result);
$events = $sink->get_events();
$event = reset($events);
$sink->close();
// Check the event details are correct.
$this->assertInstanceOf('\gradereport_user\event\grade_report_viewed', $event);
$this->assertEquals(context_course::instance($course->id), $event->get_context());
$this->assertEquals(\context_course::instance($course->id), $event->get_context());
$this->assertEquals($student1->id, $event->get_data()['relateduserid']);
$this->setUser($student2);
try {
$studentgrade = gradereport_user_external::view_grade_report($course->id, $student1->id);
$this->fail('Exception expected due to not permissions to view other user grades.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('nopermissiontoviewgrades', $e->errorcode);
}
}
@@ -240,7 +236,7 @@ class gradereport_user_externallib_testcase extends externallib_advanced_testcas
grade_set_setting($course->id, 'report_user_showaverage', 1);
$studentgrades = gradereport_user_external::get_grade_items($course->id);
$studentgrades = external_api::clean_returnvalue(gradereport_user_external::get_grade_items_returns(), $studentgrades);
$studentgrades = \external_api::clean_returnvalue(gradereport_user_external::get_grade_items_returns(), $studentgrades);
// No warnings returned.
$this->assertCount(0, $studentgrades['warnings']);
@@ -298,13 +294,13 @@ class gradereport_user_externallib_testcase extends externallib_advanced_testcas
$this->assertEquals(70, $studentgrades['usergrades'][0]['gradeitems'][1]['averageformatted']);
// Now, override and lock a grade.
$gradegrade = grade_grade::fetch(['itemid' => $studentgrades['usergrades'][0]['gradeitems'][0]['id'],
$gradegrade = \grade_grade::fetch(['itemid' => $studentgrades['usergrades'][0]['gradeitems'][0]['id'],
'userid' => $studentgrades['usergrades'][0]['userid']]);
$gradegrade->set_overridden(true);
$gradegrade->set_locked(1);
$studentgrades = gradereport_user_external::get_grade_items($course->id);
$studentgrades = external_api::clean_returnvalue(gradereport_user_external::get_grade_items_returns(), $studentgrades);
$studentgrades = \external_api::clean_returnvalue(gradereport_user_external::get_grade_items_returns(), $studentgrades);
// No warnings returned.
$this->assertCount(0, $studentgrades['warnings']);
@@ -337,7 +333,7 @@ class gradereport_user_externallib_testcase extends externallib_advanced_testcas
$this->setUser($student1);
$studentgrades = gradereport_user_external::get_grade_items($course->id, $student1->id);
$studentgrades = external_api::clean_returnvalue(gradereport_user_external::get_grade_items_returns(), $studentgrades);
$studentgrades = \external_api::clean_returnvalue(gradereport_user_external::get_grade_items_returns(), $studentgrades);
// No warnings returned.
$this->assertCount(0, $studentgrades['warnings']);
@@ -379,11 +375,11 @@ class gradereport_user_externallib_testcase extends externallib_advanced_testcas
$studentgrades['usergrades'][0]['gradeitems'][0]['idnumber']);
// Hide one grade for the user.
$gradegrade = new grade_grade(array('userid' => $student1->id,
$gradegrade = new \grade_grade(array('userid' => $student1->id,
'itemid' => $studentgrades['usergrades'][0]['gradeitems'][0]['id']), true);
$gradegrade->set_hidden(1);
$studentgrades = gradereport_user_external::get_grade_items($course->id, $student1->id);
$studentgrades = external_api::clean_returnvalue(gradereport_user_external::get_grade_items_returns(), $studentgrades);
$studentgrades = \external_api::clean_returnvalue(gradereport_user_external::get_grade_items_returns(), $studentgrades);
// Check we get only the course final grade.
$this->assertCount(1, $studentgrades['usergrades']);
+54 -50
View File
@@ -14,15 +14,10 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Group external PHPunit tests
*
* @package core_group
* @category external
* @copyright 2012 Jerome Mouneyrac
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since Moodle 2.4
*/
namespace core_group;
use core_group_external;
use externallib_advanced_testcase;
defined('MOODLE_INTERNAL') || die();
@@ -32,7 +27,16 @@ require_once($CFG->dirroot . '/webservice/tests/helpers.php');
require_once($CFG->dirroot . '/group/externallib.php');
require_once($CFG->dirroot . '/group/lib.php');
class core_group_externallib_testcase extends externallib_advanced_testcase {
/**
* Group external PHPunit tests
*
* @package core_group
* @category external
* @copyright 2012 Jerome Mouneyrac
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since Moodle 2.4
*/
class externallib_test extends externallib_advanced_testcase {
/**
* Test create_groups
@@ -66,7 +70,7 @@ class core_group_externallib_testcase extends externallib_advanced_testcase {
$group4['description'] = 'Group Test 4 description';
// Set the required capabilities by the external function
$context = context_course::instance($course->id);
$context = \context_course::instance($course->id);
$roleid = $this->assignUserCapability('moodle/course:managegroups', $context->id);
$this->assignUserCapability('moodle/course:view', $context->id, $roleid);
@@ -74,7 +78,7 @@ class core_group_externallib_testcase extends externallib_advanced_testcase {
$groups = core_group_external::create_groups(array($group1, $group2));
// We need to execute the return values cleaning process to simulate the web service server.
$groups = external_api::clean_returnvalue(core_group_external::create_groups_returns(), $groups);
$groups = \external_api::clean_returnvalue(core_group_external::create_groups_returns(), $groups);
// Checks against DB values
$this->assertEquals(2, count($groups));
@@ -93,7 +97,7 @@ class core_group_externallib_testcase extends externallib_advanced_testcase {
$groupcourseid = $group2['courseid'];
break;
default:
throw new moodle_exception('unknowgroupname');
throw new \moodle_exception('unknowgroupname');
break;
}
$this->assertEquals($dbgroup->description, $groupdescription);
@@ -103,7 +107,7 @@ class core_group_externallib_testcase extends externallib_advanced_testcase {
try {
$froups = core_group_external::create_groups(array($group3));
$this->fail('Exception expected due to already existing idnumber.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertInstanceOf('moodle_exception', $e);
$this->assertEquals(get_string('idnumbertaken', 'error'), $e->getMessage());
}
@@ -139,7 +143,7 @@ class core_group_externallib_testcase extends externallib_advanced_testcase {
$group2data['idnumber'] = 'TEST2';
// Set the required capabilities by the external function.
$context = context_course::instance($course->id);
$context = \context_course::instance($course->id);
$roleid = $this->assignUserCapability('moodle/course:managegroups', $context->id);
$this->assignUserCapability('moodle/course:view', $context->id, $roleid);
@@ -170,7 +174,7 @@ class core_group_externallib_testcase extends externallib_advanced_testcase {
$groupdescription = $group2data['description'];
break;
default:
throw new moodle_exception('unknowngroupname');
throw new \moodle_exception('unknowngroupname');
break;
}
$this->assertEquals($dbgroup->description, $groupdescription);
@@ -181,7 +185,7 @@ class core_group_externallib_testcase extends externallib_advanced_testcase {
try {
$groups = core_group_external::update_groups(array($group1data));
$this->fail('Exception expected due to already existing idnumber.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertInstanceOf('moodle_exception', $e);
$this->assertEquals(get_string('idnumbertaken', 'error'), $e->getMessage());
}
@@ -218,7 +222,7 @@ class core_group_externallib_testcase extends externallib_advanced_testcase {
$group2 = self::getDataGenerator()->create_group($group2data);
// Set the required capabilities by the external function
$context = context_course::instance($course->id);
$context = \context_course::instance($course->id);
$roleid = $this->assignUserCapability('moodle/course:managegroups', $context->id);
$this->assignUserCapability('moodle/course:view', $context->id, $roleid);
@@ -226,7 +230,7 @@ class core_group_externallib_testcase extends externallib_advanced_testcase {
$groups = core_group_external::get_groups(array($group1->id, $group2->id));
// We need to execute the return values cleaning process to simulate the web service server.
$groups = external_api::clean_returnvalue(core_group_external::get_groups_returns(), $groups);
$groups = \external_api::clean_returnvalue(core_group_external::get_groups_returns(), $groups);
// Checks against DB values
$this->assertEquals(2, count($groups));
@@ -245,7 +249,7 @@ class core_group_externallib_testcase extends externallib_advanced_testcase {
$groupcourseid = $group2->courseid;
break;
default:
throw new moodle_exception('unknowgroupname');
throw new \moodle_exception('unknowgroupname');
break;
}
$this->assertEquals($dbgroup->description, $groupdescription);
@@ -286,7 +290,7 @@ class core_group_externallib_testcase extends externallib_advanced_testcase {
$group3 = self::getDataGenerator()->create_group($group3data);
// Set the required capabilities by the external function
$context = context_course::instance($course->id);
$context = \context_course::instance($course->id);
$roleid = $this->assignUserCapability('moodle/course:managegroups', $context->id);
$this->assignUserCapability('moodle/course:view', $context->id, $roleid);
@@ -335,7 +339,7 @@ class core_group_externallib_testcase extends externallib_advanced_testcase {
try {
$groupings = core_group_external::create_groupings(array($grouping1data));
$this->fail('Exception expected due to already existing idnumber.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertInstanceOf('moodle_exception', $e);
$this->assertEquals(get_string('idnumbertaken', 'error'), $e->getMessage());
}
@@ -361,7 +365,7 @@ class core_group_externallib_testcase extends externallib_advanced_testcase {
try {
$groupings = core_group_external::update_groupings(array($grouping2data));
$this->fail('Exception expected due to already existing idnumber.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertInstanceOf('moodle_exception', $e);
$this->assertEquals(get_string('idnumbertaken', 'error'), $e->getMessage());
}
@@ -386,14 +390,14 @@ class core_group_externallib_testcase extends externallib_advanced_testcase {
$grouping = self::getDataGenerator()->create_grouping($groupingdata);
// Set the required capabilities by the external function.
$context = context_course::instance($course->id);
$context = \context_course::instance($course->id);
$roleid = $this->assignUserCapability('moodle/course:managegroups', $context->id);
$this->assignUserCapability('moodle/course:view', $context->id, $roleid);
// Call the external function without specifying the optional parameter.
$groupings = core_group_external::get_groupings(array($grouping->id));
// We need to execute the return values cleaning process to simulate the web service server.
$groupings = external_api::clean_returnvalue(core_group_external::get_groupings_returns(), $groupings);
$groupings = \external_api::clean_returnvalue(core_group_external::get_groupings_returns(), $groupings);
$this->assertEquals(1, count($groupings));
@@ -417,7 +421,7 @@ class core_group_externallib_testcase extends externallib_advanced_testcase {
// Call the external function specifying that groups are returned.
$groupings = core_group_external::get_groupings(array($grouping->id), true);
// We need to execute the return values cleaning process to simulate the web service server.
$groupings = external_api::clean_returnvalue(core_group_external::get_groupings_returns(), $groupings);
$groupings = \external_api::clean_returnvalue(core_group_external::get_groupings_returns(), $groupings);
$this->assertEquals(1, count($groupings));
$this->assertEquals(2, count($groupings[0]['groups']));
foreach ($groupings[0]['groups'] as $group) {
@@ -436,7 +440,7 @@ class core_group_externallib_testcase extends externallib_advanced_testcase {
$groupcourseid = $group2->courseid;
break;
default:
throw new moodle_exception('unknowgroupname');
throw new \moodle_exception('unknowgroupname');
break;
}
$this->assertEquals($dbgroup->description, $groupdescription);
@@ -475,7 +479,7 @@ class core_group_externallib_testcase extends externallib_advanced_testcase {
$grouping3 = self::getDataGenerator()->create_grouping($groupingdata3);
// Set the required capabilities by the external function.
$context = context_course::instance($course->id);
$context = \context_course::instance($course->id);
$roleid = $this->assignUserCapability('moodle/course:managegroups', $context->id);
$this->assignUserCapability('moodle/course:view', $context->id, $roleid);
@@ -559,7 +563,7 @@ class core_group_externallib_testcase extends externallib_advanced_testcase {
$this->setUser($student1);
$groups = core_group_external::get_course_user_groups($course->id, $student1->id);
$groups = external_api::clean_returnvalue(core_group_external::get_course_user_groups_returns(), $groups);
$groups = \external_api::clean_returnvalue(core_group_external::get_course_user_groups_returns(), $groups);
// Check that I see my groups.
$this->assertCount(2, $groups['groups']);
$this->assertEquals($course->id, $groups['groups'][0]['courseid']);
@@ -567,7 +571,7 @@ class core_group_externallib_testcase extends externallib_advanced_testcase {
// Check that I only see my groups inside the given grouping.
$groups = core_group_external::get_course_user_groups($course->id, $student1->id, $grouping->id);
$groups = external_api::clean_returnvalue(core_group_external::get_course_user_groups_returns(), $groups);
$groups = \external_api::clean_returnvalue(core_group_external::get_course_user_groups_returns(), $groups);
// Check that I see my groups in the grouping.
$this->assertCount(1, $groups['groups']);
$this->assertEquals($group1->id, $groups['groups'][0]['id']);
@@ -575,13 +579,13 @@ class core_group_externallib_testcase extends externallib_advanced_testcase {
// Check optional parameters (all student 1 courses and current user).
$groups = core_group_external::get_course_user_groups();
$groups = external_api::clean_returnvalue(core_group_external::get_course_user_groups_returns(), $groups);
$groups = \external_api::clean_returnvalue(core_group_external::get_course_user_groups_returns(), $groups);
// Check that I see my groups in all my courses.
$this->assertCount(3, $groups['groups']);
$this->setUser($student2);
$groups = core_group_external::get_course_user_groups($course->id, $student2->id);
$groups = external_api::clean_returnvalue(core_group_external::get_course_user_groups_returns(), $groups);
$groups = \external_api::clean_returnvalue(core_group_external::get_course_user_groups_returns(), $groups);
// Check that I see my groups.
$this->assertCount(1, $groups['groups']);
@@ -591,17 +595,17 @@ class core_group_externallib_testcase extends externallib_advanced_testcase {
$this->setUser($teacher);
$groups = core_group_external::get_course_user_groups($course->id, $student1->id);
$groups = external_api::clean_returnvalue(core_group_external::get_course_user_groups_returns(), $groups);
$groups = \external_api::clean_returnvalue(core_group_external::get_course_user_groups_returns(), $groups);
// Check that a teacher can see student groups in given course.
$this->assertCount(2, $groups['groups']);
$groups = core_group_external::get_course_user_groups($course->id, $student2->id);
$groups = external_api::clean_returnvalue(core_group_external::get_course_user_groups_returns(), $groups);
$groups = \external_api::clean_returnvalue(core_group_external::get_course_user_groups_returns(), $groups);
// Check that a teacher can see student groups in given course.
$this->assertCount(1, $groups['groups']);
$groups = core_group_external::get_course_user_groups(0, $student1->id);
$groups = external_api::clean_returnvalue(core_group_external::get_course_user_groups_returns(), $groups);
$groups = \external_api::clean_returnvalue(core_group_external::get_course_user_groups_returns(), $groups);
// Check that a teacher can see student groups in all the user courses if the teacher is enrolled in the course.
$this->assertCount(2, $groups['groups']); // Teacher only see groups in first course.
$this->assertCount(1, $groups['warnings']); // Enrolment warnings.
@@ -610,7 +614,7 @@ class core_group_externallib_testcase extends externallib_advanced_testcase {
// Enrol teacher in second course.
$this->getDataGenerator()->enrol_user($teacher->id, $anothercourse->id, $teacherrole->id);
$groups = core_group_external::get_course_user_groups(0, $student1->id);
$groups = external_api::clean_returnvalue(core_group_external::get_course_user_groups_returns(), $groups);
$groups = \external_api::clean_returnvalue(core_group_external::get_course_user_groups_returns(), $groups);
// Check that a teacher can see student groups in all the user courses if the teacher is enrolled in the course.
$this->assertCount(3, $groups['groups']);
@@ -619,20 +623,20 @@ class core_group_externallib_testcase extends externallib_advanced_testcase {
// Student can's see other students group.
$groups = core_group_external::get_course_user_groups($course->id, $student2->id);
$groups = external_api::clean_returnvalue(core_group_external::get_course_user_groups_returns(), $groups);
$groups = \external_api::clean_returnvalue(core_group_external::get_course_user_groups_returns(), $groups);
$this->assertCount(1, $groups['warnings']);
$this->assertEquals('cannotmanagegroups', $groups['warnings'][0]['warningcode']);
// Not enrolled course.
$groups = core_group_external::get_course_user_groups($emptycourse->id, $student2->id);
$groups = external_api::clean_returnvalue(core_group_external::get_course_user_groups_returns(), $groups);
$groups = \external_api::clean_returnvalue(core_group_external::get_course_user_groups_returns(), $groups);
$this->assertCount(1, $groups['warnings']);
$this->assertEquals('1', $groups['warnings'][0]['warningcode']);
$this->setUser($teacher);
// Check user checking not enrolled in given course.
$groups = core_group_external::get_course_user_groups($emptycourse->id, $student1->id);
$groups = external_api::clean_returnvalue(core_group_external::get_course_user_groups_returns(), $groups);
$groups = \external_api::clean_returnvalue(core_group_external::get_course_user_groups_returns(), $groups);
$this->assertCount(1, $groups['warnings']);
$this->assertEquals('notenrolled', $groups['warnings'][0]['warningcode']);
}
@@ -689,19 +693,19 @@ class core_group_externallib_testcase extends externallib_advanced_testcase {
// First try possible errors.
try {
$data = core_group_external::get_activity_allowed_groups($cm2->id);
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('requireloginerror', $e->errorcode);
}
try {
$data = core_group_external::get_activity_allowed_groups($cm3->id);
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('requireloginerror', $e->errorcode);
}
// Retrieve my groups.
$groups = core_group_external::get_activity_allowed_groups($cm1->id);
$groups = external_api::clean_returnvalue(core_group_external::get_activity_allowed_groups_returns(), $groups);
$groups = \external_api::clean_returnvalue(core_group_external::get_activity_allowed_groups_returns(), $groups);
$this->assertCount(2, $groups['groups']);
$this->assertFalse($groups['canaccessallgroups']);
@@ -718,20 +722,20 @@ class core_group_externallib_testcase extends externallib_advanced_testcase {
$this->setUser($teacher);
// Retrieve other users groups.
$groups = core_group_external::get_activity_allowed_groups($cm1->id, $student->id);
$groups = external_api::clean_returnvalue(core_group_external::get_activity_allowed_groups_returns(), $groups);
$groups = \external_api::clean_returnvalue(core_group_external::get_activity_allowed_groups_returns(), $groups);
$this->assertCount(2, $groups['groups']);
// We are checking the $student passed as parameter so this will return false.
$this->assertFalse($groups['canaccessallgroups']);
// Check warnings. Trying to get groups for a user not enrolled in course.
$groups = core_group_external::get_activity_allowed_groups($cm1->id, $otherstudent->id);
$groups = external_api::clean_returnvalue(core_group_external::get_activity_allowed_groups_returns(), $groups);
$groups = \external_api::clean_returnvalue(core_group_external::get_activity_allowed_groups_returns(), $groups);
$this->assertCount(1, $groups['warnings']);
$this->assertFalse($groups['canaccessallgroups']);
// Checking teacher groups.
$groups = core_group_external::get_activity_allowed_groups($cm1->id);
$groups = external_api::clean_returnvalue(core_group_external::get_activity_allowed_groups_returns(), $groups);
$groups = \external_api::clean_returnvalue(core_group_external::get_activity_allowed_groups_returns(), $groups);
$this->assertCount(2, $groups['groups']);
// Teachers by default can access all groups.
$this->assertTrue($groups['canaccessallgroups']);
@@ -766,18 +770,18 @@ class core_group_externallib_testcase extends externallib_advanced_testcase {
$this->setUser($student);
$data = core_group_external::get_activity_groupmode($cm1->id);
$data = external_api::clean_returnvalue(core_group_external::get_activity_groupmode_returns(), $data);
$data = \external_api::clean_returnvalue(core_group_external::get_activity_groupmode_returns(), $data);
$this->assertEquals(VISIBLEGROUPS, $data['groupmode']);
try {
$data = core_group_external::get_activity_groupmode($cm2->id);
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('requireloginerror', $e->errorcode);
}
try {
$data = core_group_external::get_activity_groupmode($cm3->id);
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('requireloginerror', $e->errorcode);
}
@@ -814,7 +818,7 @@ class core_group_externallib_testcase extends externallib_advanced_testcase {
$this->assertEquals(0, $memberstotal);
// Set the required capabilities by the external function.
$context = context_course::instance($course->id);
$context = \context_course::instance($course->id);
$roleid = $this->assignUserCapability('moodle/course:managegroups', $context->id);
$this->assignUserCapability('moodle/course:view', $context->id, $roleid);
@@ -877,7 +881,7 @@ class core_group_externallib_testcase extends externallib_advanced_testcase {
$this->assertEquals(3, $memberstotal);
// Set the required capabilities by the external function.
$context = context_course::instance($course->id);
$context = \context_course::instance($course->id);
$roleid = $this->assignUserCapability('moodle/course:managegroups', $context->id);
$this->assignUserCapability('moodle/course:view', $context->id, $roleid);
@@ -14,17 +14,7 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Data generators 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 data generator
@@ -34,7 +24,7 @@ defined('MOODLE_INTERNAL') || die();
* @copyright 2012 Petr Skoda {@link http://skodak.org}
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class core_test_generator_testcase extends advanced_testcase {
class testing_generator_test extends \advanced_testcase {
public function test_get_plugin_generator_good_case() {
$generator = $this->getDataGenerator()->get_plugin_generator('core_question');
$this->assertInstanceOf('core_question_generator', $generator);
@@ -56,7 +46,7 @@ class core_test_generator_testcase extends advanced_testcase {
* Test plugin generator, with no component directory.
*/
public function test_get_plugin_generator_no_component_dir() {
$this->expectException(coding_exception::class);
$this->expectException(\coding_exception::class);
$this->expectExceptionMessage('Component core_completion does not support generators yet. Missing tests/generator/lib.php.');
$generator = $this->getDataGenerator()->get_plugin_generator('core_completion');
}
@@ -72,8 +62,8 @@ class core_test_generator_testcase extends advanced_testcase {
$this->setCurrentTimeStart();
$user = $generator->create_user();
$this->assertEquals($count + 1, $DB->count_records('user'));
$this->assertSame($user->username, core_user::clean_field($user->username, 'username'));
$this->assertSame($user->email, core_user::clean_field($user->email, 'email'));
$this->assertSame($user->username, \core_user::clean_field($user->username, 'username'));
$this->assertSame($user->email, \core_user::clean_field($user->email, 'email'));
$this->assertNotEmpty($user->firstnamephonetic);
$this->assertNotEmpty($user->lastnamephonetic);
$this->assertNotEmpty($user->alternatename);
@@ -155,7 +145,7 @@ class core_test_generator_testcase extends advanced_testcase {
$count = $DB->count_records('cohort');
$cohort = $generator->create_cohort();
$this->assertEquals($count+1, $DB->count_records('cohort'));
$this->assertEquals(context_system::instance()->id, $cohort->contextid);
$this->assertEquals(\context_system::instance()->id, $cohort->contextid);
$this->assertMatchesRegularExpression('/^Cohort \d/', $cohort->name);
$this->assertSame('', $cohort->idnumber);
$this->assertMatchesRegularExpression("/^Description for '{$cohort->name}' \\n/", $cohort->description);
@@ -180,7 +170,7 @@ class core_test_generator_testcase extends advanced_testcase {
$this->assertEquals($course->id, $section->course);
$course = $generator->create_course(array('tags' => 'Cat, Dog'));
$this->assertEquals(array('Cat', 'Dog'), array_values(core_tag_tag::get_item_tags_array('core', 'course', $course->id)));
$this->assertEquals(array('Cat', 'Dog'), array_values(\core_tag_tag::get_item_tags_array('core', 'course', $course->id)));
$scale = $generator->create_scale();
$this->assertNotEmpty($scale);
@@ -210,7 +200,7 @@ class core_test_generator_testcase extends advanced_testcase {
$page = $generator->create_module('page', array('course' => $SITE->id, 'tags' => 'Cat, Dog'));
$this->assertEquals(array('Cat', 'Dog'),
array_values(core_tag_tag::get_item_tags_array('core', 'course_modules', $page->cmid)));
array_values(\core_tag_tag::get_item_tags_array('core', 'course_modules', $page->cmid)));
// Prepare environment to generate modules with all possible options.
@@ -226,7 +216,7 @@ class core_test_generator_testcase extends advanced_testcase {
$course = $generator->create_course(array('enablecompletion' => true));
// Create new grading category in this course.
$grade_category = new grade_category();
$grade_category = new \grade_category();
$grade_category->courseid = $course->id;
$grade_category->fullname = 'Grade category';
$grade_category->insert();
@@ -294,7 +284,7 @@ class core_test_generator_testcase extends advanced_testcase {
$featuregrade);
// We need id of the grading item for the second module to create availability dependency in the 3rd module.
$gradingitem = grade_item::fetch(array('courseid'=>$course->id, 'itemtype'=>'mod', 'itemmodule' => 'assign', 'iteminstance' => $m3->id));
$gradingitem = \grade_item::fetch(array('courseid'=>$course->id, 'itemtype'=>'mod', 'itemmodule' => 'assign', 'iteminstance' => $m3->id));
// Now prepare option to create the 4th module with an availability condition.
$optionsavailability = array(
@@ -333,7 +323,7 @@ class core_test_generator_testcase extends advanced_testcase {
$this->assertEquals($featurecompletionautomatic['completion'], $cm3->completion);
$this->assertEquals($featurecompletionautomatic['completionview'], $cm3->completionview);
$this->assertEquals(0, $cm3->completiongradeitemnumber); // Zero instead of default null since 'completionusegrade' was set.
$gradingitem = grade_item::fetch(array('courseid'=>$course->id, 'itemtype'=>'mod', 'itemmodule' => 'assign', 'iteminstance' => $m3->id));
$gradingitem = \grade_item::fetch(array('courseid'=>$course->id, 'itemtype'=>'mod', 'itemmodule' => 'assign', 'iteminstance' => $m3->id));
$this->assertEquals(0, $gradingitem->grademin);
$this->assertEquals($featuregrade['grade'], $gradingitem->grademax);
$this->assertEquals($featuregrade['gradecat'], $gradingitem->categoryid);
@@ -377,9 +367,9 @@ class core_test_generator_testcase extends advanced_testcase {
$course2 = $this->getDataGenerator()->create_course();
$course3 = $this->getDataGenerator()->create_course();
$context1 = context_course::instance($course1->id);
$context2 = context_course::instance($course2->id);
$context3 = context_course::instance($course3->id);
$context1 = \context_course::instance($course1->id);
$context2 = \context_course::instance($course2->id);
$context3 = \context_course::instance($course3->id);
$user1 = $this->getDataGenerator()->create_user();
$user2 = $this->getDataGenerator()->create_user();
+75 -75
View File
@@ -14,6 +14,13 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
namespace core;
defined('MOODLE_INTERNAL') || die();
global $CFG;
require_once($CFG->libdir . '/externallib.php');
/**
* Unit tests for /lib/externallib.php.
*
@@ -22,14 +29,7 @@
* @copyright 2009 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 . '/externallib.php');
class core_externallib_testcase extends advanced_testcase {
class externallib_test extends \advanced_testcase {
protected $DB;
public function setUp(): void {
@@ -54,7 +54,7 @@ class core_externallib_testcase extends advanced_testcase {
$currentfile = $settings->get_file();
$currentfileurl = $settings->get_fileurl();
$this->assertInstanceOf('external_settings', $settings);
$this->assertInstanceOf(\external_settings::class, $settings);
// Check apis.
$settings->set_file('plugin.php');
@@ -75,9 +75,9 @@ class core_externallib_testcase extends advanced_testcase {
public function test_validate_params() {
$params = array('text'=>'aaa', 'someid'=>'6');
$description = new external_function_parameters(array('someid' => new external_value(PARAM_INT, 'Some int value'),
'text' => new external_value(PARAM_ALPHA, 'Some text value')));
$result = external_api::validate_parameters($description, $params);
$description = new \external_function_parameters(array('someid' => new \external_value(PARAM_INT, 'Some int value'),
'text' => new \external_value(PARAM_ALPHA, 'Some text value')));
$result = \external_api::validate_parameters($description, $params);
$this->assertCount(2, $result);
reset($result);
$this->assertSame('someid', key($result));
@@ -85,9 +85,9 @@ class core_externallib_testcase extends advanced_testcase {
$this->assertSame('aaa', $result['text']);
$params = array('someids'=>array('1', 2, 'a'=>'3'), 'scalar'=>666);
$description = new external_function_parameters(array('someids' => new external_multiple_structure(new external_value(PARAM_INT, 'Some ID')),
'scalar' => new external_value(PARAM_ALPHANUM, 'Some text value')));
$result = external_api::validate_parameters($description, $params);
$description = new \external_function_parameters(array('someids' => new \external_multiple_structure(new \external_value(PARAM_INT, 'Some ID')),
'scalar' => new \external_value(PARAM_ALPHANUM, 'Some text value')));
$result = \external_api::validate_parameters($description, $params);
$this->assertCount(2, $result);
reset($result);
$this->assertSame('someids', key($result));
@@ -95,9 +95,9 @@ class core_externallib_testcase extends advanced_testcase {
$this->assertSame('666', $result['scalar']);
$params = array('text'=>'aaa');
$description = new external_function_parameters(array('someid' => new external_value(PARAM_INT, 'Some int value', false),
'text' => new external_value(PARAM_ALPHA, 'Some text value')));
$result = external_api::validate_parameters($description, $params);
$description = new \external_function_parameters(array('someid' => new \external_value(PARAM_INT, 'Some int value', false),
'text' => new \external_value(PARAM_ALPHA, 'Some text value')));
$result = \external_api::validate_parameters($description, $params);
$this->assertCount(2, $result);
reset($result);
$this->assertSame('someid', key($result));
@@ -105,9 +105,9 @@ class core_externallib_testcase extends advanced_testcase {
$this->assertSame('aaa', $result['text']);
$params = array('text'=>'aaa');
$description = new external_function_parameters(array('someid' => new external_value(PARAM_INT, 'Some int value', false, 6),
'text' => new external_value(PARAM_ALPHA, 'Some text value')));
$result = external_api::validate_parameters($description, $params);
$description = new \external_function_parameters(array('someid' => new \external_value(PARAM_INT, 'Some int value', false, 6),
'text' => new \external_value(PARAM_ALPHA, 'Some text value')));
$result = \external_api::validate_parameters($description, $params);
$this->assertCount(2, $result);
reset($result);
$this->assertSame('someid', key($result));
@@ -116,14 +116,14 @@ class core_externallib_testcase extends advanced_testcase {
}
public function test_external_format_text() {
$settings = external_settings::get_instance();
$settings = \external_settings::get_instance();
$currentraw = $settings->get_raw();
$currentfilter = $settings->get_filter();
$settings->set_raw(true);
$settings->set_filter(false);
$context = context_system::instance();
$context = \context_system::instance();
$test = '$$ \pi $$';
$testformat = FORMAT_MARKDOWN;
@@ -163,7 +163,7 @@ class core_externallib_testcase extends advanced_testcase {
$test = '<p><a id="test"></a><a href="#test">Text</a></p>';
$testformat = FORMAT_HTML;
$correct = array('<p><a></a><a href="#test">Text</a></p>', FORMAT_HTML);
$options = new StdClass();
$options = new \stdClass();
$options->allowid = false;
// Function external_format_text should work with context id or context instance.
$this->assertSame(external_format_text($test, $testformat, $context->id, 'core', '', 0, $options), $correct);
@@ -172,7 +172,7 @@ class core_externallib_testcase extends advanced_testcase {
$test = '<p><a id="test"></a><a href="#test">Text</a></p>'."\n".'Newline';
$testformat = FORMAT_MOODLE;
$correct = array('<p><a id="test"></a><a href="#test">Text</a></p> Newline', FORMAT_HTML);
$options = new StdClass();
$options = new \stdClass();
$options->newlines = false;
// Function external_format_text should work with context id or context instance.
$this->assertSame(external_format_text($test, $testformat, $context->id, 'core', '', 0, $options), $correct);
@@ -181,7 +181,7 @@ class core_externallib_testcase extends advanced_testcase {
$test = '<p><a id="test"></a><a href="#test">Text</a></p>';
$testformat = FORMAT_MOODLE;
$correct = array('<div class="text_to_html">'.$test.'</div>', FORMAT_HTML);
$options = new StdClass();
$options = new \stdClass();
$options->para = true;
// Function external_format_text should work with context id or context instance.
$this->assertSame(external_format_text($test, $testformat, $context->id, 'core', '', 0, $options), $correct);
@@ -190,7 +190,7 @@ class core_externallib_testcase extends advanced_testcase {
$test = '<p><a id="test"></a><a href="#test">Text</a></p>';
$testformat = FORMAT_MOODLE;
$correct = array($test, FORMAT_HTML);
$options = new StdClass();
$options = new \stdClass();
$options->context = $context;
// Function external_format_text should work with context id or context instance.
$this->assertSame(external_format_text($test, $testformat, $context->id, 'core', '', 0, $options), $correct);
@@ -202,19 +202,19 @@ class core_externallib_testcase extends advanced_testcase {
public function test_external_format_string() {
$this->resetAfterTest();
$settings = external_settings::get_instance();
$settings = \external_settings::get_instance();
$currentraw = $settings->get_raw();
$currentfilter = $settings->get_filter();
// Enable multilang filter to on content and heading.
filter_set_global_state('multilang', TEXTFILTER_ON);
filter_set_applies_to_strings('multilang', 1);
$filtermanager = filter_manager::instance();
$filtermanager = \filter_manager::instance();
$filtermanager->reset_caches();
$settings->set_raw(true);
$settings->set_filter(true);
$context = context_system::instance();
$context = \context_system::instance();
$test = '<span lang="en" class="multilang">EN</span><span lang="fr" class="multilang">FR</span> ' .
'<script>hi</script> <h3>there</h3>!';
@@ -261,18 +261,18 @@ class core_externallib_testcase extends advanced_testcase {
*/
public function test_clean_returnvalue_return_php_type() {
$returndesc = new external_single_structure(
$returndesc = new \external_single_structure(
array(
'value' => new external_value(PARAM_RAW, 'Some text', VALUE_OPTIONAL, null, NULL_NOT_ALLOWED)
'value' => new \external_value(PARAM_RAW, 'Some text', VALUE_OPTIONAL, null, NULL_NOT_ALLOWED)
)
);
// Check return type on exception because the external values does not allow NULL values.
$testdata = array('value' => null);
try {
$cleanedvalue = external_api::clean_returnvalue($returndesc, $testdata);
} catch (moodle_exception $e) {
$this->assertInstanceOf('invalid_response_exception', $e);
$cleanedvalue = \external_api::clean_returnvalue($returndesc, $testdata);
} catch (\moodle_exception $e) {
$this->assertInstanceOf(\invalid_response_exception::class, $e);
$this->assertStringContainsString('of PHP type "NULL"', $e->debuginfo);
}
}
@@ -283,32 +283,32 @@ class core_externallib_testcase extends advanced_testcase {
public function test_clean_returnvalue() {
// Build some return value decription.
$returndesc = new external_multiple_structure(
new external_single_structure(
$returndesc = new \external_multiple_structure(
new \external_single_structure(
array(
'object' => new external_single_structure(
array('value1' => new external_value(PARAM_INT, 'this is a int'))),
'value2' => new external_value(PARAM_TEXT, 'some text', VALUE_OPTIONAL))
'object' => new \external_single_structure(
array('value1' => new \external_value(PARAM_INT, 'this is a int'))),
'value2' => new \external_value(PARAM_TEXT, 'some text', VALUE_OPTIONAL))
));
// Clean an object (it should be cast into an array).
$object = new stdClass();
$object = new \stdClass();
$object->value1 = 1;
$singlestructure['object'] = $object;
$singlestructure['value2'] = 'Some text';
$testdata = array($singlestructure);
$cleanedvalue = external_api::clean_returnvalue($returndesc, $testdata);
$cleanedvalue = \external_api::clean_returnvalue($returndesc, $testdata);
$cleanedsinglestructure = array_pop($cleanedvalue);
$this->assertSame($object->value1, $cleanedsinglestructure['object']['value1']);
$this->assertSame($singlestructure['value2'], $cleanedsinglestructure['value2']);
// Missing VALUE_OPTIONAL.
$object = new stdClass();
$object = new \stdClass();
$object->value1 = 1;
$singlestructure = new stdClass();
$singlestructure = new \stdClass();
$singlestructure->object = $object;
$testdata = array($singlestructure);
$cleanedvalue = external_api::clean_returnvalue($returndesc, $testdata);
$cleanedvalue = \external_api::clean_returnvalue($returndesc, $testdata);
$cleanedsinglestructure = array_pop($cleanedvalue);
$this->assertSame($object->value1, $cleanedsinglestructure['object']['value1']);
$this->assertArrayNotHasKey('value2', $cleanedsinglestructure);
@@ -321,7 +321,7 @@ class core_externallib_testcase extends advanced_testcase {
$singlestructure['value2'] = 'Some text';
$singlestructure['unknownvalue'] = 'Some text to ignore';
$testdata = array($singlestructure);
$cleanedvalue = external_api::clean_returnvalue($returndesc, $testdata);
$cleanedvalue = \external_api::clean_returnvalue($returndesc, $testdata);
$cleanedsinglestructure = array_pop($cleanedvalue);
$this->assertSame($object['value1'], $cleanedsinglestructure['object']['value1']);
$this->assertSame($singlestructure['value2'], $cleanedsinglestructure['value2']);
@@ -334,15 +334,15 @@ class core_externallib_testcase extends advanced_testcase {
$singlestructure['value2'] = 'Some text';
$testdata = array($singlestructure);
$this->expectException('invalid_response_exception');
$cleanedvalue = external_api::clean_returnvalue($returndesc, $testdata);
$cleanedvalue = \external_api::clean_returnvalue($returndesc, $testdata);
}
/*
* Test external_api::get_context_from_params().
* Test \external_api::get_context_from_params().
*/
public function test_get_context_from_params() {
$this->resetAfterTest(true);
$course = $this->getDataGenerator()->create_course();
$realcontext = context_course::instance($course->id);
$realcontext = \context_course::instance($course->id);
// Use context id.
$fetchedcontext = test_exernal_api::get_context_wrapper(array("contextid" => $realcontext->id));
@@ -356,26 +356,26 @@ class core_externallib_testcase extends advanced_testcase {
try {
$fetchedcontext = test_exernal_api::get_context_wrapper(array("contextid" => 0));
$this->fail('Exception expected from get_context_wrapper()');
} catch (moodle_exception $e) {
$this->assertInstanceOf('invalid_parameter_exception', $e);
} catch (\moodle_exception $e) {
$this->assertInstanceOf(\invalid_parameter_exception::class, $e);
}
try {
$fetchedcontext = test_exernal_api::get_context_wrapper(array("instanceid" => 0));
$this->fail('Exception expected from get_context_wrapper()');
} catch (moodle_exception $e) {
$this->assertInstanceOf('invalid_parameter_exception', $e);
} catch (\moodle_exception $e) {
$this->assertInstanceOf(\invalid_parameter_exception::class, $e);
}
try {
$fetchedcontext = test_exernal_api::get_context_wrapper(array("contextid" => null));
$this->fail('Exception expected from get_context_wrapper()');
} catch (moodle_exception $e) {
$this->assertInstanceOf('invalid_parameter_exception', $e);
} catch (\moodle_exception $e) {
$this->assertInstanceOf(\invalid_parameter_exception::class, $e);
}
// Tests for context with instanceid equal to 0 (System context).
$realcontext = context_system::instance();
$realcontext = \context_system::instance();
$fetchedcontext = test_exernal_api::get_context_wrapper(array("contextlevel" => "system", "instanceid" => 0));
$this->assertEquals($realcontext, $fetchedcontext);
@@ -385,7 +385,7 @@ class core_externallib_testcase extends advanced_testcase {
}
/*
* Test external_api::get_context()_from_params parameter validation.
* Test \external_api::get_context()_from_params parameter validation.
*/
public function test_get_context_params() {
global $USER;
@@ -396,7 +396,7 @@ class core_externallib_testcase extends advanced_testcase {
}
/*
* Test external_api::get_context()_from_params parameter validation.
* Test \external_api::get_context()_from_params parameter validation.
*/
public function test_get_context_params2() {
global $USER;
@@ -407,7 +407,7 @@ class core_externallib_testcase extends advanced_testcase {
}
/*
* Test external_api::get_context()_from_params parameter validation.
* Test \external_api::get_context()_from_params parameter validation.
*/
public function test_get_context_params3() {
global $USER;
@@ -437,14 +437,14 @@ class core_externallib_testcase extends advanced_testcase {
* @dataProvider all_external_info_provider
*/
public function test_all_external_info($f) {
$desc = external_api::external_function_info($f);
$desc = \external_api::external_function_info($f);
$this->assertNotEmpty($desc->name);
$this->assertNotEmpty($desc->classname);
$this->assertNotEmpty($desc->methodname);
$this->assertEquals($desc->component, clean_param($desc->component, PARAM_COMPONENT));
$this->assertInstanceOf('external_function_parameters', $desc->parameters_desc);
$this->assertInstanceOf(\external_function_parameters::class, $desc->parameters_desc);
if ($desc->returns_desc != null) {
$this->assertInstanceOf('external_description', $desc->returns_desc);
$this->assertInstanceOf(\external_description::class, $desc->returns_desc);
}
}
@@ -459,7 +459,7 @@ class core_externallib_testcase extends advanced_testcase {
$courseids = array($c1->id, $c2->id, $c3->id);
$this->setAdminUser();
list($courses, $warnings) = external_util::validate_courses($courseids);
list($courses, $warnings) = \external_util::validate_courses($courseids);
$this->assertEmpty($warnings);
$this->assertCount(3, $courses);
$this->assertArrayHasKey($c1->id, $courses);
@@ -470,7 +470,7 @@ class core_externallib_testcase extends advanced_testcase {
$this->assertEquals($c3->id, $courses[$c3->id]->id);
$this->setUser($u1);
list($courses, $warnings) = external_util::validate_courses($courseids);
list($courses, $warnings) = \external_util::validate_courses($courseids);
$this->assertCount(2, $warnings);
$this->assertEquals($c2->id, $warnings[0]['itemid']);
$this->assertEquals($c3->id, $warnings[1]['itemid']);
@@ -495,7 +495,7 @@ class core_externallib_testcase extends advanced_testcase {
$courseids = array($c1->id, $c2->id, $c3->id);
$this->setUser($u1);
list($courses, $warnings) = external_util::validate_courses($courseids, [], false, true);
list($courses, $warnings) = \external_util::validate_courses($courseids, [], false, true);
$this->assertCount(2, $warnings);
$this->assertEquals($c2->id, $warnings[0]['itemid']);
$this->assertEquals($c3->id, $warnings[1]['itemid']);
@@ -523,7 +523,7 @@ class core_externallib_testcase extends advanced_testcase {
$courses = array($c2->id => $c2, $c3->id => $c3, $c4->id => $c4);
$this->setUser($u1);
list($courses, $warnings) = external_util::validate_courses($courseids, $courses);
list($courses, $warnings) = \external_util::validate_courses($courseids, $courses);
$this->assertCount(2, $courses);
$this->assertCount(1, $warnings);
$this->assertArrayHasKey($c1->id, $courses);
@@ -544,7 +544,7 @@ class core_externallib_testcase extends advanced_testcase {
$this->setAdminUser();
$category = $this->getDataGenerator()->create_category();
$params = array(
'contextid' => context_coursecat::instance($category->id)->id,
'contextid' => \context_coursecat::instance($category->id)->id,
'name' => 'aaagrrryyy',
'idnumber' => '',
'description' => ''
@@ -555,7 +555,7 @@ class core_externallib_testcase extends advanced_testcase {
$beforepage = $PAGE;
$beforecourse = $COURSE;
$params = array('cohortids' => array($cohort1->id, $cohort2->id));
$result = external_api::call_external_function('core_cohort_get_cohorts', $params);
$result = \external_api::call_external_function('core_cohort_get_cohorts', $params);
$this->assertSame($beforepage, $PAGE);
$this->assertSame($beforecourse, $COURSE);
@@ -566,7 +566,7 @@ class core_externallib_testcase extends advanced_testcase {
$beforepage = $PAGE;
$beforecourse = $COURSE;
$params = array('courseid' => $course->id, 'options' => array());
$result = external_api::call_external_function('core_enrol_get_enrolled_users', $params);
$result = \external_api::call_external_function('core_enrol_get_enrolled_users', $params);
$this->assertSame($beforepage, $PAGE);
$this->assertSame($beforecourse, $COURSE);
@@ -575,7 +575,7 @@ class core_externallib_testcase extends advanced_testcase {
require_once($CFG->dirroot . '/lib/tests/fixtures/test_external_function_throwable.php');
// Call our test function.
$result = test_external_function_throwable::call_external_function('core_throw_exception', array(), false);
$result = \test_external_function_throwable::call_external_function('core_throw_exception', array(), false);
$this->assertTrue($result['error']);
$this->assertArrayHasKey('exception', $result);
@@ -583,7 +583,7 @@ class core_externallib_testcase extends advanced_testcase {
}
/**
* Text external_util::get_area_files
* Text \external_util::get_area_files
*/
public function test_external_util_get_area_files() {
global $CFG, $DB;
@@ -622,7 +622,7 @@ class core_externallib_testcase extends advanced_testcase {
'isexternalfile' => false,
);
// Get all the files for the area.
$files = external_util::get_area_files($context, $component, $filearea, false);
$files = \external_util::get_area_files($context, $component, $filearea, false);
$this->assertEquals($expectedfiles, $files);
$DB->method('get_in_or_equal')->willReturn([
@@ -631,7 +631,7 @@ class core_externallib_testcase extends advanced_testcase {
]);
// Get just the file indicated by $itemid.
$files = external_util::get_area_files($context, $component, $filearea, $itemid);
$files = \external_util::get_area_files($context, $component, $filearea, $itemid);
$this->assertEquals($expectedfiles, $files);
}
@@ -641,7 +641,7 @@ class core_externallib_testcase extends advanced_testcase {
*/
public function test_external_files() {
$description = new external_files();
$description = new \external_files();
// First check that the expected default values and keys are returned.
$expectedkeys = array_flip(array('filename', 'filepath', 'filesize', 'fileurl', 'timemodified', 'mimetype',
@@ -686,7 +686,7 @@ class core_externallib_testcase extends advanced_testcase {
/*
* Just a wrapper to access protected apis for testing
*/
class test_exernal_api extends external_api {
class test_exernal_api extends \external_api {
public static function get_context_wrapper($params) {
return self::get_context_from_params($params);
@@ -14,14 +14,10 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* External airnotifier functions unit tests
*
* @package message_airnotifier
* @category external
* @copyright 2012 Jerome Mouneyrac
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
namespace message_airnotifier;
use externallib_advanced_testcase;
use message_airnotifier_external;
defined('MOODLE_INTERNAL') || die();
@@ -37,7 +33,7 @@ require_once($CFG->dirroot . '/webservice/tests/helpers.php');
* @copyright 2012 Jerome Mouneyrac
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class message_airnotifier_external_testcase extends externallib_advanced_testcase {
class externallib_test extends externallib_advanced_testcase {
/**
* Tests set up
@@ -60,7 +56,7 @@ class message_airnotifier_external_testcase extends externallib_advanced_testcas
// In a clean installation, it should be not configured.
$configured = message_airnotifier_external::is_system_configured();
$configured = external_api::clean_returnvalue(message_airnotifier_external::is_system_configured_returns(), $configured);
$configured = \external_api::clean_returnvalue(message_airnotifier_external::is_system_configured_returns(), $configured);
$this->assertEquals(0, $configured);
// Fake configuration.
@@ -69,7 +65,7 @@ class message_airnotifier_external_testcase extends externallib_advanced_testcas
$DB->set_field('message_processors', 'enabled', 1, array('name' => 'airnotifier'));
$configured = message_airnotifier_external::is_system_configured();
$configured = external_api::clean_returnvalue(message_airnotifier_external::is_system_configured_returns(), $configured);
$configured = \external_api::clean_returnvalue(message_airnotifier_external::is_system_configured_returns(), $configured);
$this->assertEquals(1, $configured);
}
@@ -95,7 +91,7 @@ class message_airnotifier_external_testcase extends externallib_advanced_testcas
$preferences = message_airnotifier_external::are_notification_preferences_configured($params);
$returnsdescription = message_airnotifier_external::are_notification_preferences_configured_returns();
$preferences = external_api::clean_returnvalue($returnsdescription, $preferences);
$preferences = \external_api::clean_returnvalue($returnsdescription, $preferences);
$expected = array(
array(
@@ -111,7 +107,7 @@ class message_airnotifier_external_testcase extends externallib_advanced_testcas
// Now, remove one user.
delete_user($user2);
$preferences = message_airnotifier_external::are_notification_preferences_configured($params);
$preferences = external_api::clean_returnvalue($returnsdescription, $preferences);
$preferences = \external_api::clean_returnvalue($returnsdescription, $preferences);
$this->assertEquals(1, count($preferences['users']));
$this->assertEquals($expected, $preferences['users']);
$this->assertEquals(2, count($preferences['warnings']));
@@ -119,13 +115,13 @@ class message_airnotifier_external_testcase extends externallib_advanced_testcas
// Now, remove one user1 preference (the user still has one prefernce for airnotifier).
unset_user_preference('message_provider_moodle_instantmessage_loggedin', $user1);
$preferences = message_airnotifier_external::are_notification_preferences_configured($params);
$preferences = external_api::clean_returnvalue($returnsdescription, $preferences);
$preferences = \external_api::clean_returnvalue($returnsdescription, $preferences);
$this->assertEquals($expected, $preferences['users']);
// Delete the last user1 preference.
unset_user_preference('message_provider_moodle_instantmessage_loggedoff', $user1);
$preferences = message_airnotifier_external::are_notification_preferences_configured($params);
$preferences = external_api::clean_returnvalue($returnsdescription, $preferences);
$preferences = \external_api::clean_returnvalue($returnsdescription, $preferences);
$expected = array(
array(
'userid' => $user1->id,
@@ -147,7 +143,7 @@ class message_airnotifier_external_testcase extends externallib_advanced_testcas
// System not configured.
$devices = message_airnotifier_external::get_user_devices('');
$devices = external_api::clean_returnvalue(message_airnotifier_external::get_user_devices_returns(), $devices);
$devices = \external_api::clean_returnvalue(message_airnotifier_external::get_user_devices_returns(), $devices);
$this->assertCount(1, $devices['warnings']);
$this->assertEquals('systemnotconfigured', $devices['warnings'][0]['warningcode']);
@@ -158,7 +154,7 @@ class message_airnotifier_external_testcase extends externallib_advanced_testcas
// Get devices.
$devices = message_airnotifier_external::get_user_devices('');
$devices = external_api::clean_returnvalue(message_airnotifier_external::get_user_devices_returns(), $devices);
$devices = \external_api::clean_returnvalue(message_airnotifier_external::get_user_devices_returns(), $devices);
$this->assertCount(0, $devices['warnings']);
// No devices, unfortunatelly we cannot create devices (we can't mock airnotifier server).
$this->assertCount(0, $devices['devices']);
@@ -213,13 +209,13 @@ class message_airnotifier_external_testcase extends externallib_advanced_testcas
// Disable and enable.
$result = message_airnotifier_external::enable_device($airnotifierdevid, false);
$result = external_api::clean_returnvalue(message_airnotifier_external::enable_device_returns(), $result);
$result = \external_api::clean_returnvalue(message_airnotifier_external::enable_device_returns(), $result);
$this->assertCount(0, $result['warnings']);
$this->assertTrue($result['success']);
$this->assertEquals(0, $DB->get_field('message_airnotifier_devices', 'enable', array('id' => $airnotifierdevid)));
$result = message_airnotifier_external::enable_device($airnotifierdevid, true);
$result = external_api::clean_returnvalue(message_airnotifier_external::enable_device_returns(), $result);
$result = \external_api::clean_returnvalue(message_airnotifier_external::enable_device_returns(), $result);
$this->assertCount(0, $result['warnings']);
$this->assertTrue($result['success']);
$this->assertEquals(1, $DB->get_field('message_airnotifier_devices', 'enable', array('id' => $airnotifierdevid)));
@@ -14,13 +14,10 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* External message popup functions unit tests
*
* @package message_popup
* @copyright 2016 Ryan Wyllie <[email protected]>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
namespace message_popup;
use message_popup_external;
use message_popup_test_helper;
defined('MOODLE_INTERNAL') || die();
@@ -33,10 +30,11 @@ require_once($CFG->dirroot . '/message/output/popup/tests/base.php');
/**
* Class for external message popup functions unit tests.
*
* @package message_popup
* @copyright 2016 Ryan Wyllie <[email protected]>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class message_popup_externallib_testcase extends advanced_testcase {
class externallib_test extends \advanced_testcase {
use message_popup_test_helper;
/**
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+16 -21
View File
@@ -14,15 +14,10 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* External mod_book functions unit tests
*
* @package mod_book
* @category external
* @copyright 2015 Juan Leyva <[email protected]>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since Moodle 3.0
*/
namespace mod_book;
use externallib_advanced_testcase;
use mod_book_external;
defined('MOODLE_INTERNAL') || die();
@@ -39,7 +34,7 @@ require_once($CFG->dirroot . '/webservice/tests/helpers.php');
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since Moodle 3.0
*/
class mod_book_external_testcase extends externallib_advanced_testcase {
class externallib_test extends externallib_advanced_testcase {
/**
* Test view_book
@@ -57,14 +52,14 @@ class mod_book_external_testcase extends externallib_advanced_testcase {
$chapter = $bookgenerator->create_chapter(array('bookid' => $book->id));
$chapterhidden = $bookgenerator->create_chapter(array('bookid' => $book->id, 'hidden' => 1));
$context = context_module::instance($book->cmid);
$context = \context_module::instance($book->cmid);
$cm = get_coursemodule_from_instance('book', $book->id);
// Test invalid instance id.
try {
mod_book_external::view_book(0);
$this->fail('Exception expected due to invalid mod_book instance id.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('invalidrecord', $e->errorcode);
}
@@ -74,7 +69,7 @@ class mod_book_external_testcase extends externallib_advanced_testcase {
try {
mod_book_external::view_book($book->id, 0);
$this->fail('Exception expected due to not enrolled user.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('requireloginerror', $e->errorcode);
}
@@ -86,7 +81,7 @@ class mod_book_external_testcase extends externallib_advanced_testcase {
$sink = $this->redirectEvents();
$result = mod_book_external::view_book($book->id, 0);
$result = external_api::clean_returnvalue(mod_book_external::view_book_returns(), $result);
$result = \external_api::clean_returnvalue(mod_book_external::view_book_returns(), $result);
$events = $sink->get_events();
$this->assertCount(2, $events);
@@ -105,7 +100,7 @@ class mod_book_external_testcase extends externallib_advanced_testcase {
$this->assertEquals($chapter->id, $event->objectid);
$result = mod_book_external::view_book($book->id, $chapter->id);
$result = external_api::clean_returnvalue(mod_book_external::view_book_returns(), $result);
$result = \external_api::clean_returnvalue(mod_book_external::view_book_returns(), $result);
$events = $sink->get_events();
// We expect a total of 3 events.
@@ -115,7 +110,7 @@ class mod_book_external_testcase extends externallib_advanced_testcase {
try {
mod_book_external::view_book($book->id, $chapterhidden->id);
$this->fail('Exception expected due to missing capability.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('errorchapter', $e->errorcode);
}
@@ -127,7 +122,7 @@ class mod_book_external_testcase extends externallib_advanced_testcase {
try {
mod_book_external::view_book($book->id, 0);
$this->fail('Exception expected due to missing capability.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('nopermissions', $e->errorcode);
}
@@ -161,7 +156,7 @@ class mod_book_external_testcase extends externallib_advanced_testcase {
$books = mod_book_external::get_books_by_courses();
// We need to execute the return values cleaning process to simulate the web service server.
$books = external_api::clean_returnvalue(mod_book_external::get_books_by_courses_returns(), $books);
$books = \external_api::clean_returnvalue(mod_book_external::get_books_by_courses_returns(), $books);
$this->assertCount(1, $books['books']);
$this->assertEquals('First Book', $books['books'][0]['name']);
// We see 10 fields.
@@ -173,7 +168,7 @@ class mod_book_external_testcase extends externallib_advanced_testcase {
// Student1 is not enrolled in course2. The webservice will return a warning!
$books = mod_book_external::get_books_by_courses(array($course2->id));
// We need to execute the return values cleaning process to simulate the web service server.
$books = external_api::clean_returnvalue(mod_book_external::get_books_by_courses_returns(), $books);
$books = \external_api::clean_returnvalue(mod_book_external::get_books_by_courses_returns(), $books);
$this->assertCount(0, $books['books']);
$this->assertEquals(1, $books['warnings'][0]['warningcode']);
@@ -182,7 +177,7 @@ class mod_book_external_testcase extends externallib_advanced_testcase {
// As Admin we can see this book.
$books = mod_book_external::get_books_by_courses(array($course2->id));
// We need to execute the return values cleaning process to simulate the web service server.
$books = external_api::clean_returnvalue(mod_book_external::get_books_by_courses_returns(), $books);
$books = \external_api::clean_returnvalue(mod_book_external::get_books_by_courses_returns(), $books);
$this->assertCount(1, $books['books']);
$this->assertEquals('Second Book', $books['books'][0]['name']);
@@ -195,7 +190,7 @@ class mod_book_external_testcase extends externallib_advanced_testcase {
self::getDataGenerator()->enrol_user($student1->id, $course2->id, $studentrole->id);
$this->setUser($student1);
$books = mod_book_external::get_books_by_courses();
$books = external_api::clean_returnvalue(mod_book_external::get_books_by_courses_returns(), $books);
$books = \external_api::clean_returnvalue(mod_book_external::get_books_by_courses_returns(), $books);
$this->assertCount(2, $books['books']);
}
+4 -10
View File
@@ -14,22 +14,16 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Genarator tests.
*
* @package mod_book
* @copyright 2013 Frédéric Massart
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
namespace mod_book;
/**
* Genarator tests class.
* Generator tests class.
*
* @package mod_book
* @copyright 2013 Frédéric Massart
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class mod_book_generator_testcase extends advanced_testcase {
class generator_test extends \advanced_testcase {
public function test_create_instance() {
global $DB;
@@ -68,7 +62,7 @@ class mod_book_generator_testcase extends advanced_testcase {
$this->assertEquals('Oops', $DB->get_field_select('book_chapters', 'title', 'id = :id', array('id' => $chapter->id)));
$this->assertEquals('Yay!', $DB->get_field_select('book_chapters', 'content', 'id = :id', array('id' => $chapter->id)));
$this->assertEquals(array('Cats', 'mice'),
array_values(core_tag_tag::get_item_tags_array('mod_book', 'book_chapters', $chapter->id)));
array_values(\core_tag_tag::get_item_tags_array('mod_book', 'book_chapters', $chapter->id)));
$chapter = $bookgenerator->create_content($book);
$this->assertEquals(3, $DB->count_records('book_chapters', array('bookid' => $book->id)));
+36 -41
View File
@@ -14,15 +14,10 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* External mod_chat functions unit tests
*
* @package mod_chat
* @category external
* @copyright 2015 Juan Leyva <[email protected]>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since Moodle 3.0
*/
namespace mod_chat;
use externallib_advanced_testcase;
use mod_chat_external;
defined('MOODLE_INTERNAL') || die();
@@ -39,7 +34,7 @@ require_once($CFG->dirroot . '/webservice/tests/helpers.php');
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since Moodle 3.0
*/
class mod_chat_external_testcase extends externallib_advanced_testcase {
class externallib_test extends externallib_advanced_testcase {
/**
* Test login user
@@ -60,7 +55,7 @@ class mod_chat_external_testcase extends externallib_advanced_testcase {
$this->getDataGenerator()->enrol_user($user->id, $course->id, $studentrole->id);
$result = mod_chat_external::login_user($chat->id);
$result = external_api::clean_returnvalue(mod_chat_external::login_user_returns(), $result);
$result = \external_api::clean_returnvalue(mod_chat_external::login_user_returns(), $result);
// Test session started.
$sid = $DB->get_field('chat_users', 'sid', array('userid' => $user->id, 'chatid' => $chat->id));
@@ -90,15 +85,15 @@ class mod_chat_external_testcase extends externallib_advanced_testcase {
$this->getDataGenerator()->enrol_user($user2->id, $course->id, $studentrole->id);
$result = mod_chat_external::login_user($chat->id);
$result = external_api::clean_returnvalue(mod_chat_external::login_user_returns(), $result);
$result = \external_api::clean_returnvalue(mod_chat_external::login_user_returns(), $result);
$this->setUser($user2);
$result = mod_chat_external::login_user($chat->id);
$result = external_api::clean_returnvalue(mod_chat_external::login_user_returns(), $result);
$result = \external_api::clean_returnvalue(mod_chat_external::login_user_returns(), $result);
// Get users.
$result = mod_chat_external::get_chat_users($result['chatsid']);
$result = external_api::clean_returnvalue(mod_chat_external::get_chat_users_returns(), $result);
$result = \external_api::clean_returnvalue(mod_chat_external::get_chat_users_returns(), $result);
// Check correct users.
$this->assertCount(2, $result['users']);
@@ -131,16 +126,16 @@ class mod_chat_external_testcase extends externallib_advanced_testcase {
$this->getDataGenerator()->enrol_user($user->id, $course->id, $studentrole->id);
$result = mod_chat_external::login_user($chat->id);
$result = external_api::clean_returnvalue(mod_chat_external::login_user_returns(), $result);
$result = \external_api::clean_returnvalue(mod_chat_external::login_user_returns(), $result);
$chatsid = $result['chatsid'];
$result = mod_chat_external::send_chat_message($chatsid, 'hello!');
$result = external_api::clean_returnvalue(mod_chat_external::send_chat_message_returns(), $result);
$result = \external_api::clean_returnvalue(mod_chat_external::send_chat_message_returns(), $result);
// Test messages received.
$result = mod_chat_external::get_chat_latest_messages($chatsid, 0);
$result = external_api::clean_returnvalue(mod_chat_external::get_chat_latest_messages_returns(), $result);
$result = \external_api::clean_returnvalue(mod_chat_external::get_chat_latest_messages_returns(), $result);
foreach ($result['messages'] as $message) {
// Ommit system messages, like user just joined in.
@@ -163,14 +158,14 @@ class mod_chat_external_testcase extends externallib_advanced_testcase {
$this->setAdminUser();
$course = $this->getDataGenerator()->create_course();
$chat = $this->getDataGenerator()->create_module('chat', array('course' => $course->id));
$context = context_module::instance($chat->cmid);
$context = \context_module::instance($chat->cmid);
$cm = get_coursemodule_from_instance('chat', $chat->id);
// Test invalid instance id.
try {
mod_chat_external::view_chat(0);
$this->fail('Exception expected due to invalid mod_chat instance id.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('invalidrecord', $e->errorcode);
}
@@ -180,7 +175,7 @@ class mod_chat_external_testcase extends externallib_advanced_testcase {
try {
mod_chat_external::view_chat($chat->id);
$this->fail('Exception expected due to not enrolled user.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('requireloginerror', $e->errorcode);
}
@@ -192,7 +187,7 @@ class mod_chat_external_testcase extends externallib_advanced_testcase {
$sink = $this->redirectEvents();
$result = mod_chat_external::view_chat($chat->id);
$result = external_api::clean_returnvalue(mod_chat_external::view_chat_returns(), $result);
$result = \external_api::clean_returnvalue(mod_chat_external::view_chat_returns(), $result);
$events = $sink->get_events();
$this->assertCount(1, $events);
@@ -214,7 +209,7 @@ class mod_chat_external_testcase extends externallib_advanced_testcase {
try {
mod_chat_external::view_chat($chat->id);
$this->fail('Exception expected due to missing capability.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('nopermissions', $e->errorcode);
}
}
@@ -251,7 +246,7 @@ class mod_chat_external_testcase extends externallib_advanced_testcase {
$chats = mod_chat_external::get_chats_by_courses();
// We need to execute the return values cleaning process to simulate the web service server.
$chats = external_api::clean_returnvalue(mod_chat_external::get_chats_by_courses_returns(), $chats);
$chats = \external_api::clean_returnvalue(mod_chat_external::get_chats_by_courses_returns(), $chats);
$this->assertCount(1, $chats['chats']);
$this->assertEquals('First Chat', $chats['chats'][0]['name']);
// We see 12 fields.
@@ -263,7 +258,7 @@ class mod_chat_external_testcase extends externallib_advanced_testcase {
// Student1 is not enrolled in course2. The webservice will return a warning!
$chats = mod_chat_external::get_chats_by_courses(array($course2->id));
// We need to execute the return values cleaning process to simulate the web service server.
$chats = external_api::clean_returnvalue(mod_chat_external::get_chats_by_courses_returns(), $chats);
$chats = \external_api::clean_returnvalue(mod_chat_external::get_chats_by_courses_returns(), $chats);
$this->assertCount(0, $chats['chats']);
$this->assertEquals(1, $chats['warnings'][0]['warningcode']);
@@ -272,7 +267,7 @@ class mod_chat_external_testcase extends externallib_advanced_testcase {
// As Admin we can see this chat.
$chats = mod_chat_external::get_chats_by_courses(array($course2->id));
// We need to execute the return values cleaning process to simulate the web service server.
$chats = external_api::clean_returnvalue(mod_chat_external::get_chats_by_courses_returns(), $chats);
$chats = \external_api::clean_returnvalue(mod_chat_external::get_chats_by_courses_returns(), $chats);
$this->assertCount(1, $chats['chats']);
$this->assertEquals('Second Chat', $chats['chats'][0]['name']);
@@ -286,7 +281,7 @@ class mod_chat_external_testcase extends externallib_advanced_testcase {
self::getDataGenerator()->enrol_user($student1->id, $course2->id, $studentrole->id);
$this->setUser($student1);
$chats = mod_chat_external::get_chats_by_courses();
$chats = external_api::clean_returnvalue(mod_chat_external::get_chats_by_courses_returns(), $chats);
$chats = \external_api::clean_returnvalue(mod_chat_external::get_chats_by_courses_returns(), $chats);
$this->assertCount(2, $chats['chats']);
}
@@ -305,7 +300,7 @@ class mod_chat_external_testcase extends externallib_advanced_testcase {
$chat = $this->getDataGenerator()->create_module('chat', array('course' => $course->id));
$result = mod_chat_external::get_sessions($chat->id);
$result = external_api::clean_returnvalue(mod_chat_external::get_sessions_returns(), $result);
$result = \external_api::clean_returnvalue(mod_chat_external::get_sessions_returns(), $result);
$this->assertEmpty($result['sessions']);
$this->assertEmpty($result['warnings']);
}
@@ -326,7 +321,7 @@ class mod_chat_external_testcase extends externallib_advanced_testcase {
$chat = $this->getDataGenerator()->create_module('chat', array('course' => $course->id, 'studentlogs' => 0));
// The admin has permissions to check logs.
$result = mod_chat_external::get_sessions($chat->id);
$result = external_api::clean_returnvalue(mod_chat_external::get_sessions_returns(), $result);
$result = \external_api::clean_returnvalue(mod_chat_external::get_sessions_returns(), $result);
$this->assertEmpty($result['sessions']);
$this->assertEmpty($result['warnings']);
@@ -362,20 +357,20 @@ class mod_chat_external_testcase extends externallib_advanced_testcase {
// Start a chat and send just one message.
$result = mod_chat_external::login_user($chat->id);
$result = external_api::clean_returnvalue(mod_chat_external::login_user_returns(), $result);
$result = \external_api::clean_returnvalue(mod_chat_external::login_user_returns(), $result);
$chatsid = $result['chatsid'];
$result = mod_chat_external::send_chat_message($chatsid, 'hello!');
$result = external_api::clean_returnvalue(mod_chat_external::send_chat_message_returns(), $result);
$result = \external_api::clean_returnvalue(mod_chat_external::send_chat_message_returns(), $result);
// Check session is not marked as completed so it is not returned.
$result = mod_chat_external::get_sessions($chat->id);
$result = external_api::clean_returnvalue(mod_chat_external::get_sessions_returns(), $result);
$result = \external_api::clean_returnvalue(mod_chat_external::get_sessions_returns(), $result);
$this->assertEmpty($result['sessions']);
$this->assertEmpty($result['warnings']);
// Pass showall parameter to indicate that we want not completed sessions.
$result = mod_chat_external::get_sessions($chat->id, 0, true);
$result = external_api::clean_returnvalue(mod_chat_external::get_sessions_returns(), $result);
$result = \external_api::clean_returnvalue(mod_chat_external::get_sessions_returns(), $result);
$this->assertCount(1, $result['sessions']); // One session.
$this->assertFalse($result['sessions'][0]['iscomplete']); // Session not complete.
$this->assertEmpty($result['warnings']);
@@ -403,16 +398,16 @@ class mod_chat_external_testcase extends externallib_advanced_testcase {
// Start a chat and completeit.
$this->setUser($user1);
$result = mod_chat_external::login_user($chat->id);
$result = external_api::clean_returnvalue(mod_chat_external::login_user_returns(), $result);
$result = \external_api::clean_returnvalue(mod_chat_external::login_user_returns(), $result);
$chatsid = $result['chatsid'];
$result = mod_chat_external::send_chat_message($chatsid, 'hello!');
$result = external_api::clean_returnvalue(mod_chat_external::send_chat_message_returns(), $result);
$result = \external_api::clean_returnvalue(mod_chat_external::send_chat_message_returns(), $result);
$this->setUser($user2);
$result = mod_chat_external::login_user($chat->id);
$result = external_api::clean_returnvalue(mod_chat_external::login_user_returns(), $result);
$result = \external_api::clean_returnvalue(mod_chat_external::login_user_returns(), $result);
$chatsid = $result['chatsid'];
$result = mod_chat_external::send_chat_message($chatsid, 'hello to you!');
$result = external_api::clean_returnvalue(mod_chat_external::send_chat_message_returns(), $result);
$result = \external_api::clean_returnvalue(mod_chat_external::send_chat_message_returns(), $result);
// Need to change first messages and last message times to mark the session completed.
// We receive 4 messages (2 system messages that indicates user joined and the 2 messages sent by the users).
$messages = $DB->get_records('chat_messages', array('chatid' => $chat->id));
@@ -425,7 +420,7 @@ class mod_chat_external_testcase extends externallib_advanced_testcase {
}
// Check session is completed.
$result = mod_chat_external::get_sessions($chat->id);
$result = external_api::clean_returnvalue(mod_chat_external::get_sessions_returns(), $result);
$result = \external_api::clean_returnvalue(mod_chat_external::get_sessions_returns(), $result);
$this->assertCount(1, $result['sessions']); // One session.
$this->assertTrue($result['sessions'][0]['iscomplete']); // Session complete.
// The session started when user1 entered the chat.
@@ -455,26 +450,26 @@ class mod_chat_external_testcase extends externallib_advanced_testcase {
// Start a chat and send a few messages.
$this->setUser($user1);
$result = mod_chat_external::login_user($chat->id);
$result = external_api::clean_returnvalue(mod_chat_external::login_user_returns(), $result);
$result = \external_api::clean_returnvalue(mod_chat_external::login_user_returns(), $result);
$chatsid = $result['chatsid'];
mod_chat_external::send_chat_message($chatsid, 'hello!');
mod_chat_external::send_chat_message($chatsid, 'bye bye!');
$this->setUser($user2);
$result = mod_chat_external::login_user($chat->id);
$result = external_api::clean_returnvalue(mod_chat_external::login_user_returns(), $result);
$result = \external_api::clean_returnvalue(mod_chat_external::login_user_returns(), $result);
$chatsid = $result['chatsid'];
mod_chat_external::send_chat_message($chatsid, 'greetings!');
// Pass showall parameter to indicate that we want not completed sessions.
$result = mod_chat_external::get_sessions($chat->id, 0, true);
$result = external_api::clean_returnvalue(mod_chat_external::get_sessions_returns(), $result);
$result = \external_api::clean_returnvalue(mod_chat_external::get_sessions_returns(), $result);
$this->assertCount(1, $result['sessions']); // One session.
$sessionstart = $result['sessions'][0]['sessionstart'];
$sessionend = $result['sessions'][0]['sessionend'];
$result = mod_chat_external::get_session_messages($chat->id, $sessionstart, $sessionend);
$result = external_api::clean_returnvalue(mod_chat_external::get_session_messages_returns(), $result);
$result = \external_api::clean_returnvalue(mod_chat_external::get_session_messages_returns(), $result);
$this->assertCount(5, $result['messages']); // 2 system + 3 personal messages.
$found = 0;
foreach ($result['messages'] as $message) {
+3 -9
View File
@@ -14,22 +14,16 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Genarator tests.
*
* @package mod_chat
* @copyright 2013 Frédéric Massart
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
namespace mod_chat;
/**
* Genarator tests class.
* Generator tests class.
*
* @package mod_chat
* @copyright 2013 Frédéric Massart
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class mod_chat_generator_testcase extends advanced_testcase {
class generator_test extends \advanced_testcase {
public function test_create_instance() {
global $DB;
+45 -49
View File
@@ -14,14 +14,10 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* External choice functions unit tests
*
* @package mod_choice
* @category external
* @copyright 2015 Costantino Cito <[email protected]>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
namespace mod_choice;
use externallib_advanced_testcase;
use mod_choice_external;
defined('MOODLE_INTERNAL') || die();
@@ -38,7 +34,7 @@ require_once($CFG->dirroot . '/mod/choice/lib.php');
* @copyright 2015 Costantino Cito <[email protected]>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class mod_choice_externallib_testcase extends externallib_advanced_testcase {
class externallib_test extends externallib_advanced_testcase {
/**
* Test get_choice_results
@@ -49,7 +45,7 @@ class mod_choice_externallib_testcase extends externallib_advanced_testcase {
$this->resetAfterTest(true);
$course = self::getDataGenerator()->create_course();
$params = new stdClass();
$params = new \stdClass();
$params->course = $course->id;
$params->option = array('fried rice', 'spring rolls', 'sweet and sour pork', 'satay beef', 'gyouza');
$params->name = 'First Choice Activity';
@@ -75,7 +71,7 @@ class mod_choice_externallib_testcase extends externallib_advanced_testcase {
choice_user_submit_response($myanswer, $choice, $student1->id, $course, $cm);
$results = mod_choice_external::get_choice_results($choice->id);
// We need to execute the return values cleaning process to simulate the web service server.
$results = external_api::clean_returnvalue(mod_choice_external::get_choice_results_returns(), $results);
$results = \external_api::clean_returnvalue(mod_choice_external::get_choice_results_returns(), $results);
// Create an array with optionID as Key.
$resultsarr = array();
@@ -91,7 +87,7 @@ class mod_choice_externallib_testcase extends externallib_advanced_testcase {
$this->setUser($student2);
$results = mod_choice_external::get_choice_results($choice->id);
// We need to execute the return values cleaning process to simulate the web service server.
$results = external_api::clean_returnvalue(mod_choice_external::get_choice_results_returns(), $results);
$results = \external_api::clean_returnvalue(mod_choice_external::get_choice_results_returns(), $results);
// We do not retrieve any response!
foreach ($results['options'] as $option) {
$this->assertCount(0, $option['userresponses']);
@@ -107,7 +103,7 @@ class mod_choice_externallib_testcase extends externallib_advanced_testcase {
$results = mod_choice_external::get_choice_results($choice->id);
// We need to execute the return values cleaning process to simulate the web service server.
$results = external_api::clean_returnvalue(mod_choice_external::get_choice_results_returns(), $results);
$results = \external_api::clean_returnvalue(mod_choice_external::get_choice_results_returns(), $results);
// We do not retrieve any response (activity is still open).
foreach ($results['options'] as $option) {
$this->assertCount(0, $option['userresponses']);
@@ -119,7 +115,7 @@ class mod_choice_externallib_testcase extends externallib_advanced_testcase {
// Now as Stundent2 we will see results!
$results = mod_choice_external::get_choice_results($choice->id);
// We need to execute the return values cleaning process to simulate the web service server.
$results = external_api::clean_returnvalue(mod_choice_external::get_choice_results_returns(), $results);
$results = \external_api::clean_returnvalue(mod_choice_external::get_choice_results_returns(), $results);
// Create an array with optionID as Key.
$resultsarr = array();
foreach ($results['options'] as $option) {
@@ -135,7 +131,7 @@ class mod_choice_externallib_testcase extends externallib_advanced_testcase {
$DB->update_record('choice', $choice);
$results = mod_choice_external::get_choice_results($choice->id);
// We need to execute the return values cleaning process to simulate the web service server.
$results = external_api::clean_returnvalue(mod_choice_external::get_choice_results_returns(), $results);
$results = \external_api::clean_returnvalue(mod_choice_external::get_choice_results_returns(), $results);
// Create an array with optionID as Key.
$resultsarr = array();
// Does not show any user response!
@@ -181,7 +177,7 @@ class mod_choice_externallib_testcase extends externallib_advanced_testcase {
$results = mod_choice_external::get_choice_options($choice->id);
// We need to execute the return values cleaning process to simulate the web service server.
$results = external_api::clean_returnvalue(mod_choice_external::get_choice_options_returns(), $results);
$results = \external_api::clean_returnvalue(mod_choice_external::get_choice_options_returns(), $results);
// We should retrieve all options.
$this->assertCount(count($possibleoptions), $results['options']);
@@ -192,7 +188,7 @@ class mod_choice_externallib_testcase extends externallib_advanced_testcase {
$results = mod_choice_external::get_choice_options($choice->id);
// We need to execute the return values cleaning process to simulate the web service server.
$results = external_api::clean_returnvalue(mod_choice_external::get_choice_options_returns(), $results);
$results = \external_api::clean_returnvalue(mod_choice_external::get_choice_options_returns(), $results);
// We should retrieve no options.
$this->assertCount(0, $results['options']);
$this->assertEquals($notopenyet, $results['warnings'][0]['warningcode']);
@@ -202,7 +198,7 @@ class mod_choice_externallib_testcase extends externallib_advanced_testcase {
$DB->update_record('choice', $choice);
$results = mod_choice_external::get_choice_options($choice->id);
// We need to execute the return values cleaning process to simulate the web service server.
$results = external_api::clean_returnvalue(mod_choice_external::get_choice_options_returns(), $results);
$results = \external_api::clean_returnvalue(mod_choice_external::get_choice_options_returns(), $results);
// We should retrieve all options.
$this->assertCount(count($possibleoptions), $results['options']);
@@ -229,7 +225,7 @@ class mod_choice_externallib_testcase extends externallib_advanced_testcase {
$results = mod_choice_external::get_choice_options($choice->id);
// We need to execute the return values cleaning process to simulate the web service server.
$results = external_api::clean_returnvalue(mod_choice_external::get_choice_options_returns(), $results);
$results = \external_api::clean_returnvalue(mod_choice_external::get_choice_options_returns(), $results);
// We should retrieve all options.
$this->assertCount(count($possibleoptions), $results['options']);
foreach ($results['options'] as $option) {
@@ -249,7 +245,7 @@ class mod_choice_externallib_testcase extends externallib_advanced_testcase {
$DB->update_record('choice', $choice);
$results = mod_choice_external::get_choice_options($choice->id);
// We need to execute the return values cleaning process to simulate the web service server.
$results = external_api::clean_returnvalue(mod_choice_external::get_choice_options_returns(), $results);
$results = \external_api::clean_returnvalue(mod_choice_external::get_choice_options_returns(), $results);
// We should retrieve no options.
$this->assertCount(0, $results['options']);
$this->assertEquals($expired, $results['warnings'][0]['warningcode']);
@@ -265,7 +261,7 @@ class mod_choice_externallib_testcase extends externallib_advanced_testcase {
$this->resetAfterTest(true);
$course = self::getDataGenerator()->create_course();
$params = new stdClass();
$params = new \stdClass();
$params->course = $course->id;
$params->option = array('fried rice', 'spring rolls', 'sweet and sour pork', 'satay beef', 'gyouza');
$params->name = 'First Choice Activity';
@@ -286,7 +282,7 @@ class mod_choice_externallib_testcase extends externallib_advanced_testcase {
$myresponse = $options[2];
$results = mod_choice_external::submit_choice_response($choice->id, array($myresponse));
// We need to execute the return values cleaning process to simulate the web service server.
$results = external_api::clean_returnvalue(mod_choice_external::submit_choice_response_returns(), $results);
$results = \external_api::clean_returnvalue(mod_choice_external::submit_choice_response_returns(), $results);
$myanswers = $DB->get_records('choice_answers', array('choiceid' => $choice->id, 'userid' => $student1->id));
$myanswer = reset($myanswers);
$this->assertEquals($results['answers'][0]['id'], $myanswer->id);
@@ -306,14 +302,14 @@ class mod_choice_externallib_testcase extends externallib_advanced_testcase {
// Setup test data.
$course = $this->getDataGenerator()->create_course();
$choice = $this->getDataGenerator()->create_module('choice', array('course' => $course->id));
$context = context_module::instance($choice->cmid);
$context = \context_module::instance($choice->cmid);
$cm = get_coursemodule_from_instance('choice', $choice->id);
// Test invalid instance id.
try {
mod_choice_external::view_choice(0);
$this->fail('Exception expected due to invalid mod_choice instance id.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('invalidcoursemodule', $e->errorcode);
}
@@ -323,7 +319,7 @@ class mod_choice_externallib_testcase extends externallib_advanced_testcase {
try {
mod_choice_external::view_choice($choice->id);
$this->fail('Exception expected due to not enrolled user.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('requireloginerror', $e->errorcode);
}
@@ -335,7 +331,7 @@ class mod_choice_externallib_testcase extends externallib_advanced_testcase {
$sink = $this->redirectEvents();
$result = mod_choice_external::view_choice($choice->id);
$result = external_api::clean_returnvalue(mod_choice_external::view_choice_returns(), $result);
$result = \external_api::clean_returnvalue(mod_choice_external::view_choice_returns(), $result);
$events = $sink->get_events();
$this->assertCount(1, $events);
@@ -381,7 +377,7 @@ class mod_choice_externallib_testcase extends externallib_advanced_testcase {
$this->setUser($student1);
$choices = mod_choice_external::get_choices_by_courses(array());
$choices = external_api::clean_returnvalue(mod_choice_external::get_choices_by_courses_returns(), $choices);
$choices = \external_api::clean_returnvalue(mod_choice_external::get_choices_by_courses_returns(), $choices);
$this->assertCount(1, $choices['choices']);
$this->assertEquals('First IMSCP', $choices['choices'][0]['name']);
// As Student you cannot see some IMSCP properties like 'section'.
@@ -390,7 +386,7 @@ class mod_choice_externallib_testcase extends externallib_advanced_testcase {
// Student1 is not enrolled in this Course.
// The webservice will give a warning!
$choices = mod_choice_external::get_choices_by_courses(array($course2->id));
$choices = external_api::clean_returnvalue(mod_choice_external::get_choices_by_courses_returns(), $choices);
$choices = \external_api::clean_returnvalue(mod_choice_external::get_choices_by_courses_returns(), $choices);
$this->assertCount(0, $choices['choices']);
$this->assertEquals(1, $choices['warnings'][0]['warningcode']);
@@ -398,7 +394,7 @@ class mod_choice_externallib_testcase extends externallib_advanced_testcase {
$this->setAdminUser();
// As Admin we can see this IMSCP.
$choices = mod_choice_external::get_choices_by_courses(array($course2->id));
$choices = external_api::clean_returnvalue(mod_choice_external::get_choices_by_courses_returns(), $choices);
$choices = \external_api::clean_returnvalue(mod_choice_external::get_choices_by_courses_returns(), $choices);
$this->assertCount(1, $choices['choices']);
$this->assertEquals('Second IMSCP', $choices['choices'][0]['name']);
// As an Admin you can see some IMSCP properties like 'section'.
@@ -406,13 +402,13 @@ class mod_choice_externallib_testcase extends externallib_advanced_testcase {
// Now, prohibit capabilities.
$this->setUser($student1);
$contextcourse1 = context_course::instance($course1->id);
$contextcourse1 = \context_course::instance($course1->id);
// Prohibit capability = mod:choice:choose on Course1 for students.
assign_capability('mod/choice:choose', CAP_PROHIBIT, $studentrole->id, $contextcourse1->id);
accesslib_clear_all_caches_for_unit_testing();
$choices = mod_choice_external::get_choices_by_courses(array($course1->id));
$choices = external_api::clean_returnvalue(mod_choice_external::get_choices_by_courses_returns(), $choices);
$choices = \external_api::clean_returnvalue(mod_choice_external::get_choices_by_courses_returns(), $choices);
$this->assertFalse(isset($choices['choices'][0]['timeopen']));
}
@@ -425,7 +421,7 @@ class mod_choice_externallib_testcase extends externallib_advanced_testcase {
$this->resetAfterTest(true);
$course = self::getDataGenerator()->create_course();
$params = new stdClass();
$params = new \stdClass();
$params->course = $course->id;
$params->option = array('fried rice', 'spring rolls', 'sweet and sour pork', 'satay beef', 'gyouza');
$params->name = 'First Choice Activity';
@@ -446,7 +442,7 @@ class mod_choice_externallib_testcase extends externallib_advanced_testcase {
$this->setUser($student);
$results = mod_choice_external::submit_choice_response($choice->id, array($options[1], $options[2]));
$results = external_api::clean_returnvalue(mod_choice_external::submit_choice_response_returns(), $results);
$results = \external_api::clean_returnvalue(mod_choice_external::submit_choice_response_returns(), $results);
$myresponses = array_keys(choice_get_my_response($choice));
@@ -454,7 +450,7 @@ class mod_choice_externallib_testcase extends externallib_advanced_testcase {
try {
mod_choice_external::delete_choice_responses($choice->id, array($myresponses[0], $myresponses[0]));
$this->fail('Exception expected due to missing permissions.');
} catch (required_capability_exception $e) {
} catch (\required_capability_exception $e) {
$this->assertEquals('nopermissions', $e->errorcode);
}
@@ -464,14 +460,14 @@ class mod_choice_externallib_testcase extends externallib_advanced_testcase {
try {
mod_choice_external::delete_choice_responses($choice->id, array($myresponses[0], $myresponses[1]));
$this->fail('Exception expected due to expired choice.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('expired', $e->errorcode);
}
// Reset time close. We should be able now to delete all the responses.
$DB->set_field('choice', 'timeclose', 0, array('id' => $choice->id));
$results = mod_choice_external::delete_choice_responses($choice->id, array($myresponses[0], $myresponses[1]));
$results = external_api::clean_returnvalue(mod_choice_external::delete_choice_responses_returns(), $results);
$results = \external_api::clean_returnvalue(mod_choice_external::delete_choice_responses_returns(), $results);
$this->assertTrue($results['status']);
$this->assertCount(0, $results['warnings']);
@@ -480,12 +476,12 @@ class mod_choice_externallib_testcase extends externallib_advanced_testcase {
// Submit again the responses.
$results = mod_choice_external::submit_choice_response($choice->id, array($options[1], $options[2]));
$results = external_api::clean_returnvalue(mod_choice_external::submit_choice_response_returns(), $results);
$results = \external_api::clean_returnvalue(mod_choice_external::submit_choice_response_returns(), $results);
$myresponses = array_keys(choice_get_my_response($choice));
// Delete only one response.
$results = mod_choice_external::delete_choice_responses($choice->id, array($myresponses[0]));
$results = external_api::clean_returnvalue(mod_choice_external::delete_choice_responses_returns(), $results);
$results = \external_api::clean_returnvalue(mod_choice_external::delete_choice_responses_returns(), $results);
$this->assertTrue($results['status']);
$this->assertCount(0, $results['warnings']);
// Now, in the DB 1 response still.
@@ -494,7 +490,7 @@ class mod_choice_externallib_testcase extends externallib_advanced_testcase {
// Delete the remaining response, passing 2 invalid responses ids.
$results = mod_choice_external::delete_choice_responses($choice->id, array($myresponses[1], $myresponses[0] + 2,
$myresponses[0] + 3));
$results = external_api::clean_returnvalue(mod_choice_external::delete_choice_responses_returns(), $results);
$results = \external_api::clean_returnvalue(mod_choice_external::delete_choice_responses_returns(), $results);
$this->assertTrue($results['status']);
// 2 warnings, 2 invalid responses.
$this->assertCount(2, $results['warnings']);
@@ -505,7 +501,7 @@ class mod_choice_externallib_testcase extends externallib_advanced_testcase {
$this->setUser($student);
// Submit again the responses.
$results = mod_choice_external::submit_choice_response($choice->id, array($options[1], $options[2]));
$results = external_api::clean_returnvalue(mod_choice_external::submit_choice_response_returns(), $results);
$results = \external_api::clean_returnvalue(mod_choice_external::submit_choice_response_returns(), $results);
$studentresponses = array_keys(choice_get_my_response($choice));
$this->setAdminUser();
@@ -513,7 +509,7 @@ class mod_choice_externallib_testcase extends externallib_advanced_testcase {
$DB->set_field('choice', 'timeclose', time() - DAYSECS, array('id' => $choice->id));
$results = mod_choice_external::delete_choice_responses($choice->id, array($studentresponses[0], $studentresponses[1]));
$results = external_api::clean_returnvalue(mod_choice_external::delete_choice_responses_returns(), $results);
$results = \external_api::clean_returnvalue(mod_choice_external::delete_choice_responses_returns(), $results);
$this->assertTrue($results['status']);
$this->assertCount(0, $results['warnings']);
@@ -522,12 +518,12 @@ class mod_choice_externallib_testcase extends externallib_advanced_testcase {
$this->setUser($student);
$DB->set_field('choice', 'timeclose', 0, array('id' => $choice->id));
$results = mod_choice_external::submit_choice_response($choice->id, array($options[1], $options[2]));
$results = external_api::clean_returnvalue(mod_choice_external::submit_choice_response_returns(), $results);
$results = \external_api::clean_returnvalue(mod_choice_external::submit_choice_response_returns(), $results);
// Test admin try to delete his own responses (he didn't respond so nothing should be deleted).
$this->setAdminUser();
$results = mod_choice_external::delete_choice_responses($choice->id);
$results = external_api::clean_returnvalue(mod_choice_external::delete_choice_responses_returns(), $results);
$results = \external_api::clean_returnvalue(mod_choice_external::delete_choice_responses_returns(), $results);
$this->assertFalse($results['status']);
$this->assertCount(0, $results['warnings']);
$allresponses = choice_get_all_responses($choice);
@@ -535,12 +531,12 @@ class mod_choice_externallib_testcase extends externallib_advanced_testcase {
// Now admin submit a couple of responses more.
$results = mod_choice_external::submit_choice_response($choice->id, array($options[1], $options[2]));
$results = external_api::clean_returnvalue(mod_choice_external::submit_choice_response_returns(), $results);
$results = \external_api::clean_returnvalue(mod_choice_external::submit_choice_response_returns(), $results);
$allresponses = choice_get_all_responses($choice);
$this->assertCount(4, $allresponses);
// Admin responses are deleted when passing an empty array.
$results = mod_choice_external::delete_choice_responses($choice->id);
$results = external_api::clean_returnvalue(mod_choice_external::delete_choice_responses_returns(), $results);
$results = \external_api::clean_returnvalue(mod_choice_external::delete_choice_responses_returns(), $results);
$this->assertTrue($results['status']);
$this->assertCount(0, $results['warnings']);
$allresponses = choice_get_all_responses($choice);
@@ -548,7 +544,7 @@ class mod_choice_externallib_testcase extends externallib_advanced_testcase {
// Now admin will delete all the other users responses.
$results = mod_choice_external::delete_choice_responses($choice->id, array_keys($allresponses));
$results = external_api::clean_returnvalue(mod_choice_external::delete_choice_responses_returns(), $results);
$results = \external_api::clean_returnvalue(mod_choice_external::delete_choice_responses_returns(), $results);
$this->assertTrue($results['status']);
$this->assertCount(0, $results['warnings']);
@@ -557,7 +553,7 @@ class mod_choice_externallib_testcase extends externallib_advanced_testcase {
// Admin try do delete an invalid response.
$results = mod_choice_external::delete_choice_responses($choice->id, array(-1));
$results = external_api::clean_returnvalue(mod_choice_external::delete_choice_responses_returns(), $results);
$results = \external_api::clean_returnvalue(mod_choice_external::delete_choice_responses_returns(), $results);
$this->assertFalse($results['status']);
$this->assertCount(1, $results['warnings']);
@@ -569,11 +565,11 @@ class mod_choice_externallib_testcase extends externallib_advanced_testcase {
$DB->set_field('choice', 'allowupdate', 1, array('id' => $choice->id));
$DB->set_field('choice', 'timeclose', 0, array('id' => $choice->id));
$results = mod_choice_external::submit_choice_response($choice->id, array($options[1], $options[2]));
$results = external_api::clean_returnvalue(mod_choice_external::submit_choice_response_returns(), $results);
$results = \external_api::clean_returnvalue(mod_choice_external::submit_choice_response_returns(), $results);
// Delete all responses.
$results = mod_choice_external::delete_choice_responses($choice->id);
$results = external_api::clean_returnvalue(mod_choice_external::delete_choice_responses_returns(), $results);
$results = \external_api::clean_returnvalue(mod_choice_external::delete_choice_responses_returns(), $results);
$this->assertTrue($results['status']);
$this->assertCount(0, $results['warnings']);
+3 -9
View File
@@ -14,13 +14,7 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Generator tests.
*
* @package mod_choice
* @copyright 2013 Adrian Greeve <[email protected]>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
namespace mod_choice;
/**
* Generator tests class.
@@ -29,7 +23,7 @@
* @copyright 2013 Adrian Greeve <[email protected]>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class mod_choice_generator_testcase extends advanced_testcase {
class generator_test extends \advanced_testcase {
public function test_create_instance() {
global $DB;
@@ -49,7 +43,7 @@ class mod_choice_generator_testcase extends advanced_testcase {
$this->assertEquals(2, $DB->count_records('choice', array('course' => $course->id)));
$this->assertEquals('One more choice', $DB->get_field_select('choice', 'name', 'id = :id', array('id' => $choice->id)));
$params = new stdClass();
$params = new \stdClass();
$params->course = $course->id;
$params->option = array('fried rice', 'spring rolls', 'sweet and sour pork', 'satay beef', 'gyouza');
$choice = $this->getDataGenerator()->create_module('choice', $params);
+71 -76
View File
@@ -14,15 +14,10 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Database module external functions tests
*
* @package mod_data
* @category external
* @copyright 2015 Juan Leyva <[email protected]>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since Moodle 2.9
*/
namespace mod_data;
use externallib_advanced_testcase;
use mod_data_external;
defined('MOODLE_INTERNAL') || die();
@@ -39,7 +34,7 @@ require_once($CFG->dirroot . '/webservice/tests/helpers.php');
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since Moodle 2.9
*/
class mod_data_external_testcase extends externallib_advanced_testcase {
class externallib_test extends externallib_advanced_testcase {
/** @var stdClass Test module context. */
protected $context;
@@ -89,12 +84,12 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
$this->setAdminUser();
// Setup test data.
$course = new stdClass();
$course = new \stdClass();
$course->groupmode = SEPARATEGROUPS;
$course->groupmodeforce = true;
$this->course = $this->getDataGenerator()->create_course($course);
$this->database = $this->getDataGenerator()->create_module('data', array('course' => $this->course->id));
$this->context = context_module::instance($this->database->cmid);
$this->context = \context_module::instance($this->database->cmid);
$this->cm = get_coursemodule_from_instance('data', $this->database->id);
// Create users.
@@ -139,7 +134,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
$course2 = self::getDataGenerator()->create_course();
// First database.
$record = new stdClass();
$record = new \stdClass();
$record->introformat = FORMAT_HTML;
$record->course = $course1->id;
// Set multilang text to check that is properly filtered to "en" only.
@@ -148,7 +143,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
$database1 = self::getDataGenerator()->create_module('data', $record);
// Second database.
$record = new stdClass();
$record = new \stdClass();
$record->introformat = FORMAT_HTML;
$record->course = $course2->id;
$database2 = self::getDataGenerator()->create_module('data', $record);
@@ -172,11 +167,11 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
$enrol->enrol_user($instance2, $student->id, $studentrole->id);
// Enable multilang filter to on content and heading.
filter_manager::reset_caches();
\filter_manager::reset_caches();
filter_set_global_state('multilang', TEXTFILTER_ON);
filter_set_applies_to_strings('multilang', true);
// Set WS filtering.
$wssettings = external_settings::get_instance();
$wssettings = \external_settings::get_instance();
$wssettings->set_filter(true);
// Create what we expect to be returned when querying the two courses.
@@ -213,12 +208,12 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
// Call the external function passing course ids.
$result = mod_data_external::get_databases_by_courses(array($course2->id, $course1->id));
$result = external_api::clean_returnvalue(mod_data_external::get_databases_by_courses_returns(), $result);
$result = \external_api::clean_returnvalue(mod_data_external::get_databases_by_courses_returns(), $result);
$this->assertEquals($expecteddatabases, $result['databases']);
// Call the external function without passing course id.
$result = mod_data_external::get_databases_by_courses();
$result = external_api::clean_returnvalue(mod_data_external::get_databases_by_courses_returns(), $result);
$result = \external_api::clean_returnvalue(mod_data_external::get_databases_by_courses_returns(), $result);
$this->assertEquals($expecteddatabases, $result['databases']);
// Unenrol user from second course and alter expected databases.
@@ -227,7 +222,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
// Call the external function without passing course id.
$result = mod_data_external::get_databases_by_courses();
$result = external_api::clean_returnvalue(mod_data_external::get_databases_by_courses_returns(), $result);
$result = \external_api::clean_returnvalue(mod_data_external::get_databases_by_courses_returns(), $result);
$this->assertEquals($expecteddatabases, $result['databases']);
// Call for the second course we unenrolled the user from, expected warning.
@@ -248,14 +243,14 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
$expecteddatabases[0][$field] = $database1->{$field};
}
$result = mod_data_external::get_databases_by_courses();
$result = external_api::clean_returnvalue(mod_data_external::get_databases_by_courses_returns(), $result);
$result = \external_api::clean_returnvalue(mod_data_external::get_databases_by_courses_returns(), $result);
$this->assertEquals($expecteddatabases, $result['databases']);
// Admin should get all the information.
self::setAdminUser();
$result = mod_data_external::get_databases_by_courses(array($course1->id));
$result = external_api::clean_returnvalue(mod_data_external::get_databases_by_courses_returns(), $result);
$result = \external_api::clean_returnvalue(mod_data_external::get_databases_by_courses_returns(), $result);
$this->assertEquals($expecteddatabases, $result['databases']);
}
@@ -306,7 +301,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
$sink = $this->redirectEvents();
$result = mod_data_external::view_database($this->database->id);
$result = external_api::clean_returnvalue(mod_data_external::view_database_returns(), $result);
$result = \external_api::clean_returnvalue(mod_data_external::view_database_returns(), $result);
$events = $sink->get_events();
$this->assertCount(1, $events);
@@ -336,7 +331,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
$this->setUser($this->student1);
$result = mod_data_external::get_data_access_information($this->database->id);
$result = external_api::clean_returnvalue(mod_data_external::get_data_access_information_returns(), $result);
$result = \external_api::clean_returnvalue(mod_data_external::get_data_access_information_returns(), $result);
$this->assertEquals($this->group1->id, $result['groupid']);
@@ -365,7 +360,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
$this->setUser($this->teacher);
$result = mod_data_external::get_data_access_information($this->database->id);
$result = external_api::clean_returnvalue(mod_data_external::get_data_access_information_returns(), $result);
$result = \external_api::clean_returnvalue(mod_data_external::get_data_access_information_returns(), $result);
$this->assertEquals(0, $result['groupid']);
@@ -391,7 +386,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
$this->setUser($this->student1);
$result = mod_data_external::get_data_access_information($this->database->id);
$result = external_api::clean_returnvalue(mod_data_external::get_data_access_information_returns(), $result);
$result = \external_api::clean_returnvalue(mod_data_external::get_data_access_information_returns(), $result);
$this->assertEquals($this->group1->id, $result['groupid']); // My group is correctly found.
$this->assertFalse($result['canmanageentries']);
@@ -405,7 +400,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
// Check the other course group in visible groups mode.
$result = mod_data_external::get_data_access_information($this->database->id, $this->group2->id);
$result = external_api::clean_returnvalue(mod_data_external::get_data_access_information_returns(), $result);
$result = \external_api::clean_returnvalue(mod_data_external::get_data_access_information_returns(), $result);
$this->assertEquals($this->group2->id, $result['groupid']); // The group is correctly found.
$this->assertFalse($result['canmanageentries']);
@@ -435,7 +430,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
// Creating test Fields with default parameter values.
foreach ($fieldtypes as $fieldtype) {
$fieldname = 'field-' . $count;
$record = new StdClass();
$record = new \stdClass();
$record->name = $fieldname;
$record->type = $fieldtype;
$record->required = 1;
@@ -494,7 +489,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
// We may expect entries without group also.
$this->setUser($this->student1);
$result = mod_data_external::get_entries($this->database->id);
$result = external_api::clean_returnvalue(mod_data_external::get_entries_returns(), $result);
$result = \external_api::clean_returnvalue(mod_data_external::get_entries_returns(), $result);
$this->assertCount(0, $result['warnings']);
$this->assertCount(3, $result['entries']);
$this->assertEquals(3, $result['totalcount']);
@@ -516,7 +511,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
// Other user in same group.
$this->setUser($this->student2);
$result = mod_data_external::get_entries($this->database->id);
$result = external_api::clean_returnvalue(mod_data_external::get_entries_returns(), $result);
$result = \external_api::clean_returnvalue(mod_data_external::get_entries_returns(), $result);
$this->assertCount(0, $result['warnings']);
$this->assertCount(4, $result['entries']); // I can see my entry not approved yet.
$this->assertEquals(4, $result['totalcount']);
@@ -524,7 +519,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
// Now try with the user in the second group that must see only two entries (his group entry and the one without group).
$this->setUser($this->student3);
$result = mod_data_external::get_entries($this->database->id);
$result = external_api::clean_returnvalue(mod_data_external::get_entries_returns(), $result);
$result = \external_api::clean_returnvalue(mod_data_external::get_entries_returns(), $result);
$this->assertCount(0, $result['warnings']);
$this->assertCount(2, $result['entries']);
$this->assertEquals(2, $result['totalcount']);
@@ -540,7 +535,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
// Now, as teacher we should see all (we have permissions to view all groups).
$this->setUser($this->teacher);
$result = mod_data_external::get_entries($this->database->id);
$result = external_api::clean_returnvalue(mod_data_external::get_entries_returns(), $result);
$result = \external_api::clean_returnvalue(mod_data_external::get_entries_returns(), $result);
$this->assertCount(0, $result['warnings']);
$this->assertCount(5, $result['entries']); // I can see the not approved one.
$this->assertEquals(5, $result['totalcount']);
@@ -556,7 +551,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
// Basic test passing the parameter (instead having to calculate it).
$this->setUser($this->student1);
$result = mod_data_external::get_entries($this->database->id, $this->group1->id);
$result = external_api::clean_returnvalue(mod_data_external::get_entries_returns(), $result);
$result = \external_api::clean_returnvalue(mod_data_external::get_entries_returns(), $result);
$this->assertCount(0, $result['warnings']);
$this->assertCount(3, $result['entries']);
$this->assertEquals(3, $result['totalcount']);
@@ -564,7 +559,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
// Test ordering (reverse).
$this->setUser($this->student1);
$result = mod_data_external::get_entries($this->database->id, $this->group1->id, false, null, 'DESC');
$result = external_api::clean_returnvalue(mod_data_external::get_entries_returns(), $result);
$result = \external_api::clean_returnvalue(mod_data_external::get_entries_returns(), $result);
$this->assertCount(0, $result['warnings']);
$this->assertCount(3, $result['entries']);
$this->assertEquals(3, $result['totalcount']);
@@ -573,14 +568,14 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
// Test pagination.
$this->setUser($this->student1);
$result = mod_data_external::get_entries($this->database->id, $this->group1->id, false, null, null, 0, 1);
$result = external_api::clean_returnvalue(mod_data_external::get_entries_returns(), $result);
$result = \external_api::clean_returnvalue(mod_data_external::get_entries_returns(), $result);
$this->assertCount(0, $result['warnings']);
$this->assertCount(1, $result['entries']);
$this->assertEquals(3, $result['totalcount']);
$this->assertEquals($entry11, $result['entries'][0]['id']);
$result = mod_data_external::get_entries($this->database->id, $this->group1->id, false, null, null, 1, 1);
$result = external_api::clean_returnvalue(mod_data_external::get_entries_returns(), $result);
$result = \external_api::clean_returnvalue(mod_data_external::get_entries_returns(), $result);
$this->assertCount(0, $result['warnings']);
$this->assertCount(1, $result['entries']);
$this->assertEquals(3, $result['totalcount']);
@@ -589,7 +584,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
// Now test the return contents.
data_generate_default_template($this->database, 'listtemplate', 0, false, true); // Generate a default list template.
$result = mod_data_external::get_entries($this->database->id, $this->group1->id, true, null, null, 0, 2);
$result = external_api::clean_returnvalue(mod_data_external::get_entries_returns(), $result);
$result = \external_api::clean_returnvalue(mod_data_external::get_entries_returns(), $result);
$this->assertCount(0, $result['warnings']);
$this->assertCount(2, $result['entries']);
$this->assertEquals(3, $result['totalcount']);
@@ -615,7 +610,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
// Check I can see my approved group entries.
$this->setUser($this->student1);
$result = mod_data_external::get_entry($entry11);
$result = external_api::clean_returnvalue(mod_data_external::get_entry_returns(), $result);
$result = \external_api::clean_returnvalue(mod_data_external::get_entry_returns(), $result);
$this->assertCount(0, $result['warnings']);
$this->assertEquals($entry11, $result['entry']['id']);
$this->assertTrue($result['entry']['approved']);
@@ -623,7 +618,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
// Entry from other group.
$result = mod_data_external::get_entry($entry21);
$result = external_api::clean_returnvalue(mod_data_external::get_entry_returns(), $result);
$result = \external_api::clean_returnvalue(mod_data_external::get_entry_returns(), $result);
$this->assertCount(0, $result['warnings']);
$this->assertEquals($entry21, $result['entry']['id']);
}
@@ -638,7 +633,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
// Check I can see my approved group entries.
$this->setUser($this->student1);
$result = mod_data_external::get_entry($entry11);
$result = external_api::clean_returnvalue(mod_data_external::get_entry_returns(), $result);
$result = \external_api::clean_returnvalue(mod_data_external::get_entry_returns(), $result);
$this->assertCount(0, $result['warnings']);
$this->assertEquals($entry11, $result['entry']['id']);
$this->assertTrue($result['entry']['approved']);
@@ -647,7 +642,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
// Retrieve contents.
data_generate_default_template($this->database, 'singletemplate', 0, false, true);
$result = mod_data_external::get_entry($entry11, true);
$result = external_api::clean_returnvalue(mod_data_external::get_entry_returns(), $result);
$result = \external_api::clean_returnvalue(mod_data_external::get_entry_returns(), $result);
$this->assertCount(0, $result['warnings']);
$this->assertCount(9, $result['entry']['contents']);
$this->assertTrue(strpos($result['entryviewcontents'], 'opt1') !== false);
@@ -658,7 +653,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
// This is in my group but I'm not the author.
$result = mod_data_external::get_entry($entry12);
$result = external_api::clean_returnvalue(mod_data_external::get_entry_returns(), $result);
$result = \external_api::clean_returnvalue(mod_data_external::get_entry_returns(), $result);
$this->assertCount(0, $result['warnings']);
$this->assertEquals($entry12, $result['entry']['id']);
$this->assertTrue($result['entry']['approved']);
@@ -666,7 +661,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
$this->setUser($this->student3);
$result = mod_data_external::get_entry($entry21);
$result = external_api::clean_returnvalue(mod_data_external::get_entry_returns(), $result);
$result = \external_api::clean_returnvalue(mod_data_external::get_entry_returns(), $result);
$this->assertCount(0, $result['warnings']);
$this->assertEquals($entry21, $result['entry']['id']);
$this->assertTrue($result['entry']['approved']);
@@ -675,19 +670,19 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
// As teacher I should be able to see all the entries.
$this->setUser($this->teacher);
$result = mod_data_external::get_entry($entry11);
$result = external_api::clean_returnvalue(mod_data_external::get_entry_returns(), $result);
$result = \external_api::clean_returnvalue(mod_data_external::get_entry_returns(), $result);
$this->assertEquals($entry11, $result['entry']['id']);
$result = mod_data_external::get_entry($entry12);
$result = external_api::clean_returnvalue(mod_data_external::get_entry_returns(), $result);
$result = \external_api::clean_returnvalue(mod_data_external::get_entry_returns(), $result);
$this->assertEquals($entry12, $result['entry']['id']);
// This is the not approved one.
$result = mod_data_external::get_entry($entry13);
$result = external_api::clean_returnvalue(mod_data_external::get_entry_returns(), $result);
$result = \external_api::clean_returnvalue(mod_data_external::get_entry_returns(), $result);
$this->assertEquals($entry13, $result['entry']['id']);
$result = mod_data_external::get_entry($entry21);
$result = external_api::clean_returnvalue(mod_data_external::get_entry_returns(), $result);
$result = \external_api::clean_returnvalue(mod_data_external::get_entry_returns(), $result);
$this->assertEquals($entry21, $result['entry']['id']);
// Now, try to get an entry not approved yet.
@@ -717,7 +712,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
$this->setUser($this->student1);
$result = mod_data_external::get_fields($this->database->id);
$result = external_api::clean_returnvalue(mod_data_external::get_fields_returns(), $result);
$result = \external_api::clean_returnvalue(mod_data_external::get_fields_returns(), $result);
// Basically compare we retrieve all the fields and the correct values.
$fields = $DB->get_records('data_fields', array('dataid' => $this->database->id), 'id');
@@ -733,7 +728,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
$this->setUser($this->student1);
$result = mod_data_external::get_fields($this->database->id);
$result = external_api::clean_returnvalue(mod_data_external::get_fields_returns(), $result);
$result = \external_api::clean_returnvalue(mod_data_external::get_fields_returns(), $result);
$this->assertEmpty($result['fields']);
}
@@ -748,19 +743,19 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
$this->setUser($this->student1);
// Empty search, it should return all the visible entries.
$result = mod_data_external::search_entries($this->database->id, 0, false);
$result = external_api::clean_returnvalue(mod_data_external::search_entries_returns(), $result);
$result = \external_api::clean_returnvalue(mod_data_external::search_entries_returns(), $result);
$this->assertCount(3, $result['entries']);
$this->assertEquals(3, $result['totalcount']);
// Search for something that does not exists.
$result = mod_data_external::search_entries($this->database->id, 0, false, 'abc');
$result = external_api::clean_returnvalue(mod_data_external::search_entries_returns(), $result);
$result = \external_api::clean_returnvalue(mod_data_external::search_entries_returns(), $result);
$this->assertCount(0, $result['entries']);
$this->assertEquals(0, $result['totalcount']);
// Search by text matching all the entries.
$result = mod_data_external::search_entries($this->database->id, 0, false, 'text');
$result = external_api::clean_returnvalue(mod_data_external::search_entries_returns(), $result);
$result = \external_api::clean_returnvalue(mod_data_external::search_entries_returns(), $result);
$this->assertCount(3, $result['entries']);
$this->assertEquals(3, $result['totalcount']);
$this->assertEquals(3, $result['maxcount']);
@@ -768,7 +763,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
// Now as the other student I should receive my not approved entry. Apply ordering here.
$this->setUser($this->student2);
$result = mod_data_external::search_entries($this->database->id, 0, false, 'text', [], DATA_APPROVED, 'ASC');
$result = external_api::clean_returnvalue(mod_data_external::search_entries_returns(), $result);
$result = \external_api::clean_returnvalue(mod_data_external::search_entries_returns(), $result);
$this->assertCount(4, $result['entries']);
$this->assertEquals(4, $result['totalcount']);
$this->assertEquals(4, $result['maxcount']);
@@ -778,7 +773,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
// Now as the other group student.
$this->setUser($this->student3);
$result = mod_data_external::search_entries($this->database->id, 0, false, 'text');
$result = external_api::clean_returnvalue(mod_data_external::search_entries_returns(), $result);
$result = \external_api::clean_returnvalue(mod_data_external::search_entries_returns(), $result);
$this->assertCount(2, $result['entries']);
$this->assertEquals(2, $result['totalcount']);
$this->assertEquals(2, $result['maxcount']);
@@ -788,7 +783,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
// Same normal text search as teacher.
$this->setUser($this->teacher);
$result = mod_data_external::search_entries($this->database->id, 0, false, 'text');
$result = external_api::clean_returnvalue(mod_data_external::search_entries_returns(), $result);
$result = \external_api::clean_returnvalue(mod_data_external::search_entries_returns(), $result);
$this->assertCount(5, $result['entries']); // I can see all groups and non approved.
$this->assertEquals(5, $result['totalcount']);
$this->assertEquals(5, $result['maxcount']);
@@ -796,7 +791,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
// Pagination.
$this->setUser($this->teacher);
$result = mod_data_external::search_entries($this->database->id, 0, false, 'text', [], DATA_TIMEADDED, 'ASC', 0, 2);
$result = external_api::clean_returnvalue(mod_data_external::search_entries_returns(), $result);
$result = \external_api::clean_returnvalue(mod_data_external::search_entries_returns(), $result);
$this->assertCount(2, $result['entries']); // Only 2 per page.
$this->assertEquals(5, $result['totalcount']);
$this->assertEquals(5, $result['maxcount']);
@@ -807,7 +802,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
['name' => 'fn', 'value' => json_encode($this->student2->firstname)]
];
$result = mod_data_external::search_entries($this->database->id, 0, false, '', $advsearch);
$result = external_api::clean_returnvalue(mod_data_external::search_entries_returns(), $result);
$result = \external_api::clean_returnvalue(mod_data_external::search_entries_returns(), $result);
$this->assertCount(2, $result['entries']);
$this->assertEquals(2, $result['totalcount']);
$this->assertEquals(3, $result['maxcount']);
@@ -819,7 +814,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
['name' => 'f_' . $field->id , 'value' => 'sampleurl']
];
$result = mod_data_external::search_entries($this->database->id, 0, false, '', $advsearch);
$result = external_api::clean_returnvalue(mod_data_external::search_entries_returns(), $result);
$result = \external_api::clean_returnvalue(mod_data_external::search_entries_returns(), $result);
$this->assertCount(3, $result['entries']); // Found two entries matching this.
$this->assertEquals(3, $result['totalcount']);
$this->assertEquals(3, $result['maxcount']);
@@ -832,7 +827,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
['name' => 'ln', 'value' => json_encode($this->student2->lastname)]
];
$result = mod_data_external::search_entries($this->database->id, 0, false, '', $advsearch);
$result = external_api::clean_returnvalue(mod_data_external::search_entries_returns(), $result);
$result = \external_api::clean_returnvalue(mod_data_external::search_entries_returns(), $result);
$this->assertCount(2, $result['entries']); // Only one matching everything.
$this->assertEquals(2, $result['totalcount']);
$this->assertEquals(3, $result['maxcount']);
@@ -844,7 +839,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
['name' => 'f_' . $field2->id , 'value' => '98780333'], // Non existent number.
];
$result = mod_data_external::search_entries($this->database->id, 0, false, '', $advsearch);
$result = external_api::clean_returnvalue(mod_data_external::search_entries_returns(), $result);
$result = \external_api::clean_returnvalue(mod_data_external::search_entries_returns(), $result);
$this->assertCount(0, $result['entries']); // Only one matching everything.
$this->assertEquals(0, $result['totalcount']);
$this->assertEquals(3, $result['maxcount']);
@@ -860,7 +855,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
$this->setUser($this->teacher);
$this->assertEquals(0, $DB->get_field('data_records', 'approved', array('id' => $entry13)));
$result = mod_data_external::approve_entry($entry13);
$result = external_api::clean_returnvalue(mod_data_external::approve_entry_returns(), $result);
$result = \external_api::clean_returnvalue(mod_data_external::approve_entry_returns(), $result);
$this->assertEquals(1, $DB->get_field('data_records', 'approved', array('id' => $entry13)));
}
@@ -874,7 +869,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
$this->setUser($this->teacher);
$this->assertEquals(1, $DB->get_field('data_records', 'approved', array('id' => $entry11)));
$result = mod_data_external::approve_entry($entry11, false);
$result = external_api::clean_returnvalue(mod_data_external::approve_entry_returns(), $result);
$result = \external_api::clean_returnvalue(mod_data_external::approve_entry_returns(), $result);
$this->assertEquals(0, $DB->get_field('data_records', 'approved', array('id' => $entry11)));
}
@@ -899,12 +894,12 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
$this->setUser($this->teacher);
$result = mod_data_external::delete_entry($entry11);
$result = external_api::clean_returnvalue(mod_data_external::delete_entry_returns(), $result);
$result = \external_api::clean_returnvalue(mod_data_external::delete_entry_returns(), $result);
$this->assertEquals(0, $DB->count_records('data_records', array('id' => $entry11)));
// Entry in other group.
$result = mod_data_external::delete_entry($entry21);
$result = external_api::clean_returnvalue(mod_data_external::delete_entry_returns(), $result);
$result = \external_api::clean_returnvalue(mod_data_external::delete_entry_returns(), $result);
$this->assertEquals(0, $DB->count_records('data_records', array('id' => $entry21)));
}
@@ -917,7 +912,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
$this->setUser($this->student1);
$result = mod_data_external::delete_entry($entry11);
$result = external_api::clean_returnvalue(mod_data_external::delete_entry_returns(), $result);
$result = \external_api::clean_returnvalue(mod_data_external::delete_entry_returns(), $result);
$this->assertEquals(0, $DB->count_records('data_records', array('id' => $entry11)));
}
@@ -1024,11 +1019,11 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
];
}
$result = mod_data_external::add_entry($this->database->id, 0, $newentrydata);
$result = external_api::clean_returnvalue(mod_data_external::add_entry_returns(), $result);
$result = \external_api::clean_returnvalue(mod_data_external::add_entry_returns(), $result);
$newentryid = $result['newentryid'];
$result = mod_data_external::get_entry($newentryid, true);
$result = external_api::clean_returnvalue(mod_data_external::get_entry_returns(), $result);
$result = \external_api::clean_returnvalue(mod_data_external::get_entry_returns(), $result);
$this->assertEquals($this->student1->id, $result['entry']['userid']);
$this->assertCount(9, $result['entry']['contents']);
foreach ($result['entry']['contents'] as $content) {
@@ -1081,7 +1076,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
// Now, try to add another entry but removing some required data.
unset($newentrydata[0]);
$result = mod_data_external::add_entry($this->database->id, 0, $newentrydata);
$result = external_api::clean_returnvalue(mod_data_external::add_entry_returns(), $result);
$result = \external_api::clean_returnvalue(mod_data_external::add_entry_returns(), $result);
$this->assertEquals(0, $result['newentryid']);
$this->assertCount(0, $result['generalnotifications']);
$this->assertCount(1, $result['fieldnotifications']);
@@ -1094,7 +1089,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
*/
public function test_add_entry_empty_form() {
$result = mod_data_external::add_entry($this->database->id, 0, []);
$result = external_api::clean_returnvalue(mod_data_external::add_entry_returns(), $result);
$result = \external_api::clean_returnvalue(mod_data_external::add_entry_returns(), $result);
$this->assertEquals(0, $result['newentryid']);
$this->assertCount(1, $result['generalnotifications']);
$this->assertCount(0, $result['fieldnotifications']);
@@ -1219,13 +1214,13 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
];
}
$result = mod_data_external::update_entry($entry11, $newentrydata);
$result = external_api::clean_returnvalue(mod_data_external::update_entry_returns(), $result);
$result = \external_api::clean_returnvalue(mod_data_external::update_entry_returns(), $result);
$this->assertTrue($result['updated']);
$this->assertCount(0, $result['generalnotifications']);
$this->assertCount(0, $result['fieldnotifications']);
$result = mod_data_external::get_entry($entry11, true);
$result = external_api::clean_returnvalue(mod_data_external::get_entry_returns(), $result);
$result = \external_api::clean_returnvalue(mod_data_external::get_entry_returns(), $result);
$this->assertEquals($this->student1->id, $result['entry']['userid']);
$this->assertCount(9, $result['entry']['contents']);
foreach ($result['entry']['contents'] as $content) {
@@ -1278,7 +1273,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
// Now, try to update the entry but removing some required data.
unset($newentrydata[0]);
$result = mod_data_external::update_entry($entry11, $newentrydata);
$result = external_api::clean_returnvalue(mod_data_external::update_entry_returns(), $result);
$result = \external_api::clean_returnvalue(mod_data_external::update_entry_returns(), $result);
$this->assertFalse($result['updated']);
$this->assertCount(0, $result['generalnotifications']);
$this->assertCount(1, $result['fieldnotifications']);
@@ -1294,7 +1289,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
$this->setUser($this->student1);
$result = mod_data_external::update_entry($entry11, []);
$result = external_api::clean_returnvalue(mod_data_external::update_entry_returns(), $result);
$result = \external_api::clean_returnvalue(mod_data_external::update_entry_returns(), $result);
$this->assertFalse($result['updated']);
$this->assertCount(1, $result['generalnotifications']);
$this->assertCount(9, $result['fieldnotifications']);
@@ -1347,7 +1342,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
$this->getDataGenerator()->enrol_user($user2->id, $this->course->id, $this->studentrole->id, 'manual');
// Rate the entry as user1.
$rating1 = new stdClass();
$rating1 = new \stdClass();
$rating1->contextid = $this->context->id;
$rating1->component = 'mod_data';
$rating1->ratingarea = 'entry';
@@ -1360,7 +1355,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
$rating1->id = $DB->insert_record('rating', $rating1);
// Rate the entry as user2.
$rating2 = new stdClass();
$rating2 = new \stdClass();
$rating2->contextid = $this->context->id;
$rating2->component = 'mod_data';
$rating2->ratingarea = 'entry';
@@ -1375,7 +1370,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
// As student, retrieve ratings information.
$this->setUser($this->student2);
$result = mod_data_external::get_entry($entry11);
$result = external_api::clean_returnvalue(mod_data_external::get_entry_returns(), $result);
$result = \external_api::clean_returnvalue(mod_data_external::get_entry_returns(), $result);
$this->assertCount(1, $result['ratinginfo']['ratings']);
$this->assertFalse($result['ratinginfo']['ratings'][0]['canviewaggregate']);
$this->assertFalse($result['ratinginfo']['canviewall']);
@@ -1385,7 +1380,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
// Now, as teacher, I should see the info correctly.
$this->setUser($this->teacher);
$result = mod_data_external::get_entry($entry11);
$result = external_api::clean_returnvalue(mod_data_external::get_entry_returns(), $result);
$result = \external_api::clean_returnvalue(mod_data_external::get_entry_returns(), $result);
$this->assertCount(1, $result['ratinginfo']['ratings']);
$this->assertTrue($result['ratinginfo']['ratings'][0]['canviewaggregate']);
$this->assertTrue($result['ratinginfo']['canviewall']);
+8 -18
View File
@@ -14,17 +14,7 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* PHPUnit data generator tests.
*
* @package mod_data
* @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 mod_data;
/**
* PHPUnit data generator testcase.
@@ -34,7 +24,7 @@ defined('MOODLE_INTERNAL') || die();
* @copyright 2012 Petr Skoda {@link http://skodak.org}
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class mod_data_generator_testcase extends advanced_testcase {
class generator_test extends \advanced_testcase {
public function test_generator() {
global $DB;
@@ -59,7 +49,7 @@ class mod_data_generator_testcase extends advanced_testcase {
$this->assertEquals('data', $cm->modname);
$this->assertEquals($course->id, $cm->course);
$context = context_module::instance($cm->id);
$context = \context_module::instance($cm->id);
$this->assertEquals($data->cmid, $context->instanceid);
// test gradebook integration using low level DB access - DO NOT USE IN PLUGIN CODE!
@@ -95,7 +85,7 @@ class mod_data_generator_testcase extends advanced_testcase {
$this->assertEquals('data', $cm->modname);
$this->assertEquals($course->id, $cm->course);
$context = context_module::instance($cm->id);
$context = \context_module::instance($cm->id);
$this->assertEquals($data->cmid, $context->instanceid);
$fieldtypes = array('checkbox', 'date', 'menu', 'multimenu', 'number', 'radiobutton', 'text', 'textarea', 'url');
@@ -107,7 +97,7 @@ class mod_data_generator_testcase extends advanced_testcase {
// Creating variables dynamically.
$fieldname = 'field-' . $count;
$record = new StdClass();
$record = new \stdClass();
$record->name = $fieldname;
$record->type = $fieldtype;
@@ -156,7 +146,7 @@ class mod_data_generator_testcase extends advanced_testcase {
$this->assertEquals('data', $cm->modname);
$this->assertEquals($course->id, $cm->course);
$context = context_module::instance($cm->id);
$context = \context_module::instance($cm->id);
$this->assertEquals($data->cmid, $context->instanceid);
$fieldtypes = array('checkbox', 'date', 'menu', 'multimenu', 'number', 'radiobutton', 'text', 'textarea', 'url',
@@ -169,7 +159,7 @@ class mod_data_generator_testcase extends advanced_testcase {
// Creating variables dynamically.
$fieldname = 'field-' . $count;
$record = new StdClass();
$record = new \stdClass();
$record->name = $fieldname;
$record->type = $fieldtype;
$record->required = 1;
@@ -237,6 +227,6 @@ class mod_data_generator_testcase extends advanced_testcase {
$this->assertEquals($contents[++$contentstartid]->content, 'http://example.url');
$this->assertEquals($contents[$contentstartid]->content1, 'sampleurl');
$this->assertEquals(array('Cats', 'mice'),
array_values(core_tag_tag::get_item_tags_array('mod_data', 'data_records', $datarecordid)));
array_values(\core_tag_tag::get_item_tags_array('mod_data', 'data_records', $datarecordid)));
}
}
+4 -13
View File
@@ -14,24 +14,16 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
namespace mod_feedback;
/**
* Genarator tests.
* Generator tests class.
*
* @package mod_feedback
* @copyright 2013 Ankit Agarwal
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
global $CFG;
/**
* Genarator tests class.
*
* @package mod_feedback
* @copyright 2013 Ankit Agarwal
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class mod_feedback_generator_testcase extends advanced_testcase {
class generator_test extends \advanced_testcase {
public function test_create_instance() {
global $DB;
@@ -227,4 +219,3 @@ class mod_feedback_generator_testcase extends advanced_testcase {
$this->assertCount(2, $records);
}
}
+18 -23
View File
@@ -14,15 +14,10 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* External mod_folder functions unit tests
*
* @package mod_folder
* @category external
* @copyright 2015 Juan Leyva <[email protected]>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since Moodle 3.0
*/
namespace mod_folder;
use externallib_advanced_testcase;
use mod_folder_external;
defined('MOODLE_INTERNAL') || die();
@@ -39,7 +34,7 @@ require_once($CFG->dirroot . '/webservice/tests/helpers.php');
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since Moodle 3.0
*/
class mod_folder_external_testcase extends externallib_advanced_testcase {
class externallib_test extends externallib_advanced_testcase {
/**
* Test view_folder
@@ -53,14 +48,14 @@ class mod_folder_external_testcase extends externallib_advanced_testcase {
// Setup test data.
$course = $this->getDataGenerator()->create_course();
$folder = $this->getDataGenerator()->create_module('folder', array('course' => $course->id));
$context = context_module::instance($folder->cmid);
$context = \context_module::instance($folder->cmid);
$cm = get_coursemodule_from_instance('folder', $folder->id);
// Test invalid instance id.
try {
mod_folder_external::view_folder(0);
$this->fail('Exception expected due to invalid mod_folder instance id.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('invalidrecord', $e->errorcode);
}
@@ -70,7 +65,7 @@ class mod_folder_external_testcase extends externallib_advanced_testcase {
try {
mod_folder_external::view_folder($folder->id);
$this->fail('Exception expected due to not enrolled user.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('requireloginerror', $e->errorcode);
}
@@ -82,7 +77,7 @@ class mod_folder_external_testcase extends externallib_advanced_testcase {
$sink = $this->redirectEvents();
$result = mod_folder_external::view_folder($folder->id);
$result = external_api::clean_returnvalue(mod_folder_external::view_folder_returns(), $result);
$result = \external_api::clean_returnvalue(mod_folder_external::view_folder_returns(), $result);
$events = $sink->get_events();
$this->assertCount(1, $events);
@@ -101,12 +96,12 @@ class mod_folder_external_testcase extends externallib_advanced_testcase {
assign_capability('mod/folder:view', CAP_PROHIBIT, $studentrole->id, $context->id);
// Empty all the caches that may be affected by this change.
accesslib_clear_all_caches_for_unit_testing();
course_modinfo::clear_instance_cache();
\course_modinfo::clear_instance_cache();
try {
mod_folder_external::view_folder($folder->id);
$this->fail('Exception expected due to missing capability.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('requireloginerror', $e->errorcode);
}
}
@@ -129,13 +124,13 @@ class mod_folder_external_testcase extends externallib_advanced_testcase {
self::setUser($student);
// First folder.
$record = new stdClass();
$record = new \stdClass();
$record->course = $course1->id;
$record->forcedownload = 1;
$folder1 = self::getDataGenerator()->create_module('folder', $record);
// Second folder.
$record = new stdClass();
$record = new \stdClass();
$record->course = $course2->id;
$record->forcedownload = 0;
$folder2 = self::getDataGenerator()->create_module('folder', $record);
@@ -184,14 +179,14 @@ class mod_folder_external_testcase extends externallib_advanced_testcase {
// Call the external function passing course ids.
$result = mod_folder_external::get_folders_by_courses(array($course2->id, $course1->id));
$result = external_api::clean_returnvalue($returndescription, $result);
$result = \external_api::clean_returnvalue($returndescription, $result);
$this->assertEquals($expectedfolders, $result['folders']);
$this->assertCount(0, $result['warnings']);
// Call the external function without passing course id.
$result = mod_folder_external::get_folders_by_courses();
$result = external_api::clean_returnvalue($returndescription, $result);
$result = \external_api::clean_returnvalue($returndescription, $result);
$this->assertEquals($expectedfolders, $result['folders']);
$this->assertCount(0, $result['warnings']);
@@ -199,7 +194,7 @@ class mod_folder_external_testcase extends externallib_advanced_testcase {
// Add a file to the intro.
$fileintroname = "fileintro.txt";
$filerecordinline = array(
'contextid' => context_module::instance($folder2->cmid)->id,
'contextid' => \context_module::instance($folder2->cmid)->id,
'component' => 'mod_folder',
'filearea' => 'intro',
'itemid' => 0,
@@ -211,7 +206,7 @@ class mod_folder_external_testcase extends externallib_advanced_testcase {
$fs->create_file_from_string($filerecordinline, 'image contents (not really)');
$result = mod_folder_external::get_folders_by_courses(array($course2->id, $course1->id));
$result = external_api::clean_returnvalue($returndescription, $result);
$result = \external_api::clean_returnvalue($returndescription, $result);
$this->assertCount(1, $result['folders'][0]['introfiles']);
$this->assertEquals($fileintroname, $result['folders'][0]['introfiles'][0]['filename']);
@@ -222,7 +217,7 @@ class mod_folder_external_testcase extends externallib_advanced_testcase {
// Call the external function without passing course id.
$result = mod_folder_external::get_folders_by_courses();
$result = external_api::clean_returnvalue($returndescription, $result);
$result = \external_api::clean_returnvalue($returndescription, $result);
$this->assertEquals($expectedfolders, $result['folders']);
+4 -11
View File
@@ -14,24 +14,17 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* mod_folder generator tests
*
* @package mod_folder
* @category test
* @copyright 2013 Marina Glancy
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
namespace mod_folder;
/**
* Genarator tests class for mod_folder.
* Generator tests class for mod_folder.
*
* @package mod_folder
* @category test
* @copyright 2013 Marina Glancy
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class mod_folder_generator_testcase extends advanced_testcase {
class generator_test extends \advanced_testcase {
public function test_create_instance() {
global $DB, $USER;
@@ -57,7 +50,7 @@ class mod_folder_generator_testcase extends advanced_testcase {
'course' => $course->id,
'files' => file_get_unused_draft_itemid()
);
$usercontext = context_user::instance($USER->id);
$usercontext = \context_user::instance($USER->id);
$filerecord = array('component' => 'user', 'filearea' => 'draft',
'contextid' => $usercontext->id, 'itemid' => $params['files'],
'filename' => 'file1.txt', 'filepath' => '/');
File diff suppressed because it is too large Load Diff
+9 -19
View File
@@ -14,17 +14,7 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* PHPUnit data generator tests
*
* @package mod_forum
* @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 mod_forum;
/**
* PHPUnit data generator testcase
@@ -34,7 +24,7 @@ defined('MOODLE_INTERNAL') || die();
* @copyright 2012 Petr Skoda {@link http://skodak.org}
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class mod_forum_generator_testcase extends advanced_testcase {
class generator_test extends \advanced_testcase {
public function setUp(): void {
// We must clear the subscription caches. This has to be done both before each test, and after in case of other
@@ -72,7 +62,7 @@ class mod_forum_generator_testcase extends advanced_testcase {
$this->assertEquals('forum', $cm->modname);
$this->assertEquals($course->id, $cm->course);
$context = context_module::instance($cm->id);
$context = \context_module::instance($cm->id);
$this->assertEquals($forum->cmid, $context->instanceid);
// test gradebook integration using low level DB access - DO NOT USE IN PLUGIN CODE!
@@ -99,7 +89,7 @@ class mod_forum_generator_testcase extends advanced_testcase {
$course = self::getDataGenerator()->create_course();
// The forum.
$record = new stdClass();
$record = new \stdClass();
$record->course = $course->id;
$forum = self::getDataGenerator()->create_module('forum', $record);
@@ -121,7 +111,7 @@ class mod_forum_generator_testcase extends advanced_testcase {
$record['tags'] = array('Cats', 'mice');
$record = self::getDataGenerator()->get_plugin_generator('mod_forum')->create_discussion($record);
$this->assertEquals(array('Cats', 'mice'),
array_values(core_tag_tag::get_item_tags_array('mod_forum', 'forum_posts', $record->firstpost)));
array_values(\core_tag_tag::get_item_tags_array('mod_forum', 'forum_posts', $record->firstpost)));
}
/**
@@ -142,7 +132,7 @@ class mod_forum_generator_testcase extends advanced_testcase {
$course = self::getDataGenerator()->create_course();
// The forum.
$record = new stdClass();
$record = new \stdClass();
$record->course = $course->id;
$forum = self::getDataGenerator()->create_module('forum', $record);
@@ -152,7 +142,7 @@ class mod_forum_generator_testcase extends advanced_testcase {
$discussion = self::getDataGenerator()->get_plugin_generator('mod_forum')->create_discussion($record);
// Add a bunch of replies, changing the userid.
$record = new stdClass();
$record = new \stdClass();
$record->discussion = $discussion->id;
$record->userid = $user2->id;
self::getDataGenerator()->get_plugin_generator('mod_forum')->create_post($record);
@@ -169,7 +159,7 @@ class mod_forum_generator_testcase extends advanced_testcase {
$record->tags = array('Cats', 'mice');
$record = self::getDataGenerator()->get_plugin_generator('mod_forum')->create_post($record);
$this->assertEquals(array('Cats', 'mice'),
array_values(core_tag_tag::get_item_tags_array('mod_forum', 'forum_posts', $record->id)));
array_values(\core_tag_tag::get_item_tags_array('mod_forum', 'forum_posts', $record->id)));
}
public function test_create_content() {
@@ -212,6 +202,6 @@ class mod_forum_generator_testcase extends advanced_testcase {
$this->assertEquals($post2->id, $postrecords[$post4->id]->parent);
$this->assertEquals(array('Cats', 'mice'),
array_values(core_tag_tag::get_item_tags_array('mod_forum', 'forum_posts', $post5->id)));
array_values(\core_tag_tag::get_item_tags_array('mod_forum', 'forum_posts', $post5->id)));
}
}
+3 -10
View File
@@ -14,14 +14,7 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* mod_glossary generator tests
*
* @package mod_glossary
* @category test
* @copyright 2013 Marina Glancy
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
namespace mod_glossary;
/**
* Genarator tests class for mod_glossary.
@@ -31,7 +24,7 @@
* @copyright 2013 Marina Glancy
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class mod_glossary_generator_testcase extends advanced_testcase {
class generator_test extends \advanced_testcase {
public function test_create_instance() {
global $DB;
@@ -72,7 +65,7 @@ class mod_glossary_generator_testcase extends advanced_testcase {
$this->assertEquals($entry2->id, $records[$entry2->id]->id);
$this->assertEquals('Custom concept', $records[$entry2->id]->concept);
$this->assertEquals(array('Cats', 'mice'),
array_values(core_tag_tag::get_item_tags_array('mod_glossary', 'glossary_entries', $entry2->id)));
array_values(\core_tag_tag::get_item_tags_array('mod_glossary', 'glossary_entries', $entry2->id)));
$aliases = $DB->get_records_menu('glossary_alias', array('entryid' => $entry2->id), 'id ASC', 'id, alias');
$this->assertSame(array('alias1', 'alias2'), array_values($aliases));
+6 -13
View File
@@ -14,14 +14,7 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* mod_h5pactivity generator tests
*
* @package mod_h5pactivity
* @category test
* @copyright 2020 Ferran Recio <[email protected]>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
namespace mod_h5pactivity;
use mod_h5pactivity\local\manager;
@@ -33,7 +26,7 @@ use mod_h5pactivity\local\manager;
* @copyright 2020 Ferran Recio <[email protected]>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class mod_h5pactivity_generator_testcase extends advanced_testcase {
class generator_test extends \advanced_testcase {
/**
* Test on H5P activity creation.
@@ -81,7 +74,7 @@ class mod_h5pactivity_generator_testcase extends advanced_testcase {
'course' => $course->id,
'packagefile' => file_get_unused_draft_itemid()
];
$usercontext = context_user::instance($USER->id);
$usercontext = \context_user::instance($USER->id);
$filerecord = ['component' => 'user', 'filearea' => 'draft',
'contextid' => $usercontext->id, 'itemid' => $params['packagefile'],
'filename' => 'singlescobasic.zip', 'filepath' => '/'];
@@ -106,7 +99,7 @@ class mod_h5pactivity_generator_testcase extends advanced_testcase {
'course' => $course->id,
'packagefilepath' => $CFG->dirroot.'/h5p/tests/fixtures/wrong_file_.xxx'
];
$this->expectException(coding_exception::class);
$this->expectException(\coding_exception::class);
$activity = $this->getDataGenerator()->create_module('h5pactivity', $params);
}
@@ -134,7 +127,7 @@ class mod_h5pactivity_generator_testcase extends advanced_testcase {
$this->assertEquals(0, $DB->count_records('h5pactivity_attempts_results'));
if ($exception) {
$this->expectException(Exception::class);
$this->expectException(\Exception::class);
}
foreach ($tracks as $track) {
@@ -329,7 +322,7 @@ class mod_h5pactivity_generator_testcase extends advanced_testcase {
$activity = $this->getDataGenerator()->create_module('h5pactivity', ['course' => $course]);
$user = $this->getDataGenerator()->create_and_enrol($course, 'student');
$this->expectException(coding_exception::class);
$this->expectException(\coding_exception::class);
$attemptinfo = [
'attempt' => 1,
+17 -22
View File
@@ -14,15 +14,10 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* External mod_imscp functions unit tests
*
* @package mod_imscp
* @category external
* @copyright 2015 Juan Leyva <[email protected]>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since Moodle 3.0
*/
namespace mod_imscp;
use externallib_advanced_testcase;
use mod_imscp_external;
defined('MOODLE_INTERNAL') || die();
@@ -39,7 +34,7 @@ require_once($CFG->dirroot . '/webservice/tests/helpers.php');
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since Moodle 3.0
*/
class mod_imscp_external_testcase extends externallib_advanced_testcase {
class externallib_test extends externallib_advanced_testcase {
/**
* Test view_imscp
@@ -53,14 +48,14 @@ class mod_imscp_external_testcase extends externallib_advanced_testcase {
// Setup test data.
$course = $this->getDataGenerator()->create_course();
$imscp = $this->getDataGenerator()->create_module('imscp', array('course' => $course->id));
$context = context_module::instance($imscp->cmid);
$context = \context_module::instance($imscp->cmid);
$cm = get_coursemodule_from_instance('imscp', $imscp->id);
// Test invalid instance id.
try {
mod_imscp_external::view_imscp(0);
$this->fail('Exception expected due to invalid mod_imscp instance id.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('invalidrecord', $e->errorcode);
}
@@ -70,7 +65,7 @@ class mod_imscp_external_testcase extends externallib_advanced_testcase {
try {
mod_imscp_external::view_imscp($imscp->id);
$this->fail('Exception expected due to not enrolled user.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('requireloginerror', $e->errorcode);
}
@@ -82,7 +77,7 @@ class mod_imscp_external_testcase extends externallib_advanced_testcase {
$sink = $this->redirectEvents();
$result = mod_imscp_external::view_imscp($imscp->id);
$result = external_api::clean_returnvalue(mod_imscp_external::view_imscp_returns(), $result);
$result = \external_api::clean_returnvalue(mod_imscp_external::view_imscp_returns(), $result);
$events = $sink->get_events();
$this->assertCount(1, $events);
@@ -101,12 +96,12 @@ class mod_imscp_external_testcase extends externallib_advanced_testcase {
assign_capability('mod/imscp:view', CAP_PROHIBIT, $studentrole->id, $context->id);
// Empty all the caches that may be affected by this change.
accesslib_clear_all_caches_for_unit_testing();
course_modinfo::clear_instance_cache();
\course_modinfo::clear_instance_cache();
try {
mod_imscp_external::view_imscp($imscp->id);
$this->fail('Exception expected due to missing capability.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('requireloginerror', $e->errorcode);
}
@@ -142,7 +137,7 @@ class mod_imscp_external_testcase extends externallib_advanced_testcase {
$this->setUser($student1);
$imscps = mod_imscp_external::get_imscps_by_courses(array());
$imscps = external_api::clean_returnvalue(mod_imscp_external::get_imscps_by_courses_returns(), $imscps);
$imscps = \external_api::clean_returnvalue(mod_imscp_external::get_imscps_by_courses_returns(), $imscps);
$this->assertCount(1, $imscps['imscps']);
$this->assertEquals('First IMSCP', $imscps['imscps'][0]['name']);
// As Student you cannot see some IMSCP properties like 'section'.
@@ -151,7 +146,7 @@ class mod_imscp_external_testcase extends externallib_advanced_testcase {
// Student1 is not enrolled in this Course.
// The webservice will give a warning!
$imscps = mod_imscp_external::get_imscps_by_courses(array($course2->id));
$imscps = external_api::clean_returnvalue(mod_imscp_external::get_imscps_by_courses_returns(), $imscps);
$imscps = \external_api::clean_returnvalue(mod_imscp_external::get_imscps_by_courses_returns(), $imscps);
$this->assertCount(0, $imscps['imscps']);
$this->assertEquals(1, $imscps['warnings'][0]['warningcode']);
@@ -159,7 +154,7 @@ class mod_imscp_external_testcase extends externallib_advanced_testcase {
$this->setAdminUser();
// As Admin we can see this IMSCP.
$imscps = mod_imscp_external::get_imscps_by_courses(array($course2->id));
$imscps = external_api::clean_returnvalue(mod_imscp_external::get_imscps_by_courses_returns(), $imscps);
$imscps = \external_api::clean_returnvalue(mod_imscp_external::get_imscps_by_courses_returns(), $imscps);
$this->assertCount(1, $imscps['imscps']);
$this->assertEquals('Second IMSCP', $imscps['imscps'][0]['name']);
// As an Admin you can see some IMSCP properties like 'section'.
@@ -167,15 +162,15 @@ class mod_imscp_external_testcase extends externallib_advanced_testcase {
// Now, prohibit capabilities.
$this->setUser($student1);
$contextcourse1 = context_course::instance($course1->id);
$contextcourse1 = \context_course::instance($course1->id);
// Prohibit capability = mod:imscp:view on Course1 for students.
assign_capability('mod/imscp:view', CAP_PROHIBIT, $studentrole->id, $contextcourse1->id);
// Empty all the caches that may be affected by this change.
accesslib_clear_all_caches_for_unit_testing();
course_modinfo::clear_instance_cache();
\course_modinfo::clear_instance_cache();
$imscps = mod_imscp_external::get_imscps_by_courses(array($course1->id));
$imscps = external_api::clean_returnvalue(mod_imscp_external::get_imscps_by_courses_returns(), $imscps);
$imscps = \external_api::clean_returnvalue(mod_imscp_external::get_imscps_by_courses_returns(), $imscps);
$this->assertCount(0, $imscps['imscps']);
}
}
+3 -10
View File
@@ -14,14 +14,7 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* mod_imscp generator tests
*
* @package mod_imscp
* @category test
* @copyright 2013 Marina Glancy
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
namespace mod_imscp;
/**
* Genarator tests class for mod_imscp.
@@ -31,7 +24,7 @@
* @copyright 2013 Marina Glancy
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class mod_imscp_generator_testcase extends advanced_testcase {
class generator_test extends \advanced_testcase {
public function test_create_instance() {
global $DB, $CFG, $USER;
@@ -66,7 +59,7 @@ class mod_imscp_generator_testcase extends advanced_testcase {
'course' => $course->id,
'package' => file_get_unused_draft_itemid()
);
$usercontext = context_user::instance($USER->id);
$usercontext = \context_user::instance($USER->id);
$filerecord = array('component' => 'user', 'filearea' => 'draft',
'contextid' => $usercontext->id, 'itemid' => $params['package'],
'filename' => 'singlescobasic.zip', 'filepath' => '/');
+12 -17
View File
@@ -14,15 +14,10 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* External mod_label functions unit tests
*
* @package mod_label
* @category external
* @copyright 2017 Juan Leyva <[email protected]>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since Moodle 3.3
*/
namespace mod_label;
use externallib_advanced_testcase;
use mod_label_external;
defined('MOODLE_INTERNAL') || die();
@@ -39,7 +34,7 @@ require_once($CFG->dirroot . '/webservice/tests/helpers.php');
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since Moodle 3.3
*/
class mod_label_external_testcase extends externallib_advanced_testcase {
class externallib_test extends externallib_advanced_testcase {
/**
* Test test_mod_label_get_labels_by_courses
@@ -57,12 +52,12 @@ class mod_label_external_testcase extends externallib_advanced_testcase {
$this->getDataGenerator()->enrol_user($student->id, $course1->id, $studentrole->id);
// First label.
$record = new stdClass();
$record = new \stdClass();
$record->course = $course1->id;
$label1 = self::getDataGenerator()->create_module('label', $record);
// Second label.
$record = new stdClass();
$record = new \stdClass();
$record->course = $course2->id;
$label2 = self::getDataGenerator()->create_module('label', $record);
@@ -111,21 +106,21 @@ class mod_label_external_testcase extends externallib_advanced_testcase {
// Call the external function passing course ids.
$result = mod_label_external::get_labels_by_courses(array($course2->id, $course1->id));
$result = external_api::clean_returnvalue($returndescription, $result);
$result = \external_api::clean_returnvalue($returndescription, $result);
$this->assertEquals($expectedlabels, $result['labels']);
$this->assertCount(0, $result['warnings']);
// Call the external function without passing course id.
$result = mod_label_external::get_labels_by_courses();
$result = external_api::clean_returnvalue($returndescription, $result);
$result = \external_api::clean_returnvalue($returndescription, $result);
$this->assertEquals($expectedlabels, $result['labels']);
$this->assertCount(0, $result['warnings']);
// Add a file to the intro.
$filename = "file.txt";
$filerecordinline = array(
'contextid' => context_module::instance($label2->cmid)->id,
'contextid' => \context_module::instance($label2->cmid)->id,
'component' => 'mod_label',
'filearea' => 'intro',
'itemid' => 0,
@@ -137,7 +132,7 @@ class mod_label_external_testcase extends externallib_advanced_testcase {
$fs->create_file_from_string($filerecordinline, 'image contents (not really)');
$result = mod_label_external::get_labels_by_courses(array($course2->id, $course1->id));
$result = external_api::clean_returnvalue($returndescription, $result);
$result = \external_api::clean_returnvalue($returndescription, $result);
$this->assertCount(1, $result['labels'][0]['introfiles']);
$this->assertEquals($filename, $result['labels'][0]['introfiles'][0]['filename']);
@@ -148,7 +143,7 @@ class mod_label_external_testcase extends externallib_advanced_testcase {
// Call the external function without passing course id.
$result = mod_label_external::get_labels_by_courses();
$result = external_api::clean_returnvalue($returndescription, $result);
$result = \external_api::clean_returnvalue($returndescription, $result);
$this->assertEquals($expectedlabels, $result['labels']);
// Call for the second course we unenrolled the user from, expected warning.
+3 -13
View File
@@ -14,17 +14,7 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* PHPUnit label generator tests
*
* @package mod_label
* @category phpunit
* @copyright 2013 Jerome Mouneyrac
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
namespace mod_label;
/**
* PHPUnit label generator testcase
@@ -34,7 +24,7 @@ defined('MOODLE_INTERNAL') || die();
* @copyright 2013 Jerome Mouneyrac
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class mod_label_generator_testcase extends advanced_testcase {
class generator_test extends \advanced_testcase {
public function test_generator() {
global $DB;
@@ -59,7 +49,7 @@ class mod_label_generator_testcase extends advanced_testcase {
$this->assertEquals('label', $cm->modname);
$this->assertEquals($course->id, $cm->course);
$context = context_module::instance($cm->id);
$context = \context_module::instance($cm->id);
$this->assertEquals($label->cmid, $context->instanceid);
}
}
+2 -9
View File
@@ -14,14 +14,7 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* mod_lesson generator tests
*
* @package mod_lesson
* @category test
* @copyright 2013 Marina Glancy
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
namespace mod_lesson;
/**
* Genarator tests class for mod_lesson.
@@ -31,7 +24,7 @@
* @copyright 2013 Marina Glancy
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class mod_lesson_generator_testcase extends advanced_testcase {
class generator_test extends \advanced_testcase {
public function test_create_instance() {
global $DB;
+54 -58
View File
@@ -14,15 +14,11 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* External tool module external functions tests
*
* @package mod_lti
* @category external
* @copyright 2015 Juan Leyva <juan@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since Moodle 3.0
*/
namespace mod_lti;
use externallib_advanced_testcase;
use mod_lti_external;
use mod_lti_testcase;
defined('MOODLE_INTERNAL') || die();
@@ -40,7 +36,7 @@ require_once($CFG->dirroot . '/mod/lti/lib.php');
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since Moodle 3.0
*/
class mod_lti_external_testcase extends externallib_advanced_testcase {
class externallib_test extends externallib_advanced_testcase {
/**
* Set up for every test
@@ -63,7 +59,7 @@ class mod_lti_external_testcase extends externallib_advanced_testcase {
'lti',
['course' => $course->id, 'toolurl' => 'http://localhost/not/real/tool.php']
);
$context = context_module::instance($lti->cmid);
$context = \context_module::instance($lti->cmid);
$cm = get_coursemodule_from_instance('lti', $lti->id);
// Create users.
@@ -95,15 +91,15 @@ class mod_lti_external_testcase extends externallib_advanced_testcase {
* @param int|null $toolproxyid Optional proxy to associate with tool type.
* @return stdClass A tool type.
*/
protected function generate_tool_type(string $uniqueid, int $toolproxyid = null) : stdClass {
protected function generate_tool_type(string $uniqueid, int $toolproxyid = null): \stdClass {
// Create a tool type.
$type = new stdClass();
$type = new \stdClass();
$type->state = LTI_TOOL_STATE_CONFIGURED;
$type->name = "Test tool $uniqueid";
$type->description = "Example description $uniqueid";
$type->toolproxyid = $toolproxyid;
$type->baseurl = $this->getExternalTestFileUrl("/test$uniqueid.html");
lti_add_type($type, new stdClass());
lti_add_type($type, new \stdClass());
return $type;
}
@@ -113,11 +109,11 @@ class mod_lti_external_testcase extends externallib_advanced_testcase {
* @param string $uniqueid Each tool proxy needs a different reg url. Provide a unique string for every tool proxy created.
* @return stdClass A tool proxy.
*/
protected function generate_tool_proxy(string $uniqueid) : stdClass {
protected function generate_tool_proxy(string $uniqueid): \stdClass {
// Create a tool proxy.
$proxy = mod_lti_external::create_tool_proxy("Test proxy $uniqueid",
$this->getExternalTestFileUrl("/proxy$uniqueid.html"), array(), array());
$proxy = (object)external_api::clean_returnvalue(mod_lti_external::create_tool_proxy_returns(), $proxy);
$proxy = (object)\external_api::clean_returnvalue(mod_lti_external::create_tool_proxy_returns(), $proxy);
return $proxy;
}
@@ -133,7 +129,7 @@ class mod_lti_external_testcase extends externallib_advanced_testcase {
// Fetch all proxies.
$proxies = mod_lti_external::get_tool_proxies(false);
$proxies = external_api::clean_returnvalue(mod_lti_external::get_tool_proxies_returns(), $proxies);
$proxies = \external_api::clean_returnvalue(mod_lti_external::get_tool_proxies_returns(), $proxies);
$this->assertCount(2, $proxies);
$this->assertEqualsCanonicalizing([(array) $proxy, (array) $orphanedproxy], $proxies);
@@ -151,7 +147,7 @@ class mod_lti_external_testcase extends externallib_advanced_testcase {
// Fetch all proxies.
$proxies = mod_lti_external::get_tool_proxies(true);
$proxies = external_api::clean_returnvalue(mod_lti_external::get_tool_proxies_returns(), $proxies);
$proxies = \external_api::clean_returnvalue(mod_lti_external::get_tool_proxies_returns(), $proxies);
$this->assertCount(1, $proxies);
$this->assertEqualsCanonicalizing([(array) $orphanedproxy], $proxies);
@@ -169,7 +165,7 @@ class mod_lti_external_testcase extends externallib_advanced_testcase {
] = $this->setup_test_data();
$result = mod_lti_external::get_tool_launch_data($lti->id);
$result = external_api::clean_returnvalue(mod_lti_external::get_tool_launch_data_returns(), $result);
$result = \external_api::clean_returnvalue(mod_lti_external::get_tool_launch_data_returns(), $result);
// Basic test, the function returns what it's expected.
self::assertEquals($lti->toolurl, $result['endpoint']);
@@ -208,7 +204,7 @@ class mod_lti_external_testcase extends externallib_advanced_testcase {
$course2 = self::getDataGenerator()->create_course();
// Second lti.
$record = new stdClass();
$record = new \stdClass();
$record->course = $course2->id;
$lti2 = self::getDataGenerator()->create_module('lti', $record);
@@ -259,14 +255,14 @@ class mod_lti_external_testcase extends externallib_advanced_testcase {
// Call the external function passing course ids.
$result = mod_lti_external::get_ltis_by_courses(array($course2->id, $course->id));
$result = external_api::clean_returnvalue($returndescription, $result);
$result = \external_api::clean_returnvalue($returndescription, $result);
$this->assertEquals($expectedltis, $result['ltis']);
$this->assertCount(0, $result['warnings']);
// Call the external function without passing course id.
$result = mod_lti_external::get_ltis_by_courses();
$result = external_api::clean_returnvalue($returndescription, $result);
$result = \external_api::clean_returnvalue($returndescription, $result);
$this->assertEquals($expectedltis, $result['ltis']);
$this->assertCount(0, $result['warnings']);
@@ -276,12 +272,12 @@ class mod_lti_external_testcase extends externallib_advanced_testcase {
// Call the external function without passing course id.
$result = mod_lti_external::get_ltis_by_courses();
$result = external_api::clean_returnvalue($returndescription, $result);
$result = \external_api::clean_returnvalue($returndescription, $result);
$this->assertEquals($expectedltis, $result['ltis']);
// Call for the second course we unenrolled the user from, expected warning.
$result = mod_lti_external::get_ltis_by_courses(array($course2->id));
$result = external_api::clean_returnvalue($returndescription, $result);
$result = \external_api::clean_returnvalue($returndescription, $result);
$this->assertCount(1, $result['warnings']);
$this->assertEquals('1', $result['warnings'][0]['warningcode']);
$this->assertEquals($course2->id, $result['warnings'][0]['itemid']);
@@ -299,27 +295,27 @@ class mod_lti_external_testcase extends externallib_advanced_testcase {
}
$result = mod_lti_external::get_ltis_by_courses();
$result = external_api::clean_returnvalue($returndescription, $result);
$result = \external_api::clean_returnvalue($returndescription, $result);
$this->assertEquals($expectedltis, $result['ltis']);
// Admin also should get all the information.
self::setAdminUser();
$result = mod_lti_external::get_ltis_by_courses(array($course->id));
$result = external_api::clean_returnvalue($returndescription, $result);
$result = \external_api::clean_returnvalue($returndescription, $result);
$this->assertEquals($expectedltis, $result['ltis']);
// Now, prohibit capabilities.
$this->setUser($student);
$contextcourse1 = context_course::instance($course->id);
$contextcourse1 = \context_course::instance($course->id);
// Prohibit capability = mod:lti:view on Course1 for students.
assign_capability('mod/lti:view', CAP_PROHIBIT, $studentrole->id, $contextcourse1->id);
// Empty all the caches that may be affected by this change.
accesslib_clear_all_caches_for_unit_testing();
course_modinfo::clear_instance_cache();
\course_modinfo::clear_instance_cache();
$ltis = mod_lti_external::get_ltis_by_courses(array($course->id));
$ltis = external_api::clean_returnvalue(mod_lti_external::get_ltis_by_courses_returns(), $ltis);
$ltis = \external_api::clean_returnvalue(mod_lti_external::get_ltis_by_courses_returns(), $ltis);
$this->assertCount(0, $ltis['ltis']);
}
@@ -327,7 +323,7 @@ class mod_lti_external_testcase extends externallib_advanced_testcase {
* Test view_lti with an invalid instance id.
*/
public function test_view_lti_invalid_instanceid() {
$this->expectException(moodle_exception::class);
$this->expectException(\moodle_exception::class);
mod_lti_external::view_lti(0);
}
@@ -343,7 +339,7 @@ class mod_lti_external_testcase extends externallib_advanced_testcase {
$usernotenrolled = self::getDataGenerator()->create_user();
$this->setUser($usernotenrolled);
$this->expectException(moodle_exception::class);
$this->expectException(\moodle_exception::class);
mod_lti_external::view_lti($lti->id);
}
@@ -364,9 +360,9 @@ class mod_lti_external_testcase extends externallib_advanced_testcase {
assign_capability('mod/lti:view', CAP_PROHIBIT, $studentrole->id, $context->id);
// Empty all the caches that may be affected by this change.
accesslib_clear_all_caches_for_unit_testing();
course_modinfo::clear_instance_cache();
\course_modinfo::clear_instance_cache();
$this->expectException(moodle_exception::class);
$this->expectException(\moodle_exception::class);
mod_lti_external::view_lti($lti->id);
}
@@ -389,7 +385,7 @@ class mod_lti_external_testcase extends externallib_advanced_testcase {
$result = mod_lti_external::view_lti($lti->id);
// The value of the result isn't needed but validation is.
external_api::clean_returnvalue(mod_lti_external::view_lti_returns(), $result);
\external_api::clean_returnvalue(mod_lti_external::view_lti_returns(), $result);
$events = $sink->get_events();
$this->assertCount(1, $events);
@@ -398,7 +394,7 @@ class mod_lti_external_testcase extends externallib_advanced_testcase {
// Checking that the event contains the expected values.
$this->assertInstanceOf('\mod_lti\event\course_module_viewed', $event);
$this->assertEquals($context, $event->get_context());
$moodlelti = new moodle_url('/mod/lti/view.php', array('id' => $cm->id));
$moodlelti = new \moodle_url('/mod/lti/view.php', array('id' => $cm->id));
$this->assertEquals($moodlelti, $event->get_url());
$this->assertEventContextNotUsed($event);
$this->assertNotEmpty($event->get_name());
@@ -411,7 +407,7 @@ class mod_lti_external_testcase extends externallib_advanced_testcase {
$this->setAdminUser();
$capabilities = ['AA', 'BB'];
$proxy = mod_lti_external::create_tool_proxy('Test proxy', $this->getExternalTestFileUrl('/test.html'), $capabilities, []);
$proxy = (object) external_api::clean_returnvalue(mod_lti_external::create_tool_proxy_returns(), $proxy);
$proxy = (object) \external_api::clean_returnvalue(mod_lti_external::create_tool_proxy_returns(), $proxy);
$this->assertEquals('Test proxy', $proxy->name);
$this->assertEquals($this->getExternalTestFileUrl('/test.html'), $proxy->regurl);
@@ -426,7 +422,7 @@ class mod_lti_external_testcase extends externallib_advanced_testcase {
$this->setAdminUser();
mod_lti_external::create_tool_proxy('Test proxy 1', $this->getExternalTestFileUrl('/test.html'), array(), array());
$this->expectException(moodle_exception::class);
$this->expectException(\moodle_exception::class);
mod_lti_external::create_tool_proxy('Test proxy 2', $this->getExternalTestFileUrl('/test.html'), array(), array());
}
@@ -437,7 +433,7 @@ class mod_lti_external_testcase extends externallib_advanced_testcase {
$course = $this->getDataGenerator()->create_course();
$teacher = $this->getDataGenerator()->create_and_enrol($course, 'editingteacher');
$this->setUser($teacher);
$this->expectException(required_capability_exception::class);
$this->expectException(\required_capability_exception::class);
mod_lti_external::create_tool_proxy('Test proxy', $this->getExternalTestFileUrl('/test.html'), array(), array());
}
@@ -447,11 +443,11 @@ class mod_lti_external_testcase extends externallib_advanced_testcase {
public function test_mod_lti_delete_tool_proxy() {
$this->setAdminUser();
$proxy = mod_lti_external::create_tool_proxy('Test proxy', $this->getExternalTestFileUrl('/test.html'), array(), array());
$proxy = (object) external_api::clean_returnvalue(mod_lti_external::create_tool_proxy_returns(), $proxy);
$proxy = (object) \external_api::clean_returnvalue(mod_lti_external::create_tool_proxy_returns(), $proxy);
$this->assertNotEmpty(lti_get_tool_proxy($proxy->id));
$proxy = mod_lti_external::delete_tool_proxy($proxy->id);
$proxy = (object) external_api::clean_returnvalue(mod_lti_external::delete_tool_proxy_returns(), $proxy);
$proxy = (object) \external_api::clean_returnvalue(mod_lti_external::delete_tool_proxy_returns(), $proxy);
$this->assertEquals('Test proxy', $proxy->name);
$this->assertEquals($this->getExternalTestFileUrl('/test.html'), $proxy->regurl);
@@ -465,10 +461,10 @@ class mod_lti_external_testcase extends externallib_advanced_testcase {
public function test_mod_lti_get_tool_proxy_registration_request() {
$this->setAdminUser();
$proxy = mod_lti_external::create_tool_proxy('Test proxy', $this->getExternalTestFileUrl('/test.html'), array(), array());
$proxy = (object) external_api::clean_returnvalue(mod_lti_external::create_tool_proxy_returns(), $proxy);
$proxy = (object) \external_api::clean_returnvalue(mod_lti_external::create_tool_proxy_returns(), $proxy);
$request = mod_lti_external::get_tool_proxy_registration_request($proxy->id);
$request = external_api::clean_returnvalue(mod_lti_external::get_tool_proxy_registration_request_returns(),
$request = \external_api::clean_returnvalue(mod_lti_external::get_tool_proxy_registration_request_returns(),
$request);
$this->assertEquals('ToolProxyRegistrationRequest', $request['lti_message_type']);
@@ -482,11 +478,11 @@ class mod_lti_external_testcase extends externallib_advanced_testcase {
// Create a tool proxy.
$this->setAdminUser();
$proxy = mod_lti_external::create_tool_proxy('Test proxy', $this->getExternalTestFileUrl('/test.html'), array(), array());
$proxy = (object) external_api::clean_returnvalue(mod_lti_external::create_tool_proxy_returns(), $proxy);
$proxy = (object) \external_api::clean_returnvalue(mod_lti_external::create_tool_proxy_returns(), $proxy);
// Create a tool type, associated with that proxy.
$type = new stdClass();
$data = new stdClass();
$type = new \stdClass();
$data = new \stdClass();
$type->state = LTI_TOOL_STATE_CONFIGURED;
$type->name = "Test tool";
$type->description = "Example description";
@@ -495,7 +491,7 @@ class mod_lti_external_testcase extends externallib_advanced_testcase {
lti_add_type($type, $data);
$types = mod_lti_external::get_tool_types($proxy->id);
$types = external_api::clean_returnvalue(mod_lti_external::get_tool_types_returns(), $types);
$types = \external_api::clean_returnvalue(mod_lti_external::get_tool_types_returns(), $types);
$this->assertCount(1, $types);
$type = $types[0];
@@ -509,7 +505,7 @@ class mod_lti_external_testcase extends externallib_advanced_testcase {
public function test_mod_lti_create_tool_type() {
$this->setAdminUser();
$type = mod_lti_external::create_tool_type($this->getExternalTestFileUrl('/ims_cartridge_basic_lti_link.xml'), '', '');
$type = external_api::clean_returnvalue(mod_lti_external::create_tool_type_returns(), $type);
$type = \external_api::clean_returnvalue(mod_lti_external::create_tool_type_returns(), $type);
$this->assertEquals('Example tool', $type['name']);
$this->assertEquals('Example tool description', $type['description']);
@@ -527,7 +523,7 @@ class mod_lti_external_testcase extends externallib_advanced_testcase {
* Test create_tool_type failure from non existent file.
*/
public function test_mod_lti_create_tool_type_nonexistant_file() {
$this->expectException(moodle_exception::class);
$this->expectException(\moodle_exception::class);
mod_lti_external::create_tool_type($this->getExternalTestFileUrl('/doesntexist.xml'), '', '');
}
@@ -535,7 +531,7 @@ class mod_lti_external_testcase extends externallib_advanced_testcase {
* Test create_tool_type failure from xml that is not a cartridge.
*/
public function test_mod_lti_create_tool_type_bad_file() {
$this->expectException(moodle_exception::class);
$this->expectException(\moodle_exception::class);
mod_lti_external::create_tool_type($this->getExternalTestFileUrl('/rsstest.xml'), '', '');
}
@@ -546,7 +542,7 @@ class mod_lti_external_testcase extends externallib_advanced_testcase {
$course = $this->getDataGenerator()->create_course();
$teacher = $this->getDataGenerator()->create_and_enrol($course, 'editingteacher');
$this->setUser($teacher);
$this->expectException(required_capability_exception::class);
$this->expectException(\required_capability_exception::class);
mod_lti_external::create_tool_type($this->getExternalTestFileUrl('/ims_cartridge_basic_lti_link.xml'), '', '');
}
@@ -556,10 +552,10 @@ class mod_lti_external_testcase extends externallib_advanced_testcase {
public function test_mod_lti_update_tool_type() {
$this->setAdminUser();
$type = mod_lti_external::create_tool_type($this->getExternalTestFileUrl('/ims_cartridge_basic_lti_link.xml'), '', '');
$type = external_api::clean_returnvalue(mod_lti_external::create_tool_type_returns(), $type);
$type = \external_api::clean_returnvalue(mod_lti_external::create_tool_type_returns(), $type);
$type = mod_lti_external::update_tool_type($type['id'], 'New name', 'New description', LTI_TOOL_STATE_PENDING);
$type = external_api::clean_returnvalue(mod_lti_external::update_tool_type_returns(), $type);
$type = \external_api::clean_returnvalue(mod_lti_external::update_tool_type_returns(), $type);
$this->assertEquals('New name', $type['name']);
$this->assertEquals('New description', $type['description']);
@@ -572,11 +568,11 @@ class mod_lti_external_testcase extends externallib_advanced_testcase {
public function test_mod_lti_delete_tool_type() {
$this->setAdminUser();
$type = mod_lti_external::create_tool_type($this->getExternalTestFileUrl('/ims_cartridge_basic_lti_link.xml'), '', '');
$type = external_api::clean_returnvalue(mod_lti_external::create_tool_type_returns(), $type);
$type = \external_api::clean_returnvalue(mod_lti_external::create_tool_type_returns(), $type);
$this->assertNotEmpty(lti_get_type($type['id']));
$type = mod_lti_external::delete_tool_type($type['id']);
$type = external_api::clean_returnvalue(mod_lti_external::delete_tool_type_returns(), $type);
$type = \external_api::clean_returnvalue(mod_lti_external::delete_tool_type_returns(), $type);
$this->assertEmpty(lti_get_type($type['id']));
}
@@ -586,13 +582,13 @@ class mod_lti_external_testcase extends externallib_advanced_testcase {
public function test_mod_lti_delete_tool_type_without_capability() {
$this->setAdminUser();
$type = mod_lti_external::create_tool_type($this->getExternalTestFileUrl('/ims_cartridge_basic_lti_link.xml'), '', '');
$type = external_api::clean_returnvalue(mod_lti_external::create_tool_type_returns(), $type);
$type = \external_api::clean_returnvalue(mod_lti_external::create_tool_type_returns(), $type);
$this->assertNotEmpty(lti_get_type($type['id']));
$course = $this->getDataGenerator()->create_course();
$teacher = $this->getDataGenerator()->create_and_enrol($course, 'editingteacher');
$this->setUser($teacher);
$this->expectException(required_capability_exception::class);
$this->expectException(\required_capability_exception::class);
mod_lti_external::delete_tool_type($type['id']);
}
@@ -602,11 +598,11 @@ class mod_lti_external_testcase extends externallib_advanced_testcase {
public function test_mod_lti_is_cartridge() {
$this->setAdminUser();
$result = mod_lti_external::is_cartridge($this->getExternalTestFileUrl('/ims_cartridge_basic_lti_link.xml'));
$result = external_api::clean_returnvalue(mod_lti_external::is_cartridge_returns(), $result);
$result = \external_api::clean_returnvalue(mod_lti_external::is_cartridge_returns(), $result);
$this->assertTrue($result['iscartridge']);
$result = mod_lti_external::is_cartridge($this->getExternalTestFileUrl('/test.html'));
$result = external_api::clean_returnvalue(mod_lti_external::is_cartridge_returns(), $result);
$result = \external_api::clean_returnvalue(mod_lti_external::is_cartridge_returns(), $result);
$this->assertFalse($result['iscartridge']);
}
}
+3 -13
View File
@@ -14,17 +14,7 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* PHPUnit data generator tests
*
* @package mod_lti
* @category phpunit
* @copyright Copyright (c) 2012 Moodlerooms Inc. (http://www.moodlerooms.com)
* @author Mark Nielsen
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
namespace mod_lti;
/**
* PHPUnit data generator testcase
@@ -35,7 +25,7 @@ defined('MOODLE_INTERNAL') || die();
* @author Mark Nielsen
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class mod_lti_generator_testcase extends advanced_testcase {
class generator_test extends \advanced_testcase {
public function test_generator() {
global $DB;
@@ -62,7 +52,7 @@ class mod_lti_generator_testcase extends advanced_testcase {
$this->assertEquals('lti', $cm->modname);
$this->assertEquals($course->id, $cm->course);
$context = context_module::instance($cm->id);
$context = \context_module::instance($cm->id);
$this->assertEquals($lti->cmid, $context->instanceid);
// Test gradebook integration using low level DB access - DO NOT USE IN PLUGIN CODE!
+18 -23
View File
@@ -14,15 +14,10 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* External mod_page functions unit tests
*
* @package mod_page
* @category external
* @copyright 2015 Juan Leyva <juan@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since Moodle 3.0
*/
namespace mod_page;
use externallib_advanced_testcase;
use mod_page_external;
defined('MOODLE_INTERNAL') || die();
@@ -39,7 +34,7 @@ require_once($CFG->dirroot . '/webservice/tests/helpers.php');
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since Moodle 3.0
*/
class mod_page_external_testcase extends externallib_advanced_testcase {
class externallib_test extends externallib_advanced_testcase {
/**
* Test view_page
@@ -52,14 +47,14 @@ class mod_page_external_testcase extends externallib_advanced_testcase {
// Setup test data.
$course = $this->getDataGenerator()->create_course();
$page = $this->getDataGenerator()->create_module('page', array('course' => $course->id));
$context = context_module::instance($page->cmid);
$context = \context_module::instance($page->cmid);
$cm = get_coursemodule_from_instance('page', $page->id);
// Test invalid instance id.
try {
mod_page_external::view_page(0);
$this->fail('Exception expected due to invalid mod_page instance id.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('invalidrecord', $e->errorcode);
}
@@ -69,7 +64,7 @@ class mod_page_external_testcase extends externallib_advanced_testcase {
try {
mod_page_external::view_page($page->id);
$this->fail('Exception expected due to not enrolled user.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('requireloginerror', $e->errorcode);
}
@@ -81,7 +76,7 @@ class mod_page_external_testcase extends externallib_advanced_testcase {
$sink = $this->redirectEvents();
$result = mod_page_external::view_page($page->id);
$result = external_api::clean_returnvalue(mod_page_external::view_page_returns(), $result);
$result = \external_api::clean_returnvalue(mod_page_external::view_page_returns(), $result);
$events = $sink->get_events();
$this->assertCount(1, $events);
@@ -100,12 +95,12 @@ class mod_page_external_testcase extends externallib_advanced_testcase {
assign_capability('mod/page:view', CAP_PROHIBIT, $studentrole->id, $context->id);
// Empty all the caches that may be affected by this change.
accesslib_clear_all_caches_for_unit_testing();
course_modinfo::clear_instance_cache();
\course_modinfo::clear_instance_cache();
try {
mod_page_external::view_page($page->id);
$this->fail('Exception expected due to missing capability.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('requireloginerror', $e->errorcode);
}
@@ -127,12 +122,12 @@ class mod_page_external_testcase extends externallib_advanced_testcase {
$this->getDataGenerator()->enrol_user($student->id, $course1->id, $studentrole->id);
// First page.
$record = new stdClass();
$record = new \stdClass();
$record->course = $course1->id;
$page1 = self::getDataGenerator()->create_module('page', $record);
// Second page.
$record = new stdClass();
$record = new \stdClass();
$record->course = $course2->id;
$page2 = self::getDataGenerator()->create_module('page', $record);
@@ -186,21 +181,21 @@ class mod_page_external_testcase extends externallib_advanced_testcase {
// Call the external function passing course ids.
$result = mod_page_external::get_pages_by_courses(array($course2->id, $course1->id));
$result = external_api::clean_returnvalue($returndescription, $result);
$result = \external_api::clean_returnvalue($returndescription, $result);
$this->assertEquals($expectedpages, $result['pages']);
$this->assertCount(0, $result['warnings']);
// Call the external function without passing course id.
$result = mod_page_external::get_pages_by_courses();
$result = external_api::clean_returnvalue($returndescription, $result);
$result = \external_api::clean_returnvalue($returndescription, $result);
$this->assertEquals($expectedpages, $result['pages']);
$this->assertCount(0, $result['warnings']);
// Add a file to the intro.
$filename = "file.txt";
$filerecordinline = array(
'contextid' => context_module::instance($page2->cmid)->id,
'contextid' => \context_module::instance($page2->cmid)->id,
'component' => 'mod_page',
'filearea' => 'intro',
'itemid' => 0,
@@ -212,7 +207,7 @@ class mod_page_external_testcase extends externallib_advanced_testcase {
$fs->create_file_from_string($filerecordinline, 'image contents (not really)');
$result = mod_page_external::get_pages_by_courses(array($course2->id, $course1->id));
$result = external_api::clean_returnvalue($returndescription, $result);
$result = \external_api::clean_returnvalue($returndescription, $result);
$this->assertCount(1, $result['pages'][0]['introfiles']);
$this->assertEquals($filename, $result['pages'][0]['introfiles'][0]['filename']);
@@ -223,7 +218,7 @@ class mod_page_external_testcase extends externallib_advanced_testcase {
// Call the external function without passing course id.
$result = mod_page_external::get_pages_by_courses();
$result = external_api::clean_returnvalue($returndescription, $result);
$result = \external_api::clean_returnvalue($returndescription, $result);
$this->assertEquals($expectedpages, $result['pages']);
// Call for the second course we unenrolled the user from, expected warning.
+3 -13
View File
@@ -14,17 +14,7 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* PHPUnit data generator tests
*
* @package mod_page
* @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 mod_page;
/**
* PHPUnit data generator testcase
@@ -34,7 +24,7 @@ defined('MOODLE_INTERNAL') || die();
* @copyright 2012 Petr Skoda {@link http://skodak.org}
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class mod_page_generator_testcase extends advanced_testcase {
class generator_test extends \advanced_testcase {
public function test_generator() {
global $DB, $SITE;
@@ -57,7 +47,7 @@ class mod_page_generator_testcase extends advanced_testcase {
$this->assertEquals('page', $cm->modname);
$this->assertEquals($SITE->id, $cm->course);
$context = context_module::instance($cm->id);
$context = \context_module::instance($cm->id);
$this->assertEquals($page->cmid, $context->instanceid);
}
}
+3 -13
View File
@@ -14,17 +14,7 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* PHPUnit data generator tests
*
* @package mod_quiz
* @category phpunit
* @copyright 2012 Matt Petro
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
namespace mod_quiz;
/**
* PHPUnit data generator testcase
@@ -34,7 +24,7 @@ defined('MOODLE_INTERNAL') || die();
* @copyright 2012 Matt Petro
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class mod_quiz_generator_testcase extends advanced_testcase {
class generator_test extends \advanced_testcase {
public function test_generator() {
global $DB, $SITE;
@@ -58,7 +48,7 @@ class mod_quiz_generator_testcase extends advanced_testcase {
$this->assertEquals('quiz', $cm->modname);
$this->assertEquals($SITE->id, $cm->course);
$context = context_module::instance($cm->id);
$context = \context_module::instance($cm->id);
$this->assertEquals($quiz->cmid, $context->instanceid);
$this->assertEqualsWithDelta($createtime,
+18 -23
View File
@@ -14,15 +14,10 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* External mod_resource functions unit tests
*
* @package mod_resource
* @category external
* @copyright 2015 Juan Leyva <juan@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since Moodle 3.0
*/
namespace mod_resource;
use externallib_advanced_testcase;
use mod_resource_external;
defined('MOODLE_INTERNAL') || die();
@@ -39,7 +34,7 @@ require_once($CFG->dirroot . '/webservice/tests/helpers.php');
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since Moodle 3.0
*/
class mod_resource_external_testcase extends externallib_advanced_testcase {
class externallib_test extends externallib_advanced_testcase {
/**
* Test view_resource
@@ -53,14 +48,14 @@ class mod_resource_external_testcase extends externallib_advanced_testcase {
// Setup test data.
$course = $this->getDataGenerator()->create_course();
$resource = $this->getDataGenerator()->create_module('resource', array('course' => $course->id));
$context = context_module::instance($resource->cmid);
$context = \context_module::instance($resource->cmid);
$cm = get_coursemodule_from_instance('resource', $resource->id);
// Test invalid instance id.
try {
mod_resource_external::view_resource(0);
$this->fail('Exception expected due to invalid mod_resource instance id.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('invalidrecord', $e->errorcode);
}
@@ -70,7 +65,7 @@ class mod_resource_external_testcase extends externallib_advanced_testcase {
try {
mod_resource_external::view_resource($resource->id);
$this->fail('Exception expected due to not enrolled user.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('requireloginerror', $e->errorcode);
}
@@ -82,7 +77,7 @@ class mod_resource_external_testcase extends externallib_advanced_testcase {
$sink = $this->redirectEvents();
$result = mod_resource_external::view_resource($resource->id);
$result = external_api::clean_returnvalue(mod_resource_external::view_resource_returns(), $result);
$result = \external_api::clean_returnvalue(mod_resource_external::view_resource_returns(), $result);
$events = $sink->get_events();
$this->assertCount(1, $events);
@@ -101,12 +96,12 @@ class mod_resource_external_testcase extends externallib_advanced_testcase {
assign_capability('mod/resource:view', CAP_PROHIBIT, $studentrole->id, $context->id);
// Empty all the caches that may be affected by this change.
accesslib_clear_all_caches_for_unit_testing();
course_modinfo::clear_instance_cache();
\course_modinfo::clear_instance_cache();
try {
mod_resource_external::view_resource($resource->id);
$this->fail('Exception expected due to missing capability.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('requireloginerror', $e->errorcode);
}
@@ -130,12 +125,12 @@ class mod_resource_external_testcase extends externallib_advanced_testcase {
self::setUser($student);
// First resource.
$record = new stdClass();
$record = new \stdClass();
$record->course = $course1->id;
$resource1 = self::getDataGenerator()->create_module('resource', $record);
// Second resource.
$record = new stdClass();
$record = new \stdClass();
$record->course = $course2->id;
$resource2 = self::getDataGenerator()->create_module('resource', $record);
@@ -187,7 +182,7 @@ class mod_resource_external_testcase extends externallib_advanced_testcase {
// Call the external function passing course ids.
$result = mod_resource_external::get_resources_by_courses(array($course2->id, $course1->id));
$result = external_api::clean_returnvalue($returndescription, $result);
$result = \external_api::clean_returnvalue($returndescription, $result);
// Remove the contentfiles (to be checked bellow).
$result['resources'][0]['contentfiles'] = [];
@@ -199,7 +194,7 @@ class mod_resource_external_testcase extends externallib_advanced_testcase {
// Call the external function without passing course id.
$result = mod_resource_external::get_resources_by_courses();
$result = external_api::clean_returnvalue($returndescription, $result);
$result = \external_api::clean_returnvalue($returndescription, $result);
// Remove the contentfiles (to be checked bellow).
$result['resources'][0]['contentfiles'] = [];
@@ -212,7 +207,7 @@ class mod_resource_external_testcase extends externallib_advanced_testcase {
// Add a file to the intro.
$fileintroname = "fileintro.txt";
$filerecordinline = array(
'contextid' => context_module::instance($resource2->cmid)->id,
'contextid' => \context_module::instance($resource2->cmid)->id,
'component' => 'mod_resource',
'filearea' => 'intro',
'itemid' => 0,
@@ -224,7 +219,7 @@ class mod_resource_external_testcase extends externallib_advanced_testcase {
$fs->create_file_from_string($filerecordinline, 'image contents (not really)');
$result = mod_resource_external::get_resources_by_courses(array($course2->id, $course1->id));
$result = external_api::clean_returnvalue($returndescription, $result);
$result = \external_api::clean_returnvalue($returndescription, $result);
// Check that we receive correctly the files.
$this->assertCount(1, $result['resources'][0]['introfiles']);
@@ -241,7 +236,7 @@ class mod_resource_external_testcase extends externallib_advanced_testcase {
// Call the external function without passing course id.
$result = mod_resource_external::get_resources_by_courses();
$result = external_api::clean_returnvalue($returndescription, $result);
$result = \external_api::clean_returnvalue($returndescription, $result);
// Remove the contentfiles (to be checked bellow).
$result['resources'][0]['contentfiles'] = [];
+3 -13
View File
@@ -14,17 +14,7 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* PHPUnit data generator tests.
*
* @package mod_resource
* @category phpunit
* @copyright 2013 The Open University
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
namespace mod_resource;
/**
* PHPUnit data generator testcase.
@@ -34,7 +24,7 @@ defined('MOODLE_INTERNAL') || die();
* @copyright 2013 The Open University
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class mod_resource_generator_testcase extends advanced_testcase {
class generator_test extends \advanced_testcase {
public function test_generator() {
global $DB, $SITE;
@@ -64,7 +54,7 @@ class mod_resource_generator_testcase extends advanced_testcase {
$this->assertEquals($SITE->id, $cm->course);
// Check the context is correct.
$context = context_module::instance($cm->id);
$context = \context_module::instance($cm->id);
$this->assertEquals($resource->cmid, $context->instanceid);
// Check that generated resource module contains a file.
+62 -67
View File
@@ -14,15 +14,10 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* SCORM module external functions tests
*
* @package mod_scorm
* @category external
* @copyright 2015 Juan Leyva <juan@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since Moodle 3.0
*/
namespace mod_scorm;
use externallib_advanced_testcase;
use mod_scorm_external;
defined('MOODLE_INTERNAL') || die();
@@ -40,7 +35,7 @@ require_once($CFG->dirroot . '/mod/scorm/lib.php');
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since Moodle 3.0
*/
class mod_scorm_external_testcase extends externallib_advanced_testcase {
class externallib_test extends externallib_advanced_testcase {
/**
* Set up for every test
@@ -55,7 +50,7 @@ class mod_scorm_external_testcase extends externallib_advanced_testcase {
$this->course = $this->getDataGenerator()->create_course(array('enablecompletion' => 1));
$this->scorm = $this->getDataGenerator()->create_module('scorm', array('course' => $this->course->id),
array('completion' => 2, 'completionview' => 1));
$this->context = context_module::instance($this->scorm->cmid);
$this->context = \context_module::instance($this->scorm->cmid);
$this->cm = get_coursemodule_from_instance('scorm', $this->scorm->id);
// Create users.
@@ -79,7 +74,7 @@ class mod_scorm_external_testcase extends externallib_advanced_testcase {
try {
mod_scorm_external::view_scorm(0);
$this->fail('Exception expected due to invalid mod_scorm instance id.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('invalidrecord', $e->errorcode);
}
@@ -89,7 +84,7 @@ class mod_scorm_external_testcase extends externallib_advanced_testcase {
try {
mod_scorm_external::view_scorm($this->scorm->id);
$this->fail('Exception expected due to not enrolled user.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('requireloginerror', $e->errorcode);
}
@@ -101,7 +96,7 @@ class mod_scorm_external_testcase extends externallib_advanced_testcase {
$sink = $this->redirectEvents();
$result = mod_scorm_external::view_scorm($this->scorm->id);
$result = external_api::clean_returnvalue(mod_scorm_external::view_scorm_returns(), $result);
$result = \external_api::clean_returnvalue(mod_scorm_external::view_scorm_returns(), $result);
$events = $sink->get_events();
$this->assertCount(1, $events);
@@ -125,7 +120,7 @@ class mod_scorm_external_testcase extends externallib_advanced_testcase {
// Retrieve my attempts (should be 0).
$result = mod_scorm_external::get_scorm_attempt_count($this->scorm->id, $this->student->id);
$result = external_api::clean_returnvalue(mod_scorm_external::get_scorm_attempt_count_returns(), $result);
$result = \external_api::clean_returnvalue(mod_scorm_external::get_scorm_attempt_count_returns(), $result);
$this->assertEquals(0, $result['attemptscount']);
}
@@ -140,7 +135,7 @@ class mod_scorm_external_testcase extends externallib_advanced_testcase {
scorm_insert_track($this->student->id, $this->scorm->id, $sco->id, 2, 'cmi.core.lesson_status', 'completed');
$result = mod_scorm_external::get_scorm_attempt_count($this->scorm->id, $this->student->id);
$result = external_api::clean_returnvalue(mod_scorm_external::get_scorm_attempt_count_returns(), $result);
$result = \external_api::clean_returnvalue(mod_scorm_external::get_scorm_attempt_count_returns(), $result);
$this->assertEquals(2, $result['attemptscount']);
}
@@ -155,7 +150,7 @@ class mod_scorm_external_testcase extends externallib_advanced_testcase {
scorm_insert_track($this->student->id, $this->scorm->id, $sco->id, 2, 'cmi.core.credit', '0');
$result = mod_scorm_external::get_scorm_attempt_count($this->scorm->id, $this->student->id, true);
$result = external_api::clean_returnvalue(mod_scorm_external::get_scorm_attempt_count_returns(), $result);
$result = \external_api::clean_returnvalue(mod_scorm_external::get_scorm_attempt_count_returns(), $result);
$this->assertEquals(1, $result['attemptscount']);
}
@@ -170,7 +165,7 @@ class mod_scorm_external_testcase extends externallib_advanced_testcase {
// I should be able to view the attempts for my students.
$result = mod_scorm_external::get_scorm_attempt_count($this->scorm->id, $this->student->id);
$result = external_api::clean_returnvalue(mod_scorm_external::get_scorm_attempt_count_returns(), $result);
$result = \external_api::clean_returnvalue(mod_scorm_external::get_scorm_attempt_count_returns(), $result);
$this->assertEquals(1, $result['attemptscount']);
}
@@ -183,7 +178,7 @@ class mod_scorm_external_testcase extends externallib_advanced_testcase {
self::setUser($student2);
// I should not be able to view the attempts of another student.
$this->expectException(required_capability_exception::class);
$this->expectException(\required_capability_exception::class);
mod_scorm_external::get_scorm_attempt_count($this->scorm->id, $this->student->id);
}
@@ -192,7 +187,7 @@ class mod_scorm_external_testcase extends externallib_advanced_testcase {
self::setUser($this->student);
// Test invalid instance id.
$this->expectException(moodle_exception::class);
$this->expectException(\moodle_exception::class);
mod_scorm_external::get_scorm_attempt_count(0, $this->student->id);
}
@@ -200,7 +195,7 @@ class mod_scorm_external_testcase extends externallib_advanced_testcase {
// As student.
self::setUser($this->student);
$this->expectException(moodle_exception::class);
$this->expectException(\moodle_exception::class);
mod_scorm_external::get_scorm_attempt_count($this->scorm->id, -1);
}
@@ -220,7 +215,7 @@ class mod_scorm_external_testcase extends externallib_advanced_testcase {
$course = self::getDataGenerator()->create_course();
// First scorm, dates restriction.
$record = new stdClass();
$record = new \stdClass();
$record->course = $course->id;
$record->timeopen = time() + DAYSECS;
$record->timeclose = $record->timeopen + DAYSECS;
@@ -239,7 +234,7 @@ class mod_scorm_external_testcase extends externallib_advanced_testcase {
try {
mod_scorm_external::get_scorm_scoes($scorm->id);
$this->fail('Exception expected due to invalid dates.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('notopenyet', $e->errorcode);
}
@@ -250,14 +245,14 @@ class mod_scorm_external_testcase extends externallib_advanced_testcase {
try {
mod_scorm_external::get_scorm_scoes($scorm->id);
$this->fail('Exception expected due to invalid dates.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('expired', $e->errorcode);
}
// Retrieve my scoes, user with permission.
self::setUser($teacher);
$result = mod_scorm_external::get_scorm_scoes($scorm->id);
$result = external_api::clean_returnvalue(mod_scorm_external::get_scorm_scoes_returns(), $result);
$result = \external_api::clean_returnvalue(mod_scorm_external::get_scorm_scoes_returns(), $result);
$this->assertCount(2, $result['scoes']);
$this->assertCount(0, $result['warnings']);
@@ -289,7 +284,7 @@ class mod_scorm_external_testcase extends externallib_advanced_testcase {
// Use organization.
$organization = 'golf_sample_default_org';
$result = mod_scorm_external::get_scorm_scoes($scorm->id, $organization);
$result = external_api::clean_returnvalue(mod_scorm_external::get_scorm_scoes_returns(), $result);
$result = \external_api::clean_returnvalue(mod_scorm_external::get_scorm_scoes_returns(), $result);
$this->assertCount(1, $result['scoes']);
$this->assertEquals($organization, $result['scoes'][0]['organization']);
$this->assertCount(0, $result['warnings']);
@@ -298,7 +293,7 @@ class mod_scorm_external_testcase extends externallib_advanced_testcase {
try {
mod_scorm_external::get_scorm_scoes(0);
$this->fail('Exception expected due to invalid instance id.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('invalidrecord', $e->errorcode);
}
@@ -313,13 +308,13 @@ class mod_scorm_external_testcase extends externallib_advanced_testcase {
// As student.
self::setUser($this->student);
$record = new stdClass();
$record = new \stdClass();
$record->course = $this->course->id;
$record->packagefilepath = $CFG->dirroot.'/mod/scorm/tests/packages/complexscorm.zip';
$scorm = self::getDataGenerator()->create_module('scorm', $record);
$result = mod_scorm_external::get_scorm_scoes($scorm->id);
$result = external_api::clean_returnvalue(mod_scorm_external::get_scorm_scoes_returns(), $result);
$result = \external_api::clean_returnvalue(mod_scorm_external::get_scorm_scoes_returns(), $result);
$this->assertCount(9, $result['scoes']);
$this->assertCount(0, $result['warnings']);
@@ -363,7 +358,7 @@ class mod_scorm_external_testcase extends externallib_advanced_testcase {
$course = self::getDataGenerator()->create_course();
// First scorm.
$record = new stdClass();
$record = new \stdClass();
$record->course = $course->id;
$scorm = self::getDataGenerator()->create_module('scorm', $record);
@@ -381,7 +376,7 @@ class mod_scorm_external_testcase extends externallib_advanced_testcase {
scorm_insert_track($student1->id, $scorm->id, $sco->id, 2, 'cmi.core.lesson_status', 'completed');
$result = mod_scorm_external::get_scorm_user_data($scorm->id, 1);
$result = external_api::clean_returnvalue(mod_scorm_external::get_scorm_user_data_returns(), $result);
$result = \external_api::clean_returnvalue(mod_scorm_external::get_scorm_user_data_returns(), $result);
$this->assertCount(2, $result['data']);
// Find our tracking data.
$found = 0;
@@ -401,7 +396,7 @@ class mod_scorm_external_testcase extends externallib_advanced_testcase {
try {
mod_scorm_external::get_scorm_user_data(0, 1);
$this->fail('Exception expected due to invalid instance id.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('invalidrecord', $e->errorcode);
}
}
@@ -421,7 +416,7 @@ class mod_scorm_external_testcase extends externallib_advanced_testcase {
$course = self::getDataGenerator()->create_course();
// First scorm, dates restriction.
$record = new stdClass();
$record = new \stdClass();
$record->course = $course->id;
$record->timeopen = time() + DAYSECS;
$record->timeclose = $record->timeopen + DAYSECS;
@@ -453,7 +448,7 @@ class mod_scorm_external_testcase extends externallib_advanced_testcase {
try {
mod_scorm_external::insert_scorm_tracks($sco->id, 1, $tracks);
$this->fail('Exception expected due to dates');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('notopenyet', $e->errorcode);
}
@@ -464,7 +459,7 @@ class mod_scorm_external_testcase extends externallib_advanced_testcase {
try {
mod_scorm_external::insert_scorm_tracks($sco->id, 1, $tracks);
$this->fail('Exception expected due to dates');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('expired', $e->errorcode);
}
@@ -472,7 +467,7 @@ class mod_scorm_external_testcase extends externallib_advanced_testcase {
try {
mod_scorm_external::insert_scorm_tracks(0, 1, $tracks);
$this->fail('Exception expected due to invalid sco id.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('cannotfindsco', $e->errorcode);
}
@@ -482,7 +477,7 @@ class mod_scorm_external_testcase extends externallib_advanced_testcase {
// Retrieve my tracks.
$result = mod_scorm_external::insert_scorm_tracks($sco->id, 1, $tracks);
$result = external_api::clean_returnvalue(mod_scorm_external::insert_scorm_tracks_returns(), $result);
$result = \external_api::clean_returnvalue(mod_scorm_external::insert_scorm_tracks_returns(), $result);
$this->assertCount(0, $result['warnings']);
$trackids = $DB->get_records('scorm_scoes_track', array('userid' => $student->id, 'scoid' => $sco->id,
@@ -512,7 +507,7 @@ class mod_scorm_external_testcase extends externallib_advanced_testcase {
$course = self::getDataGenerator()->create_course();
// First scorm.
$record = new stdClass();
$record = new \stdClass();
$record->course = $course->id;
$scorm = self::getDataGenerator()->create_module('scorm', $record);
@@ -530,7 +525,7 @@ class mod_scorm_external_testcase extends externallib_advanced_testcase {
scorm_insert_track($student->id, $scorm->id, $sco->id, 2, 'cmi.core.lesson_status', 'completed');
$result = mod_scorm_external::get_scorm_sco_tracks($sco->id, $student->id, 1);
$result = external_api::clean_returnvalue(mod_scorm_external::get_scorm_sco_tracks_returns(), $result);
$result = \external_api::clean_returnvalue(mod_scorm_external::get_scorm_sco_tracks_returns(), $result);
// 7 default elements + 2 custom ones.
$this->assertCount(9, $result['data']['tracks']);
$this->assertEquals(1, $result['data']['attempt']);
@@ -549,7 +544,7 @@ class mod_scorm_external_testcase extends externallib_advanced_testcase {
// Try invalid attempt.
$result = mod_scorm_external::get_scorm_sco_tracks($sco->id, $student->id, 10);
$result = external_api::clean_returnvalue(mod_scorm_external::get_scorm_sco_tracks_returns(), $result);
$result = \external_api::clean_returnvalue(mod_scorm_external::get_scorm_sco_tracks_returns(), $result);
$this->assertCount(0, $result['data']['tracks']);
$this->assertEquals(10, $result['data']['attempt']);
$this->assertCount(1, $result['warnings']);
@@ -559,14 +554,14 @@ class mod_scorm_external_testcase extends externallib_advanced_testcase {
try {
mod_scorm_external::get_scorm_sco_tracks($sco->id, $otherstudent->id);
$this->fail('Exception expected due to invalid instance id.');
} catch (required_capability_exception $e) {
} catch (\required_capability_exception $e) {
$this->assertEquals('nopermissions', $e->errorcode);
}
self::setUser($teacher);
// Ommit the attempt parameter, the function should calculate the last attempt.
$result = mod_scorm_external::get_scorm_sco_tracks($sco->id, $student->id);
$result = external_api::clean_returnvalue(mod_scorm_external::get_scorm_sco_tracks_returns(), $result);
$result = \external_api::clean_returnvalue(mod_scorm_external::get_scorm_sco_tracks_returns(), $result);
// 7 default elements + 1 custom one.
$this->assertCount(8, $result['data']['tracks']);
$this->assertEquals(2, $result['data']['attempt']);
@@ -575,14 +570,14 @@ class mod_scorm_external_testcase extends externallib_advanced_testcase {
try {
mod_scorm_external::get_scorm_sco_tracks(0, 1);
$this->fail('Exception expected due to invalid instance id.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('cannotfindsco', $e->errorcode);
}
// Invalid user.
try {
mod_scorm_external::get_scorm_sco_tracks($sco->id, 0);
$this->fail('Exception expected due to invalid instance id.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('invaliduser', $e->errorcode);
}
}
@@ -607,7 +602,7 @@ class mod_scorm_external_testcase extends externallib_advanced_testcase {
$course2 = self::getDataGenerator()->create_course();
// First scorm.
$record = new stdClass();
$record = new \stdClass();
$record->introformat = FORMAT_HTML;
$record->course = $course1->id;
$record->hidetoc = 2;
@@ -616,7 +611,7 @@ class mod_scorm_external_testcase extends externallib_advanced_testcase {
$scorm1 = self::getDataGenerator()->create_module('scorm', $record);
// Second scorm.
$record = new stdClass();
$record = new \stdClass();
$record->introformat = FORMAT_HTML;
$record->course = $course2->id;
$scorm2 = self::getDataGenerator()->create_module('scorm', $record);
@@ -649,7 +644,7 @@ class mod_scorm_external_testcase extends externallib_advanced_testcase {
$DB->update_record('scorm', $scorm1);
$result = mod_scorm_external::get_scorms_by_courses(array($course1->id));
$result = external_api::clean_returnvalue($returndescription, $result);
$result = \external_api::clean_returnvalue($returndescription, $result);
$this->assertCount(1, $result['warnings']);
// Only 'id', 'coursemodule', 'course', 'name', 'intro', 'introformat', 'introfiles'.
$this->assertCount(7, $result['scorms'][0]);
@@ -660,7 +655,7 @@ class mod_scorm_external_testcase extends externallib_advanced_testcase {
$DB->update_record('scorm', $scorm1);
$result = mod_scorm_external::get_scorms_by_courses(array($course1->id));
$result = external_api::clean_returnvalue($returndescription, $result);
$result = \external_api::clean_returnvalue($returndescription, $result);
$this->assertCount(1, $result['warnings']);
// Only 'id', 'coursemodule', 'course', 'name', 'intro', 'introformat', 'introfiles'.
$this->assertCount(7, $result['scorms'][0]);
@@ -694,15 +689,15 @@ class mod_scorm_external_testcase extends externallib_advanced_testcase {
$scorm2->groupingid = 0;
// SCORM size. The same package is used in both SCORMs.
$scormcontext1 = context_module::instance($scorm1->cmid);
$scormcontext2 = context_module::instance($scorm2->cmid);
$scormcontext1 = \context_module::instance($scorm1->cmid);
$scormcontext2 = \context_module::instance($scorm2->cmid);
$fs = get_file_storage();
$packagefile = $fs->get_file($scormcontext1->id, 'mod_scorm', 'package', 0, '/', $scorm1->reference);
$packagesize = $packagefile->get_filesize();
$packageurl1 = moodle_url::make_webservice_pluginfile_url(
$packageurl1 = \moodle_url::make_webservice_pluginfile_url(
$scormcontext1->id, 'mod_scorm', 'package', 0, '/', $scorm1->reference)->out(false);
$packageurl2 = moodle_url::make_webservice_pluginfile_url(
$packageurl2 = \moodle_url::make_webservice_pluginfile_url(
$scormcontext2->id, 'mod_scorm', 'package', 0, '/', $scorm2->reference)->out(false);
$scorm1->packagesize = $packagesize;
@@ -739,12 +734,12 @@ class mod_scorm_external_testcase extends externallib_advanced_testcase {
// Call the external function passing course ids.
$result = mod_scorm_external::get_scorms_by_courses(array($course2->id, $course1->id));
$result = external_api::clean_returnvalue($returndescription, $result);
$result = \external_api::clean_returnvalue($returndescription, $result);
$this->assertEquals($expectedscorms, $result['scorms']);
// Call the external function without passing course id.
$result = mod_scorm_external::get_scorms_by_courses();
$result = external_api::clean_returnvalue($returndescription, $result);
$result = \external_api::clean_returnvalue($returndescription, $result);
$this->assertEquals($expectedscorms, $result['scorms']);
// Unenrol user from second course and alter expected scorms.
@@ -753,7 +748,7 @@ class mod_scorm_external_testcase extends externallib_advanced_testcase {
// Call the external function without passing course id.
$result = mod_scorm_external::get_scorms_by_courses();
$result = external_api::clean_returnvalue($returndescription, $result);
$result = \external_api::clean_returnvalue($returndescription, $result);
$this->assertEquals($expectedscorms, $result['scorms']);
// Call for the second course we unenrolled the user from, expected warning.
@@ -780,7 +775,7 @@ class mod_scorm_external_testcase extends externallib_advanced_testcase {
}
$result = mod_scorm_external::get_scorms_by_courses();
$result = external_api::clean_returnvalue($returndescription, $result);
$result = \external_api::clean_returnvalue($returndescription, $result);
$this->assertEquals($expectedscorms, $result['scorms']);
// Even with the SCORM closed in time teacher should retrieve the info.
@@ -792,14 +787,14 @@ class mod_scorm_external_testcase extends externallib_advanced_testcase {
$expectedscorms[0]['timeclose'] = $scorm1->timeclose;
$result = mod_scorm_external::get_scorms_by_courses();
$result = external_api::clean_returnvalue($returndescription, $result);
$result = \external_api::clean_returnvalue($returndescription, $result);
$this->assertEquals($expectedscorms, $result['scorms']);
// Admin also should get all the information.
self::setAdminUser();
$result = mod_scorm_external::get_scorms_by_courses(array($course1->id));
$result = external_api::clean_returnvalue($returndescription, $result);
$result = \external_api::clean_returnvalue($returndescription, $result);
$this->assertEquals($expectedscorms, $result['scorms']);
}
@@ -813,7 +808,7 @@ class mod_scorm_external_testcase extends externallib_advanced_testcase {
try {
mod_scorm_external::launch_sco(0);
$this->fail('Exception expected due to invalid mod_scorm instance id.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('invalidrecord', $e->errorcode);
}
@@ -823,7 +818,7 @@ class mod_scorm_external_testcase extends externallib_advanced_testcase {
try {
mod_scorm_external::launch_sco($this->scorm->id);
$this->fail('Exception expected due to not enrolled user.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('requireloginerror', $e->errorcode);
}
@@ -842,7 +837,7 @@ class mod_scorm_external_testcase extends externallib_advanced_testcase {
}
$result = mod_scorm_external::launch_sco($this->scorm->id, $sco->id);
$result = external_api::clean_returnvalue(mod_scorm_external::launch_sco_returns(), $result);
$result = \external_api::clean_returnvalue(mod_scorm_external::launch_sco_returns(), $result);
$events = $sink->get_events();
$this->assertCount(3, $events);
@@ -860,7 +855,7 @@ class mod_scorm_external_testcase extends externallib_advanced_testcase {
$this->assertInstanceOf('\core\event\course_module_completion_updated', $event);
// Check completion status.
$completion = new completion_info($this->course);
$completion = new \completion_info($this->course);
$completiondata = $completion->get_data($this->cm);
$this->assertEquals(COMPLETION_VIEWED, $completiondata->completionstate);
@@ -868,7 +863,7 @@ class mod_scorm_external_testcase extends externallib_advanced_testcase {
try {
mod_scorm_external::launch_sco($this->scorm->id, -1);
$this->fail('Exception expected due to invalid SCO id.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('cannotfindsco', $e->errorcode);
}
}
@@ -884,17 +879,17 @@ class mod_scorm_external_testcase extends externallib_advanced_testcase {
$student = self::getDataGenerator()->create_user();
$course = self::getDataGenerator()->create_course();
// Create the scorm.
$record = new stdClass();
$record = new \stdClass();
$record->course = $course->id;
$scorm = self::getDataGenerator()->create_module('scorm', $record);
$context = context_module::instance($scorm->cmid);
$context = \context_module::instance($scorm->cmid);
$studentrole = $DB->get_record('role', array('shortname' => 'student'));
$this->getDataGenerator()->enrol_user($student->id, $course->id, $studentrole->id, 'manual');
self::setUser($student);
$result = mod_scorm_external::get_scorm_access_information($scorm->id);
$result = external_api::clean_returnvalue(mod_scorm_external::get_scorm_access_information_returns(), $result);
$result = \external_api::clean_returnvalue(mod_scorm_external::get_scorm_access_information_returns(), $result);
// Check default values for capabilities.
$enabledcaps = array('canskipview', 'cansavetrack', 'canviewscores');
@@ -913,7 +908,7 @@ class mod_scorm_external_testcase extends externallib_advanced_testcase {
accesslib_clear_all_caches_for_unit_testing();
$result = mod_scorm_external::get_scorm_access_information($scorm->id);
$result = external_api::clean_returnvalue(mod_scorm_external::get_scorm_access_information_returns(), $result);
$result = \external_api::clean_returnvalue(mod_scorm_external::get_scorm_access_information_returns(), $result);
unset($result['warnings']);
foreach ($result as $capname => $capvalue) {
if (in_array($capname, $enabledcaps)) {
+3 -10
View File
@@ -14,14 +14,7 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* mod_scorm generator tests
*
* @package mod_scorm
* @category test
* @copyright 2013 Marina Glancy
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
namespace mod_scorm;
/**
* Genarator tests class for mod_scorm.
@@ -31,7 +24,7 @@
* @copyright 2013 Marina Glancy
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class mod_scorm_generator_testcase extends advanced_testcase {
class generator_test extends \advanced_testcase {
public function test_create_instance() {
global $DB, $CFG, $USER;
@@ -66,7 +59,7 @@ class mod_scorm_generator_testcase extends advanced_testcase {
'course' => $course->id,
'packagefile' => file_get_unused_draft_itemid()
);
$usercontext = context_user::instance($USER->id);
$usercontext = \context_user::instance($USER->id);
$filerecord = array('component' => 'user', 'filearea' => 'draft',
'contextid' => $usercontext->id, 'itemid' => $params['packagefile'],
'filename' => 'singlescobasic.zip', 'filepath' => '/');
+24 -29
View File
@@ -14,15 +14,10 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Survey module external functions tests
*
* @package mod_survey
* @category external
* @copyright 2015 Juan Leyva <juan@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since Moodle 3.0
*/
namespace mod_survey;
use externallib_advanced_testcase;
use mod_survey_external;
defined('MOODLE_INTERNAL') || die();
@@ -40,7 +35,7 @@ require_once($CFG->dirroot . '/mod/survey/lib.php');
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since Moodle 3.0
*/
class mod_survey_external_testcase extends externallib_advanced_testcase {
class externallib_test extends externallib_advanced_testcase {
/**
* Set up for every test
@@ -53,7 +48,7 @@ class mod_survey_external_testcase extends externallib_advanced_testcase {
// Setup test data.
$this->course = $this->getDataGenerator()->create_course();
$this->survey = $this->getDataGenerator()->create_module('survey', array('course' => $this->course->id));
$this->context = context_module::instance($this->survey->cmid);
$this->context = \context_module::instance($this->survey->cmid);
$this->cm = get_coursemodule_from_instance('survey', $this->survey->id);
// Create users.
@@ -78,7 +73,7 @@ class mod_survey_external_testcase extends externallib_advanced_testcase {
$course2 = self::getDataGenerator()->create_course();
// Second survey.
$record = new stdClass();
$record = new \stdClass();
$record->course = $course2->id;
$survey2 = self::getDataGenerator()->create_module('survey', $record);
// Force empty intro.
@@ -135,14 +130,14 @@ class mod_survey_external_testcase extends externallib_advanced_testcase {
// Call the external function passing course ids.
$result = mod_survey_external::get_surveys_by_courses(array($course2->id, $this->course->id));
$result = external_api::clean_returnvalue($returndescription, $result);
$result = \external_api::clean_returnvalue($returndescription, $result);
$this->assertEquals($expectedsurveys, $result['surveys']);
$this->assertCount(0, $result['warnings']);
// Call the external function without passing course id.
$result = mod_survey_external::get_surveys_by_courses();
$result = external_api::clean_returnvalue($returndescription, $result);
$result = \external_api::clean_returnvalue($returndescription, $result);
$this->assertEquals($expectedsurveys, $result['surveys']);
$this->assertCount(0, $result['warnings']);
@@ -152,7 +147,7 @@ class mod_survey_external_testcase extends externallib_advanced_testcase {
// Call the external function without passing course id.
$result = mod_survey_external::get_surveys_by_courses();
$result = external_api::clean_returnvalue($returndescription, $result);
$result = \external_api::clean_returnvalue($returndescription, $result);
$this->assertEquals($expectedsurveys, $result['surveys']);
// Call for the second course we unenrolled the user from, expected warning.
@@ -171,25 +166,25 @@ class mod_survey_external_testcase extends externallib_advanced_testcase {
}
$result = mod_survey_external::get_surveys_by_courses();
$result = external_api::clean_returnvalue($returndescription, $result);
$result = \external_api::clean_returnvalue($returndescription, $result);
$this->assertEquals($expectedsurveys, $result['surveys']);
// Admin also should get all the information.
self::setAdminUser();
$result = mod_survey_external::get_surveys_by_courses(array($this->course->id));
$result = external_api::clean_returnvalue($returndescription, $result);
$result = \external_api::clean_returnvalue($returndescription, $result);
$this->assertEquals($expectedsurveys, $result['surveys']);
// Now, prohibit capabilities.
$this->setUser($this->student);
$contextcourse1 = context_course::instance($this->course->id);
$contextcourse1 = \context_course::instance($this->course->id);
// Prohibit capability = mod/survey:participate on Course1 for students.
assign_capability('mod/survey:participate', CAP_PROHIBIT, $this->studentrole->id, $contextcourse1->id);
accesslib_clear_all_caches_for_unit_testing();
$surveys = mod_survey_external::get_surveys_by_courses(array($this->course->id));
$surveys = external_api::clean_returnvalue(mod_survey_external::get_surveys_by_courses_returns(), $surveys);
$surveys = \external_api::clean_returnvalue(mod_survey_external::get_surveys_by_courses_returns(), $surveys);
$this->assertFalse(isset($surveys['surveys'][0]['intro']));
}
@@ -203,7 +198,7 @@ class mod_survey_external_testcase extends externallib_advanced_testcase {
try {
mod_survey_external::view_survey(0);
$this->fail('Exception expected due to invalid mod_survey instance id.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('invalidrecord', $e->errorcode);
}
@@ -213,7 +208,7 @@ class mod_survey_external_testcase extends externallib_advanced_testcase {
try {
mod_survey_external::view_survey($this->survey->id);
$this->fail('Exception expected due to not enrolled user.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('requireloginerror', $e->errorcode);
}
@@ -224,7 +219,7 @@ class mod_survey_external_testcase extends externallib_advanced_testcase {
$sink = $this->redirectEvents();
$result = mod_survey_external::view_survey($this->survey->id);
$result = external_api::clean_returnvalue(mod_survey_external::view_survey_returns(), $result);
$result = \external_api::clean_returnvalue(mod_survey_external::view_survey_returns(), $result);
$this->assertTrue($result['status']);
$events = $sink->get_events();
@@ -247,7 +242,7 @@ class mod_survey_external_testcase extends externallib_advanced_testcase {
try {
mod_survey_external::view_survey($this->survey->id);
$this->fail('Exception expected due to missing capability.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('nopermissions', $e->errorcode);
}
@@ -278,7 +273,7 @@ class mod_survey_external_testcase extends externallib_advanced_testcase {
}
$result = mod_survey_external::get_questions($this->survey->id);
$result = external_api::clean_returnvalue(mod_survey_external::get_questions_returns(), $result);
$result = \external_api::clean_returnvalue(mod_survey_external::get_questions_returns(), $result);
// Check we receive the same questions.
$this->assertCount(0, $result['warnings']);
@@ -302,7 +297,7 @@ class mod_survey_external_testcase extends externallib_advanced_testcase {
try {
mod_survey_external::get_questions($this->survey->id);
$this->fail('Exception expected due to missing capability.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('nopermissions', $e->errorcode);
}
}
@@ -342,7 +337,7 @@ class mod_survey_external_testcase extends externallib_advanced_testcase {
}
$result = mod_survey_external::submit_answers($this->survey->id, $realquestions);
$result = external_api::clean_returnvalue(mod_survey_external::submit_answers_returns(), $result);
$result = \external_api::clean_returnvalue(mod_survey_external::submit_answers_returns(), $result);
$this->assertTrue($result['status']);
$this->assertCount(0, $result['warnings']);
@@ -357,7 +352,7 @@ class mod_survey_external_testcase extends externallib_advanced_testcase {
try {
mod_survey_external::submit_answers($this->survey->id, $realquestions);
$this->fail('Exception expected due to answers already submitted.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('alreadysubmitted', $e->errorcode);
}
@@ -369,7 +364,7 @@ class mod_survey_external_testcase extends externallib_advanced_testcase {
try {
mod_survey_external::submit_answers($this->survey->id, $realquestions);
$this->fail('Exception expected due to missing capability.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('nopermissions', $e->errorcode);
}
@@ -379,7 +374,7 @@ class mod_survey_external_testcase extends externallib_advanced_testcase {
try {
mod_survey_external::submit_answers($this->survey->id, $realquestions);
$this->fail('Exception expected due to not enrolled user.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('requireloginerror', $e->errorcode);
}
}
+4 -11
View File
@@ -14,14 +14,7 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* mod_survey generator tests
*
* @package mod_survey
* @category test
* @copyright 2013 Marina Glancy
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
namespace mod_survey;
/**
* Genarator tests class for mod_survey.
@@ -31,7 +24,7 @@
* @copyright 2013 Marina Glancy
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class mod_survey_generator_testcase extends advanced_testcase {
class generator_test extends \advanced_testcase {
public function test_create_instance() {
global $DB;
@@ -85,11 +78,11 @@ class mod_survey_generator_testcase extends advanced_testcase {
$this->getDataGenerator()->create_module('survey', array('course' => $course,
'template' => 87654));
$this->fail('Exception about non-existing numeric template is expected');
} catch (Exception $e) {}
} catch (\Exception $e) {}
try {
$this->getDataGenerator()->create_module('survey', array('course' => $course,
'template' => 'nonexistingcode'));
$this->fail('Exception about non-existing string template is expected');
} catch (Exception $e) {}
} catch (\Exception $e) {}
}
}
+18 -23
View File
@@ -14,15 +14,10 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* External mod_url functions unit tests
*
* @package mod_url
* @category external
* @copyright 2015 Juan Leyva <juan@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since Moodle 3.0
*/
namespace mod_url;
use externallib_advanced_testcase;
use mod_url_external;
defined('MOODLE_INTERNAL') || die();
@@ -39,7 +34,7 @@ require_once($CFG->dirroot . '/webservice/tests/helpers.php');
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since Moodle 3.0
*/
class mod_url_external_testcase extends externallib_advanced_testcase {
class externallib_test extends externallib_advanced_testcase {
/**
* Test view_url
@@ -52,14 +47,14 @@ class mod_url_external_testcase extends externallib_advanced_testcase {
// Setup test data.
$course = $this->getDataGenerator()->create_course();
$url = $this->getDataGenerator()->create_module('url', array('course' => $course->id));
$context = context_module::instance($url->cmid);
$context = \context_module::instance($url->cmid);
$cm = get_coursemodule_from_instance('url', $url->id);
// Test invalid instance id.
try {
mod_url_external::view_url(0);
$this->fail('Exception expected due to invalid mod_url instance id.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('invalidrecord', $e->errorcode);
}
@@ -69,7 +64,7 @@ class mod_url_external_testcase extends externallib_advanced_testcase {
try {
mod_url_external::view_url($url->id);
$this->fail('Exception expected due to not enrolled user.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('requireloginerror', $e->errorcode);
}
@@ -81,7 +76,7 @@ class mod_url_external_testcase extends externallib_advanced_testcase {
$sink = $this->redirectEvents();
$result = mod_url_external::view_url($url->id);
$result = external_api::clean_returnvalue(mod_url_external::view_url_returns(), $result);
$result = \external_api::clean_returnvalue(mod_url_external::view_url_returns(), $result);
$events = $sink->get_events();
$this->assertCount(1, $events);
@@ -100,12 +95,12 @@ class mod_url_external_testcase extends externallib_advanced_testcase {
assign_capability('mod/url:view', CAP_PROHIBIT, $studentrole->id, $context->id);
// Empty all the caches that may be affected by this change.
accesslib_clear_all_caches_for_unit_testing();
course_modinfo::clear_instance_cache();
\course_modinfo::clear_instance_cache();
try {
mod_url_external::view_url($url->id);
$this->fail('Exception expected due to missing capability.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('requireloginerror', $e->errorcode);
}
@@ -127,12 +122,12 @@ class mod_url_external_testcase extends externallib_advanced_testcase {
$this->getDataGenerator()->enrol_user($student->id, $course1->id, $studentrole->id);
// First url.
$record = new stdClass();
$record = new \stdClass();
$record->course = $course1->id;
$url1 = self::getDataGenerator()->create_module('url', $record);
// Second url.
$record = new stdClass();
$record = new \stdClass();
$record->course = $course2->id;
$url2 = self::getDataGenerator()->create_module('url', $record);
@@ -182,21 +177,21 @@ class mod_url_external_testcase extends externallib_advanced_testcase {
// Call the external function passing course ids.
$result = mod_url_external::get_urls_by_courses(array($course2->id, $course1->id));
$result = external_api::clean_returnvalue($returndescription, $result);
$result = \external_api::clean_returnvalue($returndescription, $result);
$this->assertEquals($expectedurls, $result['urls']);
$this->assertCount(0, $result['warnings']);
// Call the external function without passing course id.
$result = mod_url_external::get_urls_by_courses();
$result = external_api::clean_returnvalue($returndescription, $result);
$result = \external_api::clean_returnvalue($returndescription, $result);
$this->assertEquals($expectedurls, $result['urls']);
$this->assertCount(0, $result['warnings']);
// Add a file to the intro.
$filename = "file.txt";
$filerecordinline = array(
'contextid' => context_module::instance($url2->cmid)->id,
'contextid' => \context_module::instance($url2->cmid)->id,
'component' => 'mod_url',
'filearea' => 'intro',
'itemid' => 0,
@@ -208,7 +203,7 @@ class mod_url_external_testcase extends externallib_advanced_testcase {
$fs->create_file_from_string($filerecordinline, 'image contents (not really)');
$result = mod_url_external::get_urls_by_courses(array($course2->id, $course1->id));
$result = external_api::clean_returnvalue($returndescription, $result);
$result = \external_api::clean_returnvalue($returndescription, $result);
$this->assertCount(1, $result['urls'][0]['introfiles']);
$this->assertEquals($filename, $result['urls'][0]['introfiles'][0]['filename']);
@@ -219,7 +214,7 @@ class mod_url_external_testcase extends externallib_advanced_testcase {
// Call the external function without passing course id.
$result = mod_url_external::get_urls_by_courses();
$result = external_api::clean_returnvalue($returndescription, $result);
$result = \external_api::clean_returnvalue($returndescription, $result);
$this->assertEquals($expectedurls, $result['urls']);
// Call for the second course we unenrolled the user from, expected warning.
+2 -9
View File
@@ -14,14 +14,7 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* mod_url generator tests
*
* @package mod_url
* @category test
* @copyright 2013 Marina Glancy
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
namespace mod_url;
/**
* Genarator tests class for mod_url.
@@ -31,7 +24,7 @@
* @copyright 2013 Marina Glancy
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class mod_url_generator_testcase extends advanced_testcase {
class generator_test extends \advanced_testcase {
public function test_create_instance() {
global $DB;
+103 -108
View File
@@ -14,15 +14,10 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Wiki module external functions tests.
*
* @package mod_wiki
* @category external
* @copyright 2015 Dani Palou <dani@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since Moodle 3.1
*/
namespace mod_wiki;
use externallib_advanced_testcase;
use mod_wiki_external;
defined('MOODLE_INTERNAL') || die();
@@ -40,7 +35,7 @@ require_once($CFG->dirroot . '/mod/wiki/lib.php');
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since Moodle 3.1
*/
class mod_wiki_external_testcase extends externallib_advanced_testcase {
class externallib_test extends externallib_advanced_testcase {
/**
* Set up for every test
@@ -53,7 +48,7 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
// Setup test data.
$this->course = $this->getDataGenerator()->create_course();
$this->wiki = $this->getDataGenerator()->create_module('wiki', array('course' => $this->course->id));
$this->context = context_module::instance($this->wiki->cmid);
$this->context = \context_module::instance($this->wiki->cmid);
$this->cm = get_coursemodule_from_instance('wiki', $this->wiki->id);
// Create users.
@@ -152,7 +147,7 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
$course2 = self::getDataGenerator()->create_course();
// Second wiki.
$record = new stdClass();
$record = new \stdClass();
$record->course = $course2->id;
$wiki2 = self::getDataGenerator()->create_module('wiki', $record);
@@ -207,14 +202,14 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
// Call the external function passing course ids.
$result = mod_wiki_external::get_wikis_by_courses(array($course2->id, $this->course->id));
$result = external_api::clean_returnvalue($returndescription, $result);
$result = \external_api::clean_returnvalue($returndescription, $result);
$this->assertEquals($expectedwikis, $result['wikis']);
$this->assertCount(0, $result['warnings']);
// Call the external function without passing course id.
$result = mod_wiki_external::get_wikis_by_courses();
$result = external_api::clean_returnvalue($returndescription, $result);
$result = \external_api::clean_returnvalue($returndescription, $result);
$this->assertEquals($expectedwikis, $result['wikis']);
$this->assertCount(0, $result['warnings']);
@@ -224,7 +219,7 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
// Call the external function without passing course id.
$result = mod_wiki_external::get_wikis_by_courses();
$result = external_api::clean_returnvalue($returndescription, $result);
$result = \external_api::clean_returnvalue($returndescription, $result);
$this->assertEquals($expectedwikis, $result['wikis']);
// Call for the second course we unenrolled the user from, expected warning.
@@ -243,43 +238,43 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
}
$result = mod_wiki_external::get_wikis_by_courses();
$result = external_api::clean_returnvalue($returndescription, $result);
$result = \external_api::clean_returnvalue($returndescription, $result);
$this->assertEquals($expectedwikis, $result['wikis']);
// Admin also should get all the information.
self::setAdminUser();
$result = mod_wiki_external::get_wikis_by_courses(array($this->course->id));
$result = external_api::clean_returnvalue($returndescription, $result);
$result = \external_api::clean_returnvalue($returndescription, $result);
$this->assertEquals($expectedwikis, $result['wikis']);
// Now, prohibit capabilities.
$this->setUser($this->student);
$contextcourse1 = context_course::instance($this->course->id);
$contextcourse1 = \context_course::instance($this->course->id);
// Default student role allows to view wiki and create pages.
$wikis = mod_wiki_external::get_wikis_by_courses(array($this->course->id));
$wikis = external_api::clean_returnvalue(mod_wiki_external::get_wikis_by_courses_returns(), $wikis);
$wikis = \external_api::clean_returnvalue(mod_wiki_external::get_wikis_by_courses_returns(), $wikis);
$this->assertEquals('Test wiki 1', $wikis['wikis'][0]['intro']);
$this->assertEquals(1, $wikis['wikis'][0]['cancreatepages']);
// Prohibit capability = mod:wiki:viewpage on Course1 for students.
assign_capability('mod/wiki:viewpage', CAP_PROHIBIT, $this->studentrole->id, $contextcourse1->id, true);
accesslib_clear_all_caches_for_unit_testing();
course_modinfo::clear_instance_cache(null);
\course_modinfo::clear_instance_cache(null);
$wikis = mod_wiki_external::get_wikis_by_courses(array($this->course->id));
$wikis = external_api::clean_returnvalue(mod_wiki_external::get_wikis_by_courses_returns(), $wikis);
$wikis = \external_api::clean_returnvalue(mod_wiki_external::get_wikis_by_courses_returns(), $wikis);
$this->assertEquals(0, count($wikis['wikis']));
// Prohibit capability = mod:wiki:createpage on Course1 for students.
assign_capability('mod/wiki:viewpage', CAP_ALLOW, $this->studentrole->id, $contextcourse1->id, true);
assign_capability('mod/wiki:createpage', CAP_PROHIBIT, $this->studentrole->id, $contextcourse1->id);
accesslib_clear_all_caches_for_unit_testing();
course_modinfo::clear_instance_cache(null);
\course_modinfo::clear_instance_cache(null);
$wikis = mod_wiki_external::get_wikis_by_courses(array($this->course->id));
$wikis = external_api::clean_returnvalue(mod_wiki_external::get_wikis_by_courses_returns(), $wikis);
$wikis = \external_api::clean_returnvalue(mod_wiki_external::get_wikis_by_courses_returns(), $wikis);
$this->assertFalse($wikis['wikis'][0]['cancreatepages']);
}
@@ -293,7 +288,7 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
try {
mod_wiki_external::view_wiki(0);
$this->fail('Exception expected due to invalid mod_wiki instance id.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('incorrectwikiid', $e->errorcode);
}
@@ -303,7 +298,7 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
try {
mod_wiki_external::view_wiki($this->wiki->id);
$this->fail('Exception expected due to not enrolled user.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('requireloginerror', $e->errorcode);
}
@@ -314,7 +309,7 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
$sink = $this->redirectEvents();
$result = mod_wiki_external::view_wiki($this->wiki->id);
$result = external_api::clean_returnvalue(mod_wiki_external::view_wiki_returns(), $result);
$result = \external_api::clean_returnvalue(mod_wiki_external::view_wiki_returns(), $result);
$events = $sink->get_events();
$this->assertCount(1, $events);
@@ -336,7 +331,7 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
try {
mod_wiki_external::view_wiki($this->wiki->id);
$this->fail('Exception expected due to missing capability.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('cannotviewpage', $e->errorcode);
}
@@ -351,7 +346,7 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
try {
mod_wiki_external::view_page(0);
$this->fail('Exception expected due to invalid view_page page id.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('incorrectpageid', $e->errorcode);
}
@@ -361,7 +356,7 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
try {
mod_wiki_external::view_page($this->firstpage->id);
$this->fail('Exception expected due to not enrolled user.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('requireloginerror', $e->errorcode);
}
@@ -372,7 +367,7 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
$sink = $this->redirectEvents();
$result = mod_wiki_external::view_page($this->firstpage->id);
$result = external_api::clean_returnvalue(mod_wiki_external::view_page_returns(), $result);
$result = \external_api::clean_returnvalue(mod_wiki_external::view_page_returns(), $result);
$events = $sink->get_events();
$this->assertCount(1, $events);
@@ -394,7 +389,7 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
try {
mod_wiki_external::view_page($this->firstpage->id);
$this->fail('Exception expected due to missing capability.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('cannotviewpage', $e->errorcode);
}
@@ -409,7 +404,7 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
try {
mod_wiki_external::get_subwikis(0);
$this->fail('Exception expected due to invalid get_subwikis wiki id.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('incorrectwikiid', $e->errorcode);
}
@@ -419,7 +414,7 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
try {
mod_wiki_external::get_subwikis($this->wiki->id);
$this->fail('Exception expected due to not enrolled user.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('requireloginerror', $e->errorcode);
}
@@ -439,7 +434,7 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
$expectedsubwikis[] = $expectedsubwiki;
$result = mod_wiki_external::get_subwikis($this->wiki->id);
$result = external_api::clean_returnvalue(mod_wiki_external::get_subwikis_returns(), $result);
$result = \external_api::clean_returnvalue(mod_wiki_external::get_subwikis_returns(), $result);
$this->assertEquals($expectedsubwikis, $result['subwikis']);
$this->assertCount(0, $result['warnings']);
@@ -451,7 +446,7 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
try {
mod_wiki_external::get_subwikis($this->wiki->id);
$this->fail('Exception expected due to missing capability.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('nopermissions', $e->errorcode);
}
@@ -461,7 +456,7 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
* Test get_subwiki_pages using an invalid wiki instance.
*/
public function test_get_subwiki_pages_invalid_instance() {
$this->expectException(moodle_exception::class);
$this->expectException(\moodle_exception::class);
mod_wiki_external::get_subwiki_pages(0);
}
@@ -473,7 +468,7 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
$usernotenrolled = self::getDataGenerator()->create_user();
$this->setUser($usernotenrolled);
$this->expectException(require_login_exception::class);
$this->expectException(\require_login_exception::class);
mod_wiki_external::get_subwiki_pages($this->wiki->id);
}
@@ -486,7 +481,7 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
array('course' => $this->course->id, 'visible' => false));
$this->setUser($this->student);
$this->expectException(require_login_exception::class);
$this->expectException(\require_login_exception::class);
mod_wiki_external::get_subwiki_pages($hiddenwiki->id);
}
@@ -495,12 +490,12 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
*/
public function test_get_subwiki_pages_without_viewpage_capability() {
// Prohibit capability = mod/wiki:viewpage on the course for students.
$contextcourse = context_course::instance($this->course->id);
$contextcourse = \context_course::instance($this->course->id);
assign_capability('mod/wiki:viewpage', CAP_PROHIBIT, $this->studentrole->id, $contextcourse->id);
accesslib_clear_all_caches_for_unit_testing();
$this->setUser($this->student);
$this->expectException(moodle_exception::class);
$this->expectException(\moodle_exception::class);
mod_wiki_external::get_subwiki_pages($this->wiki->id);
}
@@ -512,7 +507,7 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
$indwiki = $this->getDataGenerator()->create_module('wiki',
array('course' => $this->course->id, 'wikimode' => 'individual'));
$this->expectException(moodle_exception::class);
$this->expectException(\moodle_exception::class);
mod_wiki_external::get_subwiki_pages($indwiki->id, 0, -10);
}
@@ -523,7 +518,7 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
// Create testing data.
$this->create_collaborative_wikis_with_groups();
$this->expectException(moodle_exception::class);
$this->expectException(\moodle_exception::class);
mod_wiki_external::get_subwiki_pages($this->wikisep->id, -111);
}
@@ -536,7 +531,7 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
array('course' => $this->course->id, 'wikimode' => 'individual'));
$this->setUser($this->student);
$this->expectException(moodle_exception::class);
$this->expectException(\moodle_exception::class);
mod_wiki_external::get_subwiki_pages($indwiki->id, 0, $this->teacher->id);
}
@@ -549,7 +544,7 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
$this->create_collaborative_wikis_with_groups();
$this->setUser($this->student);
$this->expectException(moodle_exception::class);
$this->expectException(\moodle_exception::class);
mod_wiki_external::get_subwiki_pages($this->wikisep->id, $this->group2->id);
}
@@ -562,7 +557,7 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
$this->create_individual_wikis_with_groups();
$this->setUser($this->student);
$this->expectException(moodle_exception::class);
$this->expectException(\moodle_exception::class);
mod_wiki_external::get_subwiki_pages($this->wikisepind->id, $this->group2->id, $this->teacher->id);
}
@@ -575,7 +570,7 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
$this->create_collaborative_wikis_with_groups();
$this->setUser($this->student);
$this->expectException(moodle_exception::class);
$this->expectException(\moodle_exception::class);
mod_wiki_external::get_subwiki_pages($this->wikisep->id, 0);
}
@@ -588,7 +583,7 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
$this->create_individual_wikis_with_groups();
$this->setUser($this->student);
$this->expectException(moodle_exception::class);
$this->expectException(\moodle_exception::class);
mod_wiki_external::get_subwiki_pages($this->wikisepind->id, 0, $this->teacher->id);
}
@@ -613,17 +608,17 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
$expectedpages[] = $expectedfirstpage;
$result = mod_wiki_external::get_subwiki_pages($this->wiki->id);
$result = external_api::clean_returnvalue(mod_wiki_external::get_subwiki_pages_returns(), $result);
$result = \external_api::clean_returnvalue(mod_wiki_external::get_subwiki_pages_returns(), $result);
$this->assertEquals($expectedpages, $result['pages']);
// Check that groupid param is ignored since the wiki isn't using groups.
$result = mod_wiki_external::get_subwiki_pages($this->wiki->id, 1234);
$result = external_api::clean_returnvalue(mod_wiki_external::get_subwiki_pages_returns(), $result);
$result = \external_api::clean_returnvalue(mod_wiki_external::get_subwiki_pages_returns(), $result);
$this->assertEquals($expectedpages, $result['pages']);
// Check that userid param is ignored since the wiki is collaborative.
$result = mod_wiki_external::get_subwiki_pages($this->wiki->id, 1234, 1234);
$result = external_api::clean_returnvalue(mod_wiki_external::get_subwiki_pages_returns(), $result);
$result = \external_api::clean_returnvalue(mod_wiki_external::get_subwiki_pages_returns(), $result);
$this->assertEquals($expectedpages, $result['pages']);
// Add a new page to the wiki and test again. We'll use a custom title so it's returned first if sorted by title.
@@ -638,13 +633,13 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
array_unshift($expectedpages, $expectednewpage); // Add page to the beginning since it orders by title by default.
$result = mod_wiki_external::get_subwiki_pages($this->wiki->id);
$result = external_api::clean_returnvalue(mod_wiki_external::get_subwiki_pages_returns(), $result);
$result = \external_api::clean_returnvalue(mod_wiki_external::get_subwiki_pages_returns(), $result);
$this->assertEquals($expectedpages, $result['pages']);
// Now we'll order by ID. Since first page was created first it'll have a lower ID.
$expectedpages = array($expectedfirstpage, $expectednewpage);
$result = mod_wiki_external::get_subwiki_pages($this->wiki->id, 0, 0, array('sortby' => 'id'));
$result = external_api::clean_returnvalue(mod_wiki_external::get_subwiki_pages_returns(), $result);
$result = \external_api::clean_returnvalue(mod_wiki_external::get_subwiki_pages_returns(), $result);
$this->assertEquals($expectedpages, $result['pages']);
// Check that WS doesn't return page content if includecontent is false, it returns the size instead.
@@ -658,7 +653,7 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
unset($expectedpages[$i]['contentformat']);
}
$result = mod_wiki_external::get_subwiki_pages($this->wiki->id, 0, 0, array('sortby' => 'id', 'includecontent' => 0));
$result = external_api::clean_returnvalue(mod_wiki_external::get_subwiki_pages_returns(), $result);
$result = \external_api::clean_returnvalue(mod_wiki_external::get_subwiki_pages_returns(), $result);
$this->assertEquals($expectedpages, $result['pages']);
}
@@ -673,7 +668,7 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
// Perform a request before creating any page to check that an empty array is returned if subwiki doesn't exist.
$result = mod_wiki_external::get_subwiki_pages($indwiki->id);
$result = external_api::clean_returnvalue(mod_wiki_external::get_subwiki_pages_returns(), $result);
$result = \external_api::clean_returnvalue(mod_wiki_external::get_subwiki_pages_returns(), $result);
$this->assertEquals(array(), $result['pages']);
// Create first pages as student and teacher.
@@ -691,7 +686,7 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
$expectedpages = array($expectedteacherpage);
$result = mod_wiki_external::get_subwiki_pages($indwiki->id, 0, $this->teacher->id);
$result = external_api::clean_returnvalue(mod_wiki_external::get_subwiki_pages_returns(), $result);
$result = \external_api::clean_returnvalue(mod_wiki_external::get_subwiki_pages_returns(), $result);
$this->assertEquals($expectedpages, $result['pages']);
// Check that the teacher can see the student's pages.
@@ -703,19 +698,19 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
$expectedpages = array($expectedstudentpage);
$result = mod_wiki_external::get_subwiki_pages($indwiki->id, 0, $this->student->id);
$result = external_api::clean_returnvalue(mod_wiki_external::get_subwiki_pages_returns(), $result);
$result = \external_api::clean_returnvalue(mod_wiki_external::get_subwiki_pages_returns(), $result);
$this->assertEquals($expectedpages, $result['pages']);
// Now check that student can get his pages.
$this->setUser($this->student);
$result = mod_wiki_external::get_subwiki_pages($indwiki->id, 0, $this->student->id);
$result = external_api::clean_returnvalue(mod_wiki_external::get_subwiki_pages_returns(), $result);
$result = \external_api::clean_returnvalue(mod_wiki_external::get_subwiki_pages_returns(), $result);
$this->assertEquals($expectedpages, $result['pages']);
// Check that not using userid uses current user.
$result = mod_wiki_external::get_subwiki_pages($indwiki->id, 0);
$result = external_api::clean_returnvalue(mod_wiki_external::get_subwiki_pages_returns(), $result);
$result = \external_api::clean_returnvalue(mod_wiki_external::get_subwiki_pages_returns(), $result);
$this->assertEquals($expectedpages, $result['pages']);
}
@@ -739,18 +734,18 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
$expectedpages = array($expectedpage);
$result = mod_wiki_external::get_subwiki_pages($this->wikisep->id, $this->group1->id);
$result = external_api::clean_returnvalue(mod_wiki_external::get_subwiki_pages_returns(), $result);
$result = \external_api::clean_returnvalue(mod_wiki_external::get_subwiki_pages_returns(), $result);
$this->assertEquals($expectedpages, $result['pages']);
// Let's check that not using groupid returns the same result (current group).
$result = mod_wiki_external::get_subwiki_pages($this->wikisep->id);
$result = external_api::clean_returnvalue(mod_wiki_external::get_subwiki_pages_returns(), $result);
$result = \external_api::clean_returnvalue(mod_wiki_external::get_subwiki_pages_returns(), $result);
$this->assertEquals($expectedpages, $result['pages']);
// Check that teacher can view a group pages without belonging to it.
$this->setUser($this->teacher);
$result = mod_wiki_external::get_subwiki_pages($this->wikisep->id, $this->group1->id);
$result = external_api::clean_returnvalue(mod_wiki_external::get_subwiki_pages_returns(), $result);
$result = \external_api::clean_returnvalue(mod_wiki_external::get_subwiki_pages_returns(), $result);
$this->assertEquals($expectedpages, $result['pages']);
// Check that teacher can get the pages from all participants.
@@ -762,7 +757,7 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
$expectedpages = array($expectedpage);
$result = mod_wiki_external::get_subwiki_pages($this->wikisep->id, 0);
$result = external_api::clean_returnvalue(mod_wiki_external::get_subwiki_pages_returns(), $result);
$result = \external_api::clean_returnvalue(mod_wiki_external::get_subwiki_pages_returns(), $result);
$this->assertEquals($expectedpages, $result['pages']);
}
@@ -786,7 +781,7 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
$expectedpages = array($expectedpage);
$result = mod_wiki_external::get_subwiki_pages($this->wikivis->id, $this->group1->id);
$result = external_api::clean_returnvalue(mod_wiki_external::get_subwiki_pages_returns(), $result);
$result = \external_api::clean_returnvalue(mod_wiki_external::get_subwiki_pages_returns(), $result);
$this->assertEquals($expectedpages, $result['pages']);
// Check that with visible groups a student can get the pages of groups he doesn't belong to.
@@ -798,7 +793,7 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
$expectedpages = array($expectedpage);
$result = mod_wiki_external::get_subwiki_pages($this->wikivis->id, $this->group2->id);
$result = external_api::clean_returnvalue(mod_wiki_external::get_subwiki_pages_returns(), $result);
$result = \external_api::clean_returnvalue(mod_wiki_external::get_subwiki_pages_returns(), $result);
$this->assertEquals($expectedpages, $result['pages']);
// Check that with visible groups a student can get the pages of all participants.
@@ -810,7 +805,7 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
$expectedpages = array($expectedpage);
$result = mod_wiki_external::get_subwiki_pages($this->wikivis->id, 0);
$result = external_api::clean_returnvalue(mod_wiki_external::get_subwiki_pages_returns(), $result);
$result = \external_api::clean_returnvalue(mod_wiki_external::get_subwiki_pages_returns(), $result);
$this->assertEquals($expectedpages, $result['pages']);
}
@@ -833,18 +828,18 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
$expectedpages = array($expectedpage);
$result = mod_wiki_external::get_subwiki_pages($this->wikisepind->id, $this->group1->id, $this->student->id);
$result = external_api::clean_returnvalue(mod_wiki_external::get_subwiki_pages_returns(), $result);
$result = \external_api::clean_returnvalue(mod_wiki_external::get_subwiki_pages_returns(), $result);
$this->assertEquals($expectedpages, $result['pages']);
// Check that not using userid uses current user.
$result = mod_wiki_external::get_subwiki_pages($this->wikisepind->id, $this->group1->id);
$result = external_api::clean_returnvalue(mod_wiki_external::get_subwiki_pages_returns(), $result);
$result = \external_api::clean_returnvalue(mod_wiki_external::get_subwiki_pages_returns(), $result);
$this->assertEquals($expectedpages, $result['pages']);
// Check that the teacher can see the student pages.
$this->setUser($this->teacher);
$result = mod_wiki_external::get_subwiki_pages($this->wikisepind->id, $this->group1->id, $this->student->id);
$result = external_api::clean_returnvalue(mod_wiki_external::get_subwiki_pages_returns(), $result);
$result = \external_api::clean_returnvalue(mod_wiki_external::get_subwiki_pages_returns(), $result);
$this->assertEquals($expectedpages, $result['pages']);
// Check that a student can see pages from another user that belongs to his groups.
@@ -857,7 +852,7 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
$expectedpages = array($expectedpage);
$result = mod_wiki_external::get_subwiki_pages($this->wikisepind->id, $this->group1->id, $this->student2->id);
$result = external_api::clean_returnvalue(mod_wiki_external::get_subwiki_pages_returns(), $result);
$result = \external_api::clean_returnvalue(mod_wiki_external::get_subwiki_pages_returns(), $result);
$this->assertEquals($expectedpages, $result['pages']);
}
@@ -880,7 +875,7 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
$expectedpages = array($expectedpage);
$result = mod_wiki_external::get_subwiki_pages($this->wikivisind->id, $this->group1->id, $this->student->id);
$result = external_api::clean_returnvalue(mod_wiki_external::get_subwiki_pages_returns(), $result);
$result = \external_api::clean_returnvalue(mod_wiki_external::get_subwiki_pages_returns(), $result);
$this->assertEquals($expectedpages, $result['pages']);
// Check that student can see teacher pages in visible groups, even if the user doesn't belong to the group.
@@ -892,7 +887,7 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
$expectedpages = array($expectedpage);
$result = mod_wiki_external::get_subwiki_pages($this->wikivisind->id, $this->group2->id, $this->teacher->id);
$result = external_api::clean_returnvalue(mod_wiki_external::get_subwiki_pages_returns(), $result);
$result = \external_api::clean_returnvalue(mod_wiki_external::get_subwiki_pages_returns(), $result);
$this->assertEquals($expectedpages, $result['pages']);
// Check that with visible groups a student can get the pages of all participants.
@@ -904,7 +899,7 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
$expectedpages = array($expectedpage);
$result = mod_wiki_external::get_subwiki_pages($this->wikivisind->id, 0, $this->teacher->id);
$result = external_api::clean_returnvalue(mod_wiki_external::get_subwiki_pages_returns(), $result);
$result = \external_api::clean_returnvalue(mod_wiki_external::get_subwiki_pages_returns(), $result);
$this->assertEquals($expectedpages, $result['pages']);
}
@@ -912,7 +907,7 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
* Test get_page_contents using an invalid pageid.
*/
public function test_get_page_contents_invalid_pageid() {
$this->expectException(moodle_exception::class);
$this->expectException(\moodle_exception::class);
mod_wiki_external::get_page_contents(0);
}
@@ -924,7 +919,7 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
$usernotenrolled = self::getDataGenerator()->create_user();
$this->setUser($usernotenrolled);
$this->expectException(require_login_exception::class);
$this->expectException(\require_login_exception::class);
mod_wiki_external::get_page_contents($this->firstpage->id);
}
@@ -938,7 +933,7 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
$hiddenpage = $this->getDataGenerator()->get_plugin_generator('mod_wiki')->create_page($hiddenwiki);
$this->setUser($this->student);
$this->expectException(require_login_exception::class);
$this->expectException(\require_login_exception::class);
mod_wiki_external::get_page_contents($hiddenpage->id);
}
@@ -947,12 +942,12 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
*/
public function test_get_page_contents_without_viewpage_capability() {
// Prohibit capability = mod/wiki:viewpage on the course for students.
$contextcourse = context_course::instance($this->course->id);
$contextcourse = \context_course::instance($this->course->id);
assign_capability('mod/wiki:viewpage', CAP_PROHIBIT, $this->studentrole->id, $contextcourse->id);
accesslib_clear_all_caches_for_unit_testing();
$this->setUser($this->student);
$this->expectException(moodle_exception::class);
$this->expectException(\moodle_exception::class);
mod_wiki_external::get_page_contents($this->firstpage->id);
}
@@ -965,7 +960,7 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
$this->create_individual_wikis_with_groups();
$this->setUser($this->student);
$this->expectException(moodle_exception::class);
$this->expectException(\moodle_exception::class);
mod_wiki_external::get_page_contents($this->fpsepg2indt->id);
}
@@ -997,7 +992,7 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
$expectedpage['tags'][1]['isstandard'] = (bool) $expectedpage['tags'][1]['isstandard'];
$result = mod_wiki_external::get_page_contents($this->firstpage->id);
$result = external_api::clean_returnvalue(mod_wiki_external::get_page_contents_returns(), $result);
$result = \external_api::clean_returnvalue(mod_wiki_external::get_page_contents_returns(), $result);
$this->assertEquals($expectedpage, $result['page']);
// Add a new page to the wiki and test with it.
@@ -1009,7 +1004,7 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
$expectedpage['tags'] = array();
$result = mod_wiki_external::get_page_contents($newpage->id);
$result = external_api::clean_returnvalue(mod_wiki_external::get_page_contents_returns(), $result);
$result = \external_api::clean_returnvalue(mod_wiki_external::get_page_contents_returns(), $result);
$this->assertEquals($expectedpage, $result['page']);
}
@@ -1040,13 +1035,13 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
);
$result = mod_wiki_external::get_page_contents($this->fpsepg1indstu->id);
$result = external_api::clean_returnvalue(mod_wiki_external::get_page_contents_returns(), $result);
$result = \external_api::clean_returnvalue(mod_wiki_external::get_page_contents_returns(), $result);
$this->assertEquals($expectedfpsepg1indstu, $result['page']);
// Check that teacher can view a group pages without belonging to it.
$this->setUser($this->teacher);
$result = mod_wiki_external::get_page_contents($this->fpsepg1indstu->id);
$result = external_api::clean_returnvalue(mod_wiki_external::get_page_contents_returns(), $result);
$result = \external_api::clean_returnvalue(mod_wiki_external::get_page_contents_returns(), $result);
$this->assertEquals($expectedfpsepg1indstu, $result['page']);
}
@@ -1055,7 +1050,7 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
*/
public function test_get_subwiki_files_no_files() {
$result = mod_wiki_external::get_subwiki_files($this->wiki->id);
$result = external_api::clean_returnvalue(mod_wiki_external::get_subwiki_files_returns(), $result);
$result = \external_api::clean_returnvalue(mod_wiki_external::get_subwiki_files_returns(), $result);
$this->assertCount(0, $result['files']);
$this->assertCount(0, $result['warnings']);
}
@@ -1069,7 +1064,7 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
$this->create_collaborative_wikis_with_groups();
$this->setUser($this->student);
$this->expectException(moodle_exception::class);
$this->expectException(\moodle_exception::class);
mod_wiki_external::get_subwiki_files($this->wikisep->id, $this->group2->id);
}
@@ -1094,13 +1089,13 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
'isexternalfile' => false,
'filesize' => strlen($content),
'timemodified' => $file['timemodified'],
'fileurl' => moodle_url::make_webservice_pluginfile_url($file['contextid'], $file['component'],
'fileurl' => \moodle_url::make_webservice_pluginfile_url($file['contextid'], $file['component'],
$file['filearea'], $file['itemid'], $file['filepath'], $file['filename']),
);
// Call the WS and check that it returns this file.
$result = mod_wiki_external::get_subwiki_files($this->wiki->id);
$result = external_api::clean_returnvalue(mod_wiki_external::get_subwiki_files_returns(), $result);
$result = \external_api::clean_returnvalue(mod_wiki_external::get_subwiki_files_returns(), $result);
$this->assertCount(1, $result['files']);
$this->assertEquals($expectedfile, $result['files'][0]);
@@ -1113,12 +1108,12 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
$expectedfile['filename'] = $file['filename'];
$expectedfile['timemodified'] = $file['timemodified'];
$expectedfile['filesize'] = strlen($content);
$expectedfile['fileurl'] = moodle_url::make_webservice_pluginfile_url($file['contextid'], $file['component'],
$expectedfile['fileurl'] = \moodle_url::make_webservice_pluginfile_url($file['contextid'], $file['component'],
$file['filearea'], $file['itemid'], $file['filepath'], $file['filename']);
// Call the WS and check that it returns both files file.
$result = mod_wiki_external::get_subwiki_files($this->wiki->id);
$result = external_api::clean_returnvalue(mod_wiki_external::get_subwiki_files_returns(), $result);
$result = \external_api::clean_returnvalue(mod_wiki_external::get_subwiki_files_returns(), $result);
$this->assertCount(2, $result['files']);
// The new file is returned first because they're returned in alphabetical order.
$this->assertEquals($expectedfile, $result['files'][0]);
@@ -1135,7 +1130,7 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
// Add a file as subwiki attachment in the student group 1 subwiki.
$fs = get_file_storage();
$contextwiki = context_module::instance($this->wikivisind->cmid);
$contextwiki = \context_module::instance($this->wikivisind->cmid);
$file = array('component' => 'mod_wiki', 'filearea' => 'attachments',
'contextid' => $contextwiki->id, 'itemid' => $this->fpvisg1indstu->subwikiid,
'filename' => 'image.jpg', 'filepath' => '/', 'timemodified' => time());
@@ -1149,20 +1144,20 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
'isexternalfile' => false,
'filesize' => strlen($content),
'timemodified' => $file['timemodified'],
'fileurl' => moodle_url::make_webservice_pluginfile_url($file['contextid'], $file['component'],
'fileurl' => \moodle_url::make_webservice_pluginfile_url($file['contextid'], $file['component'],
$file['filearea'], $file['itemid'], $file['filepath'], $file['filename']),
);
// Call the WS and check that it returns this file.
$result = mod_wiki_external::get_subwiki_files($this->wikivisind->id, $this->group1->id);
$result = external_api::clean_returnvalue(mod_wiki_external::get_subwiki_files_returns(), $result);
$result = \external_api::clean_returnvalue(mod_wiki_external::get_subwiki_files_returns(), $result);
$this->assertCount(1, $result['files']);
$this->assertEquals($expectedfile, $result['files'][0]);
// Now check that a teacher can see it too.
$this->setUser($this->teacher);
$result = mod_wiki_external::get_subwiki_files($this->wikivisind->id, $this->group1->id, $this->student->id);
$result = external_api::clean_returnvalue(mod_wiki_external::get_subwiki_files_returns(), $result);
$result = \external_api::clean_returnvalue(mod_wiki_external::get_subwiki_files_returns(), $result);
$this->assertCount(1, $result['files']);
$this->assertEquals($expectedfile, $result['files'][0]);
}
@@ -1193,7 +1188,7 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
);
$result = mod_wiki_external::get_page_for_editing($newpage->id);
$result = external_api::clean_returnvalue(mod_wiki_external::get_page_for_editing_returns(), $result);
$result = \external_api::clean_returnvalue(mod_wiki_external::get_page_for_editing_returns(), $result);
$this->assertEquals($expected, $result['pagesection']);
// Set expected result: Section Page content.
@@ -1204,7 +1199,7 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
);
$result = mod_wiki_external::get_page_for_editing($newpage->id, '<span>Title1</span>');
$result = external_api::clean_returnvalue(mod_wiki_external::get_page_for_editing_returns(), $result);
$result = \external_api::clean_returnvalue(mod_wiki_external::get_page_for_editing_returns(), $result);
$this->assertEquals($expected, $result['pagesection']);
}
@@ -1228,7 +1223,7 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
);
$result = mod_wiki_external::get_page_for_editing($newpage->id, 'Title1', true);
$result = external_api::clean_returnvalue(mod_wiki_external::get_page_for_editing_returns(), $result);
$result = \external_api::clean_returnvalue(mod_wiki_external::get_page_for_editing_returns(), $result);
$this->assertEquals($expected, $result['pagesection']);
// Test the section is locked.
@@ -1236,7 +1231,7 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
try {
mod_wiki_external::get_page_for_editing($newpage->id, 'Title1', true);
$this->fail('Exception expected due to not page locking.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('pageislocked', $e->errorcode);
}
@@ -1244,13 +1239,13 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
try {
mod_wiki_external::get_page_for_editing($newpage->id, null, true);
$this->fail('Exception expected due to not page locking.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('pageislocked', $e->errorcode);
}
// Test the other section is not locked.
$result = mod_wiki_external::get_page_for_editing($newpage->id, 'Title2', true);
$result = external_api::clean_returnvalue(mod_wiki_external::get_page_for_editing_returns(), $result);
$result = \external_api::clean_returnvalue(mod_wiki_external::get_page_for_editing_returns(), $result);
$this->assertEquals($expected, $result['pagesection']);
// Back to the original user to test version change when editing.
@@ -1262,7 +1257,7 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
'version' => '2'
);
$result = mod_wiki_external::get_page_for_editing($newpage->id, 'Title1', true);
$result = external_api::clean_returnvalue(mod_wiki_external::get_page_for_editing_returns(), $result);
$result = \external_api::clean_returnvalue(mod_wiki_external::get_page_for_editing_returns(), $result);
$this->assertEquals($expected, $result['pagesection']);
}
@@ -1283,7 +1278,7 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
// Test on existing subwiki.
$result = mod_wiki_external::new_page($pagetitle, $pagecontent, 'html', $this->fpsepg1indstu->subwikiid);
$result = external_api::clean_returnvalue(mod_wiki_external::new_page_returns(), $result);
$result = \external_api::clean_returnvalue(mod_wiki_external::new_page_returns(), $result);
$this->assertIsInt($result['pageid']);
$version = wiki_get_current_version($result['pageid']);
@@ -1297,7 +1292,7 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
try {
mod_wiki_external::new_page($pagetitle, $pagecontent, 'html', $this->fpsepg1indstu->subwikiid);
$this->fail('Exception expected due to creation of an existing page.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('pageexists', $e->errorcode);
}
@@ -1305,7 +1300,7 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
$this->getDataGenerator()->create_group_member(array('userid' => $this->student->id, 'groupid' => $this->group2->id));
$result = mod_wiki_external::new_page($pagetitle, $pagecontent, 'html', null, $this->wikisepind->id, $this->student->id,
$this->group2->id);
$result = external_api::clean_returnvalue(mod_wiki_external::new_page_returns(), $result);
$result = \external_api::clean_returnvalue(mod_wiki_external::new_page_returns(), $result);
$this->assertIsInt($result['pageid']);
$version = wiki_get_current_version($result['pageid']);
@@ -1316,7 +1311,7 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
$this->assertEquals($pagetitle, $page->title);
$subwiki = wiki_get_subwiki($page->subwikiid);
$expected = new StdClass();
$expected = new \stdClass();
$expected->id = $subwiki->id;
$expected->wikiid = $this->wikisepind->id;
$expected->groupid = $this->group2->id;
@@ -1332,7 +1327,7 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
mod_wiki_external::new_page($pagetitle, $pagecontent, 'html', null, $this->wikisepind->id,
$this->studentnotincourse->id, $this->groupnotincourse->id);
$this->fail('Exception expected due to creation of an invalid subwiki creation.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('cannoteditpage', $e->errorcode);
}
@@ -1358,7 +1353,7 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
$newpagecontent = $sectioncontent.'<h1><span>Title2</span></h1>Text inside section';
$result = mod_wiki_external::edit_page($newpage->id, $newpagecontent);
$result = external_api::clean_returnvalue(mod_wiki_external::edit_page_returns(), $result);
$result = \external_api::clean_returnvalue(mod_wiki_external::edit_page_returns(), $result);
$this->assertIsInt($result['pageid']);
$version = wiki_get_current_version($result['pageid']);
@@ -1369,7 +1364,7 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
$section = '<span>Title2</span>';
$result = mod_wiki_external::edit_page($newpage->id, $newsectioncontent, $section);
$result = external_api::clean_returnvalue(mod_wiki_external::edit_page_returns(), $result);
$result = \external_api::clean_returnvalue(mod_wiki_external::edit_page_returns(), $result);
$this->assertIsInt($result['pageid']);
$expected = $sectioncontent . $newsectioncontent;
@@ -1386,7 +1381,7 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
wiki_set_lock($newpage->id, 1, $section, true);
mod_wiki_external::edit_page($newpage->id, $newsectioncontent, $section);
$this->fail('Exception expected due to locked section');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('pageislocked', $e->errorcode);
}
@@ -1397,7 +1392,7 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
try {
mod_wiki_external::edit_page($newpage->id, $newsectioncontent, $section);
$this->fail('Exception expected due to non existing section in the page.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('invalidsection', $e->errorcode);
}
+4 -11
View File
@@ -14,14 +14,7 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* mod_wiki generator tests
*
* @package mod_wiki
* @category test
* @copyright 2013 Marina Glancy
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
namespace mod_wiki;
/**
* Genarator tests class for mod_wiki.
@@ -31,7 +24,7 @@
* @copyright 2013 Marina Glancy
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class mod_wiki_generator_testcase extends advanced_testcase {
class generator_test extends \advanced_testcase {
public function test_create_instance() {
global $DB;
@@ -77,9 +70,9 @@ class mod_wiki_generator_testcase extends advanced_testcase {
$this->assertEquals($page3->id, $records[$page3->id]->id);
$this->assertEquals('Custom title', $records[$page3->id]->title);
$this->assertEquals(array('Cats', 'mice'),
array_values(core_tag_tag::get_item_tags_array('mod_wiki', 'wiki_pages', $page3->id)));
array_values(\core_tag_tag::get_item_tags_array('mod_wiki', 'wiki_pages', $page3->id)));
$this->assertEquals(array('Cats', 'dogs'),
array_values(core_tag_tag::get_item_tags_array('mod_wiki', 'wiki_pages', $page4->id)));
array_values(\core_tag_tag::get_item_tags_array('mod_wiki', 'wiki_pages', $page4->id)));
}
public function test_create_content_individual() {
+2 -9
View File
@@ -14,14 +14,7 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* mod_workshop generator tests
*
* @package mod_workshop
* @category test
* @copyright 2013 Marina Glancy
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
namespace mod_workshop;
/**
* Genarator tests class for mod_workshop.
@@ -31,7 +24,7 @@
* @copyright 2013 Marina Glancy
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class mod_workshop_generator_testcase extends advanced_testcase {
class generator_test extends \advanced_testcase {
public function test_create_instance() {
global $DB;
+41 -36
View File
@@ -23,6 +23,11 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
namespace core_notes;
use core_notes_external;
use externallib_advanced_testcase;
defined('MOODLE_INTERNAL') || die();
global $CFG;
@@ -30,7 +35,7 @@ global $CFG;
require_once($CFG->dirroot . '/webservice/tests/helpers.php');
require_once($CFG->dirroot . '/notes/externallib.php');
class core_notes_externallib_testcase extends externallib_advanced_testcase {
class externallib_test extends externallib_advanced_testcase {
/**
* Test create_notes
@@ -44,7 +49,7 @@ class core_notes_externallib_testcase extends externallib_advanced_testcase {
$course = self::getDataGenerator()->create_course();
// Set the required capabilities by the external function.
$contextid = context_course::instance($course->id)->id;
$contextid = \context_course::instance($course->id)->id;
$roleid = $this->assignUserCapability('moodle/notes:manage', $contextid);
$this->assignUserCapability('moodle/course:view', $contextid, $roleid);
@@ -59,7 +64,7 @@ class core_notes_externallib_testcase extends externallib_advanced_testcase {
$creatednotes = core_notes_external::create_notes($notes);
// We need to execute the return values cleaning process to simulate the web service server.
$creatednotes = external_api::clean_returnvalue(core_notes_external::create_notes_returns(), $creatednotes);
$creatednotes = \external_api::clean_returnvalue(core_notes_external::create_notes_returns(), $creatednotes);
$thenote = $DB->get_record('post', array('id' => $creatednotes[0]['noteid']));
@@ -72,7 +77,7 @@ class core_notes_externallib_testcase extends externallib_advanced_testcase {
// Call without required capability.
$this->unassignUserCapability('moodle/notes:manage', $contextid, $roleid);
$this->expectException('required_capability_exception');
$this->expectException('\required_capability_exception');
$creatednotes = core_notes_external::create_notes($notes);
}
@@ -85,7 +90,7 @@ class core_notes_externallib_testcase extends externallib_advanced_testcase {
$course = self::getDataGenerator()->create_course();
// Set the required capabilities by the external function.
$contextid = context_course::instance($course->id)->id;
$contextid = \context_course::instance($course->id)->id;
$roleid = $this->assignUserCapability('moodle/notes:manage', $contextid);
$this->assignUserCapability('moodle/course:view', $contextid, $roleid);
@@ -98,11 +103,11 @@ class core_notes_externallib_testcase extends externallib_advanced_testcase {
$cnote['clientnoteid'] = 4;
$cnotes = array($cnote);
$creatednotes = core_notes_external::create_notes($cnotes);
$creatednotes = external_api::clean_returnvalue(core_notes_external::create_notes_returns(), $creatednotes);
$creatednotes = \external_api::clean_returnvalue(core_notes_external::create_notes_returns(), $creatednotes);
$dnotes1 = array($creatednotes[0]['noteid']);
$deletednotes1 = core_notes_external::delete_notes($dnotes1);
$deletednotes1 = external_api::clean_returnvalue(core_notes_external::delete_notes_returns(), $deletednotes1);
$deletednotes1 = \external_api::clean_returnvalue(core_notes_external::delete_notes_returns(), $deletednotes1);
// Confirm that base note data was deleted correctly.
$notdeletedcount = $DB->count_records_select('post', 'id = ' . $creatednotes[0]['noteid']);
@@ -110,7 +115,7 @@ class core_notes_externallib_testcase extends externallib_advanced_testcase {
$dnotes2 = array(33); // This note does not exist.
$deletednotes2 = core_notes_external::delete_notes($dnotes2);
$deletednotes2 = external_api::clean_returnvalue(core_notes_external::delete_notes_returns(), $deletednotes2);
$deletednotes2 = \external_api::clean_returnvalue(core_notes_external::delete_notes_returns(), $deletednotes2);
$this->assertEquals("note", $deletednotes2[0]["item"]);
$this->assertEquals(33, $deletednotes2[0]["itemid"]);
@@ -119,13 +124,13 @@ class core_notes_externallib_testcase extends externallib_advanced_testcase {
// Call without required capability.
$creatednotes = core_notes_external::create_notes($cnotes);
$creatednotes = external_api::clean_returnvalue(core_notes_external::create_notes_returns(), $creatednotes);
$creatednotes = \external_api::clean_returnvalue(core_notes_external::create_notes_returns(), $creatednotes);
$dnotes3 = array($creatednotes[0]['noteid']);
$this->unassignUserCapability('moodle/notes:manage', $contextid, $roleid);
$this->expectException('required_capability_exception');
$this->expectException('\required_capability_exception');
$deletednotes = core_notes_external::delete_notes($dnotes3);
$deletednotes = external_api::clean_returnvalue(core_notes_external::delete_notes_returns(), $deletednotes);
$deletednotes = \external_api::clean_returnvalue(core_notes_external::delete_notes_returns(), $deletednotes);
}
public function test_get_notes() {
@@ -137,7 +142,7 @@ class core_notes_externallib_testcase extends externallib_advanced_testcase {
$course = self::getDataGenerator()->create_course();
// Set the required capabilities by the external function.
$contextid = context_course::instance($course->id)->id;
$contextid = \context_course::instance($course->id)->id;
$roleid = $this->assignUserCapability('moodle/notes:manage', $contextid);
$this->assignUserCapability('moodle/notes:view', $contextid, $roleid);
$this->assignUserCapability('moodle/course:view', $contextid, $roleid);
@@ -154,14 +159,14 @@ class core_notes_externallib_testcase extends externallib_advanced_testcase {
$creatednotes2 = core_notes_external::create_notes($cnotes);
$creatednotes3 = core_notes_external::create_notes($cnotes);
$creatednotes1 = external_api::clean_returnvalue(core_notes_external::create_notes_returns(), $creatednotes1);
$creatednotes2 = external_api::clean_returnvalue(core_notes_external::create_notes_returns(), $creatednotes2);
$creatednotes3 = external_api::clean_returnvalue(core_notes_external::create_notes_returns(), $creatednotes3);
$creatednotes1 = \external_api::clean_returnvalue(core_notes_external::create_notes_returns(), $creatednotes1);
$creatednotes2 = \external_api::clean_returnvalue(core_notes_external::create_notes_returns(), $creatednotes2);
$creatednotes3 = \external_api::clean_returnvalue(core_notes_external::create_notes_returns(), $creatednotes3);
// Note 33 does not exist.
$gnotes = array($creatednotes1[0]['noteid'], $creatednotes2[0]['noteid'], $creatednotes3[0]['noteid'], 33);
$getnotes = core_notes_external::get_notes($gnotes);
$getnotes = external_api::clean_returnvalue(core_notes_external::get_notes_returns(), $getnotes);
$getnotes = \external_api::clean_returnvalue(core_notes_external::get_notes_returns(), $getnotes);
$this->unassignUserCapability('moodle/notes:manage', $contextid, $roleid);
// Confirm that base note data was retrieved correctly.
@@ -178,7 +183,7 @@ class core_notes_externallib_testcase extends externallib_advanced_testcase {
// Call without required capability.
$this->unassignUserCapability('moodle/notes:view', $contextid, $roleid);
$this->expectException('required_capability_exception');
$this->expectException('\required_capability_exception');
$creatednotes = core_notes_external::get_notes($gnotes);
}
@@ -191,7 +196,7 @@ class core_notes_externallib_testcase extends externallib_advanced_testcase {
$course = self::getDataGenerator()->create_course();
// Set the required capabilities by the external function.
$contextid = context_course::instance($course->id)->id;
$contextid = \context_course::instance($course->id)->id;
$roleid = $this->assignUserCapability('moodle/notes:manage', $contextid);
$this->assignUserCapability('moodle/course:view', $contextid, $roleid);
@@ -212,7 +217,7 @@ class core_notes_externallib_testcase extends externallib_advanced_testcase {
$notes1 = array($note1, $note2, $note3);
$creatednotes = core_notes_external::create_notes($notes1);
$creatednotes = external_api::clean_returnvalue(core_notes_external::create_notes_returns(), $creatednotes);
$creatednotes = \external_api::clean_returnvalue(core_notes_external::create_notes_returns(), $creatednotes);
$note2 = array();
$note2["id"] = $creatednotes[0]['noteid'];
@@ -223,7 +228,7 @@ class core_notes_externallib_testcase extends externallib_advanced_testcase {
$updatednotes = core_notes_external::update_notes($notes2);
$updatednotes = external_api::clean_returnvalue(core_notes_external::update_notes_returns(), $updatednotes);
$updatednotes = \external_api::clean_returnvalue(core_notes_external::update_notes_returns(), $updatednotes);
$thenote = $DB->get_record('post', array('id' => $creatednotes[0]['noteid']));
// Confirm that base note data was updated correctly.
@@ -232,9 +237,9 @@ class core_notes_externallib_testcase extends externallib_advanced_testcase {
// Call without required capability.
$creatednotes = core_notes_external::create_notes($notes1);
$creatednotes = external_api::clean_returnvalue(core_notes_external::create_notes_returns(), $creatednotes);
$creatednotes = \external_api::clean_returnvalue(core_notes_external::create_notes_returns(), $creatednotes);
$this->unassignUserCapability('moodle/notes:manage', $contextid, $roleid);
$this->expectException('required_capability_exception');
$this->expectException('\required_capability_exception');
$note2 = array();
$note2["id"] = $creatednotes[0]['noteid'];
$note2['publishstate'] = 'personal';
@@ -242,7 +247,7 @@ class core_notes_externallib_testcase extends externallib_advanced_testcase {
$note2['format'] = FORMAT_HTML;
$notes2 = array($note2);
$updatednotes = core_notes_external::update_notes($notes2);
$updatednotes = external_api::clean_returnvalue(core_notes_external::update_notes_returns(), $updatednotes);
$updatednotes = \external_api::clean_returnvalue(core_notes_external::update_notes_returns(), $updatednotes);
}
/**
@@ -305,7 +310,7 @@ class core_notes_externallib_testcase extends externallib_advanced_testcase {
// Retrieve notes, normal case.
$result = core_notes_external::get_course_notes($course1->id, $student1->id);
$result = external_api::clean_returnvalue(core_notes_external::get_course_notes_returns(), $result);
$result = \external_api::clean_returnvalue(core_notes_external::get_course_notes_returns(), $result);
$this->assertEquals($notes1->id, $result['sitenotes'][0]['id']);
$this->assertCount(2, $result['coursenotes']);
// Teacher can manage only the course notes.
@@ -324,12 +329,12 @@ class core_notes_externallib_testcase extends externallib_advanced_testcase {
try {
$result = core_notes_external::get_course_notes($course2->id, $student1->id);
$this->fail('the user is not enrolled in the course');
} catch (require_login_exception $e) {
} catch (\require_login_exception $e) {
$this->assertEquals('requireloginerror', $e->errorcode);
}
$result = core_notes_external::get_course_notes(0, $student1->id);
$result = external_api::clean_returnvalue(core_notes_external::get_course_notes_returns(), $result);
$result = \external_api::clean_returnvalue(core_notes_external::get_course_notes_returns(), $result);
$this->assertEmpty($result['sitenotes']);
// Teacher can't manage system notes.
$this->assertFalse($result['canmanagesystemnotes']);
@@ -345,7 +350,7 @@ class core_notes_externallib_testcase extends externallib_advanced_testcase {
$this->setAdminUser();
$result = core_notes_external::get_course_notes(0, $student1->id);
$result = external_api::clean_returnvalue(core_notes_external::get_course_notes_returns(), $result);
$result = \external_api::clean_returnvalue(core_notes_external::get_course_notes_returns(), $result);
$this->assertEquals($notes1->id, $result['sitenotes'][0]['id']);
$this->assertCount(1, $result['sitenotes']);
// Admin user can manage both system and course notes.
@@ -354,7 +359,7 @@ class core_notes_externallib_testcase extends externallib_advanced_testcase {
$this->setUser($teacher1);
$result = core_notes_external::get_course_notes(0, 0);
$result = external_api::clean_returnvalue(core_notes_external::get_course_notes_returns(), $result);
$result = \external_api::clean_returnvalue(core_notes_external::get_course_notes_returns(), $result);
$this->assertEmpty($result['sitenotes']);
$this->assertEmpty($result['coursenotes']);
$this->assertEmpty($result['personalnotes']);
@@ -364,7 +369,7 @@ class core_notes_externallib_testcase extends externallib_advanced_testcase {
$this->setUser($teacher2);
$result = core_notes_external::get_course_notes($course1->id, $student1->id);
$result = external_api::clean_returnvalue(core_notes_external::get_course_notes_returns(), $result);
$result = \external_api::clean_returnvalue(core_notes_external::get_course_notes_returns(), $result);
$this->assertEquals($notes1->id, $result['sitenotes'][0]['id']);
foreach ($result['coursenotes'] as $coursenote) {
@@ -380,7 +385,7 @@ class core_notes_externallib_testcase extends externallib_advanced_testcase {
$this->assertTrue($result['canmanagecoursenotes']);
$result = core_notes_external::get_course_notes($course1->id, 0);
$result = external_api::clean_returnvalue(core_notes_external::get_course_notes_returns(), $result);
$result = \external_api::clean_returnvalue(core_notes_external::get_course_notes_returns(), $result);
$this->assertEquals($notes1->id, $result['sitenotes'][0]['id']);
foreach ($result['coursenotes'] as $coursenote) {
@@ -394,7 +399,7 @@ class core_notes_externallib_testcase extends externallib_advanced_testcase {
$this->setUser($teacher1);
$result = core_notes_external::get_course_notes($course1->id, 0);
$result = external_api::clean_returnvalue(core_notes_external::get_course_notes_returns(), $result);
$result = \external_api::clean_returnvalue(core_notes_external::get_course_notes_returns(), $result);
$this->assertEquals($notep1->id, $result['personalnotes'][0]['id']);
$this->assertCount(1, $result['personalnotes']);
// Teacher can manage only the course notes.
@@ -420,7 +425,7 @@ class core_notes_externallib_testcase extends externallib_advanced_testcase {
$student = $this->getDataGenerator()->create_user();
$teacher = $this->getDataGenerator()->create_user();
$course = $this->getDataGenerator()->create_course();
$coursecontext = context_course::instance($course->id);
$coursecontext = \context_course::instance($course->id);
// Enroll students and teachers to course.
$this->getDataGenerator()->enrol_user($student->id, $course->id, $studentrole->id);
@@ -438,10 +443,10 @@ class core_notes_externallib_testcase extends externallib_advanced_testcase {
$sink = $this->redirectEvents();
$result = core_notes_external::view_notes($course->id, $student->id);
$result = external_api::clean_returnvalue(core_notes_external::view_notes_returns(), $result);
$result = \external_api::clean_returnvalue(core_notes_external::view_notes_returns(), $result);
$result = core_notes_external::view_notes($course->id);
$result = external_api::clean_returnvalue(core_notes_external::view_notes_returns(), $result);
$result = \external_api::clean_returnvalue(core_notes_external::view_notes_returns(), $result);
$events = $sink->get_events();
@@ -458,14 +463,14 @@ class core_notes_externallib_testcase extends externallib_advanced_testcase {
try {
core_notes_external::view_notes(0);
$this->fail('Exception expected due to invalid permissions at system level.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('nopermissions', $e->errorcode);
}
try {
core_notes_external::view_notes($course->id, $student->id + 100);
$this->fail('Exception expected due to invalid user id.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('invaliduser', $e->errorcode);
}
}
+4 -4
View File
@@ -22,7 +22,7 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
namespace core_notes;
/**
* Generator tests class.
@@ -31,7 +31,7 @@ defined('MOODLE_INTERNAL') || die();
* @copyright 2013 Ankit Agarwal
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class core_notes_generator_testcase extends advanced_testcase {
class generator_test extends \advanced_testcase {
/** Test create_instance method */
public function test_create_instance() {
@@ -65,7 +65,7 @@ class core_notes_generator_testcase extends advanced_testcase {
try {
$gen->create_instance(array('courseid' => 2));
$this->fail('A note should not be allowed to be created without associcated userid');
} catch (coding_exception $e) {
} catch (\coding_exception $e) {
$this->assertStringContainsString('Module generator requires $record->userid', $e->getMessage());
}
@@ -73,7 +73,7 @@ class core_notes_generator_testcase extends advanced_testcase {
try {
$gen->create_instance(array('userid' => 2));
$this->fail('A note should not be allowed to be created without associcated courseid');
} catch (coding_exception $e) {
} catch (\coding_exception $e) {
$this->assertStringContainsString('Module generator requires $record->courseid', $e->getMessage());
}
}
+46 -41
View File
@@ -24,6 +24,11 @@
* @since Moodle 3.1
*/
namespace core_question;
use core_question_external;
use externallib_advanced_testcase;
defined('MOODLE_INTERNAL') || die();
global $CFG;
@@ -40,7 +45,7 @@ require_once($CFG->dirroot . '/question/engine/tests/helpers.php');
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since Moodle 3.1
*/
class core_question_external_testcase extends externallib_advanced_testcase {
class externallib_test extends externallib_advanced_testcase {
/**
* Set up for every test
@@ -71,17 +76,17 @@ class core_question_external_testcase extends externallib_advanced_testcase {
// Create a question category.
$cat = $questiongenerator->create_question_category();
$quba = question_engine::make_questions_usage_by_activity('core_question_update_flag', context_system::instance());
$quba = \question_engine::make_questions_usage_by_activity('core_question_update_flag', \context_system::instance());
$quba->set_preferred_behaviour('deferredfeedback');
$questiondata = $questiongenerator->create_question('numerical', null, array('category' => $cat->id));
$question = question_bank::load_question($questiondata->id);
$question = \question_bank::load_question($questiondata->id);
$slot = $quba->add_question($question);
$qa = $quba->get_question_attempt($slot);
self::setUser($this->student);
$quba->start_all_questions();
question_engine::save_questions_usage_by_activity($quba);
\question_engine::save_questions_usage_by_activity($quba);
$qubaid = $quba->get_id();
$questionid = $question->id;
@@ -98,7 +103,7 @@ class core_question_external_testcase extends externallib_advanced_testcase {
core_question_external::update_flag($qubaid, $questionid, $qaid, $slot, $checksum, true);
$this->fail('Exception expected due to invalid checksum.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('errorsavingflags', $e->errorcode);
}
}
@@ -110,7 +115,7 @@ class core_question_external_testcase extends externallib_advanced_testcase {
public function test_submit_tags_form_incorrect_question_id() {
$questiongenerator = $this->getDataGenerator()->get_plugin_generator('core_question');
list ($category, $course, $qcat, $questions) = $questiongenerator->setup_course_and_questions();
$questioncontext = context::instance_by_id($qcat->contextid);
$questioncontext = \context::instance_by_id($qcat->contextid);
$editingcontext = $questioncontext;
$question = $questions[0];
// Generate an id for a question that doesn't exist.
@@ -130,7 +135,7 @@ class core_question_external_testcase extends externallib_advanced_testcase {
public function test_submit_tags_form_incorrect_context_id() {
$questiongenerator = $this->getDataGenerator()->get_plugin_generator('core_question');
list ($category, $course, $qcat, $questions) = $questiongenerator->setup_course_and_questions();
$questioncontext = context::instance_by_id($qcat->contextid);
$questioncontext = \context::instance_by_id($qcat->contextid);
$editingcontext = $questioncontext;
$question = $questions[0];
// Generate an id for a context that doesn't exist.
@@ -150,7 +155,7 @@ class core_question_external_testcase extends externallib_advanced_testcase {
$questiongenerator = $this->getDataGenerator()->get_plugin_generator('core_question');
list ($category, $course, $qcat, $questions) = $questiongenerator->setup_course_and_questions();
$questioncontext = context::instance_by_id($qcat->contextid);
$questioncontext = \context::instance_by_id($qcat->contextid);
$editingcontext = $questioncontext;
$question = $questions[0];
$user = $this->create_user_can_tag($course);
@@ -176,7 +181,7 @@ class core_question_external_testcase extends externallib_advanced_testcase {
$teacherrole = $DB->get_record('role', ['shortname' => 'editingteacher']);
$questiongenerator = $generator->get_plugin_generator('core_question');
list ($category, $course, $qcat, $questions) = $questiongenerator->setup_course_and_questions();
$questioncontext = context::instance_by_id($qcat->contextid);
$questioncontext = \context::instance_by_id($qcat->contextid);
$editingcontext = $questioncontext;
$question = $questions[0];
$formdata = $this->generate_encoded_submit_tags_form_string(
@@ -212,7 +217,7 @@ class core_question_external_testcase extends externallib_advanced_testcase {
$teacherrole = $DB->get_record('role', ['shortname' => 'editingteacher']);
$questiongenerator = $generator->get_plugin_generator('core_question');
list ($category, $course, $qcat, $questions) = $questiongenerator->setup_course_and_questions();
$questioncontext = context::instance_by_id($qcat->contextid);
$questioncontext = \context::instance_by_id($qcat->contextid);
$editingcontext = $questioncontext;
$question = $questions[0];
$formdata = $this->generate_encoded_submit_tags_form_string(
@@ -343,20 +348,20 @@ class core_question_external_testcase extends externallib_advanced_testcase {
) {
$questiongenerator = $this->getDataGenerator()->get_plugin_generator('core_question');
list ($category, $course, $qcat, $questions) = $questiongenerator->setup_course_and_questions($questioncontext);
$coursecontext = context_course::instance($course->id);
$questioncontext = context::instance_by_id($qcat->contextid);
$coursecontext = \context_course::instance($course->id);
$questioncontext = \context::instance_by_id($qcat->contextid);
switch($editingcontext) {
case 'system':
$editingcontext = context_system::instance();
$editingcontext = \context_system::instance();
break;
case 'category':
$editingcontext = context_coursecat::instance($category->id);
$editingcontext = \context_coursecat::instance($category->id);
break;
default:
$editingcontext = context_course::instance($course->id);
$editingcontext = \context_course::instance($course->id);
}
$user = $this->create_user_can_tag($course);
@@ -375,7 +380,7 @@ class core_question_external_testcase extends externallib_advanced_testcase {
$this->assertTrue($result['status']);
$tagobjects = core_tag_tag::get_item_tags('core_question', 'question', $question->id);
$tagobjects = \core_tag_tag::get_item_tags('core_question', 'question', $question->id);
$coursetagobjects = [];
$questiontagobjects = [];
@@ -418,8 +423,8 @@ class core_question_external_testcase extends externallib_advanced_testcase {
/**
* Build the encoded form data expected by the submit_tags_form external function.
*
* @param stdClass $question The question record
* @param stdClass $questioncategory The question category record
* @param \stdClass $question The question record
* @param \stdClass $questioncategory The question category record
* @param context $questioncontext Context for the question category
* @param array $tags A list of tag names for the question
* @param array $coursetags A list of course tag names for the question
@@ -441,7 +446,7 @@ class core_question_external_testcase extends externallib_advanced_testcase {
'tags' => $tags,
'coursetags' => $coursetags
];
$data = core_question\form\tags::mock_generate_submit_keys($data);
$data = \core_question\form\tags::mock_generate_submit_keys($data);
return http_build_query($data, '', '&');
}
@@ -450,7 +455,7 @@ class core_question_external_testcase extends externallib_advanced_testcase {
* Create a user, enrol them in the course, and give them the capability to
* tag all questions in the system context.
*
* @param stdClass $course The course record to enrol in
* @param \stdClass $course The course record to enrol in
* @return stdClass The user record
*/
protected function create_user_can_tag($course) {
@@ -460,7 +465,7 @@ class core_question_external_testcase extends externallib_advanced_testcase {
$user = $generator->create_user();
$roleid = $generator->create_role();
$teacherrole = $DB->get_record('role', ['shortname' => 'editingteacher']);
$systemcontext = context_system::instance();
$systemcontext = \context_system::instance();
$generator->role_assign($roleid, $user->id, $systemcontext->id);
$generator->enrol_user($user->id, $course->id, $teacherrole->id, 'manual');
@@ -562,7 +567,7 @@ class core_question_external_testcase extends externallib_advanced_testcase {
) {
$this->resetAfterTest();
$context = context_system::instance();
$context = \context_system::instance();
$categories = [];
$questions = [];
$tagnames = [
@@ -571,8 +576,8 @@ class core_question_external_testcase extends externallib_advanced_testcase {
'subcat',
'foo'
];
$collid = core_tag_collection::get_default();
$tags = core_tag_tag::create_if_missing($collid, $tagnames);
$collid = \core_tag_collection::get_default();
$tags = \core_tag_tag::create_if_missing($collid, $tagnames);
$generator = $this->getDataGenerator()->get_plugin_generator('core_question');
// First category and questions.
@@ -624,8 +629,8 @@ class core_question_external_testcase extends externallib_advanced_testcase {
public function test_get_random_question_summaries_invalid_category_id_param() {
$this->resetAfterTest();
$context = context_system::instance();
$this->expectException('invalid_parameter_exception');
$context = \context_system::instance();
$this->expectException('\invalid_parameter_exception');
core_question_external::get_random_question_summaries('invalid value', false, [], $context->id);
}
@@ -636,8 +641,8 @@ class core_question_external_testcase extends externallib_advanced_testcase {
public function test_get_random_question_summaries_invalid_includesubcategories_param() {
$this->resetAfterTest();
$context = context_system::instance();
$this->expectException('invalid_parameter_exception');
$context = \context_system::instance();
$this->expectException('\invalid_parameter_exception');
core_question_external::get_random_question_summaries(1, 'invalid value', [], $context->id);
}
@@ -648,8 +653,8 @@ class core_question_external_testcase extends externallib_advanced_testcase {
public function test_get_random_question_summaries_invalid_tagids_param() {
$this->resetAfterTest();
$context = context_system::instance();
$this->expectException('invalid_parameter_exception');
$context = \context_system::instance();
$this->expectException('\invalid_parameter_exception');
core_question_external::get_random_question_summaries(1, false, ['invalid', 'values'], $context->id);
}
@@ -660,7 +665,7 @@ class core_question_external_testcase extends externallib_advanced_testcase {
public function test_get_random_question_summaries_invalid_context() {
$this->resetAfterTest();
$this->expectException('invalid_parameter_exception');
$this->expectException('\invalid_parameter_exception');
core_question_external::get_random_question_summaries(1, false, [1, 2], 'context');
}
@@ -673,8 +678,8 @@ class core_question_external_testcase extends externallib_advanced_testcase {
$this->resetAfterTest();
$course = $this->getDataGenerator()->create_course();
$coursecontext = context_course::instance($course->id);
$systemcontext = context_system::instance();
$coursecontext = \context_course::instance($course->id);
$systemcontext = \context_system::instance();
// Restrict access to external functions for the logged in user to only
// the course we just created. External functions should not be allowed
// to execute in any contexts above the course context.
@@ -686,7 +691,7 @@ class core_question_external_testcase extends externallib_advanced_testcase {
// Do this in a try/catch statement to allow the context restriction
// to be reset afterwards.
core_question_external::get_random_question_summaries(1, false, [], $systemcontext->id);
} catch (Exception $e) {
} catch (\Exception $e) {
$this->assertInstanceOf('restricted_context_exception', $e);
}
// Reset the restriction so that other tests don't fail aftwards.
@@ -700,7 +705,7 @@ class core_question_external_testcase extends externallib_advanced_testcase {
$this->resetAfterTest();
list($category, $questions) = $this->create_category_and_questions(1);
$context = context_system::instance();
$context = \context_system::instance();
$question = $questions[0];
$expected = (object) [
'id' => $question->id,
@@ -736,7 +741,7 @@ class core_question_external_testcase extends externallib_advanced_testcase {
$tagids = [];
$limit = 1;
$offset = 0;
$context = context_system::instance();
$context = \context_system::instance();
list($category, $questions) = $this->create_category_and_questions($numberofquestions);
// Sort the questions by id to match the ordering of the result.
@@ -781,13 +786,13 @@ class core_question_external_testcase extends externallib_advanced_testcase {
$generator = $this->getDataGenerator();
$user = $generator->create_user();
$roleid = $generator->create_role();
$systemcontext = context_system::instance();
$systemcontext = \context_system::instance();
$numberofquestions = 5;
$includesubcategories = false;
$tagids = [];
$context = context_system::instance();
$context = \context_system::instance();
list($category, $questions) = $this->create_category_and_questions($numberofquestions);
$categorycontext = context::instance_by_id($category->contextid);
$categorycontext = \context::instance_by_id($category->contextid);
$generator->role_assign($roleid, $user->id, $systemcontext->id);
// Prohibit all of the tag capabilities.
@@ -829,8 +834,8 @@ class core_question_external_testcase extends externallib_advanced_testcase {
}
if (!empty($tagnames) && !empty($questions)) {
$context = context::instance_by_id($category->contextid);
core_tag_tag::set_item_tags('core_question', 'question', $questions[0]->id, $context, $tagnames);
$context = \context::instance_by_id($category->contextid);
\core_tag_tag::set_item_tags('core_question', 'question', $questions[0]->id, $context, $tagnames);
}
return [$category, $questions];
+5 -6
View File
@@ -17,14 +17,13 @@
/**
* Data generators tests
*
* @package moodlecore
* @package core_question
* @subpackage questionengine
* @copyright 2013 The Open University
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
namespace core_question;
/**
* Test data generator
@@ -32,7 +31,7 @@ defined('MOODLE_INTERNAL') || die();
* @copyright 2013 The Open University
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class core_question_generator_testcase extends advanced_testcase {
class generator_test extends \advanced_testcase {
public function test_create() {
global $DB;
@@ -71,11 +70,11 @@ class core_question_generator_testcase extends advanced_testcase {
$this->assertSame('myquest_3', $quest3->idnumber);
// Check idnumbers of questions moved. Note have to use load_question_data or we only get to see old cached data.
question_move_questions_to_category([$quest1->id], $qcat1->id);
$this->assertSame('myquest', question_bank::load_question_data($quest1->id)->idnumber);
$this->assertSame('myquest', \question_bank::load_question_data($quest1->id)->idnumber);
// Can only change idnumber of quest2 once quest1 has been moved to another category.
$quest2 = $generator->update_question($questions[1], null, ['idnumber' => 'myquest']);
question_move_questions_to_category([$quest2->id], $qcat1->id);
$this->assertSame('myquest_4', question_bank::load_question_data($quest2->id)->idnumber);
$this->assertSame('myquest_4', \question_bank::load_question_data($quest2->id)->idnumber);
// Check can add an idnumber of 0.
$quest4 = $generator->create_question('shortanswer', null, ['name' => 'sa1', 'category' => $qcat1->id, 'idnumber' => '0']);
$this->assertSame('0', $quest4->idnumber);
+21 -16
View File
@@ -23,6 +23,11 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
namespace core_rating;
use core_rating_external;
use externallib_advanced_testcase;
defined('MOODLE_INTERNAL') || die();
global $CFG;
@@ -38,7 +43,7 @@ require_once($CFG->dirroot . '/rating/lib.php');
* @copyright 2015 Costantino Cito <ccito@cvaconsulting.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class core_rating_externallib_testcase extends externallib_advanced_testcase {
class externallib_test extends externallib_advanced_testcase {
/*
* Set up for every test
@@ -64,7 +69,7 @@ class core_rating_externallib_testcase extends externallib_advanced_testcase {
$this->getDataGenerator()->enrol_user($this->teacher3->id, $this->course->id, $this->teacherrole->id);
// Create the forum.
$record = new stdClass();
$record = new \stdClass();
$record->introformat = FORMAT_HTML;
$record->course = $this->course->id;
// Set Aggregate type = Average of ratings.
@@ -72,10 +77,10 @@ class core_rating_externallib_testcase extends externallib_advanced_testcase {
$record->scale = 100;
$this->forum = self::getDataGenerator()->create_module('forum', $record);
$this->contextid = context_module::instance($this->forum->cmid)->id;
$this->contextid = \context_module::instance($this->forum->cmid)->id;
// Add discussion to the forums.
$record = new stdClass();
$record = new \stdClass();
$record->course = $this->course->id;
$record->userid = $this->student1->id;
$record->forum = $this->forum->id;
@@ -91,7 +96,7 @@ class core_rating_externallib_testcase extends externallib_advanced_testcase {
global $DB;
// Rete the discussion as teacher1.
$rating1 = new stdClass();
$rating1 = new \stdClass();
$rating1->contextid = $this->contextid;
$rating1->component = 'mod_forum';
$rating1->ratingarea = 'post';
@@ -104,7 +109,7 @@ class core_rating_externallib_testcase extends externallib_advanced_testcase {
$rating1->id = $DB->insert_record('rating', $rating1);
// Rete the discussion as teacher2.
$rating2 = new stdClass();
$rating2 = new \stdClass();
$rating2->contextid = $this->contextid;
$rating2->component = 'mod_forum';
$rating2->ratingarea = 'post';
@@ -124,7 +129,7 @@ class core_rating_externallib_testcase extends externallib_advanced_testcase {
$ratings = core_rating_external::get_item_ratings('module', $this->forum->cmid, 'mod_forum', 'post', $this->post->id, 100, '');
// We need to execute the return values cleaning process to simulate the web service server.
$ratings = external_api::clean_returnvalue(core_rating_external::get_item_ratings_returns(), $ratings);
$ratings = \external_api::clean_returnvalue(core_rating_external::get_item_ratings_returns(), $ratings);
$this->assertCount(2, $ratings['ratings']);
$indexedratings = array();
@@ -142,14 +147,14 @@ class core_rating_externallib_testcase extends externallib_advanced_testcase {
$ratings = core_rating_external::get_item_ratings('module', $this->forum->cmid, 'mod_forum', 'post', $this->post->id, 100, '');
// We need to execute the return values cleaning process to simulate the web service server.
$ratings = external_api::clean_returnvalue(core_rating_external::get_item_ratings_returns(), $ratings);
$ratings = \external_api::clean_returnvalue(core_rating_external::get_item_ratings_returns(), $ratings);
$this->assertCount(2, $ratings['ratings']);
// Invalid item.
try {
$ratings = core_rating_external::get_item_ratings('module', $this->forum->cmid, 'mod_forum', 'post', 0, 100, '');
$this->fail('Exception expected due invalid itemid.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('invalidrecord', $e->errorcode);
}
@@ -157,7 +162,7 @@ class core_rating_externallib_testcase extends externallib_advanced_testcase {
try {
$ratings = core_rating_external::get_item_ratings('module', $this->forum->cmid, 'mod_forum', 'xyz', $this->post->id, 100, '');
$this->fail('Exception expected due invalid rating area.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('invalidratingarea', $e->errorcode);
}
@@ -165,7 +170,7 @@ class core_rating_externallib_testcase extends externallib_advanced_testcase {
try {
$ratings = core_rating_external::get_item_ratings('module', 0, 'mod_forum', 'post', $this->post->id, 100, '');
$this->fail('Exception expected due invalid context.');
} catch (invalid_parameter_exception $e) {
} catch (\invalid_parameter_exception $e) {
$this->assertEquals('invalidparameter', $e->errorcode);
}
@@ -181,14 +186,14 @@ class core_rating_externallib_testcase extends externallib_advanced_testcase {
$this->setUser($this->teacher1);
$ratings = core_rating_external::get_item_ratings('module', $this->forum->cmid, 'mod_forum', 'post', $this->post->id, 100, '');
// We need to execute the return values cleaning process to simulate the web service server.
$ratings = external_api::clean_returnvalue(core_rating_external::get_item_ratings_returns(), $ratings);
$ratings = \external_api::clean_returnvalue(core_rating_external::get_item_ratings_returns(), $ratings);
$this->assertCount(2, $ratings['ratings']);
$this->setUser($this->teacher3);
try {
$ratings = core_rating_external::get_item_ratings('module', $this->forum->cmid, 'mod_forum', 'post', $this->post->id, 100, '');
$this->fail('Exception expected due invalid group permissions.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('noviewrate', $e->errorcode);
}
@@ -204,7 +209,7 @@ class core_rating_externallib_testcase extends externallib_advanced_testcase {
$rating = core_rating_external::add_rating('module', $this->forum->cmid, 'mod_forum', 'post', $this->post->id, 100,
50, $this->student1->id, RATING_AGGREGATE_AVERAGE);
// We need to execute the return values cleaning process to simulate the web service server.
$rating = external_api::clean_returnvalue(core_rating_external::add_rating_returns(), $rating);
$rating = \external_api::clean_returnvalue(core_rating_external::add_rating_returns(), $rating);
$this->assertTrue($rating['success']);
$this->assertEquals(50, $rating['aggregate']);
$this->assertEquals(1, $rating['count']);
@@ -212,7 +217,7 @@ class core_rating_externallib_testcase extends externallib_advanced_testcase {
// New different rate (it will replace the existing one).
$rating = core_rating_external::add_rating('module', $this->forum->cmid, 'mod_forum', 'post', $this->post->id, 100,
100, $this->student1->id, RATING_AGGREGATE_AVERAGE);
$rating = external_api::clean_returnvalue(core_rating_external::add_rating_returns(), $rating);
$rating = \external_api::clean_returnvalue(core_rating_external::add_rating_returns(), $rating);
$this->assertTrue($rating['success']);
$this->assertEquals(100, $rating['aggregate']);
$this->assertEquals(1, $rating['count']);
@@ -221,7 +226,7 @@ class core_rating_externallib_testcase extends externallib_advanced_testcase {
$this->setUser($this->teacher2);
$rating = core_rating_external::add_rating('module', $this->forum->cmid, 'mod_forum', 'post', $this->post->id, 100,
50, $this->student1->id, RATING_AGGREGATE_AVERAGE);
$rating = external_api::clean_returnvalue(core_rating_external::add_rating_returns(), $rating);
$rating = \external_api::clean_returnvalue(core_rating_external::add_rating_returns(), $rating);
$this->assertEquals(75, $rating['aggregate']);
$this->assertEquals(2, $rating['count']);
+3 -1
View File
@@ -22,6 +22,8 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
namespace report_insights;
defined('MOODLE_INTERNAL') || die();
require_once(__DIR__ . '/../../../analytics/tests/fixtures/test_indicator_max.php');
@@ -34,7 +36,7 @@ require_once(__DIR__ . '/../../../analytics/tests/fixtures/test_target_shortname
* @copyright 2019 David Monllaó {@link http://www.davidmonllao.com}
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class report_insights_external_testcase extends advanced_testcase {
class externallib_test extends \advanced_testcase {
/**
* test_action_executed
+15 -13
View File
@@ -17,13 +17,15 @@
/**
* Repository generator tests
*
* @package repository
* @package core_repository
* @category test
* @copyright 2013 Frédéric Massart
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
namespace core_repository;
use repository_exception;
/**
* Repository generator tests class
@@ -33,7 +35,7 @@ defined('MOODLE_INTERNAL') || die();
* @copyright 2013 Frédéric Massart
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class core_repository_generator_testcase extends advanced_testcase {
class generator_test extends \advanced_testcase {
/**
* Basic test of creation of repository types.
@@ -87,7 +89,7 @@ class core_repository_generator_testcase extends advanced_testcase {
// Single instances.
// Note: for single instances repositories enablecourseinstances and enableuserinstances are forced set to 0.
$record = new stdClass();
$record = new \stdClass();
$record->pluginname = 'Custom Flickr';
$record->api_key = '12345';
$record->secret = '67890';
@@ -100,7 +102,7 @@ class core_repository_generator_testcase extends advanced_testcase {
$this->assertEquals('Custom Flickr',
$DB->get_field('repository_instances', 'name', array('typeid' => $flickr->id), MUST_EXIST));
$record = new stdClass();
$record = new \stdClass();
$record->pluginname = 'Custom Dropbox';
$record->dropbox_key = '12345';
$record->dropbox_secret = '67890';
@@ -115,7 +117,7 @@ class core_repository_generator_testcase extends advanced_testcase {
$DB->get_field('repository_instances', 'name', array('typeid' => $dropbox->id), MUST_EXIST));
// Multiple instances.
$record = new stdClass();
$record = new \stdClass();
$record->pluginname = 'Custom WebDAV';
$record->enableuserinstances = '0';
$record->enablecourseinstances = '0';
@@ -125,7 +127,7 @@ class core_repository_generator_testcase extends advanced_testcase {
$this->assertEquals($record, $config);
$this->assertFalse( $DB->record_exists('repository_instances', array('typeid' => $webdav->id)));
$record = new stdClass();
$record = new \stdClass();
$record->pluginname = 'Custom Equella';
$record->enableuserinstances = '1';
$record->enablecourseinstances = '0';
@@ -150,7 +152,7 @@ class core_repository_generator_testcase extends advanced_testcase {
$block = $this->getDataGenerator()->create_block('online_users');
$type = $this->getDataGenerator()->create_repository_type('webdav');
$record = new stdClass();
$record = new \stdClass();
$record->name = 'A WebDAV instance';
$record->webdav_type = '1';
$record->webdav_server = 'localhost';
@@ -164,7 +166,7 @@ class core_repository_generator_testcase extends advanced_testcase {
$this->assertEquals(1, $DB->count_records('repository_instances', array('typeid' => $type->id)));
$this->assertEquals($record->name, $DB->get_field('repository_instances', 'name', array('id' => $instance->id)));
$entries = $DB->get_records('repository_instance_config', array('instanceid' => $instance->id));
$config = new stdClass();
$config = new \stdClass();
foreach ($entries as $entry) {
$config->{$entry->name} = $entry->value;
}
@@ -172,21 +174,21 @@ class core_repository_generator_testcase extends advanced_testcase {
$this->assertEquals($config, $record);
// Course context.
$record = new stdClass();
$record->contextid = context_course::instance($course->id)->id;
$record = new \stdClass();
$record->contextid = \context_course::instance($course->id)->id;
$instance = $this->getDataGenerator()->create_repository('webdav', $record);
$this->assertEquals(2, $DB->count_records('repository_instances', array('typeid' => $type->id)));
$this->assertEquals($record->contextid, $instance->contextid);
// User context.
$record->contextid = context_user::instance($user->id)->id;
$record->contextid = \context_user::instance($user->id)->id;
$instance = $this->getDataGenerator()->create_repository('webdav', $record);
$this->assertEquals(3, $DB->count_records('repository_instances', array('typeid' => $type->id)));
$this->assertEquals($record->contextid, $instance->contextid);
// Invalid context.
$this->expectException('coding_exception');
$record->contextid = context_block::instance($block->id)->id;
$record->contextid = \context_block::instance($block->id)->id;
$instance = $this->getDataGenerator()->create_repository('webdav', $record);
}
+67 -61
View File
@@ -24,6 +24,12 @@
* @since Moodle 2.4
*/
namespace core_user;
use core_files_external;
use core_user_external;
use externallib_advanced_testcase;
defined('MOODLE_INTERNAL') || die();
global $CFG;
@@ -32,7 +38,7 @@ require_once($CFG->dirroot . '/webservice/tests/helpers.php');
require_once($CFG->dirroot . '/user/externallib.php');
require_once($CFG->dirroot . '/files/externallib.php');
class core_user_externallib_testcase extends externallib_advanced_testcase {
class externallib_test extends externallib_advanced_testcase {
/**
* Test get_users
@@ -74,7 +80,7 @@ class core_user_externallib_testcase extends externallib_advanced_testcase {
$generatedusers[$user1->id] = $user1;
$generatedusers[$user2->id] = $user2;
$context = context_course::instance($course->id);
$context = \context_course::instance($course->id);
$roleid = $this->assignUserCapability('moodle/user:viewdetails', $context->id);
// Enrol the users in the course.
@@ -94,7 +100,7 @@ class core_user_externallib_testcase extends externallib_advanced_testcase {
$result = core_user_external::get_users($searchparams);
// We need to execute the return values cleaning process to simulate the web service server
$result = external_api::clean_returnvalue(core_user_external::get_users_returns(), $result);
$result = \external_api::clean_returnvalue(core_user_external::get_users_returns(), $result);
// Check we retrieve the good total number of enrolled users + no error on capability.
$expectedreturnedusers = 1;
@@ -162,9 +168,9 @@ class core_user_externallib_testcase extends externallib_advanced_testcase {
// Call the external function.
$result = core_user_external::get_users($searchparams);
$this->fail('Expecting \'keyalreadyset\' moodle_exception to be thrown.');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('keyalreadyset', $e->errorcode);
} catch (Exception $e) {
} catch (\Exception $e) {
$this->fail('Expecting \'keyalreadyset\' moodle_exception to be thrown.');
}
}
@@ -207,7 +213,7 @@ class core_user_externallib_testcase extends externallib_advanced_testcase {
$generatedusers[$user1->id] = $user1;
$generatedusers[$user2->id] = $user2;
$context = context_course::instance($course->id);
$context = \context_course::instance($course->id);
$roleid = $this->assignUserCapability('moodle/user:viewdetails', $context->id);
// Enrol the users in the course.
@@ -225,7 +231,7 @@ class core_user_externallib_testcase extends externallib_advanced_testcase {
// Call the external function.
$returnedusers = core_user_external::get_users_by_field($fieldtosearch,
array($USER->{$fieldtosearch}, $user1->{$fieldtosearch}, $user2->{$fieldtosearch}));
$returnedusers = external_api::clean_returnvalue(core_user_external::get_users_by_field_returns(), $returnedusers);
$returnedusers = \external_api::clean_returnvalue(core_user_external::get_users_by_field_returns(), $returnedusers);
// Expected result differ following the searched field
// Admin user in the PHPunit framework doesn't have an idnumber.
@@ -292,7 +298,7 @@ class core_user_externallib_testcase extends externallib_advanced_testcase {
// Call the external function.
$returnedusers = core_user_external::get_users_by_field('username',
array($USER->username, $user1->username, $user2->username));
$returnedusers = external_api::clean_returnvalue(core_user_external::get_users_by_field_returns(), $returnedusers);
$returnedusers = \external_api::clean_returnvalue(core_user_external::get_users_by_field_returns(), $returnedusers);
// Only the own $USER username should be returned
$this->assertEquals(1, count($returnedusers));
@@ -303,7 +309,7 @@ class core_user_externallib_testcase extends externallib_advanced_testcase {
// Call the external function.
$returnedusers = core_user_external::get_users_by_field('username',
array($USER->username, $user1->username, $user2->username));
$returnedusers = external_api::clean_returnvalue(core_user_external::get_users_by_field_returns(), $returnedusers);
$returnedusers = \external_api::clean_returnvalue(core_user_external::get_users_by_field_returns(), $returnedusers);
// Only the own $USER username should be returned still.
$this->assertEquals(1, count($returnedusers));
@@ -314,7 +320,7 @@ class core_user_externallib_testcase extends externallib_advanced_testcase {
$this->resetAfterTest(true);
$return = new stdClass();
$return = new \stdClass();
// Create the course and fetch its context.
$return->course = self::getDataGenerator()->create_course();
@@ -342,7 +348,7 @@ class core_user_externallib_testcase extends externallib_advanced_testcase {
}
$return->user2 = self::getDataGenerator()->create_user();
$context = context_course::instance($return->course->id);
$context = \context_course::instance($return->course->id);
$return->roleid = $this->assignUserCapability($capability, $context->id);
// Enrol the users in the course.
@@ -368,7 +374,7 @@ class core_user_externallib_testcase extends externallib_advanced_testcase {
array('userid' => $USER->id, 'courseid' => $data->course->id)));
// We need to execute the return values cleaning process to simulate the web service server.
$enrolledusers = external_api::clean_returnvalue(core_user_external::get_course_user_profiles_returns(), $enrolledusers);
$enrolledusers = \external_api::clean_returnvalue(core_user_external::get_course_user_profiles_returns(), $enrolledusers);
// Check we retrieve the good total number of enrolled users + no error on capability.
$this->assertEquals(1, count($enrolledusers));
@@ -392,7 +398,7 @@ class core_user_externallib_testcase extends externallib_advanced_testcase {
array('userid' => $data->user1->id, 'courseid' => $data->course->id)));
// We need to execute the return values cleaning process to simulate the web service server.
$enrolledusers = external_api::clean_returnvalue(core_user_external::get_course_user_profiles_returns(), $enrolledusers);
$enrolledusers = \external_api::clean_returnvalue(core_user_external::get_course_user_profiles_returns(), $enrolledusers);
foreach($enrolledusers as $enrolleduser) {
if ($enrolleduser['username'] == $data->user1->username) {
@@ -462,7 +468,7 @@ class core_user_externallib_testcase extends externallib_advanced_testcase {
'auth' => 'oauth2'
);
$context = context_system::instance();
$context = \context_system::instance();
$roleid = $this->assignUserCapability('moodle/user:create', $context->id);
$this->assignUserCapability('moodle/user:editprofile', $context->id, $roleid);
@@ -470,7 +476,7 @@ class core_user_externallib_testcase extends externallib_advanced_testcase {
$createdusers = core_user_external::create_users(array($user1, $user2));
// We need to execute the return values cleaning process to simulate the web service server.
$createdusers = external_api::clean_returnvalue(core_user_external::create_users_returns(), $createdusers);
$createdusers = \external_api::clean_returnvalue(core_user_external::create_users_returns(), $createdusers);
// Check we retrieve the good total number of created users + no error on capability.
$this->assertCount(2, $createdusers);
@@ -483,8 +489,8 @@ class core_user_externallib_testcase extends externallib_advanced_testcase {
$this->assertEquals('atto', get_user_preferences('htmleditor', null, $dbuser));
$this->assertEquals(null, get_user_preferences('invalidpreference', null, $dbuser));
// Confirm user interests have been saved.
$interests = core_tag_tag::get_item_tags_array('core', 'user', $createduser['id'],
core_tag_tag::BOTH_STANDARD_AND_NOT, 0, false);
$interests = \core_tag_tag::get_item_tags_array('core', 'user', $createduser['id'],
\core_tag_tag::BOTH_STANDARD_AND_NOT, 0, false);
// There should be 3 user interests.
$this->assertCount(3, $interests);
@@ -530,7 +536,7 @@ class core_user_externallib_testcase extends externallib_advanced_testcase {
];
// This should throw an exception because either password or createpassword param must be passed for auth_manual.
$this->expectException(invalid_parameter_exception::class);
$this->expectException(\invalid_parameter_exception::class);
core_user_external::create_users([$user]);
}
@@ -588,7 +594,7 @@ class core_user_externallib_testcase extends externallib_advanced_testcase {
if (!$sameemailallowed) {
// This should throw an exception when $CFG->allowaccountssameemail is empty.
$this->expectException(invalid_parameter_exception::class);
$this->expectException(\invalid_parameter_exception::class);
}
// Create our users.
@@ -692,7 +698,7 @@ class core_user_externallib_testcase extends externallib_advanced_testcase {
$this->assertEquals(2, $DB->count_records_select('user', 'deleted = 0 AND (id = :userid1 OR id = :userid2)',
array('userid1' => $user1->id, 'userid2' => $user2->id)));
$context = context_system::instance();
$context = \context_system::instance();
$roleid = $this->assignUserCapability('moodle/user:delete', $context->id);
// Call the external function.
@@ -719,7 +725,7 @@ class core_user_externallib_testcase extends externallib_advanced_testcase {
$wsuser = self::getDataGenerator()->create_user();
self::setUser($wsuser);
$context = context_user::instance($USER->id);
$context = \context_user::instance($USER->id);
$contextid = $context->id;
$filename = "reddot.png";
$filecontent = "iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38"
@@ -728,7 +734,7 @@ class core_user_externallib_testcase extends externallib_advanced_testcase {
// Call the files api to create a file.
$draftfile = core_files_external::upload($contextid, 'user', 'draft', 0, '/',
$filename, $filecontent, null, null);
$draftfile = external_api::clean_returnvalue(core_files_external::upload_returns(), $draftfile);
$draftfile = \external_api::clean_returnvalue(core_files_external::upload_returns(), $draftfile);
$draftid = $draftfile['itemid'];
@@ -765,7 +771,7 @@ class core_user_externallib_testcase extends externallib_advanced_testcase {
'interests' => 'badminton, basketball, cooking, '
);
$context = context_system::instance();
$context = \context_system::instance();
$roleid = $this->assignUserCapability('moodle/user:update', $context->id);
$this->assignUserCapability('moodle/user:editprofile', $context->id, $roleid);
@@ -808,7 +814,7 @@ class core_user_externallib_testcase extends externallib_advanced_testcase {
$this->assertEquals(null, get_user_preferences('invalidpreference', null, $dbuser));
// Confirm user interests have been saved.
$interests = core_tag_tag::get_item_tags_array('core', 'user', $user1['id'], core_tag_tag::BOTH_STANDARD_AND_NOT, 0, false);
$interests = \core_tag_tag::get_item_tags_array('core', 'user', $user1['id'], \core_tag_tag::BOTH_STANDARD_AND_NOT, 0, false);
// There should be 3 user interests.
$this->assertCount(3, $interests);
@@ -924,10 +930,10 @@ class core_user_externallib_testcase extends externallib_advanced_testcase {
$this->resetAfterTest(true);
$context = context_system::instance();
$context = \context_system::instance();
$roleid = $this->assignUserCapability('moodle/user:manageownfiles', $context->id);
$context = context_user::instance($USER->id);
$context = \context_user::instance($USER->id);
$contextid = $context->id;
$component = "user";
$filearea = "draft";
@@ -942,7 +948,7 @@ class core_user_externallib_testcase extends externallib_advanced_testcase {
// Call the files api to create a file.
$draftfile = core_files_external::upload($contextid, $component, $filearea, $itemid, $filepath,
$filename, $filecontent, $contextlevel, $instanceid);
$draftfile = external_api::clean_returnvalue(core_files_external::upload_returns(), $draftfile);
$draftfile = \external_api::clean_returnvalue(core_files_external::upload_returns(), $draftfile);
$draftid = $draftfile['itemid'];
// Make sure the file was created.
@@ -992,14 +998,14 @@ class core_user_externallib_testcase extends externallib_advanced_testcase {
$warnings = core_user_external::add_user_device($device['appid'], $device['name'], $device['model'], $device['platform'],
$device['version'], $device['pushid'], $device['uuid']);
// We need to execute the return values cleaning process to simulate the web service server.
$warnings = external_api::clean_returnvalue(core_user_external::add_user_device_returns(), $warnings);
$warnings = \external_api::clean_returnvalue(core_user_external::add_user_device_returns(), $warnings);
$this->assertCount(1, $warnings);
// Test update an existing device.
$device['pushid'] = 'different than before';
$warnings = core_user_external::add_user_device($device['appid'], $device['name'], $device['model'], $device['platform'],
$device['version'], $device['pushid'], $device['uuid']);
$warnings = external_api::clean_returnvalue(core_user_external::add_user_device_returns(), $warnings);
$warnings = \external_api::clean_returnvalue(core_user_external::add_user_device_returns(), $warnings);
$this->assertEquals(1, $DB->count_records('user_devices'));
$updated = $DB->get_record('user_devices', array('pushid' => $device['pushid']));
@@ -1010,7 +1016,7 @@ class core_user_externallib_testcase extends externallib_advanced_testcase {
$device['pushid'] = 'new different than before';
$warnings = core_user_external::add_user_device($device['appid'], $device['name'], $device['model'], $device['platform'],
$device['version'], $device['pushid'], $device['uuid']);
$warnings = external_api::clean_returnvalue(core_user_external::add_user_device_returns(), $warnings);
$warnings = \external_api::clean_returnvalue(core_user_external::add_user_device_returns(), $warnings);
$this->assertEquals(2, $DB->count_records('user_devices'));
}
@@ -1048,24 +1054,24 @@ class core_user_externallib_testcase extends externallib_advanced_testcase {
// Try to remove a device that does not exist.
$result = core_user_external::remove_user_device('1234567890');
$result = external_api::clean_returnvalue(core_user_external::remove_user_device_returns(), $result);
$result = \external_api::clean_returnvalue(core_user_external::remove_user_device_returns(), $result);
$this->assertFalse($result['removed']);
$this->assertCount(1, $result['warnings']);
// Try to remove a device that does not exist for an existing app.
$result = core_user_external::remove_user_device('1234567890', $device['appid']);
$result = external_api::clean_returnvalue(core_user_external::remove_user_device_returns(), $result);
$result = \external_api::clean_returnvalue(core_user_external::remove_user_device_returns(), $result);
$this->assertFalse($result['removed']);
$this->assertCount(1, $result['warnings']);
// Remove an existing device for an existing app. This will remove one of the two devices.
$result = core_user_external::remove_user_device($device['uuid'], $device['appid']);
$result = external_api::clean_returnvalue(core_user_external::remove_user_device_returns(), $result);
$result = \external_api::clean_returnvalue(core_user_external::remove_user_device_returns(), $result);
$this->assertTrue($result['removed']);
// Remove all the devices. This must remove the remaining device.
$result = core_user_external::remove_user_device($device['uuid']);
$result = external_api::clean_returnvalue(core_user_external::remove_user_device_returns(), $result);
$result = \external_api::clean_returnvalue(core_user_external::remove_user_device_returns(), $result);
$this->assertTrue($result['removed']);
}
@@ -1082,7 +1088,7 @@ class core_user_externallib_testcase extends externallib_advanced_testcase {
$this->setUser($user);
$result = core_user_external::get_user_preferences();
$result = external_api::clean_returnvalue(core_user_external::get_user_preferences_returns(), $result);
$result = \external_api::clean_returnvalue(core_user_external::get_user_preferences_returns(), $result);
$this->assertCount(0, $result['warnings']);
// Expect 3, _lastloaded is always returned.
$this->assertCount(3, $result['preferences']);
@@ -1097,14 +1103,14 @@ class core_user_externallib_testcase extends externallib_advanced_testcase {
// Retrieve just one preference.
$result = core_user_external::get_user_preferences('some_random_text');
$result = external_api::clean_returnvalue(core_user_external::get_user_preferences_returns(), $result);
$result = \external_api::clean_returnvalue(core_user_external::get_user_preferences_returns(), $result);
$this->assertCount(0, $result['warnings']);
$this->assertCount(1, $result['preferences']);
$this->assertEquals('text', $result['preferences'][0]['value']);
// Retrieve non-existent preference.
$result = core_user_external::get_user_preferences('non_existent');
$result = external_api::clean_returnvalue(core_user_external::get_user_preferences_returns(), $result);
$result = \external_api::clean_returnvalue(core_user_external::get_user_preferences_returns(), $result);
$this->assertCount(0, $result['warnings']);
$this->assertCount(1, $result['preferences']);
$this->assertEquals(null, $result['preferences'][0]['value']);
@@ -1112,7 +1118,7 @@ class core_user_externallib_testcase extends externallib_advanced_testcase {
// Check that as admin we can retrieve all the preferences for any user.
$this->setAdminUser();
$result = core_user_external::get_user_preferences('', $user->id);
$result = external_api::clean_returnvalue(core_user_external::get_user_preferences_returns(), $result);
$result = \external_api::clean_returnvalue(core_user_external::get_user_preferences_returns(), $result);
$this->assertCount(0, $result['warnings']);
$this->assertCount(3, $result['preferences']);
@@ -1143,7 +1149,7 @@ class core_user_externallib_testcase extends externallib_advanced_testcase {
$user = self::getDataGenerator()->create_user();
self::setUser($user);
$context = context_user::instance($USER->id);
$context = \context_user::instance($USER->id);
$contextid = $context->id;
$filename = "reddot.png";
$filecontent = "iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38"
@@ -1155,7 +1161,7 @@ class core_user_externallib_testcase extends externallib_advanced_testcase {
// Change user profile image.
$result = core_user_external::update_picture($draftid);
$result = external_api::clean_returnvalue(core_user_external::update_picture_returns(), $result);
$result = \external_api::clean_returnvalue(core_user_external::update_picture_returns(), $result);
$picture = $DB->get_field('user', 'picture', array('id' => $user->id));
// The new revision is in the url for the user.
$this->assertStringContainsString($picture, $result['profileimageurl']);
@@ -1164,7 +1170,7 @@ class core_user_externallib_testcase extends externallib_advanced_testcase {
// Delete image.
$result = core_user_external::update_picture(0, true);
$result = external_api::clean_returnvalue(core_user_external::update_picture_returns(), $result);
$result = \external_api::clean_returnvalue(core_user_external::update_picture_returns(), $result);
$picture = $DB->get_field('user', 'picture', array('id' => $user->id));
// No picture.
$this->assertEquals(0, $picture);
@@ -1172,13 +1178,13 @@ class core_user_externallib_testcase extends externallib_advanced_testcase {
// Add again the user profile image (as admin).
$this->setAdminUser();
$context = context_user::instance($USER->id);
$context = \context_user::instance($USER->id);
$admincontextid = $context->id;
$draftfile = core_files_external::upload($admincontextid, 'user', 'draft', 0, '/', $filename, $filecontent, null, null);
$draftid = $draftfile['itemid'];
$result = core_user_external::update_picture($draftid, false, $user->id);
$result = external_api::clean_returnvalue(core_user_external::update_picture_returns(), $result);
$result = \external_api::clean_returnvalue(core_user_external::update_picture_returns(), $result);
// The new revision is in the url for the user.
$picture = $DB->get_field('user', 'picture', array('id' => $user->id));
$this->assertStringContainsString($picture, $result['profileimageurl']);
@@ -1224,7 +1230,7 @@ class core_user_externallib_testcase extends externallib_advanced_testcase {
);
$result = core_user_external::set_user_preferences($preferences);
$result = external_api::clean_returnvalue(core_user_external::set_user_preferences_returns(), $result);
$result = \external_api::clean_returnvalue(core_user_external::set_user_preferences_returns(), $result);
$this->assertCount(0, $result['warnings']);
$this->assertCount(2, $result['saved']);
@@ -1255,7 +1261,7 @@ class core_user_externallib_testcase extends externallib_advanced_testcase {
);
$result = core_user_external::set_user_preferences($preferences);
$result = external_api::clean_returnvalue(core_user_external::set_user_preferences_returns(), $result);
$result = \external_api::clean_returnvalue(core_user_external::set_user_preferences_returns(), $result);
$this->assertCount(1, $result['warnings']);
$this->assertCount(0, $result['saved']);
$this->assertEquals('nopermission', $result['warnings'][0]['warningcode']);
@@ -1280,7 +1286,7 @@ class core_user_externallib_testcase extends externallib_advanced_testcase {
);
$result = core_user_external::set_user_preferences($preferences);
$result = external_api::clean_returnvalue(core_user_external::set_user_preferences_returns(), $result);
$result = \external_api::clean_returnvalue(core_user_external::set_user_preferences_returns(), $result);
$this->assertCount(1, $result['warnings']);
$this->assertCount(0, $result['saved']);
$this->assertEquals('invaliduser', $result['warnings'][0]['warningcode']);
@@ -1305,7 +1311,7 @@ class core_user_externallib_testcase extends externallib_advanced_testcase {
);
$result = core_user_external::set_user_preferences($preferences);
$result = external_api::clean_returnvalue(core_user_external::set_user_preferences_returns(), $result);
$result = \external_api::clean_returnvalue(core_user_external::set_user_preferences_returns(), $result);
$this->assertCount(0, $result['warnings']);
$this->assertCount(1, $result['saved']);
// Cleaned valud of the preference was saved.
@@ -1359,7 +1365,7 @@ class core_user_externallib_testcase extends externallib_advanced_testcase {
);
$result = core_user_external::set_user_preferences($preferences);
$result = external_api::clean_returnvalue(core_user_external::set_user_preferences_returns(), $result);
$result = \external_api::clean_returnvalue(core_user_external::set_user_preferences_returns(), $result);
$this->assertCount(0, $result['warnings']);
$this->assertCount(1, $result['saved']);
@@ -1385,7 +1391,7 @@ class core_user_externallib_testcase extends externallib_advanced_testcase {
// Site policy not set.
$result = core_user_external::agree_site_policy();
$result = external_api::clean_returnvalue(core_user_external::agree_site_policy_returns(), $result);
$result = \external_api::clean_returnvalue(core_user_external::agree_site_policy_returns(), $result);
$this->assertFalse($result['status']);
$this->assertCount(1, $result['warnings']);
$this->assertEquals('nositepolicy', $result['warnings'][0]['warningcode']);
@@ -1395,7 +1401,7 @@ class core_user_externallib_testcase extends externallib_advanced_testcase {
$this->assertEquals(0, $USER->policyagreed);
$result = core_user_external::agree_site_policy();
$result = external_api::clean_returnvalue(core_user_external::agree_site_policy_returns(), $result);
$result = \external_api::clean_returnvalue(core_user_external::agree_site_policy_returns(), $result);
$this->assertTrue($result['status']);
$this->assertCount(0, $result['warnings']);
$this->assertEquals(1, $USER->policyagreed);
@@ -1403,7 +1409,7 @@ class core_user_externallib_testcase extends externallib_advanced_testcase {
// Try again, we should get a warning.
$result = core_user_external::agree_site_policy();
$result = external_api::clean_returnvalue(core_user_external::agree_site_policy_returns(), $result);
$result = \external_api::clean_returnvalue(core_user_external::agree_site_policy_returns(), $result);
$this->assertFalse($result['status']);
$this->assertCount(1, $result['warnings']);
$this->assertEquals('alreadyagreed', $result['warnings'][0]['warningcode']);
@@ -1417,9 +1423,9 @@ class core_user_externallib_testcase extends externallib_advanced_testcase {
try {
$result = core_user_external::agree_site_policy();
$this->fail('Expecting \'usernotfullysetup\' moodle_exception to be thrown');
} catch (moodle_exception $e) {
} catch (\moodle_exception $e) {
$this->assertEquals('usernotfullysetup', $e->errorcode);
} catch (Exception $e) {
} catch (\Exception $e) {
$this->fail('Expecting \'usernotfullysetup\' moodle_exception to be thrown.');
}
}
@@ -1432,7 +1438,7 @@ class core_user_externallib_testcase extends externallib_advanced_testcase {
$this->resetAfterTest(true);
$user = self::getDataGenerator()->create_user();
$this->setUser($user);
$usercontext = context_user::instance($user->id);
$usercontext = \context_user::instance($user->id);
$filerecord = array(
'contextid' => $usercontext->id,
@@ -1448,7 +1454,7 @@ class core_user_externallib_testcase extends externallib_advanced_testcase {
// Get my private files information.
$result = core_user_external::get_private_files_info();
$result = external_api::clean_returnvalue(core_user_external::get_private_files_info_returns(), $result);
$result = \external_api::clean_returnvalue(core_user_external::get_private_files_info_returns(), $result);
$this->assertEquals(1, $result['filecount']);
$this->assertEquals($file->get_filesize(), $result['filesize']);
$this->assertEquals(0, $result['foldercount']);
@@ -1457,7 +1463,7 @@ class core_user_externallib_testcase extends externallib_advanced_testcase {
// As admin, get user information.
$this->setAdminUser();
$result = core_user_external::get_private_files_info($user->id);
$result = external_api::clean_returnvalue(core_user_external::get_private_files_info_returns(), $result);
$result = \external_api::clean_returnvalue(core_user_external::get_private_files_info_returns(), $result);
$this->assertEquals(1, $result['filecount']);
$this->assertEquals($file->get_filesize(), $result['filesize']);
$this->assertEquals(0, $result['foldercount']);
@@ -1534,7 +1540,7 @@ class core_user_externallib_testcase extends externallib_advanced_testcase {
$CFG->maxusersperpage = 3;
$result = \core_user\external\search_identity::execute('Lastt');
$result = external_api::clean_returnvalue(\core_user\external\search_identity::execute_returns(), $result);
$result = \external_api::clean_returnvalue(\core_user\external\search_identity::execute_returns(), $result);
$this->assertEquals(2, count($result['list']));
$this->assertEquals(3, $result['maxusersperpage']);
@@ -1551,7 +1557,7 @@ class core_user_externallib_testcase extends externallib_advanced_testcase {
$CFG->maxusersperpage = 2;
$result = \core_user\external\search_identity::execute('Firstt');
$result = external_api::clean_returnvalue(\core_user\external\search_identity::execute_returns(), $result);
$result = \external_api::clean_returnvalue(\core_user\external\search_identity::execute_returns(), $result);
$this->assertEquals(2, count($result['list']));
$this->assertEquals(2, $result['maxusersperpage']);
@@ -1566,7 +1572,7 @@ class core_user_externallib_testcase extends externallib_advanced_testcase {
$CFG->maxusersperpage = 2;
$result = \core_user\external\search_identity::execute('City One');
$result = external_api::clean_returnvalue(\core_user\external\search_identity::execute_returns(), $result);
$result = \external_api::clean_returnvalue(\core_user\external\search_identity::execute_returns(), $result);
$this->assertEquals(0, count($result['list']));
$this->assertEquals(2, $result['maxusersperpage']);
@@ -1581,7 +1587,7 @@ class core_user_externallib_testcase extends externallib_advanced_testcase {
}
$result = \core_user\external\search_identity::execute('City One');
$result = external_api::clean_returnvalue(\core_user\external\search_identity::execute_returns(), $result);
$result = \external_api::clean_returnvalue(\core_user\external\search_identity::execute_returns(), $result);
$this->assertEquals(2, count($result['list']));
$this->assertEquals(2, $result['maxusersperpage']);
@@ -1612,7 +1618,7 @@ class core_user_externallib_testcase extends externallib_advanced_testcase {
'<ruby>lastname firstname <rp>(</rp><rt>lastnamephonetic firstnamephonetic</rt><rp>)</rp></ruby>';
$result = \core_user\external\search_identity::execute('Ak');
$result = external_api::clean_returnvalue(\core_user\external\search_identity::execute_returns(), $result);
$result = \external_api::clean_returnvalue(\core_user\external\search_identity::execute_returns(), $result);
$this->assertEquals(1, count($result['list']));
$this->assertEquals(3, $result['maxusersperpage']);
+14 -10
View File
@@ -14,6 +14,10 @@
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
namespace core_webservice;
use externallib_advanced_testcase;
defined('MOODLE_INTERNAL') || die();
global $CFG;
@@ -28,7 +32,7 @@ require_once($CFG->dirroot . '/webservice/tests/helpers.php');
* @copyright 2012 Paul Charsley
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class core_webservice_externallib_testcase extends externallib_advanced_testcase {
class externallib_test extends externallib_advanced_testcase {
public function setUp(): void {
// Calling parent is good, always
@@ -58,7 +62,7 @@ class core_webservice_externallib_testcase extends externallib_advanced_testcase
self::setUser(self::getDataGenerator()->create_user($user));
// Add a web service and token.
$webservice = new stdClass();
$webservice = new \stdClass();
$webservice->name = 'Test web service';
$webservice->enabled = true;
$webservice->restrictedusers = false;
@@ -73,7 +77,7 @@ class core_webservice_externallib_testcase extends externallib_advanced_testcase
'functionname' => 'core_course_get_contents'));
$_POST['wstoken'] = 'testtoken';
$externaltoken = new stdClass();
$externaltoken = new \stdClass();
$externaltoken->token = 'testtoken';
$externaltoken->tokentype = 0;
$externaltoken->userid = $USER->id;
@@ -83,10 +87,10 @@ class core_webservice_externallib_testcase extends externallib_advanced_testcase
$externaltoken->timecreated = time();
$DB->insert_record('external_tokens', $externaltoken);
$siteinfo = core_webservice_external::get_site_info();
$siteinfo = \core_webservice_external::get_site_info();
// We need to execute the return values cleaning process to simulate the web service server.
$siteinfo = external_api::clean_returnvalue(core_webservice_external::get_site_info_returns(), $siteinfo);
$siteinfo = \external_api::clean_returnvalue(\core_webservice_external::get_site_info_returns(), $siteinfo);
$this->assertEquals('johnd', $siteinfo['username']);
$this->assertEquals('John', $siteinfo['firstname']);
@@ -141,7 +145,7 @@ class core_webservice_externallib_testcase extends externallib_advanced_testcase
// Set a fake token for the user admin.
$_POST['wstoken'] = 'testtoken';
$externaltoken = new stdClass();
$externaltoken = new \stdClass();
$externaltoken->token = 'testtoken';
$externaltoken->tokentype = 0;
$externaltoken->userid = $USER->id;
@@ -155,10 +159,10 @@ class core_webservice_externallib_testcase extends externallib_advanced_testcase
$CFG->defaulthomepage = HOMEPAGE_USER;
set_user_preference('user_home_page_preference', HOMEPAGE_SITE);
$siteinfo = core_webservice_external::get_site_info();
$siteinfo = \core_webservice_external::get_site_info();
// We need to execute the return values cleaning process to simulate the web service server.
$siteinfo = external_api::clean_returnvalue(core_webservice_external::get_site_info_returns(), $siteinfo);
$siteinfo = \external_api::clean_returnvalue(\core_webservice_external::get_site_info_returns(), $siteinfo);
$this->assertEquals(0, $siteinfo['userquota']);
$this->assertEquals(USER_CAN_IGNORE_FILE_SIZE_LIMITS, $siteinfo['usermaxuploadfilesize']);
@@ -180,8 +184,8 @@ class core_webservice_externallib_testcase extends externallib_advanced_testcase
$userquota = PHP_INT_MAX . '000';
set_config('userquota', $userquota);
$result = core_webservice_external::get_site_info();
$result = external_api::clean_returnvalue(core_webservice_external::get_site_info_returns(), $result);
$result = \core_webservice_external::get_site_info();
$result = \external_api::clean_returnvalue(\core_webservice_external::get_site_info_returns(), $result);
$this->assertEquals(PHP_INT_MAX, $result['userquota']);
}