MDL-73476 phpunit: events, external and search tescase names

All events_test, external_test and search_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 lib/external/tests/external_test.php:
- external is not a valid component
- hence, its only valid namespace is "core"
- also, it's testing lib/external/externallib.php
- hence, the file (and class) have been renamed to external_externallib_test.php
  (to avoid conflicts with other external_test that may exist in core)
This commit is contained in:
Eloy Lafuente (stronk7) 2021-12-14 15:04:15 +01:00
parent 62f859ed24
commit f773514761
74 changed files with 2006 additions and 1853 deletions

View file

@ -24,13 +24,17 @@
* @since Moodle 3.8 * @since Moodle 3.8
*/ */
namespace tool_analytics\external;
use externallib_advanced_testcase;
defined('MOODLE_INTERNAL') || die(); defined('MOODLE_INTERNAL') || die();
global $CFG; global $CFG;
require_once($CFG->dirroot . '/webservice/tests/helpers.php'); require_once($CFG->dirroot . '/webservice/tests/helpers.php');
require_once(__DIR__ . '/../../../../analytics/tests/fixtures/test_indicator_max.php'); require_once($CFG->dirroot . '/analytics/tests/fixtures/test_indicator_max.php');
require_once(__DIR__ . '/../../../../analytics/tests/fixtures/test_target_course_level_shortname.php'); require_once($CFG->dirroot . '/analytics/tests/fixtures/test_target_course_level_shortname.php');
/** /**
* Tool analytics external functions tests * Tool analytics external functions tests
@ -41,7 +45,7 @@ require_once(__DIR__ . '/../../../../analytics/tests/fixtures/test_target_course
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since Moodle 3.8 * @since Moodle 3.8
*/ */
class tool_analytics_external_testcase extends externallib_advanced_testcase { class external_test extends externallib_advanced_testcase {
/** /**
* test_potential_contexts description * test_potential_contexts description
@ -73,7 +77,7 @@ class tool_analytics_external_testcase extends externallib_advanced_testcase {
$user = $this->getDataGenerator()->create_user(); $user = $this->getDataGenerator()->create_user();
$this->setUser($user); $this->setUser($user);
$this->expectException(required_capability_exception::class); $this->expectException(\required_capability_exception::class);
$this->assertCount(2, \tool_analytics\external::potential_contexts()); $this->assertCount(2, \tool_analytics\external::potential_contexts());
} }
} }

View file

@ -22,7 +22,7 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later. * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later.
*/ */
defined('MOODLE_INTERNAL') || die(); namespace tool_capability\event;
/** /**
* Class for capability overview events. * Class for capability overview events.
@ -31,7 +31,7 @@ defined('MOODLE_INTERNAL') || die();
* @copyright 2014 Petr Skoda * @copyright 2014 Petr Skoda
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later. * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later.
*/ */
class tool_capability_events_testcase extends advanced_testcase { class events_test extends \advanced_testcase {
/** /**
* Setup testcase. * Setup testcase.
@ -54,11 +54,11 @@ class tool_capability_events_testcase extends advanced_testcase {
$event = reset($events); $event = reset($events);
$this->assertInstanceOf('\tool_capability\event\report_viewed', $event); $this->assertInstanceOf('\tool_capability\event\report_viewed', $event);
$this->assertEquals(context_system::instance(), $event->get_context()); $this->assertEquals(\context_system::instance(), $event->get_context());
$expected = array(SITEID, "admin", "tool capability", "tool/capability/index.php"); $expected = array(SITEID, "admin", "tool capability", "tool/capability/index.php");
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
$url = new moodle_url('/admin/tool/capability/index.php'); $url = new \moodle_url('/admin/tool/capability/index.php');
$this->assertEquals($url, $event->get_url()); $this->assertEquals($url, $event->get_url());
$event->get_name(); $event->get_name();
} }

View file

@ -22,15 +22,18 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
namespace tool_dataprivacy\external;
use externallib_advanced_testcase;
use tool_dataprivacy\api;
use tool_dataprivacy\context_instance;
use tool_dataprivacy\external;
defined('MOODLE_INTERNAL') || die(); defined('MOODLE_INTERNAL') || die();
global $CFG; global $CFG;
require_once($CFG->dirroot . '/webservice/tests/helpers.php'); require_once($CFG->dirroot . '/webservice/tests/helpers.php');
use tool_dataprivacy\api;
use tool_dataprivacy\context_instance;
use tool_dataprivacy\external;
/** /**
* External testcase. * External testcase.
* *
@ -38,7 +41,7 @@ use tool_dataprivacy\external;
* @copyright 2018 Jun Pataleta * @copyright 2018 Jun Pataleta
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
class tool_dataprivacy_external_testcase extends externallib_advanced_testcase { class external_test extends externallib_advanced_testcase {
/** /**
* Test for external::approve_data_request() with the user not logged in. * Test for external::approve_data_request() with the user not logged in.
@ -46,7 +49,7 @@ class tool_dataprivacy_external_testcase extends externallib_advanced_testcase {
public function test_approve_data_request_not_logged_in() { public function test_approve_data_request_not_logged_in() {
$this->resetAfterTest(); $this->resetAfterTest();
$generator = new testing_data_generator(); $generator = new \testing_data_generator();
$requester = $generator->create_user(); $requester = $generator->create_user();
$comment = 'sample comment'; $comment = 'sample comment';
@ -57,7 +60,7 @@ class tool_dataprivacy_external_testcase extends externallib_advanced_testcase {
// Log out the user and set force login to true. // Log out the user and set force login to true.
$this->setUser(); $this->setUser();
$this->expectException(require_login_exception::class); $this->expectException(\require_login_exception::class);
external::approve_data_request($datarequest->get('id')); external::approve_data_request($datarequest->get('id'));
} }
@ -67,7 +70,7 @@ class tool_dataprivacy_external_testcase extends externallib_advanced_testcase {
public function test_approve_data_request_not_dpo() { public function test_approve_data_request_not_dpo() {
$this->resetAfterTest(); $this->resetAfterTest();
$generator = new testing_data_generator(); $generator = new \testing_data_generator();
$requester = $generator->create_user(); $requester = $generator->create_user();
$comment = 'sample comment'; $comment = 'sample comment';
@ -77,7 +80,7 @@ class tool_dataprivacy_external_testcase extends externallib_advanced_testcase {
// Login as the requester. // Login as the requester.
$this->setUser($requester); $this->setUser($requester);
$this->expectException(required_capability_exception::class); $this->expectException(\required_capability_exception::class);
external::approve_data_request($datarequest->get('id')); external::approve_data_request($datarequest->get('id'));
} }
@ -87,7 +90,7 @@ class tool_dataprivacy_external_testcase extends externallib_advanced_testcase {
public function test_approve_data_request_not_waiting_for_approval() { public function test_approve_data_request_not_waiting_for_approval() {
$this->resetAfterTest(); $this->resetAfterTest();
$generator = new testing_data_generator(); $generator = new \testing_data_generator();
$requester = $generator->create_user(); $requester = $generator->create_user();
$comment = 'sample comment'; $comment = 'sample comment';
@ -98,7 +101,7 @@ class tool_dataprivacy_external_testcase extends externallib_advanced_testcase {
// Admin as DPO. (The default when no one's assigned as a DPO in the site). // Admin as DPO. (The default when no one's assigned as a DPO in the site).
$this->setAdminUser(); $this->setAdminUser();
$this->expectException(moodle_exception::class); $this->expectException(\moodle_exception::class);
external::approve_data_request($datarequest->get('id')); external::approve_data_request($datarequest->get('id'));
} }
@ -108,7 +111,7 @@ class tool_dataprivacy_external_testcase extends externallib_advanced_testcase {
public function test_approve_data_request() { public function test_approve_data_request() {
$this->resetAfterTest(); $this->resetAfterTest();
$generator = new testing_data_generator(); $generator = new \testing_data_generator();
$requester = $generator->create_user(); $requester = $generator->create_user();
$comment = 'sample comment'; $comment = 'sample comment';
@ -120,7 +123,7 @@ class tool_dataprivacy_external_testcase extends externallib_advanced_testcase {
$this->setAdminUser(); $this->setAdminUser();
api::update_request_status($datarequest->get('id'), api::DATAREQUEST_STATUS_AWAITING_APPROVAL); api::update_request_status($datarequest->get('id'), api::DATAREQUEST_STATUS_AWAITING_APPROVAL);
$result = external::approve_data_request($datarequest->get('id')); $result = external::approve_data_request($datarequest->get('id'));
$return = (object) external_api::clean_returnvalue(external::approve_data_request_returns(), $result); $return = (object) \external_api::clean_returnvalue(external::approve_data_request_returns(), $result);
$this->assertTrue($return->result); $this->assertTrue($return->result);
$this->assertEmpty($return->warnings); $this->assertEmpty($return->warnings);
} }
@ -136,7 +139,7 @@ class tool_dataprivacy_external_testcase extends externallib_advanced_testcase {
$result = external::approve_data_request(1); $result = external::approve_data_request(1);
$return = (object) external_api::clean_returnvalue(external::approve_data_request_returns(), $result); $return = (object) \external_api::clean_returnvalue(external::approve_data_request_returns(), $result);
$this->assertFalse($return->result); $this->assertFalse($return->result);
$this->assertCount(1, $return->warnings); $this->assertCount(1, $return->warnings);
$warning = reset($return->warnings); $warning = reset($return->warnings);
@ -149,7 +152,7 @@ class tool_dataprivacy_external_testcase extends externallib_advanced_testcase {
public function test_cancel_data_request_other_user() { public function test_cancel_data_request_other_user() {
$this->resetAfterTest(); $this->resetAfterTest();
$generator = new testing_data_generator(); $generator = new \testing_data_generator();
$requester = $generator->create_user(); $requester = $generator->create_user();
$otheruser = $generator->create_user(); $otheruser = $generator->create_user();
$comment = 'sample comment'; $comment = 'sample comment';
@ -162,7 +165,7 @@ class tool_dataprivacy_external_testcase extends externallib_advanced_testcase {
$this->setUser($otheruser); $this->setUser($otheruser);
$result = external::cancel_data_request($datarequest->get('id')); $result = external::cancel_data_request($datarequest->get('id'));
$return = (object) external_api::clean_returnvalue(external::approve_data_request_returns(), $result); $return = (object) \external_api::clean_returnvalue(external::approve_data_request_returns(), $result);
$this->assertFalse($return->result); $this->assertFalse($return->result);
$this->assertCount(1, $return->warnings); $this->assertCount(1, $return->warnings);
$warning = reset($return->warnings); $warning = reset($return->warnings);
@ -175,7 +178,7 @@ class tool_dataprivacy_external_testcase extends externallib_advanced_testcase {
public function test_cancel_data_request_other_user_as_requester() { public function test_cancel_data_request_other_user_as_requester() {
$this->resetAfterTest(); $this->resetAfterTest();
$generator = new testing_data_generator(); $generator = new \testing_data_generator();
$requester = $generator->create_user(); $requester = $generator->create_user();
$otheruser = $generator->create_user(); $otheruser = $generator->create_user();
$comment = 'sample comment'; $comment = 'sample comment';
@ -191,7 +194,7 @@ class tool_dataprivacy_external_testcase extends externallib_advanced_testcase {
$datarequest = api::create_data_request($otheruser->id, api::DATAREQUEST_TYPE_EXPORT, $comment); $datarequest = api::create_data_request($otheruser->id, api::DATAREQUEST_TYPE_EXPORT, $comment);
$result = external::cancel_data_request($datarequest->get('id')); $result = external::cancel_data_request($datarequest->get('id'));
$return = (object) external_api::clean_returnvalue(external::approve_data_request_returns(), $result); $return = (object) \external_api::clean_returnvalue(external::approve_data_request_returns(), $result);
$this->assertTrue($return->result); $this->assertTrue($return->result);
$this->assertEmpty($return->warnings); $this->assertEmpty($return->warnings);
} }
@ -202,7 +205,7 @@ class tool_dataprivacy_external_testcase extends externallib_advanced_testcase {
public function test_cancel_data_request_requester_lost_permissions() { public function test_cancel_data_request_requester_lost_permissions() {
$this->resetAfterTest(); $this->resetAfterTest();
$generator = new testing_data_generator(); $generator = new \testing_data_generator();
$requester = $generator->create_user(); $requester = $generator->create_user();
$otheruser = $generator->create_user(); $otheruser = $generator->create_user();
$comment = 'sample comment'; $comment = 'sample comment';
@ -220,7 +223,7 @@ class tool_dataprivacy_external_testcase extends externallib_advanced_testcase {
role_unassign($parentrole, $requester->id, \context_user::instance($otheruser->id)->id); role_unassign($parentrole, $requester->id, \context_user::instance($otheruser->id)->id);
// This user can no longer make the request. // This user can no longer make the request.
$this->expectException(required_capability_exception::class); $this->expectException(\required_capability_exception::class);
$result = external::cancel_data_request($datarequest->get('id')); $result = external::cancel_data_request($datarequest->get('id'));
} }
@ -231,7 +234,7 @@ class tool_dataprivacy_external_testcase extends externallib_advanced_testcase {
public function test_cancel_data_request_other_user_as_child() { public function test_cancel_data_request_other_user_as_child() {
$this->resetAfterTest(); $this->resetAfterTest();
$generator = new testing_data_generator(); $generator = new \testing_data_generator();
$requester = $generator->create_user(); $requester = $generator->create_user();
$otheruser = $generator->create_user(); $otheruser = $generator->create_user();
$comment = 'sample comment'; $comment = 'sample comment';
@ -247,7 +250,7 @@ class tool_dataprivacy_external_testcase extends externallib_advanced_testcase {
$datarequest = api::create_data_request($otheruser->id, api::DATAREQUEST_TYPE_EXPORT, $comment); $datarequest = api::create_data_request($otheruser->id, api::DATAREQUEST_TYPE_EXPORT, $comment);
$result = external::cancel_data_request($datarequest->get('id')); $result = external::cancel_data_request($datarequest->get('id'));
$return = (object) external_api::clean_returnvalue(external::approve_data_request_returns(), $result); $return = (object) \external_api::clean_returnvalue(external::approve_data_request_returns(), $result);
$this->assertTrue($return->result); $this->assertTrue($return->result);
$this->assertEmpty($return->warnings); $this->assertEmpty($return->warnings);
} }
@ -258,7 +261,7 @@ class tool_dataprivacy_external_testcase extends externallib_advanced_testcase {
public function test_cancel_data_request() { public function test_cancel_data_request() {
$this->resetAfterTest(); $this->resetAfterTest();
$generator = new testing_data_generator(); $generator = new \testing_data_generator();
$requester = $generator->create_user(); $requester = $generator->create_user();
$comment = 'sample comment'; $comment = 'sample comment';
@ -270,7 +273,7 @@ class tool_dataprivacy_external_testcase extends externallib_advanced_testcase {
$this->setUser($requester); $this->setUser($requester);
$result = external::cancel_data_request($datarequest->get('id')); $result = external::cancel_data_request($datarequest->get('id'));
$return = (object) external_api::clean_returnvalue(external::approve_data_request_returns(), $result); $return = (object) \external_api::clean_returnvalue(external::approve_data_request_returns(), $result);
$this->assertTrue($return->result); $this->assertTrue($return->result);
$this->assertEmpty($return->warnings); $this->assertEmpty($return->warnings);
} }
@ -281,13 +284,13 @@ class tool_dataprivacy_external_testcase extends externallib_advanced_testcase {
public function test_contact_dpo() { public function test_contact_dpo() {
$this->resetAfterTest(); $this->resetAfterTest();
$generator = new testing_data_generator(); $generator = new \testing_data_generator();
$user = $generator->create_user(); $user = $generator->create_user();
$this->setUser($user); $this->setUser($user);
$message = 'Hello world!'; $message = 'Hello world!';
$result = external::contact_dpo($message); $result = external::contact_dpo($message);
$return = (object) external_api::clean_returnvalue(external::contact_dpo_returns(), $result); $return = (object) \external_api::clean_returnvalue(external::contact_dpo_returns(), $result);
$this->assertTrue($return->result); $this->assertTrue($return->result);
$this->assertEmpty($return->warnings); $this->assertEmpty($return->warnings);
} }
@ -298,7 +301,7 @@ class tool_dataprivacy_external_testcase extends externallib_advanced_testcase {
public function test_contact_dpo_with_nasty_input() { public function test_contact_dpo_with_nasty_input() {
$this->resetAfterTest(); $this->resetAfterTest();
$generator = new testing_data_generator(); $generator = new \testing_data_generator();
$user = $generator->create_user(); $user = $generator->create_user();
$this->setUser($user); $this->setUser($user);
@ -312,7 +315,7 @@ class tool_dataprivacy_external_testcase extends externallib_advanced_testcase {
public function test_deny_data_request_not_logged_in() { public function test_deny_data_request_not_logged_in() {
$this->resetAfterTest(); $this->resetAfterTest();
$generator = new testing_data_generator(); $generator = new \testing_data_generator();
$requester = $generator->create_user(); $requester = $generator->create_user();
$comment = 'sample comment'; $comment = 'sample comment';
@ -322,7 +325,7 @@ class tool_dataprivacy_external_testcase extends externallib_advanced_testcase {
// Log out. // Log out.
$this->setUser(); $this->setUser();
$this->expectException(require_login_exception::class); $this->expectException(\require_login_exception::class);
external::deny_data_request($datarequest->get('id')); external::deny_data_request($datarequest->get('id'));
} }
@ -332,7 +335,7 @@ class tool_dataprivacy_external_testcase extends externallib_advanced_testcase {
public function test_deny_data_request_not_dpo() { public function test_deny_data_request_not_dpo() {
$this->resetAfterTest(); $this->resetAfterTest();
$generator = new testing_data_generator(); $generator = new \testing_data_generator();
$requester = $generator->create_user(); $requester = $generator->create_user();
$comment = 'sample comment'; $comment = 'sample comment';
@ -341,7 +344,7 @@ class tool_dataprivacy_external_testcase extends externallib_advanced_testcase {
// Login as the requester. // Login as the requester.
$this->setUser($requester); $this->setUser($requester);
$this->expectException(required_capability_exception::class); $this->expectException(\required_capability_exception::class);
external::deny_data_request($datarequest->get('id')); external::deny_data_request($datarequest->get('id'));
} }
@ -351,7 +354,7 @@ class tool_dataprivacy_external_testcase extends externallib_advanced_testcase {
public function test_deny_data_request_not_waiting_for_approval() { public function test_deny_data_request_not_waiting_for_approval() {
$this->resetAfterTest(); $this->resetAfterTest();
$generator = new testing_data_generator(); $generator = new \testing_data_generator();
$requester = $generator->create_user(); $requester = $generator->create_user();
$comment = 'sample comment'; $comment = 'sample comment';
@ -361,7 +364,7 @@ class tool_dataprivacy_external_testcase extends externallib_advanced_testcase {
// Admin as DPO. (The default when no one's assigned as a DPO in the site). // Admin as DPO. (The default when no one's assigned as a DPO in the site).
$this->setAdminUser(); $this->setAdminUser();
$this->expectException(moodle_exception::class); $this->expectException(\moodle_exception::class);
external::deny_data_request($datarequest->get('id')); external::deny_data_request($datarequest->get('id'));
} }
@ -371,7 +374,7 @@ class tool_dataprivacy_external_testcase extends externallib_advanced_testcase {
public function test_deny_data_request() { public function test_deny_data_request() {
$this->resetAfterTest(); $this->resetAfterTest();
$generator = new testing_data_generator(); $generator = new \testing_data_generator();
$requester = $generator->create_user(); $requester = $generator->create_user();
$comment = 'sample comment'; $comment = 'sample comment';
@ -382,7 +385,7 @@ class tool_dataprivacy_external_testcase extends externallib_advanced_testcase {
$this->setAdminUser(); $this->setAdminUser();
api::update_request_status($datarequest->get('id'), api::DATAREQUEST_STATUS_AWAITING_APPROVAL); api::update_request_status($datarequest->get('id'), api::DATAREQUEST_STATUS_AWAITING_APPROVAL);
$result = external::approve_data_request($datarequest->get('id')); $result = external::approve_data_request($datarequest->get('id'));
$return = (object) external_api::clean_returnvalue(external::deny_data_request_returns(), $result); $return = (object) \external_api::clean_returnvalue(external::deny_data_request_returns(), $result);
$this->assertTrue($return->result); $this->assertTrue($return->result);
$this->assertEmpty($return->warnings); $this->assertEmpty($return->warnings);
} }
@ -397,7 +400,7 @@ class tool_dataprivacy_external_testcase extends externallib_advanced_testcase {
$this->setAdminUser(); $this->setAdminUser();
$result = external::deny_data_request(1); $result = external::deny_data_request(1);
$return = (object) external_api::clean_returnvalue(external::deny_data_request_returns(), $result); $return = (object) \external_api::clean_returnvalue(external::deny_data_request_returns(), $result);
$this->assertFalse($return->result); $this->assertFalse($return->result);
$this->assertCount(1, $return->warnings); $this->assertCount(1, $return->warnings);
$warning = reset($return->warnings); $warning = reset($return->warnings);
@ -410,7 +413,7 @@ class tool_dataprivacy_external_testcase extends externallib_advanced_testcase {
public function test_get_data_request_not_logged_in() { public function test_get_data_request_not_logged_in() {
$this->resetAfterTest(); $this->resetAfterTest();
$generator = new testing_data_generator(); $generator = new \testing_data_generator();
$requester = $generator->create_user(); $requester = $generator->create_user();
$comment = 'sample comment'; $comment = 'sample comment';
@ -418,7 +421,7 @@ class tool_dataprivacy_external_testcase extends externallib_advanced_testcase {
$datarequest = api::create_data_request($requester->id, api::DATAREQUEST_TYPE_EXPORT, $comment); $datarequest = api::create_data_request($requester->id, api::DATAREQUEST_TYPE_EXPORT, $comment);
$this->setUser(); $this->setUser();
$this->expectException(require_login_exception::class); $this->expectException(\require_login_exception::class);
external::get_data_request($datarequest->get('id')); external::get_data_request($datarequest->get('id'));
} }
@ -428,7 +431,7 @@ class tool_dataprivacy_external_testcase extends externallib_advanced_testcase {
public function test_get_data_request_not_dpo() { public function test_get_data_request_not_dpo() {
$this->resetAfterTest(); $this->resetAfterTest();
$generator = new testing_data_generator(); $generator = new \testing_data_generator();
$requester = $generator->create_user(); $requester = $generator->create_user();
$otheruser = $generator->create_user(); $otheruser = $generator->create_user();
$comment = 'sample comment'; $comment = 'sample comment';
@ -438,7 +441,7 @@ class tool_dataprivacy_external_testcase extends externallib_advanced_testcase {
// Login as the otheruser. // Login as the otheruser.
$this->setUser($otheruser); $this->setUser($otheruser);
$this->expectException(required_capability_exception::class); $this->expectException(\required_capability_exception::class);
external::get_data_request($datarequest->get('id')); external::get_data_request($datarequest->get('id'));
} }
@ -448,7 +451,7 @@ class tool_dataprivacy_external_testcase extends externallib_advanced_testcase {
public function test_get_data_request() { public function test_get_data_request() {
$this->resetAfterTest(); $this->resetAfterTest();
$generator = new testing_data_generator(); $generator = new \testing_data_generator();
$requester = $generator->create_user(); $requester = $generator->create_user();
$comment = 'sample comment'; $comment = 'sample comment';
@ -459,7 +462,7 @@ class tool_dataprivacy_external_testcase extends externallib_advanced_testcase {
$this->setAdminUser(); $this->setAdminUser();
$result = external::get_data_request($datarequest->get('id')); $result = external::get_data_request($datarequest->get('id'));
$return = (object) external_api::clean_returnvalue(external::get_data_request_returns(), $result); $return = (object) \external_api::clean_returnvalue(external::get_data_request_returns(), $result);
$this->assertEquals(api::DATAREQUEST_TYPE_EXPORT, $return->result['type']); $this->assertEquals(api::DATAREQUEST_TYPE_EXPORT, $return->result['type']);
$this->assertEquals('sample comment', $return->result['comments']); $this->assertEquals('sample comment', $return->result['comments']);
$this->assertEquals($requester->id, $return->result['userid']); $this->assertEquals($requester->id, $return->result['userid']);
@ -475,7 +478,7 @@ class tool_dataprivacy_external_testcase extends externallib_advanced_testcase {
// Admin as DPO. (The default when no one's assigned as a DPO in the site). // Admin as DPO. (The default when no one's assigned as a DPO in the site).
$this->setAdminUser(); $this->setAdminUser();
$this->expectException(dml_missing_record_exception::class); $this->expectException(\dml_missing_record_exception::class);
external::get_data_request(1); external::get_data_request(1);
} }
@ -489,7 +492,7 @@ class tool_dataprivacy_external_testcase extends externallib_advanced_testcase {
$generator = $this->getDataGenerator(); $generator = $this->getDataGenerator();
$user = $generator->create_user(); $user = $generator->create_user();
$this->setUser($user); $this->setUser($user);
$this->expectException(required_capability_exception::class); $this->expectException(\required_capability_exception::class);
external::set_context_defaults(CONTEXT_COURSECAT, context_instance::INHERIT, context_instance::INHERIT, '', false); external::set_context_defaults(CONTEXT_COURSECAT, context_instance::INHERIT, context_instance::INHERIT, '', false);
} }
@ -514,7 +517,7 @@ class tool_dataprivacy_external_testcase extends externallib_advanced_testcase {
$course = $generator->create_course(['category' => $coursecat->id]); $course = $generator->create_course(['category' => $coursecat->id]);
$assign = $generator->create_module('assign', ['course' => $course->id]); $assign = $generator->create_module('assign', ['course' => $course->id]);
list($course, $assigncm) = get_course_and_cm_from_instance($assign->id, 'assign'); list($course, $assigncm) = get_course_and_cm_from_instance($assign->id, 'assign');
$assigncontext = context_module::instance($assigncm->id); $assigncontext = \context_module::instance($assigncm->id);
// Generate purpose and category. // Generate purpose and category.
$category1 = api::create_category((object)['name' => 'Test category 1']); $category1 = api::create_category((object)['name' => 'Test category 1']);
@ -539,7 +542,7 @@ class tool_dataprivacy_external_testcase extends externallib_advanced_testcase {
$result = external::set_context_defaults(CONTEXT_MODULE, $categoryid, $purposeid, $modulename, $override); $result = external::set_context_defaults(CONTEXT_MODULE, $categoryid, $purposeid, $modulename, $override);
// Extract the result. // Extract the result.
$return = external_api::clean_returnvalue(external::set_context_defaults_returns(), $result); $return = \external_api::clean_returnvalue(external::set_context_defaults_returns(), $result);
$this->assertTrue($return['result']); $this->assertTrue($return['result']);
// Check the assignment context instance. // Check the assignment context instance.
@ -568,7 +571,7 @@ class tool_dataprivacy_external_testcase extends externallib_advanced_testcase {
$user = $this->getDataGenerator()->create_user(); $user = $this->getDataGenerator()->create_user();
$this->setUser($user); $this->setUser($user);
$this->expectException(required_capability_exception::class); $this->expectException(\required_capability_exception::class);
external::get_category_options(true, true); external::get_category_options(true, true);
} }
@ -623,7 +626,7 @@ class tool_dataprivacy_external_testcase extends externallib_advanced_testcase {
$result = external::get_category_options($includeinherit, $includenotset); $result = external::get_category_options($includeinherit, $includenotset);
// Extract the options. // Extract the options.
$return = (object) external_api::clean_returnvalue(external::get_category_options_returns(), $result); $return = (object) \external_api::clean_returnvalue(external::get_category_options_returns(), $result);
$options = $return->options; $options = $return->options;
// Make sure everything checks out. // Make sure everything checks out.
@ -642,7 +645,7 @@ class tool_dataprivacy_external_testcase extends externallib_advanced_testcase {
$generator = $this->getDataGenerator(); $generator = $this->getDataGenerator();
$user = $generator->create_user(); $user = $generator->create_user();
$this->setUser($user); $this->setUser($user);
$this->expectException(required_capability_exception::class); $this->expectException(\required_capability_exception::class);
external::get_category_options(true, true); external::get_category_options(true, true);
} }
@ -687,7 +690,7 @@ class tool_dataprivacy_external_testcase extends externallib_advanced_testcase {
$result = external::get_purpose_options($includeinherit, $includenotset); $result = external::get_purpose_options($includeinherit, $includenotset);
// Extract the options. // Extract the options.
$return = (object) external_api::clean_returnvalue(external::get_purpose_options_returns(), $result); $return = (object) \external_api::clean_returnvalue(external::get_purpose_options_returns(), $result);
$options = $return->options; $options = $return->options;
// Make sure everything checks out. // Make sure everything checks out.
@ -746,7 +749,7 @@ class tool_dataprivacy_external_testcase extends externallib_advanced_testcase {
$result = external::get_activity_options($nodefaults); $result = external::get_activity_options($nodefaults);
// Extract the options. // Extract the options.
$return = (object) external_api::clean_returnvalue(external::get_activity_options_returns(), $result); $return = (object) \external_api::clean_returnvalue(external::get_activity_options_returns(), $result);
$options = $return->options; $options = $return->options;
// Make sure the options list is not empty. // Make sure the options list is not empty.
@ -789,7 +792,7 @@ class tool_dataprivacy_external_testcase extends externallib_advanced_testcase {
api::update_request_status($requestid2, api::DATAREQUEST_STATUS_AWAITING_APPROVAL); api::update_request_status($requestid2, api::DATAREQUEST_STATUS_AWAITING_APPROVAL);
$result = external::bulk_approve_data_requests([$requestid1, $requestid2]); $result = external::bulk_approve_data_requests([$requestid1, $requestid2]);
$return = (object) external_api::clean_returnvalue(external::bulk_approve_data_requests_returns(), $result); $return = (object) \external_api::clean_returnvalue(external::bulk_approve_data_requests_returns(), $result);
$this->assertTrue($return->result); $this->assertTrue($return->result);
$this->assertEmpty($return->warnings); $this->assertEmpty($return->warnings);
} }
@ -804,7 +807,7 @@ class tool_dataprivacy_external_testcase extends externallib_advanced_testcase {
$result = external::bulk_approve_data_requests([42]); $result = external::bulk_approve_data_requests([42]);
$return = (object) external_api::clean_returnvalue(external::bulk_approve_data_requests_returns(), $result); $return = (object) \external_api::clean_returnvalue(external::bulk_approve_data_requests_returns(), $result);
$this->assertFalse($return->result); $this->assertFalse($return->result);
$this->assertCount(1, $return->warnings); $this->assertCount(1, $return->warnings);
$warning = reset($return->warnings); $warning = reset($return->warnings);
@ -837,7 +840,7 @@ class tool_dataprivacy_external_testcase extends externallib_advanced_testcase {
$uut = $this->getDataGenerator()->create_user(); $uut = $this->getDataGenerator()->create_user();
$this->setUser($uut); $this->setUser($uut);
$this->expectException(required_capability_exception::class); $this->expectException(\required_capability_exception::class);
$result = external::bulk_approve_data_requests([$requestid1, $requestid2]); $result = external::bulk_approve_data_requests([$requestid1, $requestid2]);
} }
@ -865,7 +868,7 @@ class tool_dataprivacy_external_testcase extends externallib_advanced_testcase {
// Deny the requests. // Deny the requests.
$this->setUser($requester1); $this->setUser($requester1);
$this->expectException(required_capability_exception::class); $this->expectException(\required_capability_exception::class);
$result = external::bulk_approve_data_requests([$requestid1]); $result = external::bulk_approve_data_requests([$requestid1]);
} }
@ -892,7 +895,7 @@ class tool_dataprivacy_external_testcase extends externallib_advanced_testcase {
api::update_request_status($requestid2, api::DATAREQUEST_STATUS_AWAITING_APPROVAL); api::update_request_status($requestid2, api::DATAREQUEST_STATUS_AWAITING_APPROVAL);
$result = external::bulk_deny_data_requests([$requestid1, $requestid2]); $result = external::bulk_deny_data_requests([$requestid1, $requestid2]);
$return = (object) external_api::clean_returnvalue(external::bulk_approve_data_requests_returns(), $result); $return = (object) \external_api::clean_returnvalue(external::bulk_approve_data_requests_returns(), $result);
$this->assertTrue($return->result); $this->assertTrue($return->result);
$this->assertEmpty($return->warnings); $this->assertEmpty($return->warnings);
} }
@ -905,7 +908,7 @@ class tool_dataprivacy_external_testcase extends externallib_advanced_testcase {
$this->setAdminUser(); $this->setAdminUser();
$result = external::bulk_deny_data_requests([42]); $result = external::bulk_deny_data_requests([42]);
$return = (object) external_api::clean_returnvalue(external::bulk_approve_data_requests_returns(), $result); $return = (object) \external_api::clean_returnvalue(external::bulk_approve_data_requests_returns(), $result);
$this->assertFalse($return->result); $this->assertFalse($return->result);
$this->assertCount(1, $return->warnings); $this->assertCount(1, $return->warnings);
@ -939,7 +942,7 @@ class tool_dataprivacy_external_testcase extends externallib_advanced_testcase {
$uut = $this->getDataGenerator()->create_user(); $uut = $this->getDataGenerator()->create_user();
$this->setUser($uut); $this->setUser($uut);
$this->expectException(required_capability_exception::class); $this->expectException(\required_capability_exception::class);
$result = external::bulk_deny_data_requests([$requestid1, $requestid2]); $result = external::bulk_deny_data_requests([$requestid1, $requestid2]);
} }
@ -967,7 +970,7 @@ class tool_dataprivacy_external_testcase extends externallib_advanced_testcase {
// Deny the requests. // Deny the requests.
$this->setUser($requester1); $this->setUser($requester1);
$this->expectException(required_capability_exception::class); $this->expectException(\required_capability_exception::class);
$result = external::bulk_deny_data_requests([$requestid1]); $result = external::bulk_deny_data_requests([$requestid1]);
} }
@ -983,7 +986,7 @@ class tool_dataprivacy_external_testcase extends externallib_advanced_testcase {
*/ */
public function test_get_users_using_using_non_identity() { public function test_get_users_using_using_non_identity() {
$this->resetAfterTest(); $this->resetAfterTest();
$context = context_system::instance(); $context = \context_system::instance();
$requester = $this->getDataGenerator()->create_user(); $requester = $this->getDataGenerator()->create_user();
$role = $this->getDataGenerator()->create_role(); $role = $this->getDataGenerator()->create_role();
role_assign($role, $requester->id, $context); role_assign($role, $requester->id, $context);
@ -1023,7 +1026,7 @@ class tool_dataprivacy_external_testcase extends externallib_advanced_testcase {
$CFG->showuseridentity = 'institution'; $CFG->showuseridentity = 'institution';
// Create requester user and assign correct capability. // Create requester user and assign correct capability.
$context = context_system::instance(); $context = \context_system::instance();
$requester = $this->getDataGenerator()->create_user(); $requester = $this->getDataGenerator()->create_user();
$role = $this->getDataGenerator()->create_role(); $role = $this->getDataGenerator()->create_role();
role_assign($role, $requester->id, $context); role_assign($role, $requester->id, $context);
@ -1051,7 +1054,7 @@ class tool_dataprivacy_external_testcase extends externallib_advanced_testcase {
public function test_get_users_using_field_not_in_identity() { public function test_get_users_using_field_not_in_identity() {
$this->resetAfterTest(); $this->resetAfterTest();
$context = context_system::instance(); $context = \context_system::instance();
$requester = $this->getDataGenerator()->create_user(); $requester = $this->getDataGenerator()->create_user();
$role = $this->getDataGenerator()->create_role(); $role = $this->getDataGenerator()->create_role();
role_assign($role, $requester->id, $context); role_assign($role, $requester->id, $context);
@ -1081,7 +1084,7 @@ class tool_dataprivacy_external_testcase extends externallib_advanced_testcase {
global $CFG; global $CFG;
$this->resetAfterTest(); $this->resetAfterTest();
$CFG->showuseridentity = 'institution'; $CFG->showuseridentity = 'institution';
$context = context_system::instance(); $context = \context_system::instance();
$requester = $this->getDataGenerator()->create_user(); $requester = $this->getDataGenerator()->create_user();
$role = $this->getDataGenerator()->create_role(); $role = $this->getDataGenerator()->create_role();
role_assign($role, $requester->id, $context); role_assign($role, $requester->id, $context);

View file

@ -22,7 +22,7 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later. * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later.
*/ */
defined('MOODLE_INTERNAL') || die(); namespace tool_langimport\event;
/** /**
* Test class for langimport events. * Test class for langimport events.
@ -31,7 +31,7 @@ defined('MOODLE_INTERNAL') || die();
* @copyright 2014 Dan Poltawski * @copyright 2014 Dan Poltawski
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later. * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later.
*/ */
class tool_langimport_events_testcase extends advanced_testcase { class events_test extends \advanced_testcase {
/** /**
* Setup testcase. * Setup testcase.
@ -53,7 +53,7 @@ class tool_langimport_events_testcase extends advanced_testcase {
$event = reset($events); $event = reset($events);
$this->assertInstanceOf('\tool_langimport\event\langpack_updated', $event); $this->assertInstanceOf('\tool_langimport\event\langpack_updated', $event);
$this->assertEquals(context_system::instance(), $event->get_context()); $this->assertEquals(\context_system::instance(), $event->get_context());
} }
public function test_langpack_updated_validation() { public function test_langpack_updated_validation() {
@ -73,7 +73,7 @@ class tool_langimport_events_testcase extends advanced_testcase {
$event = reset($events); $event = reset($events);
$this->assertInstanceOf('\tool_langimport\event\langpack_imported', $event); $this->assertInstanceOf('\tool_langimport\event\langpack_imported', $event);
$this->assertEquals(context_system::instance(), $event->get_context()); $this->assertEquals(\context_system::instance(), $event->get_context());
} }
public function test_langpack_installed_validation() { public function test_langpack_installed_validation() {
@ -93,7 +93,7 @@ class tool_langimport_events_testcase extends advanced_testcase {
$event = reset($events); $event = reset($events);
$this->assertInstanceOf('\tool_langimport\event\langpack_removed', $event); $this->assertInstanceOf('\tool_langimport\event\langpack_removed', $event);
$this->assertEquals(context_system::instance(), $event->get_context()); $this->assertEquals(\context_system::instance(), $event->get_context());
} }
public function test_langpack_removed_validation() { public function test_langpack_removed_validation() {

View file

@ -23,12 +23,12 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
defined('MOODLE_INTERNAL') || die(); namespace tool_monitor\event;
/** /**
* Tests that the tool_monitor events are valid and triggered correctly. * Tests that the tool_monitor events are valid and triggered correctly.
*/ */
class tool_monitor_events_testcase extends advanced_testcase { class events_test extends \advanced_testcase {
/** /**
* Tests set up. * Tests set up.
@ -47,7 +47,7 @@ class tool_monitor_events_testcase extends advanced_testcase {
$user = $this->getDataGenerator()->create_user(); $user = $this->getDataGenerator()->create_user();
// Create the variables for the rule we want to create. // Create the variables for the rule we want to create.
$ruledata = new stdClass(); $ruledata = new \stdClass();
$ruledata->userid = $user->id; $ruledata->userid = $user->id;
$ruledata->courseid = $course->id; $ruledata->courseid = $course->id;
$ruledata->plugin = 'mod_assign'; $ruledata->plugin = 'mod_assign';
@ -68,7 +68,7 @@ class tool_monitor_events_testcase extends advanced_testcase {
// Confirm that the event contains the expected values. // Confirm that the event contains the expected values.
$this->assertInstanceOf('\tool_monitor\event\rule_created', $event); $this->assertInstanceOf('\tool_monitor\event\rule_created', $event);
$this->assertEquals(context_course::instance($course->id), $event->get_context()); $this->assertEquals(\context_course::instance($course->id), $event->get_context());
$this->assertEquals($rule->id, $event->objectid); $this->assertEquals($rule->id, $event->objectid);
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
@ -84,7 +84,7 @@ class tool_monitor_events_testcase extends advanced_testcase {
// Confirm that the event uses the system context. // Confirm that the event uses the system context.
$this->assertInstanceOf('\tool_monitor\event\rule_created', $event); $this->assertInstanceOf('\tool_monitor\event\rule_created', $event);
$this->assertEquals(context_system::instance(), $event->get_context()); $this->assertEquals(\context_system::instance(), $event->get_context());
} }
/** /**
@ -96,13 +96,13 @@ class tool_monitor_events_testcase extends advanced_testcase {
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
// Create the rule we are going to update. // Create the rule we are going to update.
$createrule = new stdClass(); $createrule = new \stdClass();
$createrule->courseid = $course->id; $createrule->courseid = $course->id;
$rule = $monitorgenerator->create_rule($createrule); $rule = $monitorgenerator->create_rule($createrule);
// Trigger and capture the event. // Trigger and capture the event.
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();
$updaterule = new stdClass(); $updaterule = new \stdClass();
$updaterule->id = $rule->id; $updaterule->id = $rule->id;
\tool_monitor\rule_manager::update_rule($updaterule); \tool_monitor\rule_manager::update_rule($updaterule);
$events = $sink->get_events(); $events = $sink->get_events();
@ -111,7 +111,7 @@ class tool_monitor_events_testcase extends advanced_testcase {
// Confirm that the event contains the expected values. // Confirm that the event contains the expected values.
$this->assertInstanceOf('\tool_monitor\event\rule_updated', $event); $this->assertInstanceOf('\tool_monitor\event\rule_updated', $event);
$this->assertEquals(context_course::instance($course->id), $event->get_context()); $this->assertEquals(\context_course::instance($course->id), $event->get_context());
$this->assertEquals($rule->id, $event->objectid); $this->assertEquals($rule->id, $event->objectid);
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
@ -121,7 +121,7 @@ class tool_monitor_events_testcase extends advanced_testcase {
// Trigger and capture the event. // Trigger and capture the event.
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();
$updaterule = new stdClass(); $updaterule = new \stdClass();
$updaterule->id = $rule->id; $updaterule->id = $rule->id;
\tool_monitor\rule_manager::update_rule($updaterule); \tool_monitor\rule_manager::update_rule($updaterule);
$events = $sink->get_events(); $events = $sink->get_events();
@ -130,7 +130,7 @@ class tool_monitor_events_testcase extends advanced_testcase {
// Confirm that the event uses the system context. // Confirm that the event uses the system context.
$this->assertInstanceOf('\tool_monitor\event\rule_updated', $event); $this->assertInstanceOf('\tool_monitor\event\rule_updated', $event);
$this->assertEquals(context_system::instance(), $event->get_context()); $this->assertEquals(\context_system::instance(), $event->get_context());
} }
/** /**
@ -142,7 +142,7 @@ class tool_monitor_events_testcase extends advanced_testcase {
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
// Create the rule we are going to delete. // Create the rule we are going to delete.
$createrule = new stdClass(); $createrule = new \stdClass();
$createrule->courseid = $course->id; $createrule->courseid = $course->id;
$rule = $monitorgenerator->create_rule($createrule); $rule = $monitorgenerator->create_rule($createrule);
@ -155,12 +155,12 @@ class tool_monitor_events_testcase extends advanced_testcase {
// Confirm that the event contains the expected values. // Confirm that the event contains the expected values.
$this->assertInstanceOf('\tool_monitor\event\rule_deleted', $event); $this->assertInstanceOf('\tool_monitor\event\rule_deleted', $event);
$this->assertEquals(context_course::instance($course->id), $event->get_context()); $this->assertEquals(\context_course::instance($course->id), $event->get_context());
$this->assertEquals($rule->id, $event->objectid); $this->assertEquals($rule->id, $event->objectid);
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
// Now let's delete a system rule (courseid = 0). // Now let's delete a system rule (courseid = 0).
$createrule = new stdClass(); $createrule = new \stdClass();
$createrule->courseid = 0; $createrule->courseid = 0;
$rule = $monitorgenerator->create_rule($createrule); $rule = $monitorgenerator->create_rule($createrule);
@ -173,7 +173,7 @@ class tool_monitor_events_testcase extends advanced_testcase {
// Confirm that the event uses the system context. // Confirm that the event uses the system context.
$this->assertInstanceOf('\tool_monitor\event\rule_deleted', $event); $this->assertInstanceOf('\tool_monitor\event\rule_deleted', $event);
$this->assertEquals(context_system::instance(), $event->get_context()); $this->assertEquals(\context_system::instance(), $event->get_context());
} }
/** /**
@ -197,7 +197,7 @@ class tool_monitor_events_testcase extends advanced_testcase {
// Confirm that the event contains the expected values. // Confirm that the event contains the expected values.
$this->assertInstanceOf('\tool_monitor\event\subscription_created', $event); $this->assertInstanceOf('\tool_monitor\event\subscription_created', $event);
$this->assertEquals(context_course::instance($course->id), $event->get_context()); $this->assertEquals(\context_course::instance($course->id), $event->get_context());
$this->assertEquals($subscriptionid, $event->objectid); $this->assertEquals($subscriptionid, $event->objectid);
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
@ -210,7 +210,7 @@ class tool_monitor_events_testcase extends advanced_testcase {
// Confirm that the event uses the system context. // Confirm that the event uses the system context.
$this->assertInstanceOf('\tool_monitor\event\subscription_created', $event); $this->assertInstanceOf('\tool_monitor\event\subscription_created', $event);
$this->assertEquals(context_system::instance(), $event->get_context()); $this->assertEquals(\context_system::instance(), $event->get_context());
} }
/** /**
@ -225,7 +225,7 @@ class tool_monitor_events_testcase extends advanced_testcase {
// Create a rule to subscribe to. // Create a rule to subscribe to.
$rule = $monitorgenerator->create_rule(); $rule = $monitorgenerator->create_rule();
$sub = new stdClass(); $sub = new \stdClass();
$sub->courseid = $course->id; $sub->courseid = $course->id;
$sub->userid = $user->id; $sub->userid = $user->id;
$sub->ruleid = $rule->id; $sub->ruleid = $rule->id;
@ -242,12 +242,12 @@ class tool_monitor_events_testcase extends advanced_testcase {
// Confirm that the event contains the expected values. // Confirm that the event contains the expected values.
$this->assertInstanceOf('\tool_monitor\event\subscription_deleted', $event); $this->assertInstanceOf('\tool_monitor\event\subscription_deleted', $event);
$this->assertEquals(context_course::instance($course->id), $event->get_context()); $this->assertEquals(\context_course::instance($course->id), $event->get_context());
$this->assertEquals($subscription->id, $event->objectid); $this->assertEquals($subscription->id, $event->objectid);
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
// Now let's delete a system subscription. // Now let's delete a system subscription.
$sub = new stdClass(); $sub = new \stdClass();
$sub->courseid = 0; $sub->courseid = 0;
$sub->userid = $user->id; $sub->userid = $user->id;
$sub->ruleid = $rule->id; $sub->ruleid = $rule->id;
@ -264,7 +264,7 @@ class tool_monitor_events_testcase extends advanced_testcase {
// Confirm that the event uses the system context. // Confirm that the event uses the system context.
$this->assertInstanceOf('\tool_monitor\event\subscription_deleted', $event); $this->assertInstanceOf('\tool_monitor\event\subscription_deleted', $event);
$this->assertEquals(context_system::instance(), $event->get_context()); $this->assertEquals(\context_system::instance(), $event->get_context());
// Now, create a bunch of subscriptions for the rule we created. // Now, create a bunch of subscriptions for the rule we created.
$subids = array(); $subids = array();
@ -286,7 +286,7 @@ class tool_monitor_events_testcase extends advanced_testcase {
// Get all the events and ensure they are valid. // Get all the events and ensure they are valid.
foreach ($events as $event) { foreach ($events as $event) {
$this->assertInstanceOf('\tool_monitor\event\subscription_deleted', $event); $this->assertInstanceOf('\tool_monitor\event\subscription_deleted', $event);
$this->assertEquals(context_course::instance($course->id), $event->get_context()); $this->assertEquals(\context_course::instance($course->id), $event->get_context());
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
$this->assertArrayHasKey($event->objectid, $subids); $this->assertArrayHasKey($event->objectid, $subids);
unset($subids[$event->objectid]); unset($subids[$event->objectid]);
@ -309,7 +309,7 @@ class tool_monitor_events_testcase extends advanced_testcase {
$monitorgenerator = $this->getDataGenerator()->get_plugin_generator('tool_monitor'); $monitorgenerator = $this->getDataGenerator()->get_plugin_generator('tool_monitor');
// Create a rule we want to subscribe to. // Create a rule we want to subscribe to.
$rule = new stdClass(); $rule = new \stdClass();
$rule->userid = $user->id; $rule->userid = $user->id;
$rule->courseid = $course->id; $rule->courseid = $course->id;
$rule->plugin = 'mod_book'; $rule->plugin = 'mod_book';
@ -319,14 +319,14 @@ class tool_monitor_events_testcase extends advanced_testcase {
$rule = $monitorgenerator->create_rule($rule); $rule = $monitorgenerator->create_rule($rule);
// Create the subscription. // Create the subscription.
$sub = new stdClass(); $sub = new \stdClass();
$sub->courseid = $course->id; $sub->courseid = $course->id;
$sub->userid = $user->id; $sub->userid = $user->id;
$sub->ruleid = $rule->id; $sub->ruleid = $rule->id;
$monitorgenerator->create_subscription($sub); $monitorgenerator->create_subscription($sub);
// Now create the \mod_book\event\chapter_viewed event we are listening for. // Now create the \mod_book\event\chapter_viewed event we are listening for.
$context = context_module::instance($book->cmid); $context = \context_module::instance($book->cmid);
$event = \mod_book\event\chapter_viewed::create_from_chapter($book, $context, $chapter); $event = \mod_book\event\chapter_viewed::create_from_chapter($book, $context, $chapter);
// Trigger and capture the event. // Trigger and capture the event.
@ -338,7 +338,7 @@ class tool_monitor_events_testcase extends advanced_testcase {
// Confirm that the event contains the expected values. // Confirm that the event contains the expected values.
$this->assertInstanceOf('\tool_monitor\event\subscription_criteria_met', $event); $this->assertInstanceOf('\tool_monitor\event\subscription_criteria_met', $event);
$this->assertEquals(context_course::instance($course->id), $event->get_context()); $this->assertEquals(\context_course::instance($course->id), $event->get_context());
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
} }
} }

View file

@ -23,7 +23,7 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
defined('MOODLE_INTERNAL') || die(); namespace tool_recyclebin\event;
/** /**
* Events tests class. * Events tests class.
@ -33,7 +33,7 @@ defined('MOODLE_INTERNAL') || die();
* @copyright 2016 Mark Nelson <markn@moodle.com> * @copyright 2016 Mark Nelson <markn@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
class tool_recyclebin_events_testcase extends advanced_testcase { class events_test extends \advanced_testcase {
/** /**
* Test set up. * Test set up.
@ -70,7 +70,7 @@ class tool_recyclebin_events_testcase extends advanced_testcase {
// Check that the event contains the expected values. // Check that the event contains the expected values.
$this->assertInstanceOf('\tooL_recyclebin\event\category_bin_item_created', $event); $this->assertInstanceOf('\tooL_recyclebin\event\category_bin_item_created', $event);
$this->assertEquals(context_coursecat::instance($course->category), $event->get_context()); $this->assertEquals(\context_coursecat::instance($course->category), $event->get_context());
$this->assertEquals($item->id, $event->objectid); $this->assertEquals($item->id, $event->objectid);
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
} }
@ -99,7 +99,7 @@ class tool_recyclebin_events_testcase extends advanced_testcase {
// Check that the event contains the expected values. // Check that the event contains the expected values.
$this->assertInstanceOf('\tooL_recyclebin\event\category_bin_item_deleted', $event); $this->assertInstanceOf('\tooL_recyclebin\event\category_bin_item_deleted', $event);
$this->assertEquals(context_coursecat::instance($course->category), $event->get_context()); $this->assertEquals(\context_coursecat::instance($course->category), $event->get_context());
$this->assertEquals($item->id, $event->objectid); $this->assertEquals($item->id, $event->objectid);
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
} }
@ -127,7 +127,7 @@ class tool_recyclebin_events_testcase extends advanced_testcase {
// Check that the event contains the expected values. // Check that the event contains the expected values.
$this->assertInstanceOf('\tooL_recyclebin\event\category_bin_item_restored', $event); $this->assertInstanceOf('\tooL_recyclebin\event\category_bin_item_restored', $event);
$this->assertEquals(context_coursecat::instance($course->category), $event->get_context()); $this->assertEquals(\context_coursecat::instance($course->category), $event->get_context());
$this->assertEquals($item->id, $event->objectid); $this->assertEquals($item->id, $event->objectid);
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
} }
@ -156,7 +156,7 @@ class tool_recyclebin_events_testcase extends advanced_testcase {
// Check that the event contains the expected values. // Check that the event contains the expected values.
$this->assertInstanceOf('\tooL_recyclebin\event\course_bin_item_created', $event); $this->assertInstanceOf('\tooL_recyclebin\event\course_bin_item_created', $event);
$this->assertEquals(context_course::instance($course->id), $event->get_context()); $this->assertEquals(\context_course::instance($course->id), $event->get_context());
$this->assertEquals($item->id, $event->objectid); $this->assertEquals($item->id, $event->objectid);
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
} }
@ -189,7 +189,7 @@ class tool_recyclebin_events_testcase extends advanced_testcase {
// Check that the event contains the expected values. // Check that the event contains the expected values.
$this->assertInstanceOf('\tooL_recyclebin\event\course_bin_item_deleted', $event); $this->assertInstanceOf('\tooL_recyclebin\event\course_bin_item_deleted', $event);
$this->assertEquals(context_course::instance($course->id), $event->get_context()); $this->assertEquals(\context_course::instance($course->id), $event->get_context());
$this->assertEquals($item->id, $event->objectid); $this->assertEquals($item->id, $event->objectid);
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
} }
@ -221,7 +221,7 @@ class tool_recyclebin_events_testcase extends advanced_testcase {
foreach ($events as $event) { foreach ($events as $event) {
if ($event instanceof \tooL_recyclebin\event\course_bin_item_restored) { if ($event instanceof \tooL_recyclebin\event\course_bin_item_restored) {
// Check that the event contains the expected values. // Check that the event contains the expected values.
$this->assertEquals(context_course::instance($course->id), $event->get_context()); $this->assertEquals(\context_course::instance($course->id), $event->get_context());
$this->assertEquals($item->id, $event->objectid); $this->assertEquals($item->id, $event->objectid);
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
$eventscount++; $eventscount++;

View file

@ -24,6 +24,11 @@
* @since Moodle 3.2 * @since Moodle 3.2
*/ */
namespace auth_email\external;
use auth_email_external;
use externallib_advanced_testcase;
defined('MOODLE_INTERNAL') || die(); defined('MOODLE_INTERNAL') || die();
global $CFG; global $CFG;
@ -38,7 +43,7 @@ require_once($CFG->dirroot . '/webservice/tests/helpers.php');
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since Moodle 3.2 * @since Moodle 3.2
*/ */
class auth_email_external_testcase extends externallib_advanced_testcase { class external_test extends externallib_advanced_testcase {
/** /**
* Set up for every test * Set up for every test
@ -65,7 +70,7 @@ class auth_email_external_testcase extends externallib_advanced_testcase {
$CFG->sitepolicy = 'https://moodle.org'; $CFG->sitepolicy = 'https://moodle.org';
$result = auth_email_external::get_signup_settings(); $result = auth_email_external::get_signup_settings();
$result = external_api::clean_returnvalue(auth_email_external::get_signup_settings_returns(), $result); $result = \external_api::clean_returnvalue(auth_email_external::get_signup_settings_returns(), $result);
// Check expected data. // Check expected data.
$this->assertEquals(array('firstname', 'lastname'), $result['namefields']); $this->assertEquals(array('firstname', 'lastname'), $result['namefields']);
@ -114,10 +119,10 @@ class auth_email_external_testcase extends externallib_advanced_testcase {
'datatype' => 'textarea', 'signup' => 1, 'visible' => 1, 'required' => 1, 'sortorder' => 2)); 'datatype' => 'textarea', 'signup' => 1, 'visible' => 1, 'required' => 1, 'sortorder' => 2));
$result = auth_email_external::get_signup_settings(); $result = auth_email_external::get_signup_settings();
$result = external_api::clean_returnvalue(auth_email_external::get_signup_settings_returns(), $result); $result = \external_api::clean_returnvalue(auth_email_external::get_signup_settings_returns(), $result);
// Format the original data. // Format the original data.
$sitecontext = context_system::instance(); $sitecontext = \context_system::instance();
$categoryname = external_format_string($categoryname, $sitecontext->id); $categoryname = external_format_string($categoryname, $sitecontext->id);
$fieldname = external_format_string($fieldname, $sitecontext->id); $fieldname = external_format_string($fieldname, $sitecontext->id);
@ -168,7 +173,7 @@ class auth_email_external_testcase extends externallib_advanced_testcase {
// Create new user. // Create new user.
$result = auth_email_external::signup_user($username, $password, $firstname, $lastname, $email, $city, $country, $result = auth_email_external::signup_user($username, $password, $firstname, $lastname, $email, $city, $country,
'', '', $customprofilefields); '', '', $customprofilefields);
$result = external_api::clean_returnvalue(auth_email_external::signup_user_returns(), $result); $result = \external_api::clean_returnvalue(auth_email_external::signup_user_returns(), $result);
$this->assertTrue($result['success']); $this->assertTrue($result['success']);
$this->assertEmpty($result['warnings']); $this->assertEmpty($result['warnings']);
$user = $DB->get_record('user', array('username' => $username)); $user = $DB->get_record('user', array('username' => $username));
@ -189,7 +194,7 @@ class auth_email_external_testcase extends externallib_advanced_testcase {
$password = 'abc'; $password = 'abc';
$result = auth_email_external::signup_user($username, $password, $firstname, $lastname, $email, $city, $country, $result = auth_email_external::signup_user($username, $password, $firstname, $lastname, $email, $city, $country,
'', '', $customprofilefields); '', '', $customprofilefields);
$result = external_api::clean_returnvalue(auth_email_external::signup_user_returns(), $result); $result = \external_api::clean_returnvalue(auth_email_external::signup_user_returns(), $result);
$this->assertFalse($result['success']); $this->assertFalse($result['success']);
$this->assertCount(3, $result['warnings']); $this->assertCount(3, $result['warnings']);
$expectederrors = array('username', 'email', 'password'); $expectederrors = array('username', 'email', 'password');

View file

@ -24,6 +24,12 @@
* @since Moodle 3.2 * @since Moodle 3.2
*/ */
namespace core_auth\external;
use auth_email_external;
use core_auth_external;
use externallib_advanced_testcase;
defined('MOODLE_INTERNAL') || die(); defined('MOODLE_INTERNAL') || die();
global $CFG; global $CFG;
@ -38,7 +44,7 @@ require_once($CFG->dirroot . '/webservice/tests/helpers.php');
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since Moodle 3.2 * @since Moodle 3.2
*/ */
class core_auth_external_testcase extends externallib_advanced_testcase { class external_test extends externallib_advanced_testcase {
/** @var string Original error log */ /** @var string Original error log */
protected $oldlog; protected $oldlog;
@ -79,14 +85,14 @@ class core_auth_external_testcase extends externallib_advanced_testcase {
// Create new user. // Create new user.
$result = auth_email_external::signup_user($username, $password, $firstname, $lastname, $email); $result = auth_email_external::signup_user($username, $password, $firstname, $lastname, $email);
$result = external_api::clean_returnvalue(auth_email_external::signup_user_returns(), $result); $result = \external_api::clean_returnvalue(auth_email_external::signup_user_returns(), $result);
$this->assertTrue($result['success']); $this->assertTrue($result['success']);
$this->assertEmpty($result['warnings']); $this->assertEmpty($result['warnings']);
$secret = $DB->get_field('user', 'secret', array('username' => $username)); $secret = $DB->get_field('user', 'secret', array('username' => $username));
// Confirm the user. // Confirm the user.
$result = core_auth_external::confirm_user($username, $secret); $result = core_auth_external::confirm_user($username, $secret);
$result = external_api::clean_returnvalue(core_auth_external::confirm_user_returns(), $result); $result = \external_api::clean_returnvalue(core_auth_external::confirm_user_returns(), $result);
$this->assertTrue($result['success']); $this->assertTrue($result['success']);
$this->assertEmpty($result['warnings']); $this->assertEmpty($result['warnings']);
$confirmed = $DB->get_field('user', 'confirmed', array('username' => $username)); $confirmed = $DB->get_field('user', 'confirmed', array('username' => $username));
@ -94,13 +100,13 @@ class core_auth_external_testcase extends externallib_advanced_testcase {
// Try to confirm the user again. // Try to confirm the user again.
$result = core_auth_external::confirm_user($username, $secret); $result = core_auth_external::confirm_user($username, $secret);
$result = external_api::clean_returnvalue(core_auth_external::confirm_user_returns(), $result); $result = \external_api::clean_returnvalue(core_auth_external::confirm_user_returns(), $result);
$this->assertFalse($result['success']); $this->assertFalse($result['success']);
$this->assertCount(1, $result['warnings']); $this->assertCount(1, $result['warnings']);
$this->assertEquals('alreadyconfirmed', $result['warnings'][0]['warningcode']); $this->assertEquals('alreadyconfirmed', $result['warnings'][0]['warningcode']);
// Try to use an invalid secret. // Try to use an invalid secret.
$this->expectException('moodle_exception'); $this->expectException('\moodle_exception');
$this->expectExceptionMessage(get_string('invalidconfirmdata', 'error')); $this->expectExceptionMessage(get_string('invalidconfirmdata', 'error'));
$result = core_auth_external::confirm_user($username, 'zzZZzz'); $result = core_auth_external::confirm_user($username, 'zzZZzz');
} }
@ -113,7 +119,7 @@ class core_auth_external_testcase extends externallib_advanced_testcase {
$CFG->agedigitalconsentverification = 0; $CFG->agedigitalconsentverification = 0;
$result = core_auth_external::is_age_digital_consent_verification_enabled(); $result = core_auth_external::is_age_digital_consent_verification_enabled();
$result = external_api::clean_returnvalue( $result = \external_api::clean_returnvalue(
core_auth_external::is_age_digital_consent_verification_enabled_returns(), $result); core_auth_external::is_age_digital_consent_verification_enabled_returns(), $result);
$this->assertFalse($result['status']); $this->assertFalse($result['status']);
} }
@ -126,7 +132,7 @@ class core_auth_external_testcase extends externallib_advanced_testcase {
$CFG->agedigitalconsentverification = 1; $CFG->agedigitalconsentverification = 1;
$result = core_auth_external::is_age_digital_consent_verification_enabled(); $result = core_auth_external::is_age_digital_consent_verification_enabled();
$result = external_api::clean_returnvalue( $result = \external_api::clean_returnvalue(
core_auth_external::is_age_digital_consent_verification_enabled_returns(), $result); core_auth_external::is_age_digital_consent_verification_enabled_returns(), $result);
$this->assertTrue($result['status']); $this->assertTrue($result['status']);
} }
@ -145,12 +151,12 @@ class core_auth_external_testcase extends externallib_advanced_testcase {
// Create new user. // Create new user.
$result = auth_email_external::signup_user($username, $password, $firstname, $lastname, $email); $result = auth_email_external::signup_user($username, $password, $firstname, $lastname, $email);
$result = external_api::clean_returnvalue(auth_email_external::signup_user_returns(), $result); $result = \external_api::clean_returnvalue(auth_email_external::signup_user_returns(), $result);
$this->assertTrue($result['success']); $this->assertTrue($result['success']);
$this->assertEmpty($result['warnings']); $this->assertEmpty($result['warnings']);
$result = core_auth_external::resend_confirmation_email($username, $password); $result = core_auth_external::resend_confirmation_email($username, $password);
$result = external_api::clean_returnvalue(core_auth_external::resend_confirmation_email_returns(), $result); $result = \external_api::clean_returnvalue(core_auth_external::resend_confirmation_email_returns(), $result);
$this->assertTrue($result['status']); $this->assertTrue($result['status']);
$this->assertEmpty($result['warnings']); $this->assertEmpty($result['warnings']);
$confirmed = $DB->get_field('user', 'confirmed', array('username' => $username)); $confirmed = $DB->get_field('user', 'confirmed', array('username' => $username));
@ -170,12 +176,12 @@ class core_auth_external_testcase extends externallib_advanced_testcase {
// Create new user. // Create new user.
$result = auth_email_external::signup_user($username, $password, $firstname, $lastname, $email); $result = auth_email_external::signup_user($username, $password, $firstname, $lastname, $email);
$result = external_api::clean_returnvalue(auth_email_external::signup_user_returns(), $result); $result = \external_api::clean_returnvalue(auth_email_external::signup_user_returns(), $result);
$this->assertTrue($result['success']); $this->assertTrue($result['success']);
$this->assertEmpty($result['warnings']); $this->assertEmpty($result['warnings']);
$_SERVER['HTTP_USER_AGENT'] = 'no browser'; // Hack around missing user agent in CLI scripts. $_SERVER['HTTP_USER_AGENT'] = 'no browser'; // Hack around missing user agent in CLI scripts.
$this->expectException('moodle_exception'); $this->expectException('\moodle_exception');
$this->expectExceptionMessage('error/invalidlogin'); $this->expectExceptionMessage('error/invalidlogin');
$result = core_auth_external::resend_confirmation_email('abc', $password); $result = core_auth_external::resend_confirmation_email('abc', $password);
} }
@ -193,12 +199,12 @@ class core_auth_external_testcase extends externallib_advanced_testcase {
// Create new user. // Create new user.
$result = auth_email_external::signup_user($username, $password, $firstname, $lastname, $email); $result = auth_email_external::signup_user($username, $password, $firstname, $lastname, $email);
$result = external_api::clean_returnvalue(auth_email_external::signup_user_returns(), $result); $result = \external_api::clean_returnvalue(auth_email_external::signup_user_returns(), $result);
$this->assertTrue($result['success']); $this->assertTrue($result['success']);
$this->assertEmpty($result['warnings']); $this->assertEmpty($result['warnings']);
$_SERVER['HTTP_USER_AGENT'] = 'no browser'; // Hack around missing user agent in CLI scripts. $_SERVER['HTTP_USER_AGENT'] = 'no browser'; // Hack around missing user agent in CLI scripts.
$this->expectException('moodle_exception'); $this->expectException('\moodle_exception');
$this->expectExceptionMessage('error/invalidlogin'); $this->expectExceptionMessage('error/invalidlogin');
$result = core_auth_external::resend_confirmation_email($username, 'abc'); $result = core_auth_external::resend_confirmation_email($username, 'abc');
} }
@ -217,17 +223,17 @@ class core_auth_external_testcase extends externallib_advanced_testcase {
// Create new user. // Create new user.
$result = auth_email_external::signup_user($username, $password, $firstname, $lastname, $email); $result = auth_email_external::signup_user($username, $password, $firstname, $lastname, $email);
$result = external_api::clean_returnvalue(auth_email_external::signup_user_returns(), $result); $result = \external_api::clean_returnvalue(auth_email_external::signup_user_returns(), $result);
$this->assertTrue($result['success']); $this->assertTrue($result['success']);
$this->assertEmpty($result['warnings']); $this->assertEmpty($result['warnings']);
$secret = $DB->get_field('user', 'secret', array('username' => $username)); $secret = $DB->get_field('user', 'secret', array('username' => $username));
// Confirm the user. // Confirm the user.
$result = core_auth_external::confirm_user($username, $secret); $result = core_auth_external::confirm_user($username, $secret);
$result = external_api::clean_returnvalue(core_auth_external::confirm_user_returns(), $result); $result = \external_api::clean_returnvalue(core_auth_external::confirm_user_returns(), $result);
$this->assertTrue($result['success']); $this->assertTrue($result['success']);
$this->expectException('moodle_exception'); $this->expectException('\moodle_exception');
$this->expectExceptionMessage('error/alreadyconfirmed'); $this->expectExceptionMessage('error/alreadyconfirmed');
core_auth_external::resend_confirmation_email($username, $password); core_auth_external::resend_confirmation_email($username, $password);
} }

View file

@ -24,6 +24,11 @@
* @since Moodle 3.1 * @since Moodle 3.1
*/ */
namespace core_badges\external;
use core_badges_external;
use externallib_advanced_testcase;
defined('MOODLE_INTERNAL') || die(); defined('MOODLE_INTERNAL') || die();
global $CFG; global $CFG;
@ -40,7 +45,7 @@ require_once($CFG->libdir . '/badgeslib.php');
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since Moodle 3.1 * @since Moodle 3.1
*/ */
class core_badges_external_testcase extends externallib_advanced_testcase { class external_test extends externallib_advanced_testcase {
/** @var stdClass $course */ /** @var stdClass $course */
private $course; private $course;
@ -68,7 +73,7 @@ class core_badges_external_testcase extends externallib_advanced_testcase {
// Mock up a site badge. // Mock up a site badge.
$now = time(); $now = time();
$badge = new stdClass(); $badge = new \stdClass();
$badge->id = null; $badge->id = null;
$badge->name = "Test badge site"; $badge->name = "Test badge site";
$badge->description = "Testing badges site"; $badge->description = "Testing badges site";
@ -96,14 +101,14 @@ class core_badges_external_testcase extends externallib_advanced_testcase {
$badge->imagecaption = 'Caption'; $badge->imagecaption = 'Caption';
$badgeid = $DB->insert_record('badge', $badge, true); $badgeid = $DB->insert_record('badge', $badge, true);
$badge = new badge($badgeid); $badge = new \badge($badgeid);
$badge->issue($this->student->id, true); $badge->issue($this->student->id, true);
// Hack the database to adjust the time each badge was issued. // Hack the database to adjust the time each badge was issued.
$DB->set_field('badge_issued', 'dateissued', $now - 11, array('userid' => $this->student->id, 'badgeid' => $badgeid)); $DB->set_field('badge_issued', 'dateissued', $now - 11, array('userid' => $this->student->id, 'badgeid' => $badgeid));
// Add an endorsement for the badge. // Add an endorsement for the badge.
$endorsement = new stdClass(); $endorsement = new \stdClass();
$endorsement->badgeid = $badgeid; $endorsement->badgeid = $badgeid;
$endorsement->issuername = 'Issuer name'; $endorsement->issuername = 'Issuer name';
$endorsement->issuerurl = 'http://endorsement-issuer-url.domain.co.nz'; $endorsement->issuerurl = 'http://endorsement-issuer-url.domain.co.nz';
@ -114,7 +119,7 @@ class core_badges_external_testcase extends externallib_advanced_testcase {
$badge->save_endorsement($endorsement); $badge->save_endorsement($endorsement);
// Add 2 alignments. // Add 2 alignments.
$alignment = new stdClass(); $alignment = new \stdClass();
$alignment->badgeid = $badgeid; $alignment->badgeid = $badgeid;
$alignment->targetname = 'Alignment 1'; $alignment->targetname = 'Alignment 1';
$alignment->targeturl = 'http://a1-target-url.domain.co.nz'; $alignment->targeturl = 'http://a1-target-url.domain.co.nz';
@ -138,7 +143,7 @@ class core_badges_external_testcase extends externallib_advanced_testcase {
$badge->courseid = $this->course->id; $badge->courseid = $this->course->id;
$coursebadgeid = $DB->insert_record('badge', $badge, true); $coursebadgeid = $DB->insert_record('badge', $badge, true);
$badge = new badge($coursebadgeid); $badge = new \badge($coursebadgeid);
$badge->issue($this->student->id, true); $badge->issue($this->student->id, true);
// Hack the database to adjust the time each badge was issued. // Hack the database to adjust the time each badge was issued.
@ -161,12 +166,12 @@ class core_badges_external_testcase extends externallib_advanced_testcase {
$coursebadge = null; $coursebadge = null;
foreach ($badges as $badge) { foreach ($badges as $badge) {
$context = ($badge->type == BADGE_TYPE_SITE) ? context_system::instance() : context_course::instance($badge->courseid); $context = ($badge->type == BADGE_TYPE_SITE) ? \context_system::instance() : \context_course::instance($badge->courseid);
$badge->badgeurl = moodle_url::make_webservice_pluginfile_url($context->id, 'badges', 'badgeimage', $badge->id, '/', $badge->badgeurl = \moodle_url::make_webservice_pluginfile_url($context->id, 'badges', 'badgeimage', $badge->id, '/',
'f3')->out(false); 'f3')->out(false);
// Get the endorsement, alignments and related badges. // Get the endorsement, alignments and related badges.
$badgeinstance = new badge($badge->id); $badgeinstance = new \badge($badge->id);
$endorsement = $badgeinstance->get_endorsement(); $endorsement = $badgeinstance->get_endorsement();
$alignments = $badgeinstance->get_alignments(); $alignments = $badgeinstance->get_alignments();
$relatedbadges = $badgeinstance->get_related_badges(); $relatedbadges = $badgeinstance->get_related_badges();
@ -209,12 +214,12 @@ class core_badges_external_testcase extends externallib_advanced_testcase {
} }
$result = core_badges_external::get_user_badges(); $result = core_badges_external::get_user_badges();
$result = external_api::clean_returnvalue(core_badges_external::get_user_badges_returns(), $result); $result = \external_api::clean_returnvalue(core_badges_external::get_user_badges_returns(), $result);
$this->assertEquals($expectedbadges, $result['badges']); $this->assertEquals($expectedbadges, $result['badges']);
// Pagination and filtering. // Pagination and filtering.
$result = core_badges_external::get_user_badges(0, $this->course->id, 0, 1, '', true); $result = core_badges_external::get_user_badges(0, $this->course->id, 0, 1, '', true);
$result = external_api::clean_returnvalue(core_badges_external::get_user_badges_returns(), $result); $result = \external_api::clean_returnvalue(core_badges_external::get_user_badges_returns(), $result);
$this->assertCount(1, $result['badges']); $this->assertCount(1, $result['badges']);
$this->assertEquals($coursebadge, $result['badges'][0]); $this->assertEquals($coursebadge, $result['badges'][0]);
} }
@ -227,7 +232,7 @@ class core_badges_external_testcase extends externallib_advanced_testcase {
$this->setUser($this->teacher); $this->setUser($this->teacher);
$result = core_badges_external::get_user_badges($this->student->id); $result = core_badges_external::get_user_badges($this->student->id);
$result = external_api::clean_returnvalue(core_badges_external::get_user_badges_returns(), $result); $result = \external_api::clean_returnvalue(core_badges_external::get_user_badges_returns(), $result);
$this->assertCount(2, $result['badges']); $this->assertCount(2, $result['badges']);
@ -259,7 +264,7 @@ class core_badges_external_testcase extends externallib_advanced_testcase {
filter_set_global_state('multilang', TEXTFILTER_ON); filter_set_global_state('multilang', TEXTFILTER_ON);
filter_set_applies_to_strings('multilang', true); filter_set_applies_to_strings('multilang', true);
external_settings::get_instance()->set_filter(true); \external_settings::get_instance()->set_filter(true);
// Update issuer name of test badge. // Update issuer name of test badge.
$issuername = '<span class="multilang" lang="en">Issuer (en)</span><span class="multilang" lang="es">Issuer (es)</span>'; $issuername = '<span class="multilang" lang="en">Issuer (en)</span><span class="multilang" lang="es">Issuer (es)</span>';
@ -267,7 +272,7 @@ class core_badges_external_testcase extends externallib_advanced_testcase {
// Retrieve student badges. // Retrieve student badges.
$result = core_badges_external::get_user_badges($this->student->id); $result = core_badges_external::get_user_badges($this->student->id);
$result = external_api::clean_returnvalue(core_badges_external::get_user_badges_returns(), $result); $result = \external_api::clean_returnvalue(core_badges_external::get_user_badges_returns(), $result);
// Site badge will be last, because it has the earlier issued date. // Site badge will be last, because it has the earlier issued date.
$badge = end($result['badges']); $badge = end($result['badges']);

View file

@ -23,7 +23,7 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
defined('MOODLE_INTERNAL') || die(); namespace block_comments\event;
/** /**
* Events tests class. * Events tests class.
@ -33,7 +33,7 @@ defined('MOODLE_INTERNAL') || die();
* @copyright 2013 Rajesh Taneja <rajesh@moodle.com> * @copyright 2013 Rajesh Taneja <rajesh@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
class block_comments_events_testcase extends advanced_testcase { class events_test extends \advanced_testcase {
/** @var stdClass Keeps course object */ /** @var stdClass Keeps course object */
private $course; private $course;
@ -61,8 +61,8 @@ class block_comments_events_testcase extends advanced_testcase {
require_once($CFG->dirroot . '/comment/lib.php'); require_once($CFG->dirroot . '/comment/lib.php');
// Comment on course page. // Comment on course page.
$context = context_course::instance($this->course->id); $context = \context_course::instance($this->course->id);
$args = new stdClass; $args = new \stdClass;
$args->context = $context; $args->context = $context;
$args->course = $this->course; $args->course = $this->course;
$args->area = 'page_comments'; $args->area = 'page_comments';
@ -72,7 +72,7 @@ class block_comments_events_testcase extends advanced_testcase {
$args->notoggle = true; $args->notoggle = true;
$args->autostart = true; $args->autostart = true;
$args->displaycancel = false; $args->displaycancel = false;
$comment = new comment($args); $comment = new \comment($args);
// Triggering and capturing the event. // Triggering and capturing the event.
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();
@ -84,12 +84,12 @@ class block_comments_events_testcase extends advanced_testcase {
// Checking that the event contains the expected values. // Checking that the event contains the expected values.
$this->assertInstanceOf('\block_comments\event\comment_created', $event); $this->assertInstanceOf('\block_comments\event\comment_created', $event);
$this->assertEquals($context, $event->get_context()); $this->assertEquals($context, $event->get_context());
$url = new moodle_url('/course/view.php', array('id' => $this->course->id)); $url = new \moodle_url('/course/view.php', array('id' => $this->course->id));
$this->assertEquals($url, $event->get_url()); $this->assertEquals($url, $event->get_url());
// Comments when block is on module (wiki) page. // Comments when block is on module (wiki) page.
$context = context_module::instance($this->wiki->cmid); $context = \context_module::instance($this->wiki->cmid);
$args = new stdClass; $args = new \stdClass;
$args->context = $context; $args->context = $context;
$args->course = $this->course; $args->course = $this->course;
$args->area = 'page_comments'; $args->area = 'page_comments';
@ -99,7 +99,7 @@ class block_comments_events_testcase extends advanced_testcase {
$args->notoggle = true; $args->notoggle = true;
$args->autostart = true; $args->autostart = true;
$args->displaycancel = false; $args->displaycancel = false;
$comment = new comment($args); $comment = new \comment($args);
// Triggering and capturing the event. // Triggering and capturing the event.
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();
@ -111,7 +111,7 @@ class block_comments_events_testcase extends advanced_testcase {
// Checking that the event contains the expected values. // Checking that the event contains the expected values.
$this->assertInstanceOf('\block_comments\event\comment_created', $event); $this->assertInstanceOf('\block_comments\event\comment_created', $event);
$this->assertEquals($context, $event->get_context()); $this->assertEquals($context, $event->get_context());
$url = new moodle_url('/mod/wiki/view.php', array('id' => $this->wiki->cmid)); $url = new \moodle_url('/mod/wiki/view.php', array('id' => $this->wiki->cmid));
$this->assertEquals($url, $event->get_url()); $this->assertEquals($url, $event->get_url());
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
} }
@ -125,8 +125,8 @@ class block_comments_events_testcase extends advanced_testcase {
require_once($CFG->dirroot . '/comment/lib.php'); require_once($CFG->dirroot . '/comment/lib.php');
// Comment on course page. // Comment on course page.
$context = context_course::instance($this->course->id); $context = \context_course::instance($this->course->id);
$args = new stdClass; $args = new \stdClass;
$args->context = $context; $args->context = $context;
$args->course = $this->course; $args->course = $this->course;
$args->area = 'page_comments'; $args->area = 'page_comments';
@ -136,7 +136,7 @@ class block_comments_events_testcase extends advanced_testcase {
$args->notoggle = true; $args->notoggle = true;
$args->autostart = true; $args->autostart = true;
$args->displaycancel = false; $args->displaycancel = false;
$comment = new comment($args); $comment = new \comment($args);
$newcomment = $comment->add('New comment'); $newcomment = $comment->add('New comment');
// Triggering and capturing the event. // Triggering and capturing the event.
@ -149,12 +149,12 @@ class block_comments_events_testcase extends advanced_testcase {
// Checking that the event contains the expected values. // Checking that the event contains the expected values.
$this->assertInstanceOf('\block_comments\event\comment_deleted', $event); $this->assertInstanceOf('\block_comments\event\comment_deleted', $event);
$this->assertEquals($context, $event->get_context()); $this->assertEquals($context, $event->get_context());
$url = new moodle_url('/course/view.php', array('id' => $this->course->id)); $url = new \moodle_url('/course/view.php', array('id' => $this->course->id));
$this->assertEquals($url, $event->get_url()); $this->assertEquals($url, $event->get_url());
// Comments when block is on module (wiki) page. // Comments when block is on module (wiki) page.
$context = context_module::instance($this->wiki->cmid); $context = \context_module::instance($this->wiki->cmid);
$args = new stdClass; $args = new \stdClass;
$args->context = $context; $args->context = $context;
$args->course = $this->course; $args->course = $this->course;
$args->area = 'page_comments'; $args->area = 'page_comments';
@ -164,7 +164,7 @@ class block_comments_events_testcase extends advanced_testcase {
$args->notoggle = true; $args->notoggle = true;
$args->autostart = true; $args->autostart = true;
$args->displaycancel = false; $args->displaycancel = false;
$comment = new comment($args); $comment = new \comment($args);
$newcomment = $comment->add('New comment 1'); $newcomment = $comment->add('New comment 1');
// Triggering and capturing the event. // Triggering and capturing the event.
@ -177,7 +177,7 @@ class block_comments_events_testcase extends advanced_testcase {
// Checking that the event contains the expected values. // Checking that the event contains the expected values.
$this->assertInstanceOf('\block_comments\event\comment_deleted', $event); $this->assertInstanceOf('\block_comments\event\comment_deleted', $event);
$this->assertEquals($context, $event->get_context()); $this->assertEquals($context, $event->get_context());
$url = new moodle_url('/mod/wiki/view.php', array('id' => $this->wiki->cmid)); $url = new \moodle_url('/mod/wiki/view.php', array('id' => $this->wiki->cmid));
$this->assertEquals($url, $event->get_url()); $this->assertEquals($url, $event->get_url());
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
} }

View file

@ -17,12 +17,14 @@
/** /**
* Events tests. * Events tests.
* *
* @package core * @package core_blog
* @category test * @category test
* @copyright 2016 Stephen Bourget * @copyright 2016 Stephen Bourget
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
namespace core_blog\event;
defined('MOODLE_INTERNAL') || die(); defined('MOODLE_INTERNAL') || die();
global $CFG; global $CFG;
@ -35,7 +37,7 @@ require_once($CFG->dirroot . '/blog/lib.php');
* @copyright 2016 Stephen Bourget * @copyright 2016 Stephen Bourget
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
class core_blog_events_testcase extends advanced_testcase { class events_test extends \advanced_testcase {
/** @var $courseid */ /** @var $courseid */
private $courseid; private $courseid;
@ -71,7 +73,7 @@ class core_blog_events_testcase extends advanced_testcase {
$this->assertNotEmpty($page); $this->assertNotEmpty($page);
// Create default group. // Create default group.
$group = new stdClass(); $group = new \stdClass();
$group->courseid = $course->id; $group->courseid = $course->id;
$group->name = 'ANON'; $group->name = 'ANON';
$group->id = $DB->insert_record('groups', $group); $group->id = $DB->insert_record('groups', $group);
@ -88,7 +90,7 @@ class core_blog_events_testcase extends advanced_testcase {
'rawname' => 'Testtagname', 'isstandard' => 1)); 'rawname' => 'Testtagname', 'isstandard' => 1));
// Create default post. // Create default post.
$post = new stdClass(); $post = new \stdClass();
$post->userid = $user->id; $post->userid = $user->id;
$post->groupid = $group->id; $post->groupid = $group->id;
$post->content = 'test post content text'; $post->content = 'test post content text';
@ -115,20 +117,20 @@ class core_blog_events_testcase extends advanced_testcase {
// Create a blog entry for another user as Admin. // Create a blog entry for another user as Admin.
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();
$blog = new blog_entry(); $blog = new \blog_entry();
$blog->subject = "Subject of blog"; $blog->subject = "Subject of blog";
$blog->userid = $this->userid; $blog->userid = $this->userid;
$states = blog_entry::get_applicable_publish_states(); $states = \blog_entry::get_applicable_publish_states();
$blog->publishstate = reset($states); $blog->publishstate = reset($states);
$blog->add(); $blog->add();
$events = $sink->get_events(); $events = $sink->get_events();
$sink->close(); $sink->close();
$event = reset($events); $event = reset($events);
$sitecontext = context_system::instance(); $sitecontext = \context_system::instance();
// Validate event data. // Validate event data.
$this->assertInstanceOf('\core\event\blog_entry_created', $event); $this->assertInstanceOf('\core\event\blog_entry_created', $event);
$url = new moodle_url('/blog/index.php', array('entryid' => $event->objectid)); $url = new \moodle_url('/blog/index.php', array('entryid' => $event->objectid));
$this->assertEquals($url, $event->get_url()); $this->assertEquals($url, $event->get_url());
$this->assertEquals($sitecontext->id, $event->contextid); $this->assertEquals($sitecontext->id, $event->contextid);
$this->assertEquals($blog->id, $event->objectid); $this->assertEquals($blog->id, $event->objectid);
@ -150,10 +152,10 @@ class core_blog_events_testcase extends advanced_testcase {
$this->setAdminUser(); $this->setAdminUser();
$this->resetAfterTest(); $this->resetAfterTest();
$sitecontext = context_system::instance(); $sitecontext = \context_system::instance();
// Edit a blog entry as Admin. // Edit a blog entry as Admin.
$blog = new blog_entry($this->postid); $blog = new \blog_entry($this->postid);
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();
$blog->summary_editor = array('text' => 'Something', 'format' => FORMAT_MOODLE); $blog->summary_editor = array('text' => 'Something', 'format' => FORMAT_MOODLE);
$blog->edit(array(), null, array(), array()); $blog->edit(array(), null, array(), array());
@ -163,7 +165,7 @@ class core_blog_events_testcase extends advanced_testcase {
// Validate event data. // Validate event data.
$this->assertInstanceOf('\core\event\blog_entry_updated', $event); $this->assertInstanceOf('\core\event\blog_entry_updated', $event);
$url = new moodle_url('/blog/index.php', array('entryid' => $event->objectid)); $url = new \moodle_url('/blog/index.php', array('entryid' => $event->objectid));
$this->assertEquals($url, $event->get_url()); $this->assertEquals($url, $event->get_url());
$this->assertEquals($sitecontext->id, $event->contextid); $this->assertEquals($sitecontext->id, $event->contextid);
$this->assertEquals($blog->id, $event->objectid); $this->assertEquals($blog->id, $event->objectid);
@ -185,10 +187,10 @@ class core_blog_events_testcase extends advanced_testcase {
$this->setAdminUser(); $this->setAdminUser();
$this->resetAfterTest(); $this->resetAfterTest();
$sitecontext = context_system::instance(); $sitecontext = \context_system::instance();
// Delete a user blog entry as Admin. // Delete a user blog entry as Admin.
$blog = new blog_entry($this->postid); $blog = new \blog_entry($this->postid);
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();
$record = $DB->get_record('post', array('id' => $blog->id)); $record = $DB->get_record('post', array('id' => $blog->id));
$blog->delete(); $blog->delete();
@ -221,12 +223,12 @@ class core_blog_events_testcase extends advanced_testcase {
$this->setAdminUser(); $this->setAdminUser();
$this->resetAfterTest(); $this->resetAfterTest();
$sitecontext = context_system::instance(); $sitecontext = \context_system::instance();
$coursecontext = context_course::instance($this->courseid); $coursecontext = \context_course::instance($this->courseid);
$contextmodule = context_module::instance($this->cmid); $contextmodule = \context_module::instance($this->cmid);
// Add blog associations with a course. // Add blog associations with a course.
$blog = new blog_entry($this->postid); $blog = new \blog_entry($this->postid);
$blog->add_association($coursecontext->id); $blog->add_association($coursecontext->id);
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();
@ -244,7 +246,7 @@ class core_blog_events_testcase extends advanced_testcase {
$this->assertEquals('blog_association', $event->objecttable); $this->assertEquals('blog_association', $event->objecttable);
// Add blog associations with a module. // Add blog associations with a module.
$blog = new blog_entry($this->postid); $blog = new \blog_entry($this->postid);
$blog->add_association($contextmodule->id); $blog->add_association($contextmodule->id);
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();
$blog->remove_associations(); $blog->remove_associations();
@ -266,12 +268,12 @@ class core_blog_events_testcase extends advanced_testcase {
$this->setAdminUser(); $this->setAdminUser();
$this->resetAfterTest(); $this->resetAfterTest();
$sitecontext = context_system::instance(); $sitecontext = \context_system::instance();
$coursecontext = context_course::instance($this->courseid); $coursecontext = \context_course::instance($this->courseid);
$contextmodule = context_module::instance($this->cmid); $contextmodule = \context_module::instance($this->cmid);
// Add blog associations with a course. // Add blog associations with a course.
$blog = new blog_entry($this->postid); $blog = new \blog_entry($this->postid);
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();
$blog->add_association($coursecontext->id); $blog->add_association($coursecontext->id);
$events = $sink->get_events(); $events = $sink->get_events();
@ -281,7 +283,7 @@ class core_blog_events_testcase extends advanced_testcase {
// Validate event data. // Validate event data.
$this->assertInstanceOf('\core\event\blog_association_created', $event); $this->assertInstanceOf('\core\event\blog_association_created', $event);
$this->assertEquals($sitecontext->id, $event->contextid); $this->assertEquals($sitecontext->id, $event->contextid);
$url = new moodle_url('/blog/index.php', array('entryid' => $event->other['blogid'])); $url = new \moodle_url('/blog/index.php', array('entryid' => $event->other['blogid']));
$this->assertEquals($url, $event->get_url()); $this->assertEquals($url, $event->get_url());
$this->assertEquals($blog->id, $event->other['blogid']); $this->assertEquals($blog->id, $event->other['blogid']);
$this->assertEquals($this->courseid, $event->other['associateid']); $this->assertEquals($this->courseid, $event->other['associateid']);
@ -295,7 +297,7 @@ class core_blog_events_testcase extends advanced_testcase {
$this->assertEventLegacyLogData($arr, $event); $this->assertEventLegacyLogData($arr, $event);
// Add blog associations with a module. // Add blog associations with a module.
$blog = new blog_entry($this->postid); $blog = new \blog_entry($this->postid);
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();
$blog->add_association($contextmodule->id); $blog->add_association($contextmodule->id);
$events = $sink->get_events(); $events = $sink->get_events();
@ -326,7 +328,7 @@ class core_blog_events_testcase extends advanced_testcase {
'objectid' => 3, 'objectid' => 3,
'relateduserid' => 2, 'relateduserid' => 2,
'other' => array('associateid' => 2 , 'blogid' => 3, 'subject' => 'blog subject'))); 'other' => array('associateid' => 2 , 'blogid' => 3, 'subject' => 'blog subject')));
} catch (coding_exception $e) { } catch (\coding_exception $e) {
$this->assertStringContainsString('The \'associatetype\' value must be set in other and be a valid type.', $e->getMessage()); $this->assertStringContainsString('The \'associatetype\' value must be set in other and be a valid type.', $e->getMessage());
} }
try { try {
@ -335,7 +337,7 @@ class core_blog_events_testcase extends advanced_testcase {
'objectid' => 3, 'objectid' => 3,
'relateduserid' => 2, 'relateduserid' => 2,
'other' => array('associateid' => 2 , 'blogid' => 3, 'associatetype' => 'random', 'subject' => 'blog subject'))); 'other' => array('associateid' => 2 , 'blogid' => 3, 'associatetype' => 'random', 'subject' => 'blog subject')));
} catch (coding_exception $e) { } catch (\coding_exception $e) {
$this->assertStringContainsString('The \'associatetype\' value must be set in other and be a valid type.', $e->getMessage()); $this->assertStringContainsString('The \'associatetype\' value must be set in other and be a valid type.', $e->getMessage());
} }
// Make sure associateid validations work. // Make sure associateid validations work.
@ -345,7 +347,7 @@ class core_blog_events_testcase extends advanced_testcase {
'objectid' => 3, 'objectid' => 3,
'relateduserid' => 2, 'relateduserid' => 2,
'other' => array('blogid' => 3, 'associatetype' => 'course', 'subject' => 'blog subject'))); 'other' => array('blogid' => 3, 'associatetype' => 'course', 'subject' => 'blog subject')));
} catch (coding_exception $e) { } catch (\coding_exception $e) {
$this->assertStringContainsString('The \'associateid\' value must be set in other.', $e->getMessage()); $this->assertStringContainsString('The \'associateid\' value must be set in other.', $e->getMessage());
} }
// Make sure blogid validations work. // Make sure blogid validations work.
@ -355,7 +357,7 @@ class core_blog_events_testcase extends advanced_testcase {
'objectid' => 3, 'objectid' => 3,
'relateduserid' => 2, 'relateduserid' => 2,
'other' => array('associateid' => 3, 'associatetype' => 'course', 'subject' => 'blog subject'))); 'other' => array('associateid' => 3, 'associatetype' => 'course', 'subject' => 'blog subject')));
} catch (coding_exception $e) { } catch (\coding_exception $e) {
$this->assertStringContainsString('The \'blogid\' value must be set in other.', $e->getMessage()); $this->assertStringContainsString('The \'blogid\' value must be set in other.', $e->getMessage());
} }
// Make sure blogid validations work. // Make sure blogid validations work.
@ -365,7 +367,7 @@ class core_blog_events_testcase extends advanced_testcase {
'objectid' => 3, 'objectid' => 3,
'relateduserid' => 2, 'relateduserid' => 2,
'other' => array('blogid' => 3, 'associateid' => 3, 'associatetype' => 'course'))); 'other' => array('blogid' => 3, 'associateid' => 3, 'associatetype' => 'course')));
} catch (coding_exception $e) { } catch (\coding_exception $e) {
$this->assertStringContainsString('The \'subject\' value must be set in other.', $e->getMessage()); $this->assertStringContainsString('The \'subject\' value must be set in other.', $e->getMessage());
} }
} }
@ -390,8 +392,8 @@ class core_blog_events_testcase extends advanced_testcase {
$sink->close(); $sink->close();
// Validate event data. // Validate event data.
$url = new moodle_url('/blog/index.php', $other); $url = new \moodle_url('/blog/index.php', $other);
$url2 = new moodle_url('index.php', $other); $url2 = new \moodle_url('index.php', $other);
$this->assertEquals($url, $event->get_url()); $this->assertEquals($url, $event->get_url());
$arr = array(SITEID, 'blog', 'view', $url2->out(), 'view blog entry'); $arr = array(SITEID, 'blog', 'view', $url2->out(), 'view blog entry');
$this->assertEventLegacyLogData($arr, $event); $this->assertEventLegacyLogData($arr, $event);
@ -407,16 +409,16 @@ class core_blog_events_testcase extends advanced_testcase {
$this->setAdminUser(); $this->setAdminUser();
require_once($CFG->dirroot . '/comment/lib.php'); require_once($CFG->dirroot . '/comment/lib.php');
$context = context_user::instance($USER->id); $context = \context_user::instance($USER->id);
$cmt = new stdClass(); $cmt = new \stdClass();
$cmt->context = $context; $cmt->context = $context;
$cmt->courseid = $this->courseid; $cmt->courseid = $this->courseid;
$cmt->area = 'format_blog'; $cmt->area = 'format_blog';
$cmt->itemid = $this->postid; $cmt->itemid = $this->postid;
$cmt->showcount = 1; $cmt->showcount = 1;
$cmt->component = 'blog'; $cmt->component = 'blog';
$manager = new comment($cmt); $manager = new \comment($cmt);
// Triggering and capturing the event. // Triggering and capturing the event.
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();
@ -429,7 +431,7 @@ class core_blog_events_testcase extends advanced_testcase {
$this->assertInstanceOf('\core\event\blog_comment_created', $event); $this->assertInstanceOf('\core\event\blog_comment_created', $event);
$this->assertEquals($context, $event->get_context()); $this->assertEquals($context, $event->get_context());
$this->assertEquals($this->postid, $event->other['itemid']); $this->assertEquals($this->postid, $event->other['itemid']);
$url = new moodle_url('/blog/index.php', array('entryid' => $this->postid)); $url = new \moodle_url('/blog/index.php', array('entryid' => $this->postid));
$this->assertEquals($url, $event->get_url()); $this->assertEquals($url, $event->get_url());
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
} }
@ -443,16 +445,16 @@ class core_blog_events_testcase extends advanced_testcase {
$this->setAdminUser(); $this->setAdminUser();
require_once($CFG->dirroot . '/comment/lib.php'); require_once($CFG->dirroot . '/comment/lib.php');
$context = context_user::instance($USER->id); $context = \context_user::instance($USER->id);
$cmt = new stdClass(); $cmt = new \stdClass();
$cmt->context = $context; $cmt->context = $context;
$cmt->courseid = $this->courseid; $cmt->courseid = $this->courseid;
$cmt->area = 'format_blog'; $cmt->area = 'format_blog';
$cmt->itemid = $this->postid; $cmt->itemid = $this->postid;
$cmt->showcount = 1; $cmt->showcount = 1;
$cmt->component = 'blog'; $cmt->component = 'blog';
$manager = new comment($cmt); $manager = new \comment($cmt);
$newcomment = $manager->add("New comment"); $newcomment = $manager->add("New comment");
// Triggering and capturing the event. // Triggering and capturing the event.
@ -466,7 +468,7 @@ class core_blog_events_testcase extends advanced_testcase {
$this->assertInstanceOf('\core\event\blog_comment_deleted', $event); $this->assertInstanceOf('\core\event\blog_comment_deleted', $event);
$this->assertEquals($context, $event->get_context()); $this->assertEquals($context, $event->get_context());
$this->assertEquals($this->postid, $event->other['itemid']); $this->assertEquals($this->postid, $event->other['itemid']);
$url = new moodle_url('/blog/index.php', array('entryid' => $this->postid)); $url = new \moodle_url('/blog/index.php', array('entryid' => $this->postid));
$this->assertEquals($url, $event->get_url()); $this->assertEquals($url, $event->get_url());
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
} }
@ -481,7 +483,7 @@ class core_blog_events_testcase extends advanced_testcase {
// Trigger an event: external blog added. // Trigger an event: external blog added.
$eventparams = array( $eventparams = array(
'context' => $context = context_system::instance(), 'context' => $context = \context_system::instance(),
'objectid' => 1001, 'objectid' => 1001,
'other' => array('url' => 'http://moodle.org') 'other' => array('url' => 'http://moodle.org')
); );
@ -510,7 +512,7 @@ class core_blog_events_testcase extends advanced_testcase {
// Trigger an event: external blog updated. // Trigger an event: external blog updated.
$eventparams = array( $eventparams = array(
'context' => $context = context_system::instance(), 'context' => $context = \context_system::instance(),
'objectid' => 1001, 'objectid' => 1001,
'other' => array('url' => 'http://moodle.org') 'other' => array('url' => 'http://moodle.org')
); );
@ -539,7 +541,7 @@ class core_blog_events_testcase extends advanced_testcase {
// Trigger an event: external blog removed. // Trigger an event: external blog removed.
$eventparams = array( $eventparams = array(
'context' => $context = context_system::instance(), 'context' => $context = \context_system::instance(),
'objectid' => 1001, 'objectid' => 1001,
); );
@ -566,7 +568,7 @@ class core_blog_events_testcase extends advanced_testcase {
// Trigger an event: external blogs viewed. // Trigger an event: external blogs viewed.
$eventparams = array( $eventparams = array(
'context' => $context = context_system::instance(), 'context' => $context = \context_system::instance(),
); );
$event = \core\event\blog_external_viewed::create($eventparams); $event = \core\event\blog_external_viewed::create($eventparams);
@ -581,4 +583,3 @@ class core_blog_events_testcase extends advanced_testcase {
$this->assertDebuggingNotCalled(); $this->assertDebuggingNotCalled();
} }
} }

View file

@ -22,6 +22,8 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
namespace core_blog\external;
defined('MOODLE_INTERNAL') || die(); defined('MOODLE_INTERNAL') || die();
global $CFG; global $CFG;
@ -35,7 +37,7 @@ require_once($CFG->dirroot . '/blog/lib.php');
* @copyright 2018 Juan Leyva * @copyright 2018 Juan Leyva
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
class core_blog_external_testcase extends advanced_testcase { class external_test extends \advanced_testcase {
private $courseid; private $courseid;
private $cmid; private $cmid;
@ -69,7 +71,7 @@ class core_blog_external_testcase extends advanced_testcase {
$this->getDataGenerator()->create_group_member(array('groupid' => $group->id, 'userid' => $user->id)); $this->getDataGenerator()->create_group_member(array('groupid' => $group->id, 'userid' => $user->id));
// Create default post. // Create default post.
$post = new stdClass(); $post = new \stdClass();
$post->userid = $user->id; $post->userid = $user->id;
$post->courseid = $course->id; $post->courseid = $course->id;
$post->groupid = $group->id; $post->groupid = $group->id;
@ -77,7 +79,7 @@ class core_blog_external_testcase extends advanced_testcase {
$post->module = 'blog'; $post->module = 'blog';
$post->id = $DB->insert_record('post', $post); $post->id = $DB->insert_record('post', $post);
core_tag_tag::set_item_tags('core', 'post', $post->id, context_user::instance($user->id), array('tag1')); \core_tag_tag::set_item_tags('core', 'post', $post->id, \context_user::instance($user->id), array('tag1'));
$tagid = $DB->get_field('tag', 'id', array('name' => 'tag1')); $tagid = $DB->get_field('tag', 'id', array('name' => 'tag1'));
// Grab important ids. // Grab important ids.
@ -105,8 +107,8 @@ class core_blog_external_testcase extends advanced_testcase {
// Set current entry global. // Set current entry global.
$DB->set_field('post', 'publishstate', 'public', array('id' => $this->postid)); $DB->set_field('post', 'publishstate', 'public', array('id' => $this->postid));
$result = core_blog\external::get_entries(); $result = \core_blog\external::get_entries();
$result = external_api::clean_returnvalue(core_blog\external::get_entries_returns(), $result); $result = \external_api::clean_returnvalue(\core_blog\external::get_entries_returns(), $result);
$this->assertCount(1, $result['entries']); $this->assertCount(1, $result['entries']);
$this->assertCount(1, $result['entries'][0]['tags']); $this->assertCount(1, $result['entries'][0]['tags']);
$this->assertEquals('tag1', $result['entries'][0]['tags'][0]['rawname']); $this->assertEquals('tag1', $result['entries'][0]['tags'][0]['rawname']);
@ -125,8 +127,8 @@ class core_blog_external_testcase extends advanced_testcase {
// Set current entry global. // Set current entry global.
$DB->set_field('post', 'publishstate', 'public', array('id' => $this->postid)); $DB->set_field('post', 'publishstate', 'public', array('id' => $this->postid));
$this->expectException('moodle_exception'); $this->expectException('\moodle_exception');
core_blog\external::get_entries(); \core_blog\external::get_entries();
} }
/** /**
@ -141,8 +143,8 @@ class core_blog_external_testcase extends advanced_testcase {
$DB->set_field('post', 'publishstate', 'public', array('id' => $this->postid)); $DB->set_field('post', 'publishstate', 'public', array('id' => $this->postid));
$this->setGuestUser(); $this->setGuestUser();
$result = core_blog\external::get_entries(); $result = \core_blog\external::get_entries();
$result = external_api::clean_returnvalue(core_blog\external::get_entries_returns(), $result); $result = \external_api::clean_returnvalue(\core_blog\external::get_entries_returns(), $result);
$this->assertCount(1, $result['entries']); $this->assertCount(1, $result['entries']);
$this->assertCount(1, $result['entries'][0]['tags']); $this->assertCount(1, $result['entries'][0]['tags']);
$this->assertEquals('tag1', $result['entries'][0]['tags'][0]['rawname']); $this->assertEquals('tag1', $result['entries'][0]['tags'][0]['rawname']);
@ -159,8 +161,8 @@ class core_blog_external_testcase extends advanced_testcase {
$CFG->bloglevel = BLOG_GLOBAL_LEVEL; $CFG->bloglevel = BLOG_GLOBAL_LEVEL;
$result = core_blog\external::get_entries(); $result = \core_blog\external::get_entries();
$result = external_api::clean_returnvalue(core_blog\external::get_entries_returns(), $result); $result = \external_api::clean_returnvalue(\core_blog\external::get_entries_returns(), $result);
$this->assertCount(0, $result['entries']); $this->assertCount(0, $result['entries']);
} }
@ -174,8 +176,8 @@ class core_blog_external_testcase extends advanced_testcase {
$CFG->bloglevel = BLOG_GLOBAL_LEVEL; $CFG->bloglevel = BLOG_GLOBAL_LEVEL;
$this->setGuestUser(); $this->setGuestUser();
$result = core_blog\external::get_entries(); $result = \core_blog\external::get_entries();
$result = external_api::clean_returnvalue(core_blog\external::get_entries_returns(), $result); $result = \external_api::clean_returnvalue(\core_blog\external::get_entries_returns(), $result);
$this->assertCount(0, $result['entries']); $this->assertCount(0, $result['entries']);
} }
@ -185,7 +187,7 @@ class core_blog_external_testcase extends advanced_testcase {
*/ */
public function test_get_not_public_entries_site_level_by_non_logged_users() { public function test_get_not_public_entries_site_level_by_non_logged_users() {
$this->expectException('require_login_exception'); // In this case we get a security exception. $this->expectException('require_login_exception'); // In this case we get a security exception.
$result = core_blog\external::get_entries(); $result = \core_blog\external::get_entries();
} }
/** /**
@ -195,8 +197,8 @@ class core_blog_external_testcase extends advanced_testcase {
public function test_get_not_public_entries_site_level_by_guest_users() { public function test_get_not_public_entries_site_level_by_guest_users() {
$this->setGuestUser(); $this->setGuestUser();
$result = core_blog\external::get_entries(); $result = \core_blog\external::get_entries();
$result = external_api::clean_returnvalue(core_blog\external::get_entries_returns(), $result); $result = \external_api::clean_returnvalue(\core_blog\external::get_entries_returns(), $result);
$this->assertCount(0, $result['entries']); $this->assertCount(0, $result['entries']);
} }
@ -206,8 +208,8 @@ class core_blog_external_testcase extends advanced_testcase {
public function test_get_site_entries_site_level_by_normal_users() { public function test_get_site_entries_site_level_by_normal_users() {
$this->setUser($this->userid); $this->setUser($this->userid);
$result = core_blog\external::get_entries(); $result = \core_blog\external::get_entries();
$result = external_api::clean_returnvalue(core_blog\external::get_entries_returns(), $result); $result = \external_api::clean_returnvalue(\core_blog\external::get_entries_returns(), $result);
$this->assertCount(1, $result['entries']); $this->assertCount(1, $result['entries']);
$this->assertEquals($this->postid, $result['entries'][0]['id']); $this->assertEquals($this->postid, $result['entries'][0]['id']);
} }
@ -222,8 +224,8 @@ class core_blog_external_testcase extends advanced_testcase {
$DB->set_field('post', 'publishstate', 'draft', array('id' => $this->postid)); $DB->set_field('post', 'publishstate', 'draft', array('id' => $this->postid));
$this->setUser($this->userid); $this->setUser($this->userid);
$result = core_blog\external::get_entries(); $result = \core_blog\external::get_entries();
$result = external_api::clean_returnvalue(core_blog\external::get_entries_returns(), $result); $result = \external_api::clean_returnvalue(\core_blog\external::get_entries_returns(), $result);
$this->assertCount(1, $result['entries']); $this->assertCount(1, $result['entries']);
$this->assertEquals($this->postid, $result['entries'][0]['id']); $this->assertEquals($this->postid, $result['entries'][0]['id']);
} }
@ -239,8 +241,8 @@ class core_blog_external_testcase extends advanced_testcase {
$user = $this->getDataGenerator()->create_user(); $user = $this->getDataGenerator()->create_user();
$this->setUser($user); $this->setUser($user);
$result = core_blog\external::get_entries(); $result = \core_blog\external::get_entries();
$result = external_api::clean_returnvalue(core_blog\external::get_entries_returns(), $result); $result = \external_api::clean_returnvalue(\core_blog\external::get_entries_returns(), $result);
$this->assertCount(0, $result['entries']); $this->assertCount(0, $result['entries']);
} }
@ -255,8 +257,8 @@ class core_blog_external_testcase extends advanced_testcase {
$user = $this->getDataGenerator()->create_user(); $user = $this->getDataGenerator()->create_user();
$this->setAdminUser(); $this->setAdminUser();
$result = core_blog\external::get_entries(); $result = \core_blog\external::get_entries();
$result = external_api::clean_returnvalue(core_blog\external::get_entries_returns(), $result); $result = \external_api::clean_returnvalue(\core_blog\external::get_entries_returns(), $result);
$this->assertCount(1, $result['entries']); $this->assertCount(1, $result['entries']);
$this->assertEquals($this->postid, $result['entries'][0]['id']); $this->assertEquals($this->postid, $result['entries'][0]['id']);
} }
@ -272,8 +274,8 @@ class core_blog_external_testcase extends advanced_testcase {
$DB->set_field('post', 'publishstate', 'draft', array('id' => $this->postid)); $DB->set_field('post', 'publishstate', 'draft', array('id' => $this->postid));
$this->setUser($this->userid); $this->setUser($this->userid);
$result = core_blog\external::get_entries(); $result = \core_blog\external::get_entries();
$result = external_api::clean_returnvalue(core_blog\external::get_entries_returns(), $result); $result = \external_api::clean_returnvalue(\core_blog\external::get_entries_returns(), $result);
$this->assertCount(1, $result['entries']); $this->assertCount(1, $result['entries']);
$this->assertEquals($this->postid, $result['entries'][0]['id']); $this->assertEquals($this->postid, $result['entries'][0]['id']);
} }
@ -290,8 +292,8 @@ class core_blog_external_testcase extends advanced_testcase {
$user = $this->getDataGenerator()->create_user(); $user = $this->getDataGenerator()->create_user();
$this->setUser($user); $this->setUser($user);
$result = core_blog\external::get_entries(); $result = \core_blog\external::get_entries();
$result = external_api::clean_returnvalue(core_blog\external::get_entries_returns(), $result); $result = \external_api::clean_returnvalue(\core_blog\external::get_entries_returns(), $result);
$this->assertCount(0, $result['entries']); $this->assertCount(0, $result['entries']);
} }
@ -307,8 +309,8 @@ class core_blog_external_testcase extends advanced_testcase {
$user = $this->getDataGenerator()->create_user(); $user = $this->getDataGenerator()->create_user();
$this->setAdminUser(); $this->setAdminUser();
$result = core_blog\external::get_entries(); $result = \core_blog\external::get_entries();
$result = external_api::clean_returnvalue(core_blog\external::get_entries_returns(), $result); $result = \external_api::clean_returnvalue(\core_blog\external::get_entries_returns(), $result);
$this->assertCount(1, $result['entries']); $this->assertCount(1, $result['entries']);
$this->assertEquals($this->postid, $result['entries'][0]['id']); $this->assertEquals($this->postid, $result['entries'][0]['id']);
} }
@ -323,7 +325,7 @@ class core_blog_external_testcase extends advanced_testcase {
// Create another entry. // Create another entry.
$this->setAdminUser(); $this->setAdminUser();
$newpost = new stdClass(); $newpost = new \stdClass();
$newpost->userid = $USER->id; $newpost->userid = $USER->id;
$newpost->content = 'test post content text'; $newpost->content = 'test post content text';
$newpost->module = 'blog'; $newpost->module = 'blog';
@ -333,22 +335,22 @@ class core_blog_external_testcase extends advanced_testcase {
$newpost->id = $DB->insert_record('post', $newpost); $newpost->id = $DB->insert_record('post', $newpost);
$this->setUser($this->userid); $this->setUser($this->userid);
$result = core_blog\external::get_entries(); $result = \core_blog\external::get_entries();
$result = external_api::clean_returnvalue(core_blog\external::get_entries_returns(), $result); $result = \external_api::clean_returnvalue(\core_blog\external::get_entries_returns(), $result);
$this->assertCount(2, $result['entries']); $this->assertCount(2, $result['entries']);
$this->assertEquals(2, $result['totalentries']); $this->assertEquals(2, $result['totalentries']);
$this->assertCount(0, $result['entries'][0]['tags']); $this->assertCount(0, $result['entries'][0]['tags']);
$this->assertCount(1, $result['entries'][1]['tags']); $this->assertCount(1, $result['entries'][1]['tags']);
$this->assertEquals('tag1', $result['entries'][1]['tags'][0]['rawname']); $this->assertEquals('tag1', $result['entries'][1]['tags'][0]['rawname']);
$result = core_blog\external::get_entries(array(), 0, 1); $result = \core_blog\external::get_entries(array(), 0, 1);
$result = external_api::clean_returnvalue(core_blog\external::get_entries_returns(), $result); $result = \external_api::clean_returnvalue(\core_blog\external::get_entries_returns(), $result);
$this->assertCount(1, $result['entries']); $this->assertCount(1, $result['entries']);
$this->assertEquals(2, $result['totalentries']); $this->assertEquals(2, $result['totalentries']);
$this->assertEquals($newpost->id, $result['entries'][0]['id']); $this->assertEquals($newpost->id, $result['entries'][0]['id']);
$result = core_blog\external::get_entries(array(), 1, 1); $result = \core_blog\external::get_entries(array(), 1, 1);
$result = external_api::clean_returnvalue(core_blog\external::get_entries_returns(), $result); $result = \external_api::clean_returnvalue(\core_blog\external::get_entries_returns(), $result);
$this->assertCount(1, $result['entries']); $this->assertCount(1, $result['entries']);
$this->assertEquals(2, $result['totalentries']); $this->assertEquals(2, $result['totalentries']);
$this->assertEquals($this->postid, $result['entries'][0]['id']); $this->assertEquals($this->postid, $result['entries'][0]['id']);
@ -363,28 +365,28 @@ class core_blog_external_testcase extends advanced_testcase {
$DB->set_field('post', 'publishstate', 'site', array('id' => $this->postid)); $DB->set_field('post', 'publishstate', 'site', array('id' => $this->postid));
$this->setAdminUser(); $this->setAdminUser();
$coursecontext = context_course::instance($this->courseid); $coursecontext = \context_course::instance($this->courseid);
$anothercourse = $this->getDataGenerator()->create_course(); $anothercourse = $this->getDataGenerator()->create_course();
// Add blog associations with a course. // Add blog associations with a course.
$blog = new blog_entry($this->postid); $blog = new \blog_entry($this->postid);
$blog->add_association($coursecontext->id); $blog->add_association($coursecontext->id);
// There is one entry associated with a course. // There is one entry associated with a course.
$result = core_blog\external::get_entries(array(array('name' => 'courseid', 'value' => $this->courseid))); $result = \core_blog\external::get_entries(array(array('name' => 'courseid', 'value' => $this->courseid)));
$result = external_api::clean_returnvalue(core_blog\external::get_entries_returns(), $result); $result = \external_api::clean_returnvalue(\core_blog\external::get_entries_returns(), $result);
$this->assertCount(1, $result['entries']); $this->assertCount(1, $result['entries']);
$this->assertCount(1, $result['entries'][0]['tags']); $this->assertCount(1, $result['entries'][0]['tags']);
$this->assertEquals('tag1', $result['entries'][0]['tags'][0]['rawname']); $this->assertEquals('tag1', $result['entries'][0]['tags'][0]['rawname']);
// There is no entry associated with a wrong course. // There is no entry associated with a wrong course.
$result = core_blog\external::get_entries(array(array('name' => 'courseid', 'value' => $anothercourse->id))); $result = \core_blog\external::get_entries(array(array('name' => 'courseid', 'value' => $anothercourse->id)));
$result = external_api::clean_returnvalue(core_blog\external::get_entries_returns(), $result); $result = \external_api::clean_returnvalue(\core_blog\external::get_entries_returns(), $result);
$this->assertCount(0, $result['entries']); $this->assertCount(0, $result['entries']);
// There is no entry associated with a module. // There is no entry associated with a module.
$result = core_blog\external::get_entries(array(array('name' => 'cmid', 'value' => $this->cmid))); $result = \core_blog\external::get_entries(array(array('name' => 'cmid', 'value' => $this->cmid)));
$result = external_api::clean_returnvalue(core_blog\external::get_entries_returns(), $result); $result = \external_api::clean_returnvalue(\core_blog\external::get_entries_returns(), $result);
$this->assertCount(0, $result['entries']); $this->assertCount(0, $result['entries']);
} }
@ -397,27 +399,27 @@ class core_blog_external_testcase extends advanced_testcase {
$DB->set_field('post', 'publishstate', 'site', array('id' => $this->postid)); $DB->set_field('post', 'publishstate', 'site', array('id' => $this->postid));
$this->setAdminUser(); $this->setAdminUser();
$coursecontext = context_course::instance($this->courseid); $coursecontext = \context_course::instance($this->courseid);
$contextmodule = context_module::instance($this->cmid); $contextmodule = \context_module::instance($this->cmid);
$anothermodule = $this->getDataGenerator()->create_module('page', array('course' => $this->courseid)); $anothermodule = $this->getDataGenerator()->create_module('page', array('course' => $this->courseid));
// Add blog associations with a module. // Add blog associations with a module.
$blog = new blog_entry($this->postid); $blog = new \blog_entry($this->postid);
$blog->add_association($contextmodule->id); $blog->add_association($contextmodule->id);
// There is no entry associated with a course. // There is no entry associated with a course.
$result = core_blog\external::get_entries(array(array('name' => 'courseid', 'value' => $this->courseid))); $result = \core_blog\external::get_entries(array(array('name' => 'courseid', 'value' => $this->courseid)));
$result = external_api::clean_returnvalue(core_blog\external::get_entries_returns(), $result); $result = \external_api::clean_returnvalue(\core_blog\external::get_entries_returns(), $result);
$this->assertCount(0, $result['entries']); $this->assertCount(0, $result['entries']);
// There is one entry associated with a module. // There is one entry associated with a module.
$result = core_blog\external::get_entries(array(array('name' => 'cmid', 'value' => $this->cmid))); $result = \core_blog\external::get_entries(array(array('name' => 'cmid', 'value' => $this->cmid)));
$result = external_api::clean_returnvalue(core_blog\external::get_entries_returns(), $result); $result = \external_api::clean_returnvalue(\core_blog\external::get_entries_returns(), $result);
$this->assertCount(1, $result['entries']); $this->assertCount(1, $result['entries']);
// There is no entry associated with a wrong module. // There is no entry associated with a wrong module.
$result = core_blog\external::get_entries(array(array('name' => 'cmid', 'value' => $anothermodule->cmid))); $result = \core_blog\external::get_entries(array(array('name' => 'cmid', 'value' => $anothermodule->cmid)));
$result = external_api::clean_returnvalue(core_blog\external::get_entries_returns(), $result); $result = \external_api::clean_returnvalue(\core_blog\external::get_entries_returns(), $result);
$this->assertCount(0, $result['entries']); $this->assertCount(0, $result['entries']);
} }
@ -427,13 +429,13 @@ class core_blog_external_testcase extends advanced_testcase {
public function test_get_entries_filtering_by_author() { public function test_get_entries_filtering_by_author() {
$this->setAdminUser(); $this->setAdminUser();
// Filter by author. // Filter by author.
$result = core_blog\external::get_entries(array(array('name' => 'userid', 'value' => $this->userid))); $result = \core_blog\external::get_entries(array(array('name' => 'userid', 'value' => $this->userid)));
$result = external_api::clean_returnvalue(core_blog\external::get_entries_returns(), $result); $result = \external_api::clean_returnvalue(\core_blog\external::get_entries_returns(), $result);
$this->assertCount(1, $result['entries']); $this->assertCount(1, $result['entries']);
// No author. // No author.
$anotheruser = $this->getDataGenerator()->create_user(); $anotheruser = $this->getDataGenerator()->create_user();
$result = core_blog\external::get_entries(array(array('name' => 'userid', 'value' => $anotheruser->id))); $result = \core_blog\external::get_entries(array(array('name' => 'userid', 'value' => $anotheruser->id)));
$result = external_api::clean_returnvalue(core_blog\external::get_entries_returns(), $result); $result = \external_api::clean_returnvalue(\core_blog\external::get_entries_returns(), $result);
$this->assertCount(0, $result['entries']); $this->assertCount(0, $result['entries']);
} }
@ -443,12 +445,12 @@ class core_blog_external_testcase extends advanced_testcase {
public function test_get_entries_filtering_by_entry() { public function test_get_entries_filtering_by_entry() {
$this->setAdminUser(); $this->setAdminUser();
// Filter by correct entry. // Filter by correct entry.
$result = core_blog\external::get_entries(array(array('name' => 'entryid', 'value' => $this->postid))); $result = \core_blog\external::get_entries(array(array('name' => 'entryid', 'value' => $this->postid)));
$result = external_api::clean_returnvalue(core_blog\external::get_entries_returns(), $result); $result = \external_api::clean_returnvalue(\core_blog\external::get_entries_returns(), $result);
$this->assertCount(1, $result['entries']); $this->assertCount(1, $result['entries']);
// Non-existent entry. // Non-existent entry.
$this->expectException('moodle_exception'); $this->expectException('\moodle_exception');
$result = core_blog\external::get_entries(array(array('name' => 'entryid', 'value' => -1))); $result = \core_blog\external::get_entries(array(array('name' => 'entryid', 'value' => -1)));
} }
/** /**
@ -457,12 +459,12 @@ class core_blog_external_testcase extends advanced_testcase {
public function test_get_entries_filtering_by_search() { public function test_get_entries_filtering_by_search() {
$this->setAdminUser(); $this->setAdminUser();
// Filter by correct search. // Filter by correct search.
$result = core_blog\external::get_entries(array(array('name' => 'search', 'value' => 'test'))); $result = \core_blog\external::get_entries(array(array('name' => 'search', 'value' => 'test')));
$result = external_api::clean_returnvalue(core_blog\external::get_entries_returns(), $result); $result = \external_api::clean_returnvalue(\core_blog\external::get_entries_returns(), $result);
$this->assertCount(1, $result['entries']); $this->assertCount(1, $result['entries']);
// Non-existent search. // Non-existent search.
$result = core_blog\external::get_entries(array(array('name' => 'search', 'value' => 'abc'))); $result = \core_blog\external::get_entries(array(array('name' => 'search', 'value' => 'abc')));
$result = external_api::clean_returnvalue(core_blog\external::get_entries_returns(), $result); $result = \external_api::clean_returnvalue(\core_blog\external::get_entries_returns(), $result);
$this->assertCount(0, $result['entries']); $this->assertCount(0, $result['entries']);
} }
@ -472,15 +474,15 @@ class core_blog_external_testcase extends advanced_testcase {
public function test_get_entries_filtering_by_tag() { public function test_get_entries_filtering_by_tag() {
$this->setAdminUser(); $this->setAdminUser();
// Filter by correct tag. // Filter by correct tag.
$result = core_blog\external::get_entries(array(array('name' => 'tag', 'value' => 'tag1'))); $result = \core_blog\external::get_entries(array(array('name' => 'tag', 'value' => 'tag1')));
$result = external_api::clean_returnvalue(core_blog\external::get_entries_returns(), $result); $result = \external_api::clean_returnvalue(\core_blog\external::get_entries_returns(), $result);
$this->assertCount(1, $result['entries']); $this->assertCount(1, $result['entries']);
// Create tag. // Create tag.
$tag = $this->getDataGenerator()->create_tag(array('userid' => $this->userid, 'name' => 'tag2', $tag = $this->getDataGenerator()->create_tag(array('userid' => $this->userid, 'name' => 'tag2',
'isstandard' => 1)); 'isstandard' => 1));
$result = core_blog\external::get_entries(array(array('name' => 'tag', 'value' => 'tag2'))); $result = \core_blog\external::get_entries(array(array('name' => 'tag', 'value' => 'tag2')));
$result = external_api::clean_returnvalue(core_blog\external::get_entries_returns(), $result); $result = \external_api::clean_returnvalue(\core_blog\external::get_entries_returns(), $result);
$this->assertCount(0, $result['entries']); $this->assertCount(0, $result['entries']);
} }
@ -490,8 +492,8 @@ class core_blog_external_testcase extends advanced_testcase {
public function test_get_entries_filtering_by_tagid() { public function test_get_entries_filtering_by_tagid() {
$this->setAdminUser(); $this->setAdminUser();
// Filter by correct tag. // Filter by correct tag.
$result = core_blog\external::get_entries(array(array('name' => 'tagid', 'value' => $this->tagid))); $result = \core_blog\external::get_entries(array(array('name' => 'tagid', 'value' => $this->tagid)));
$result = external_api::clean_returnvalue(core_blog\external::get_entries_returns(), $result); $result = \external_api::clean_returnvalue(\core_blog\external::get_entries_returns(), $result);
$this->assertCount(1, $result['entries']); $this->assertCount(1, $result['entries']);
// Non-existent tag. // Non-existent tag.
@ -499,8 +501,8 @@ class core_blog_external_testcase extends advanced_testcase {
$tag = $this->getDataGenerator()->create_tag(array('userid' => $this->userid, 'name' => 'tag2', $tag = $this->getDataGenerator()->create_tag(array('userid' => $this->userid, 'name' => 'tag2',
'isstandard' => 1)); 'isstandard' => 1));
$result = core_blog\external::get_entries(array(array('name' => 'tagid', 'value' => $tag->id))); $result = \core_blog\external::get_entries(array(array('name' => 'tagid', 'value' => $tag->id)));
$result = external_api::clean_returnvalue(core_blog\external::get_entries_returns(), $result); $result = \external_api::clean_returnvalue(\core_blog\external::get_entries_returns(), $result);
$this->assertCount(0, $result['entries']); $this->assertCount(0, $result['entries']);
} }
@ -510,18 +512,18 @@ class core_blog_external_testcase extends advanced_testcase {
public function test_get_entries_filtering_by_group() { public function test_get_entries_filtering_by_group() {
$this->setAdminUser(); $this->setAdminUser();
// Add blog associations with a course. // Add blog associations with a course.
$coursecontext = context_course::instance($this->courseid); $coursecontext = \context_course::instance($this->courseid);
$blog = new blog_entry($this->postid); $blog = new \blog_entry($this->postid);
$blog->add_association($coursecontext->id); $blog->add_association($coursecontext->id);
// Filter by correct group. // Filter by correct group.
$result = core_blog\external::get_entries(array(array('name' => 'groupid', 'value' => $this->groupid))); $result = \core_blog\external::get_entries(array(array('name' => 'groupid', 'value' => $this->groupid)));
$result = external_api::clean_returnvalue(core_blog\external::get_entries_returns(), $result); $result = \external_api::clean_returnvalue(\core_blog\external::get_entries_returns(), $result);
$this->assertCount(1, $result['entries']); $this->assertCount(1, $result['entries']);
// Non-existent group. // Non-existent group.
$anotheruser = $this->getDataGenerator()->create_user(); $anotheruser = $this->getDataGenerator()->create_user();
$this->expectException('moodle_exception'); $this->expectException('\moodle_exception');
core_blog\external::get_entries(array(array('name' => 'groupid', 'value' => -1))); \core_blog\external::get_entries(array(array('name' => 'groupid', 'value' => -1)));
} }
/** /**
@ -530,23 +532,23 @@ class core_blog_external_testcase extends advanced_testcase {
public function test_get_entries_multiple_filter() { public function test_get_entries_multiple_filter() {
$this->setAdminUser(); $this->setAdminUser();
// Add blog associations with a course. // Add blog associations with a course.
$coursecontext = context_course::instance($this->courseid); $coursecontext = \context_course::instance($this->courseid);
$blog = new blog_entry($this->postid); $blog = new \blog_entry($this->postid);
$blog->add_association($coursecontext->id); $blog->add_association($coursecontext->id);
$result = core_blog\external::get_entries(array( $result = \core_blog\external::get_entries(array(
array('name' => 'tagid', 'value' => $this->tagid), array('name' => 'tagid', 'value' => $this->tagid),
array('name' => 'userid', 'value' => $this->userid), array('name' => 'userid', 'value' => $this->userid),
)); ));
$result = external_api::clean_returnvalue(core_blog\external::get_entries_returns(), $result); $result = \external_api::clean_returnvalue(\core_blog\external::get_entries_returns(), $result);
$this->assertCount(1, $result['entries']); $this->assertCount(1, $result['entries']);
// Non-existent multiple filter. // Non-existent multiple filter.
$result = core_blog\external::get_entries(array( $result = \core_blog\external::get_entries(array(
array('name' => 'search', 'value' => 'www'), array('name' => 'search', 'value' => 'www'),
array('name' => 'userid', 'value' => $this->userid), array('name' => 'userid', 'value' => $this->userid),
)); ));
$result = external_api::clean_returnvalue(core_blog\external::get_entries_returns(), $result); $result = \external_api::clean_returnvalue(\core_blog\external::get_entries_returns(), $result);
$this->assertCount(0, $result['entries']); $this->assertCount(0, $result['entries']);
} }
@ -556,8 +558,8 @@ class core_blog_external_testcase extends advanced_testcase {
public function test_get_entries_filtering_by_invalid_filter() { public function test_get_entries_filtering_by_invalid_filter() {
$this->setAdminUser(); $this->setAdminUser();
// Filter by incorrect filter. // Filter by incorrect filter.
$this->expectException('moodle_exception'); $this->expectException('\moodle_exception');
$result = core_blog\external::get_entries(array(array('name' => 'zzZZzz', 'value' => 'wwWWww'))); $result = \core_blog\external::get_entries(array(array('name' => 'zzZZzz', 'value' => 'wwWWww')));
} }
/** /**
@ -569,8 +571,8 @@ class core_blog_external_testcase extends advanced_testcase {
$this->setAdminUser(); $this->setAdminUser();
$CFG->enableblogs = 0; $CFG->enableblogs = 0;
// Filter by incorrect filter. // Filter by incorrect filter.
$this->expectException('moodle_exception'); $this->expectException('\moodle_exception');
$result = core_blog\external::get_entries(array(array('name' => 'zzZZzz', 'value' => 'wwWWww'))); $result = \core_blog\external::get_entries(array(array('name' => 'zzZZzz', 'value' => 'wwWWww')));
} }
/** /**
@ -581,8 +583,8 @@ class core_blog_external_testcase extends advanced_testcase {
$this->setUser($this->userid); $this->setUser($this->userid);
// Trigger and capture the event. // Trigger and capture the event.
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();
$result = core_blog\external::view_entries(); $result = \core_blog\external::view_entries();
$result = external_api::clean_returnvalue(core_blog\external::view_entries_returns(), $result); $result = \external_api::clean_returnvalue(\core_blog\external::view_entries_returns(), $result);
$events = $sink->get_events(); $events = $sink->get_events();
$this->assertCount(1, $events); $this->assertCount(1, $events);
@ -609,11 +611,11 @@ class core_blog_external_testcase extends advanced_testcase {
$this->setUser($this->userid); $this->setUser($this->userid);
// Trigger and capture the event. // Trigger and capture the event.
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();
$result = core_blog\external::view_entries(array( $result = \core_blog\external::view_entries(array(
array('name' => 'tagid', 'value' => $this->tagid), array('name' => 'tagid', 'value' => $this->tagid),
array('name' => 'userid', 'value' => $this->userid), array('name' => 'userid', 'value' => $this->userid),
)); ));
$result = external_api::clean_returnvalue(core_blog\external::view_entries_returns(), $result); $result = \external_api::clean_returnvalue(\core_blog\external::view_entries_returns(), $result);
$events = $sink->get_events(); $events = $sink->get_events();
$this->assertCount(1, $events); $this->assertCount(1, $events);
@ -632,4 +634,3 @@ class core_blog_external_testcase extends advanced_testcase {
$this->assertNotEmpty($event->get_name()); $this->assertNotEmpty($event->get_name());
} }
} }

View file

@ -22,6 +22,10 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
namespace core_calendar\event;
use core_calendar_externallib_testcase;
defined('MOODLE_INTERNAL') || die(); defined('MOODLE_INTERNAL') || die();
global $CFG; global $CFG;
require_once($CFG->dirroot . '/calendar/tests/externallib_test.php'); require_once($CFG->dirroot . '/calendar/tests/externallib_test.php');
@ -33,7 +37,7 @@ require_once($CFG->dirroot . '/calendar/tests/externallib_test.php');
* @copyright 2014 Ankit Agarwal <ankit.agrr@gmail.com> * @copyright 2014 Ankit Agarwal <ankit.agrr@gmail.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
class core_calendar_events_testcase extends advanced_testcase { class events_test extends \advanced_testcase {
/** /**
* The test user. * The test user.
@ -67,7 +71,7 @@ class core_calendar_events_testcase extends advanced_testcase {
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();
// Create a calendar event. // Create a calendar event.
$record = new stdClass(); $record = new \stdClass();
$record->courseid = 0; $record->courseid = 0;
$time = time(); $time = time();
$calevent = core_calendar_externallib_testcase::create_calendar_event('event', $this->user->id, 'user', 0, $time, $calevent = core_calendar_externallib_testcase::create_calendar_event('event', $this->user->id, 'user', 0, $time,
@ -90,7 +94,7 @@ class core_calendar_events_testcase extends advanced_testcase {
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
// Now we create a repeated course event. // Now we create a repeated course event.
$record = new stdClass(); $record = new \stdClass();
$record->courseid = $this->course->id; $record->courseid = $this->course->id;
$calevent = core_calendar_externallib_testcase::create_calendar_event('course', $this->user->id, 'course', 10, $time, $calevent = core_calendar_externallib_testcase::create_calendar_event('course', $this->user->id, 'course', 10, $time,
$record); $record);
@ -111,7 +115,7 @@ class core_calendar_events_testcase extends advanced_testcase {
*/ */
public function test_calendar_event_created_validations() { public function test_calendar_event_created_validations() {
$this->resetAfterTest(); $this->resetAfterTest();
$context = context_user::instance($this->user->id); $context = \context_user::instance($this->user->id);
// Test not setting other['repeatid']. // Test not setting other['repeatid'].
try { try {
@ -125,7 +129,7 @@ class core_calendar_events_testcase extends advanced_testcase {
)); ));
$this->fail("Event validation should not allow \\core\\event\\calendar_event_created to be triggered without $this->fail("Event validation should not allow \\core\\event\\calendar_event_created to be triggered without
other['repeatid']"); other['repeatid']");
} catch (coding_exception $e) { } catch (\coding_exception $e) {
$this->assertStringContainsString('The \'repeatid\' value must be set in other.', $e->getMessage()); $this->assertStringContainsString('The \'repeatid\' value must be set in other.', $e->getMessage());
} }
@ -141,7 +145,7 @@ class core_calendar_events_testcase extends advanced_testcase {
)); ));
$this->fail("Event validation should not allow \\core\\event\\calendar_event_created to be triggered without $this->fail("Event validation should not allow \\core\\event\\calendar_event_created to be triggered without
other['name']"); other['name']");
} catch (coding_exception $e) { } catch (\coding_exception $e) {
$this->assertStringContainsString('The \'name\' value must be set in other.', $e->getMessage()); $this->assertStringContainsString('The \'name\' value must be set in other.', $e->getMessage());
} }
@ -157,7 +161,7 @@ class core_calendar_events_testcase extends advanced_testcase {
)); ));
$this->fail("Event validation should not allow \\core\\event\\calendar_event_deleted to be triggered without $this->fail("Event validation should not allow \\core\\event\\calendar_event_deleted to be triggered without
other['timestart']"); other['timestart']");
} catch (coding_exception $e) { } catch (\coding_exception $e) {
$this->assertStringContainsString('The \'timestart\' value must be set in other.', $e->getMessage()); $this->assertStringContainsString('The \'timestart\' value must be set in other.', $e->getMessage());
} }
} }
@ -170,7 +174,7 @@ class core_calendar_events_testcase extends advanced_testcase {
$this->resetAfterTest(); $this->resetAfterTest();
// Create a calendar event. // Create a calendar event.
$record = new stdClass(); $record = new \stdClass();
$record->courseid = 0; $record->courseid = 0;
$time = time(); $time = time();
$calevent = core_calendar_externallib_testcase::create_calendar_event('event', $this->user->id, 'user', 0, $time, $calevent = core_calendar_externallib_testcase::create_calendar_event('event', $this->user->id, 'user', 0, $time,
@ -178,7 +182,7 @@ class core_calendar_events_testcase extends advanced_testcase {
// Catch the events. // Catch the events.
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();
$prop = new stdClass(); $prop = new \stdClass();
$prop->name = 'new event'; $prop->name = 'new event';
$calevent->update($prop); // Update calender event. $calevent->update($prop); // Update calender event.
// Capture the event. // Capture the event.
@ -197,13 +201,13 @@ class core_calendar_events_testcase extends advanced_testcase {
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
// Now we create a repeated course event and update it. // Now we create a repeated course event and update it.
$record = new stdClass(); $record = new \stdClass();
$record->courseid = $this->course->id; $record->courseid = $this->course->id;
$calevent = core_calendar_externallib_testcase::create_calendar_event('course', $this->user->id, 'course', 10, time(), $calevent = core_calendar_externallib_testcase::create_calendar_event('course', $this->user->id, 'course', 10, time(),
$record); $record);
$sink->clear(); $sink->clear();
$prop = new stdClass(); $prop = new \stdClass();
$prop->name = 'new event'; $prop->name = 'new event';
$prop->repeateditall = true; $prop->repeateditall = true;
$calevent->update($prop); // Update calender event. $calevent->update($prop); // Update calender event.
@ -259,7 +263,7 @@ class core_calendar_events_testcase extends advanced_testcase {
*/ */
public function test_calendar_event_updated_validations() { public function test_calendar_event_updated_validations() {
$this->resetAfterTest(); $this->resetAfterTest();
$context = context_user::instance($this->user->id); $context = \context_user::instance($this->user->id);
// Test not setting other['repeatid']. // Test not setting other['repeatid'].
try { try {
@ -273,7 +277,7 @@ class core_calendar_events_testcase extends advanced_testcase {
)); ));
$this->fail("Event validation should not allow \\core\\event\\calendar_event_updated to be triggered without $this->fail("Event validation should not allow \\core\\event\\calendar_event_updated to be triggered without
other['repeatid']"); other['repeatid']");
} catch (coding_exception $e) { } catch (\coding_exception $e) {
$this->assertStringContainsString('The \'repeatid\' value must be set in other.', $e->getMessage()); $this->assertStringContainsString('The \'repeatid\' value must be set in other.', $e->getMessage());
} }
@ -289,7 +293,7 @@ class core_calendar_events_testcase extends advanced_testcase {
)); ));
$this->fail("Event validation should not allow \\core\\event\\calendar_event_updated to be triggered without $this->fail("Event validation should not allow \\core\\event\\calendar_event_updated to be triggered without
other['name']"); other['name']");
} catch (coding_exception $e) { } catch (\coding_exception $e) {
$this->assertStringContainsString('The \'name\' value must be set in other.', $e->getMessage()); $this->assertStringContainsString('The \'name\' value must be set in other.', $e->getMessage());
} }
@ -305,7 +309,7 @@ class core_calendar_events_testcase extends advanced_testcase {
)); ));
$this->fail("Event validation should not allow \\core\\event\\calendar_event_deleted to be triggered without $this->fail("Event validation should not allow \\core\\event\\calendar_event_deleted to be triggered without
other['timestart']"); other['timestart']");
} catch (coding_exception $e) { } catch (\coding_exception $e) {
$this->assertStringContainsString('The \'timestart\' value must be set in other.', $e->getMessage()); $this->assertStringContainsString('The \'timestart\' value must be set in other.', $e->getMessage());
} }
} }
@ -319,7 +323,7 @@ class core_calendar_events_testcase extends advanced_testcase {
$this->resetAfterTest(); $this->resetAfterTest();
// Create a calendar event. // Create a calendar event.
$record = new stdClass(); $record = new \stdClass();
$record->courseid = 0; $record->courseid = 0;
$record->repeatid = 0; $record->repeatid = 0;
$time = time(); $time = time();
@ -344,13 +348,13 @@ class core_calendar_events_testcase extends advanced_testcase {
$this->assertEquals($dbrecord, $event->get_record_snapshot('event', $event->objectid)); $this->assertEquals($dbrecord, $event->get_record_snapshot('event', $event->objectid));
// Now we create a repeated course event and delete it. // Now we create a repeated course event and delete it.
$record = new stdClass(); $record = new \stdClass();
$record->courseid = $this->course->id; $record->courseid = $this->course->id;
$calevent = core_calendar_externallib_testcase::create_calendar_event('course', $this->user->id, 'course', 10, time(), $calevent = core_calendar_externallib_testcase::create_calendar_event('course', $this->user->id, 'course', 10, time(),
$record); $record);
$sink->clear(); $sink->clear();
$prop = new stdClass(); $prop = new \stdClass();
$prop->name = 'new event'; $prop->name = 'new event';
$prop->repeateditall = true; $prop->repeateditall = true;
$calevent->delete(true); $calevent->delete(true);
@ -371,7 +375,7 @@ class core_calendar_events_testcase extends advanced_testcase {
*/ */
public function test_calendar_event_deleted_validations() { public function test_calendar_event_deleted_validations() {
$this->resetAfterTest(); $this->resetAfterTest();
$context = context_user::instance($this->user->id); $context = \context_user::instance($this->user->id);
// Test not setting other['repeatid']. // Test not setting other['repeatid'].
try { try {
@ -385,7 +389,7 @@ class core_calendar_events_testcase extends advanced_testcase {
)); ));
$this->fail("Event validation should not allow \\core\\event\\calendar_event_deleted to be triggered without $this->fail("Event validation should not allow \\core\\event\\calendar_event_deleted to be triggered without
other['repeatid']"); other['repeatid']");
} catch (coding_exception $e) { } catch (\coding_exception $e) {
$this->assertStringContainsString('The \'repeatid\' value must be set in other.', $e->getMessage()); $this->assertStringContainsString('The \'repeatid\' value must be set in other.', $e->getMessage());
} }
@ -401,7 +405,7 @@ class core_calendar_events_testcase extends advanced_testcase {
)); ));
$this->fail("Event validation should not allow \\core\\event\\calendar_event_deleted to be triggered without $this->fail("Event validation should not allow \\core\\event\\calendar_event_deleted to be triggered without
other['name']"); other['name']");
} catch (coding_exception $e) { } catch (\coding_exception $e) {
$this->assertStringContainsString('The \'name\' value must be set in other.', $e->getMessage()); $this->assertStringContainsString('The \'name\' value must be set in other.', $e->getMessage());
} }
@ -417,7 +421,7 @@ class core_calendar_events_testcase extends advanced_testcase {
)); ));
$this->fail("Event validation should not allow \\core\\event\\calendar_event_deleted to be triggered without $this->fail("Event validation should not allow \\core\\event\\calendar_event_deleted to be triggered without
other['timestart']"); other['timestart']");
} catch (coding_exception $e) { } catch (\coding_exception $e) {
$this->assertStringContainsString('The \'timestart\' value must be set in other.', $e->getMessage()); $this->assertStringContainsString('The \'timestart\' value must be set in other.', $e->getMessage());
} }
} }
@ -431,7 +435,7 @@ class core_calendar_events_testcase extends advanced_testcase {
$this->resetAfterTest(true); $this->resetAfterTest(true);
// Create a mock subscription. // Create a mock subscription.
$subscription = new stdClass(); $subscription = new \stdClass();
$subscription->eventtype = 'site'; $subscription->eventtype = 'site';
$subscription->name = 'test'; $subscription->name = 'test';
$subscription->courseid = $this->course->id; $subscription->courseid = $this->course->id;
@ -464,7 +468,7 @@ class core_calendar_events_testcase extends advanced_testcase {
$categoryid = $this->course->category; $categoryid = $this->course->category;
// Create a mock subscription. // Create a mock subscription.
$subscription = new stdClass(); $subscription = new \stdClass();
$subscription->eventtype = 'category'; $subscription->eventtype = 'category';
$subscription->name = 'test'; $subscription->name = 'test';
$subscription->categoryid = $categoryid; $subscription->categoryid = $categoryid;
@ -495,7 +499,7 @@ class core_calendar_events_testcase extends advanced_testcase {
$this->resetAfterTest(true); $this->resetAfterTest(true);
// Create a mock subscription. // Create a mock subscription.
$subscription = new stdClass(); $subscription = new \stdClass();
$subscription->eventtype = 'course'; $subscription->eventtype = 'course';
$subscription->name = 'test'; $subscription->name = 'test';
$subscription->courseid = $this->course->id; $subscription->courseid = $this->course->id;
@ -530,7 +534,7 @@ class core_calendar_events_testcase extends advanced_testcase {
$groupid = 42; $groupid = 42;
// Create a mock subscription. // Create a mock subscription.
$subscription = new stdClass(); $subscription = new \stdClass();
$subscription->eventtype = 'group'; $subscription->eventtype = 'group';
$subscription->name = 'test'; $subscription->name = 'test';
$subscription->courseid = $courseid; $subscription->courseid = $courseid;
@ -562,7 +566,7 @@ class core_calendar_events_testcase extends advanced_testcase {
$this->resetAfterTest(true); $this->resetAfterTest(true);
// Create a mock subscription. // Create a mock subscription.
$subscription = new stdClass(); $subscription = new \stdClass();
$subscription->eventtype = 'site'; $subscription->eventtype = 'site';
$subscription->name = 'test'; $subscription->name = 'test';
$subscription->courseid = $this->course->id; $subscription->courseid = $this->course->id;
@ -597,7 +601,7 @@ class core_calendar_events_testcase extends advanced_testcase {
$categoryid = $this->course->category; $categoryid = $this->course->category;
// Create a mock subscription. // Create a mock subscription.
$subscription = new stdClass(); $subscription = new \stdClass();
$subscription->eventtype = 'category'; $subscription->eventtype = 'category';
$subscription->name = 'test'; $subscription->name = 'test';
$subscription->categoryid = $categoryid; $subscription->categoryid = $categoryid;
@ -630,7 +634,7 @@ class core_calendar_events_testcase extends advanced_testcase {
$this->resetAfterTest(true); $this->resetAfterTest(true);
// Create a mock subscription. // Create a mock subscription.
$subscription = new stdClass(); $subscription = new \stdClass();
$subscription->eventtype = 'course'; $subscription->eventtype = 'course';
$subscription->name = 'test'; $subscription->name = 'test';
$subscription->courseid = $this->course->id; $subscription->courseid = $this->course->id;
@ -666,7 +670,7 @@ class core_calendar_events_testcase extends advanced_testcase {
$groupid = 42; $groupid = 42;
// Create a mock subscription. // Create a mock subscription.
$subscription = new stdClass(); $subscription = new \stdClass();
$subscription->eventtype = 'group'; $subscription->eventtype = 'group';
$subscription->name = 'test'; $subscription->name = 'test';
$subscription->courseid = $courseid; $subscription->courseid = $courseid;
@ -701,7 +705,7 @@ class core_calendar_events_testcase extends advanced_testcase {
$this->resetAfterTest(true); $this->resetAfterTest(true);
// Create a mock subscription. // Create a mock subscription.
$subscription = new stdClass(); $subscription = new \stdClass();
$subscription->eventtype = 'site'; $subscription->eventtype = 'site';
$subscription->name = 'test'; $subscription->name = 'test';
$subscription->courseid = $this->course->id; $subscription->courseid = $this->course->id;
@ -732,7 +736,7 @@ class core_calendar_events_testcase extends advanced_testcase {
$categoryid = $this->course->category; $categoryid = $this->course->category;
// Create a mock subscription. // Create a mock subscription.
$subscription = new stdClass(); $subscription = new \stdClass();
$subscription->eventtype = 'category'; $subscription->eventtype = 'category';
$subscription->name = 'test'; $subscription->name = 'test';
$subscription->categoryid = $categoryid; $subscription->categoryid = $categoryid;
@ -763,7 +767,7 @@ class core_calendar_events_testcase extends advanced_testcase {
$this->resetAfterTest(true); $this->resetAfterTest(true);
// Create a mock subscription. // Create a mock subscription.
$subscription = new stdClass(); $subscription = new \stdClass();
$subscription->eventtype = 'course'; $subscription->eventtype = 'course';
$subscription->name = 'test'; $subscription->name = 'test';
$subscription->courseid = $this->course->id; $subscription->courseid = $this->course->id;
@ -797,7 +801,7 @@ class core_calendar_events_testcase extends advanced_testcase {
$groupid = 42; $groupid = 42;
// Create a mock subscription. // Create a mock subscription.
$subscription = new stdClass(); $subscription = new \stdClass();
$subscription->eventtype = 'group'; $subscription->eventtype = 'group';
$subscription->name = 'test'; $subscription->name = 'test';
$subscription->groupid = $groupid; $subscription->groupid = $groupid;

View file

@ -17,12 +17,12 @@
/** /**
* This file contains the class that handles testing of course events. * This file contains the class that handles testing of course events.
* *
* @package core * @package core_course
* @copyright 2016 Stephen Bourget * @copyright 2016 Stephen Bourget
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
defined('MOODLE_INTERNAL') || die(); namespace core_course\event;
/** /**
* This file contains the class that handles testing of course events. * This file contains the class that handles testing of course events.
@ -31,7 +31,7 @@ defined('MOODLE_INTERNAL') || die();
* @copyright 2016 Stephen Bourget * @copyright 2016 Stephen Bourget
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
class core_course_events_testcase extends advanced_testcase { class events_test extends \advanced_testcase {
/** /**
* Tests set up * Tests set up
@ -56,7 +56,7 @@ class core_course_events_testcase extends advanced_testcase {
// Trigger an event: course category viewed. // Trigger an event: course category viewed.
$eventparams = array( $eventparams = array(
'objectid' => $category->id, 'objectid' => $category->id,
'context' => context_system::instance(), 'context' => \context_system::instance(),
); );
$event = \core\event\course_category_viewed::create($eventparams); $event = \core\event\course_category_viewed::create($eventparams);
@ -83,13 +83,13 @@ class core_course_events_testcase extends advanced_testcase {
public function test_course_information_viewed_event() { public function test_course_information_viewed_event() {
// Create a course. // Create a course.
$data = new stdClass(); $data = new \stdClass();
$course = $this->getDataGenerator()->create_course($data); $course = $this->getDataGenerator()->create_course($data);
// Trigger an event: course category viewed. // Trigger an event: course category viewed.
$eventparams = array( $eventparams = array(
'objectid' => $course->id, 'objectid' => $course->id,
'context' => context_course::instance($course->id), 'context' => \context_course::instance($course->id),
); );
$event = \core\event\course_information_viewed::create($eventparams); $event = \core\event\course_information_viewed::create($eventparams);
@ -118,7 +118,7 @@ class core_course_events_testcase extends advanced_testcase {
// Trigger an event: courses searched. // Trigger an event: courses searched.
$search = 'mysearch'; $search = 'mysearch';
$eventparams = array( $eventparams = array(
'context' => context_system::instance(), 'context' => \context_system::instance(),
'other' => array('query' => $search) 'other' => array('query' => $search)
); );

View file

@ -17,12 +17,14 @@
/** /**
* Course global search unit tests. * Course global search unit tests.
* *
* @package core * @package core_course
* @category phpunit * @category phpunit
* @copyright 2016 David Monllao {@link http://www.davidmonllao.com} * @copyright 2016 David Monllao {@link http://www.davidmonllao.com}
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
namespace core_course\search;
defined('MOODLE_INTERNAL') || die(); defined('MOODLE_INTERNAL') || die();
global $CFG; global $CFG;
@ -36,7 +38,7 @@ require_once($CFG->dirroot . '/search/tests/fixtures/testable_core_search.php');
* @copyright 2016 David Monllao {@link http://www.davidmonllao.com} * @copyright 2016 David Monllao {@link http://www.davidmonllao.com}
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
class course_search_testcase extends advanced_testcase { class search_test extends \advanced_testcase {
/** /**
* @var string Area id * @var string Area id
@ -62,7 +64,7 @@ class course_search_testcase extends advanced_testcase {
$this->customfieldareaid = \core_search\manager::generate_areaid('core_course', 'customfield'); $this->customfieldareaid = \core_search\manager::generate_areaid('core_course', 'customfield');
// Set \core_search::instance to the mock_search_engine as we don't require the search engine to be working to test this. // Set \core_search::instance to the mock_search_engine as we don't require the search engine to be working to test this.
$search = testable_core_search::instance(); $search = \testable_core_search::instance();
} }
/** /**
@ -85,7 +87,7 @@ class course_search_testcase extends advanced_testcase {
$this->getDataGenerator()->enrol_user($user1->id, $course1->id, 'student'); $this->getDataGenerator()->enrol_user($user1->id, $course1->id, 'student');
$this->getDataGenerator()->enrol_user($user2->id, $course1->id, 'student'); $this->getDataGenerator()->enrol_user($user2->id, $course1->id, 'student');
$record = new stdClass(); $record = new \stdClass();
$record->course = $course1->id; $record->course = $course1->id;
// All records. // All records.
@ -134,36 +136,36 @@ class course_search_testcase extends advanced_testcase {
// Find the first block to use for a block context. // Find the first block to use for a block context.
$blockid = array_values($DB->get_records('block_instances', null, 'id', 'id', 0, 1))[0]->id; $blockid = array_values($DB->get_records('block_instances', null, 'id', 'id', 0, 1))[0]->id;
$blockcontext = context_block::instance($blockid); $blockcontext = \context_block::instance($blockid);
// Check with block context - should be null. // Check with block context - should be null.
$this->assertNull($searcharea->get_document_recordset(0, $blockcontext)); $this->assertNull($searcharea->get_document_recordset(0, $blockcontext));
// Check with user context - should be null. // Check with user context - should be null.
$this->setAdminUser(); $this->setAdminUser();
$usercontext = context_user::instance($USER->id); $usercontext = \context_user::instance($USER->id);
$this->assertNull($searcharea->get_document_recordset(0, $usercontext)); $this->assertNull($searcharea->get_document_recordset(0, $usercontext));
// Check with module context - should be null. // Check with module context - should be null.
$modcontext = context_module::instance($forum->cmid); $modcontext = \context_module::instance($forum->cmid);
$this->assertNull($searcharea->get_document_recordset(0, $modcontext)); $this->assertNull($searcharea->get_document_recordset(0, $modcontext));
// Check with course context - should return specified course if timestamp allows. // Check with course context - should return specified course if timestamp allows.
$coursecontext = context_course::instance($course3->id); $coursecontext = \context_course::instance($course3->id);
$results = self::recordset_to_ids($searcharea->get_document_recordset(3, $coursecontext)); $results = self::recordset_to_ids($searcharea->get_document_recordset(3, $coursecontext));
$this->assertEquals([$course3->id], $results); $this->assertEquals([$course3->id], $results);
$results = self::recordset_to_ids($searcharea->get_document_recordset(4, $coursecontext)); $results = self::recordset_to_ids($searcharea->get_document_recordset(4, $coursecontext));
$this->assertEquals([], $results); $this->assertEquals([], $results);
// Check with category context - should return course in categories and subcategories. // Check with category context - should return course in categories and subcategories.
$catcontext = context_coursecat::instance($cat1->id); $catcontext = \context_coursecat::instance($cat1->id);
$results = self::recordset_to_ids($searcharea->get_document_recordset(0, $catcontext)); $results = self::recordset_to_ids($searcharea->get_document_recordset(0, $catcontext));
$this->assertEquals([$course1->id, $course2->id], $results); $this->assertEquals([$course1->id, $course2->id], $results);
$results = self::recordset_to_ids($searcharea->get_document_recordset(2, $catcontext)); $results = self::recordset_to_ids($searcharea->get_document_recordset(2, $catcontext));
$this->assertEquals([$course2->id], $results); $this->assertEquals([$course2->id], $results);
// Check with system context and null - should return all these courses + site course. // Check with system context and null - should return all these courses + site course.
$systemcontext = context_system::instance(); $systemcontext = \context_system::instance();
$results = self::recordset_to_ids($searcharea->get_document_recordset(0, $systemcontext)); $results = self::recordset_to_ids($searcharea->get_document_recordset(0, $systemcontext));
$this->assertEquals([$SITE->id, $course1->id, $course2->id, $course3->id], $results); $this->assertEquals([$SITE->id, $course1->id, $course2->id, $course3->id], $results);
$results = self::recordset_to_ids($searcharea->get_document_recordset(0, null)); $results = self::recordset_to_ids($searcharea->get_document_recordset(0, null));
@ -180,7 +182,7 @@ class course_search_testcase extends advanced_testcase {
* @param moodle_recordset $rs Recordset to convert (and close) * @param moodle_recordset $rs Recordset to convert (and close)
* @return array Array of IDs from records indexed by number (0, 1, 2, ...) * @return array Array of IDs from records indexed by number (0, 1, 2, ...)
*/ */
protected static function recordset_to_ids(moodle_recordset $rs) { protected static function recordset_to_ids(\moodle_recordset $rs) {
$results = []; $results = [];
foreach ($rs as $rec) { foreach ($rs as $rec) {
$results[] = $rec->id; $results[] = $rec->id;
@ -312,37 +314,37 @@ class course_search_testcase extends advanced_testcase {
// Find the first block to use for a block context. // Find the first block to use for a block context.
$blockid = array_values($DB->get_records('block_instances', null, 'id', 'id', 0, 1))[0]->id; $blockid = array_values($DB->get_records('block_instances', null, 'id', 'id', 0, 1))[0]->id;
$blockcontext = context_block::instance($blockid); $blockcontext = \context_block::instance($blockid);
// Check with block context - should be null. // Check with block context - should be null.
$this->assertNull($searcharea->get_document_recordset(0, $blockcontext)); $this->assertNull($searcharea->get_document_recordset(0, $blockcontext));
// Check with user context - should be null. // Check with user context - should be null.
$this->setAdminUser(); $this->setAdminUser();
$usercontext = context_user::instance($USER->id); $usercontext = \context_user::instance($USER->id);
$this->assertNull($searcharea->get_document_recordset(0, $usercontext)); $this->assertNull($searcharea->get_document_recordset(0, $usercontext));
// Check with module context - should be null. // Check with module context - should be null.
$modcontext = context_module::instance($forum->cmid); $modcontext = \context_module::instance($forum->cmid);
$this->assertNull($searcharea->get_document_recordset(0, $modcontext)); $this->assertNull($searcharea->get_document_recordset(0, $modcontext));
// Check with course context - should return specific course entries. // Check with course context - should return specific course entries.
$coursecontext = context_course::instance($course1->id); $coursecontext = \context_course::instance($course1->id);
$results = self::recordset_to_ids($searcharea->get_document_recordset(0, $coursecontext)); $results = self::recordset_to_ids($searcharea->get_document_recordset(0, $coursecontext));
$this->assertEquals([$course1section3id, $course1section2id], $results); $this->assertEquals([$course1section3id, $course1section2id], $results);
$results = self::recordset_to_ids($searcharea->get_document_recordset(2, $coursecontext)); $results = self::recordset_to_ids($searcharea->get_document_recordset(2, $coursecontext));
$this->assertEquals([$course1section2id], $results); $this->assertEquals([$course1section2id], $results);
// Check with category context - should return course in categories and subcategories. // Check with category context - should return course in categories and subcategories.
$catcontext = context_coursecat::instance($cat1->id); $catcontext = \context_coursecat::instance($cat1->id);
$results = self::recordset_to_ids($searcharea->get_document_recordset(0, $catcontext)); $results = self::recordset_to_ids($searcharea->get_document_recordset(0, $catcontext));
$this->assertEquals([$course1section3id, $course1section2id, $course2section1id], $results); $this->assertEquals([$course1section3id, $course1section2id, $course2section1id], $results);
$catcontext = context_coursecat::instance($cat2->id); $catcontext = \context_coursecat::instance($cat2->id);
$results = self::recordset_to_ids($searcharea->get_document_recordset(0, $catcontext)); $results = self::recordset_to_ids($searcharea->get_document_recordset(0, $catcontext));
$this->assertEquals([$course2section1id], $results); $this->assertEquals([$course2section1id], $results);
// Check with system context - should return everything (same as null, tested first). // Check with system context - should return everything (same as null, tested first).
$systemcontext = context_system::instance(); $systemcontext = \context_system::instance();
$results = self::recordset_to_ids($searcharea->get_document_recordset(0, $systemcontext)); $results = self::recordset_to_ids($searcharea->get_document_recordset(0, $systemcontext));
$this->assertEquals([$course1section3id, $course1section2id, $course2section1id], $results); $this->assertEquals([$course1section3id, $course1section2id, $course2section1id], $results);
} }
@ -572,7 +574,7 @@ class course_search_testcase extends advanced_testcase {
// Prevent users viewing course lists. // Prevent users viewing course lists.
$userrole = $DB->get_field('role', 'id', ['shortname' => 'user'], MUST_EXIST); $userrole = $DB->get_field('role', 'id', ['shortname' => 'user'], MUST_EXIST);
assign_capability('moodle/category:viewcourselist', CAP_PREVENT, $userrole, context_system::instance()->id, true); assign_capability('moodle/category:viewcourselist', CAP_PREVENT, $userrole, \context_system::instance()->id, true);
// The following assertions check whether each user can view the indexed customfield data record. // The following assertions check whether each user can view the indexed customfield data record.
$course1data = \core_customfield\data::get_record([ $course1data = \core_customfield\data::get_record([

View file

@ -23,6 +23,11 @@
* @since Moodle 3.1 * @since Moodle 3.1
*/ */
namespace enrol_guest\external;
use enrol_guest_external;
use externallib_advanced_testcase;
defined('MOODLE_INTERNAL') || die(); defined('MOODLE_INTERNAL') || die();
global $CFG; global $CFG;
@ -38,7 +43,7 @@ require_once($CFG->dirroot . '/webservice/tests/helpers.php');
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since Moodle 3.1 * @since Moodle 3.1
*/ */
class enrol_guest_external_testcase extends externallib_advanced_testcase { class external_test extends externallib_advanced_testcase {
/** /**
* Test get_instance_info * Test get_instance_info
@ -54,7 +59,7 @@ class enrol_guest_external_testcase extends externallib_advanced_testcase {
$studentrole = $DB->get_record('role', array('shortname' => 'student')); $studentrole = $DB->get_record('role', array('shortname' => 'student'));
$coursedata = new stdClass(); $coursedata = new \stdClass();
$coursedata->visible = 0; $coursedata->visible = 0;
$course = self::getDataGenerator()->create_course($coursedata); $course = self::getDataGenerator()->create_course($coursedata);
@ -69,7 +74,7 @@ class enrol_guest_external_testcase extends externallib_advanced_testcase {
$this->setAdminUser(); $this->setAdminUser();
$result = enrol_guest_external::get_instance_info($instance); $result = enrol_guest_external::get_instance_info($instance);
$result = external_api::clean_returnvalue(enrol_guest_external::get_instance_info_returns(), $result); $result = \external_api::clean_returnvalue(enrol_guest_external::get_instance_info_returns(), $result);
$this->assertEquals($instance, $result['instanceinfo']['id']); $this->assertEquals($instance, $result['instanceinfo']['id']);
$this->assertEquals($course->id, $result['instanceinfo']['courseid']); $this->assertEquals($course->id, $result['instanceinfo']['courseid']);
@ -81,7 +86,7 @@ class enrol_guest_external_testcase extends externallib_advanced_testcase {
$DB->set_field('enrol', 'status', ENROL_INSTANCE_DISABLED, array('id' => $instance)); $DB->set_field('enrol', 'status', ENROL_INSTANCE_DISABLED, array('id' => $instance));
$result = enrol_guest_external::get_instance_info($instance); $result = enrol_guest_external::get_instance_info($instance);
$result = external_api::clean_returnvalue(enrol_guest_external::get_instance_info_returns(), $result); $result = \external_api::clean_returnvalue(enrol_guest_external::get_instance_info_returns(), $result);
$this->assertEquals($instance, $result['instanceinfo']['id']); $this->assertEquals($instance, $result['instanceinfo']['id']);
$this->assertEquals($course->id, $result['instanceinfo']['courseid']); $this->assertEquals($course->id, $result['instanceinfo']['courseid']);
$this->assertEquals('guest', $result['instanceinfo']['type']); $this->assertEquals('guest', $result['instanceinfo']['type']);
@ -96,7 +101,7 @@ class enrol_guest_external_testcase extends externallib_advanced_testcase {
$this->setUser($user); $this->setUser($user);
try { try {
enrol_guest_external::get_instance_info($instance); enrol_guest_external::get_instance_info($instance);
} catch (moodle_exception $e) { } catch (\moodle_exception $e) {
$this->assertEquals('coursehidden', $e->errorcode); $this->assertEquals('coursehidden', $e->errorcode);
} }
@ -104,7 +109,7 @@ class enrol_guest_external_testcase extends externallib_advanced_testcase {
$DB->set_field('course', 'visible', 1, array('id' => $course->id)); $DB->set_field('course', 'visible', 1, array('id' => $course->id));
$this->setUser($student); $this->setUser($student);
$result = enrol_guest_external::get_instance_info($instance); $result = enrol_guest_external::get_instance_info($instance);
$result = external_api::clean_returnvalue(enrol_guest_external::get_instance_info_returns(), $result); $result = \external_api::clean_returnvalue(enrol_guest_external::get_instance_info_returns(), $result);
$this->assertEquals($instance, $result['instanceinfo']['id']); $this->assertEquals($instance, $result['instanceinfo']['id']);
$this->assertEquals($course->id, $result['instanceinfo']['courseid']); $this->assertEquals($course->id, $result['instanceinfo']['courseid']);

View file

@ -24,12 +24,16 @@
* @since Moodle 3.4 * @since Moodle 3.4
*/ */
namespace core_filters\external;
use externallib_advanced_testcase;
use core_filters\external;
defined('MOODLE_INTERNAL') || die(); defined('MOODLE_INTERNAL') || die();
global $CFG; global $CFG;
require_once($CFG->dirroot . '/webservice/tests/helpers.php'); require_once($CFG->dirroot . '/webservice/tests/helpers.php');
use core_filters\external;
/** /**
* External filter functions unit tests. * External filter functions unit tests.
@ -40,7 +44,7 @@ use core_filters\external;
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since Moodle 3.4 * @since Moodle 3.4
*/ */
class core_filter_external_testcase extends externallib_advanced_testcase { class external_test extends externallib_advanced_testcase {
/** /**
* Test get_available_in_context_system * Test get_available_in_context_system
@ -73,7 +77,7 @@ class core_filter_external_testcase extends externallib_advanced_testcase {
} }
$result = external::get_available_in_context(array(array('contextlevel' => 'coursecat', 'instanceid' => $category->id))); $result = external::get_available_in_context(array(array('contextlevel' => 'coursecat', 'instanceid' => $category->id)));
$result = external_api::clean_returnvalue(external::get_available_in_context_returns(), $result); $result = \external_api::clean_returnvalue(external::get_available_in_context_returns(), $result);
$this->assertEmpty($result['filters']); // No filters, all disabled. $this->assertEmpty($result['filters']); // No filters, all disabled.
$this->assertEmpty($result['warnings']); $this->assertEmpty($result['warnings']);
@ -83,16 +87,16 @@ class core_filter_external_testcase extends externallib_advanced_testcase {
filter_set_global_state($firstfilter, TEXTFILTER_ON); filter_set_global_state($firstfilter, TEXTFILTER_ON);
$result = external::get_available_in_context(array(array('contextlevel' => 'coursecat', 'instanceid' => $category->id))); $result = external::get_available_in_context(array(array('contextlevel' => 'coursecat', 'instanceid' => $category->id)));
$result = external_api::clean_returnvalue(external::get_available_in_context_returns(), $result); $result = \external_api::clean_returnvalue(external::get_available_in_context_returns(), $result);
$this->assertEmpty($result['warnings']); $this->assertEmpty($result['warnings']);
$this->assertEquals($firstfilter, $result['filters'][0]['filter']); // OK, the filter is enabled. $this->assertEquals($firstfilter, $result['filters'][0]['filter']); // OK, the filter is enabled.
$this->assertEquals(TEXTFILTER_INHERIT, $result['filters'][0]['localstate']); // Inherits the parent context status. $this->assertEquals(TEXTFILTER_INHERIT, $result['filters'][0]['localstate']); // Inherits the parent context status.
$this->assertEquals(TEXTFILTER_ON, $result['filters'][0]['inheritedstate']); // In the parent context is available. $this->assertEquals(TEXTFILTER_ON, $result['filters'][0]['inheritedstate']); // In the parent context is available.
// Set off the same filter at local context level. // Set off the same filter at local context level.
filter_set_local_state($firstfilter, context_coursecat::instance($category->id)->id, TEXTFILTER_OFF); filter_set_local_state($firstfilter, \context_coursecat::instance($category->id)->id, TEXTFILTER_OFF);
$result = external::get_available_in_context(array(array('contextlevel' => 'coursecat', 'instanceid' => $category->id))); $result = external::get_available_in_context(array(array('contextlevel' => 'coursecat', 'instanceid' => $category->id)));
$result = external_api::clean_returnvalue(external::get_available_in_context_returns(), $result); $result = \external_api::clean_returnvalue(external::get_available_in_context_returns(), $result);
$this->assertEmpty($result['warnings']); $this->assertEmpty($result['warnings']);
$this->assertEquals($firstfilter, $result['filters'][0]['filter']); // OK, the filter is enabled globally. $this->assertEquals($firstfilter, $result['filters'][0]['filter']); // OK, the filter is enabled globally.
$this->assertEquals(TEXTFILTER_OFF, $result['filters'][0]['localstate']); // It is not available in this context. $this->assertEquals(TEXTFILTER_OFF, $result['filters'][0]['localstate']); // It is not available in this context.
@ -117,7 +121,7 @@ class core_filter_external_testcase extends externallib_advanced_testcase {
} }
$result = external::get_available_in_context(array(array('contextlevel' => 'course', 'instanceid' => $course->id))); $result = external::get_available_in_context(array(array('contextlevel' => 'course', 'instanceid' => $course->id)));
$result = external_api::clean_returnvalue(external::get_available_in_context_returns(), $result); $result = \external_api::clean_returnvalue(external::get_available_in_context_returns(), $result);
$this->assertEmpty($result['filters']); // No filters, all disabled at global level. $this->assertEmpty($result['filters']); // No filters, all disabled at global level.
$this->assertEmpty($result['warnings']); $this->assertEmpty($result['warnings']);
@ -127,16 +131,16 @@ class core_filter_external_testcase extends externallib_advanced_testcase {
filter_set_global_state($firstfilter, TEXTFILTER_ON); filter_set_global_state($firstfilter, TEXTFILTER_ON);
$result = external::get_available_in_context(array(array('contextlevel' => 'course', 'instanceid' => $course->id))); $result = external::get_available_in_context(array(array('contextlevel' => 'course', 'instanceid' => $course->id)));
$result = external_api::clean_returnvalue(external::get_available_in_context_returns(), $result); $result = \external_api::clean_returnvalue(external::get_available_in_context_returns(), $result);
$this->assertEmpty($result['warnings']); $this->assertEmpty($result['warnings']);
$this->assertEquals($firstfilter, $result['filters'][0]['filter']); // OK, the filter is enabled. $this->assertEquals($firstfilter, $result['filters'][0]['filter']); // OK, the filter is enabled.
$this->assertEquals(TEXTFILTER_INHERIT, $result['filters'][0]['localstate']); // Inherits the parent context status. $this->assertEquals(TEXTFILTER_INHERIT, $result['filters'][0]['localstate']); // Inherits the parent context status.
$this->assertEquals(TEXTFILTER_ON, $result['filters'][0]['inheritedstate']); // In the parent context is available. $this->assertEquals(TEXTFILTER_ON, $result['filters'][0]['inheritedstate']); // In the parent context is available.
// Set off the same filter at local context level. // Set off the same filter at local context level.
filter_set_local_state($firstfilter, context_course::instance($course->id)->id, TEXTFILTER_OFF); filter_set_local_state($firstfilter, \context_course::instance($course->id)->id, TEXTFILTER_OFF);
$result = external::get_available_in_context(array(array('contextlevel' => 'course', 'instanceid' => $course->id))); $result = external::get_available_in_context(array(array('contextlevel' => 'course', 'instanceid' => $course->id)));
$result = external_api::clean_returnvalue(external::get_available_in_context_returns(), $result); $result = \external_api::clean_returnvalue(external::get_available_in_context_returns(), $result);
$this->assertEmpty($result['warnings']); $this->assertEmpty($result['warnings']);
$this->assertEquals($firstfilter, $result['filters'][0]['filter']); // OK, the filter is enabled globally. $this->assertEquals($firstfilter, $result['filters'][0]['filter']); // OK, the filter is enabled globally.
$this->assertEquals(TEXTFILTER_OFF, $result['filters'][0]['localstate']); // It is not available in this context. $this->assertEquals(TEXTFILTER_OFF, $result['filters'][0]['localstate']); // It is not available in this context.
@ -163,7 +167,7 @@ class core_filter_external_testcase extends externallib_advanced_testcase {
} }
$result = external::get_available_in_context(array(array('contextlevel' => 'module', 'instanceid' => $forum->cmid))); $result = external::get_available_in_context(array(array('contextlevel' => 'module', 'instanceid' => $forum->cmid)));
$result = external_api::clean_returnvalue(external::get_available_in_context_returns(), $result); $result = \external_api::clean_returnvalue(external::get_available_in_context_returns(), $result);
$this->assertEmpty($result['filters']); // No filters, all disabled at global level. $this->assertEmpty($result['filters']); // No filters, all disabled at global level.
$this->assertEmpty($result['warnings']); $this->assertEmpty($result['warnings']);
@ -173,16 +177,16 @@ class core_filter_external_testcase extends externallib_advanced_testcase {
filter_set_global_state($firstfilter, TEXTFILTER_ON); filter_set_global_state($firstfilter, TEXTFILTER_ON);
$result = external::get_available_in_context(array(array('contextlevel' => 'module', 'instanceid' => $forum->cmid))); $result = external::get_available_in_context(array(array('contextlevel' => 'module', 'instanceid' => $forum->cmid)));
$result = external_api::clean_returnvalue(external::get_available_in_context_returns(), $result); $result = \external_api::clean_returnvalue(external::get_available_in_context_returns(), $result);
$this->assertEmpty($result['warnings']); $this->assertEmpty($result['warnings']);
$this->assertEquals($firstfilter, $result['filters'][0]['filter']); // OK, the filter is enabled. $this->assertEquals($firstfilter, $result['filters'][0]['filter']); // OK, the filter is enabled.
$this->assertEquals(TEXTFILTER_INHERIT, $result['filters'][0]['localstate']); // Inherits the parent context status. $this->assertEquals(TEXTFILTER_INHERIT, $result['filters'][0]['localstate']); // Inherits the parent context status.
$this->assertEquals(TEXTFILTER_ON, $result['filters'][0]['inheritedstate']); // In the parent context is available. $this->assertEquals(TEXTFILTER_ON, $result['filters'][0]['inheritedstate']); // In the parent context is available.
// Set off the same filter at local context level. // Set off the same filter at local context level.
filter_set_local_state($firstfilter, context_module::instance($forum->cmid)->id, TEXTFILTER_OFF); filter_set_local_state($firstfilter, \context_module::instance($forum->cmid)->id, TEXTFILTER_OFF);
$result = external::get_available_in_context(array(array('contextlevel' => 'module', 'instanceid' => $forum->cmid))); $result = external::get_available_in_context(array(array('contextlevel' => 'module', 'instanceid' => $forum->cmid)));
$result = external_api::clean_returnvalue(external::get_available_in_context_returns(), $result); $result = \external_api::clean_returnvalue(external::get_available_in_context_returns(), $result);
$this->assertEmpty($result['warnings']); $this->assertEmpty($result['warnings']);
$this->assertEquals($firstfilter, $result['filters'][0]['filter']); // OK, the filter is enabled globally. $this->assertEquals($firstfilter, $result['filters'][0]['filter']); // OK, the filter is enabled globally.
$this->assertEquals(TEXTFILTER_OFF, $result['filters'][0]['localstate']); // It is not available in this context. $this->assertEquals(TEXTFILTER_OFF, $result['filters'][0]['localstate']); // It is not available in this context.
@ -192,7 +196,7 @@ class core_filter_external_testcase extends externallib_advanced_testcase {
$user = $this->getDataGenerator()->create_user(); $user = $this->getDataGenerator()->create_user();
$this->setUser($user); $this->setUser($user);
$result = external::get_available_in_context(array(array('contextlevel' => 'module', 'instanceid' => $forum->cmid))); $result = external::get_available_in_context(array(array('contextlevel' => 'module', 'instanceid' => $forum->cmid)));
$result = external_api::clean_returnvalue(external::get_available_in_context_returns(), $result); $result = \external_api::clean_returnvalue(external::get_available_in_context_returns(), $result);
$this->assertNotEmpty($result['warnings']); $this->assertNotEmpty($result['warnings']);
$this->assertEquals('context', $result['warnings'][0]['item']); $this->assertEquals('context', $result['warnings'][0]['item']);
$this->assertEquals($forum->cmid, $result['warnings'][0]['itemid']); $this->assertEquals($forum->cmid, $result['warnings'][0]['itemid']);

View file

@ -23,6 +23,8 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU Public License * @license http://www.gnu.org/copyleft/gpl.html GNU Public License
*/ */
namespace core_grades\event;
defined('MOODLE_INTERNAL') || die(); defined('MOODLE_INTERNAL') || die();
global $CFG; global $CFG;
@ -36,7 +38,7 @@ require_once($CFG->dirroot . '/grade/lib.php');
* @copyright 2017 Stephen Bourget * @copyright 2017 Stephen Bourget
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
class core_grade_events_test extends advanced_testcase { class events_test extends \advanced_testcase {
/** @var stdClass the course used for testing */ /** @var stdClass the course used for testing */
private $course; private $course;
@ -63,7 +65,7 @@ class core_grade_events_test extends advanced_testcase {
// Create a grade letter created event. // Create a grade letter created event.
$event = \core\event\grade_letter_created::create(array( $event = \core\event\grade_letter_created::create(array(
'objectid' => 10, 'objectid' => 10,
'context' => context_course::instance($this->course->id) 'context' => \context_course::instance($this->course->id)
)); ));
// Trigger and capture the event. // Trigger and capture the event.
@ -74,7 +76,7 @@ class core_grade_events_test extends advanced_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\core\event\grade_letter_created', $event); $this->assertInstanceOf('\core\event\grade_letter_created', $event);
$this->assertEquals(context_course::instance($this->course->id), $event->get_context()); $this->assertEquals(\context_course::instance($this->course->id), $event->get_context());
} }
/** /**
@ -87,7 +89,7 @@ class core_grade_events_test extends advanced_testcase {
// Create a grade letter deleted event. // Create a grade letter deleted event.
$event = \core\event\grade_letter_deleted::create(array( $event = \core\event\grade_letter_deleted::create(array(
'objectid' => 10, 'objectid' => 10,
'context' => context_course::instance($this->course->id) 'context' => \context_course::instance($this->course->id)
)); ));
// Trigger and capture the event. // Trigger and capture the event.
@ -98,7 +100,7 @@ class core_grade_events_test extends advanced_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\core\event\grade_letter_deleted', $event); $this->assertInstanceOf('\core\event\grade_letter_deleted', $event);
$this->assertEquals(context_course::instance($this->course->id), $event->get_context()); $this->assertEquals(\context_course::instance($this->course->id), $event->get_context());
} }
/** /**
@ -111,7 +113,7 @@ class core_grade_events_test extends advanced_testcase {
// Create a grade letter updated event. // Create a grade letter updated event.
$event = \core\event\grade_letter_updated::create(array( $event = \core\event\grade_letter_updated::create(array(
'objectid' => 10, 'objectid' => 10,
'context' => context_course::instance($this->course->id) 'context' => \context_course::instance($this->course->id)
)); ));
// Trigger and capture the event. // Trigger and capture the event.
@ -122,14 +124,14 @@ class core_grade_events_test extends advanced_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\core\event\grade_letter_updated', $event); $this->assertInstanceOf('\core\event\grade_letter_updated', $event);
$this->assertEquals(context_course::instance($this->course->id), $event->get_context()); $this->assertEquals(\context_course::instance($this->course->id), $event->get_context());
} }
/** /**
* Test the scale created event. * Test the scale created event.
*/ */
public function test_scale_created() { public function test_scale_created() {
$gradescale = new grade_scale(); $gradescale = new \grade_scale();
$gradescale->name = 'unittestscale3'; $gradescale->name = 'unittestscale3';
$gradescale->courseid = $this->course->id; $gradescale->courseid = $this->course->id;
$gradescale->userid = 317; $gradescale->userid = 317;
@ -148,14 +150,14 @@ class core_grade_events_test extends advanced_testcase {
$this->assertInstanceOf('\core\event\scale_created', $event); $this->assertInstanceOf('\core\event\scale_created', $event);
$this->assertEquals($id, $event->objectid); $this->assertEquals($id, $event->objectid);
$this->assertEquals($url, $event->get_url()); $this->assertEquals($url, $event->get_url());
$this->assertEquals(context_course::instance($this->course->id), $event->get_context()); $this->assertEquals(\context_course::instance($this->course->id), $event->get_context());
} }
/** /**
* Test the scale deleted event. * Test the scale deleted event.
*/ */
public function test_scale_deleted() { public function test_scale_deleted() {
$gradescale = new grade_scale(); $gradescale = new \grade_scale();
$gradescale->name = 'unittestscale3'; $gradescale->name = 'unittestscale3';
$gradescale->courseid = $this->course->id; $gradescale->courseid = $this->course->id;
$gradescale->userid = 317; $gradescale->userid = 317;
@ -171,14 +173,14 @@ class core_grade_events_test extends advanced_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\core\event\scale_deleted', $event); $this->assertInstanceOf('\core\event\scale_deleted', $event);
$this->assertEquals(context_course::instance($this->course->id), $event->get_context()); $this->assertEquals(\context_course::instance($this->course->id), $event->get_context());
} }
/** /**
* Test the scale updated event. * Test the scale updated event.
*/ */
public function test_scale_updated() { public function test_scale_updated() {
$gradescale = new grade_scale(); $gradescale = new \grade_scale();
$gradescale->name = 'unittestscale3'; $gradescale->name = 'unittestscale3';
$gradescale->courseid = $this->course->id; $gradescale->courseid = $this->course->id;
$gradescale->userid = 317; $gradescale->userid = 317;
@ -199,6 +201,6 @@ class core_grade_events_test extends advanced_testcase {
$this->assertInstanceOf('\core\event\scale_updated', $event); $this->assertInstanceOf('\core\event\scale_updated', $event);
$this->assertEquals($id, $event->objectid); $this->assertEquals($id, $event->objectid);
$this->assertEquals($url, $event->get_url()); $this->assertEquals($url, $event->get_url());
$this->assertEquals(context_course::instance($this->course->id), $event->get_context()); $this->assertEquals(\context_course::instance($this->course->id), $event->get_context());
} }
} }

View file

@ -24,6 +24,10 @@
* @since Moodle 3.8 * @since Moodle 3.8
*/ */
namespace core_h5p\external;
use externallib_advanced_testcase;
defined('MOODLE_INTERNAL') || die(); defined('MOODLE_INTERNAL') || die();
global $CFG; global $CFG;
@ -44,7 +48,7 @@ use core_h5p\local\library\autoloader;
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since Moodle 3.8 * @since Moodle 3.8
*/ */
class core_h5p_external_testcase extends externallib_advanced_testcase { class external_test extends externallib_advanced_testcase {
protected function setUp(): void { protected function setUp(): void {
parent::setUp(); parent::setUp();
@ -82,7 +86,7 @@ class core_h5p_external_testcase extends externallib_advanced_testcase {
// Call the WS. // Call the WS.
$result = external::get_trusted_h5p_file($url->out(false), 0, 0, 0, 0); $result = external::get_trusted_h5p_file($url->out(false), 0, 0, 0, 0);
$result = external_api::clean_returnvalue(external::get_trusted_h5p_file_returns(), $result); $result = \external_api::clean_returnvalue(external::get_trusted_h5p_file_returns(), $result);
// Expected result: Just 1 record on files and none on warnings. // Expected result: Just 1 record on files and none on warnings.
$this->assertCount(1, $result['files']); $this->assertCount(1, $result['files']);
$this->assertCount(0, $result['warnings']); $this->assertCount(0, $result['warnings']);
@ -106,7 +110,7 @@ class core_h5p_external_testcase extends externallib_advanced_testcase {
// Create an empty url. // Create an empty url.
$urlempty = ''; $urlempty = '';
$result = external::get_trusted_h5p_file($urlempty, 0, 0, 0, 0); $result = external::get_trusted_h5p_file($urlempty, 0, 0, 0, 0);
$result = external_api::clean_returnvalue(external::get_trusted_h5p_file_returns(), $result); $result = \external_api::clean_returnvalue(external::get_trusted_h5p_file_returns(), $result);
// Expected result: Just 1 record on warnings and none on files. // Expected result: Just 1 record on warnings and none on files.
$this->assertCount(0, $result['files']); $this->assertCount(0, $result['files']);
$this->assertCount(1, $result['warnings']); $this->assertCount(1, $result['warnings']);
@ -117,7 +121,7 @@ class core_h5p_external_testcase extends externallib_advanced_testcase {
// Create a non-local URL. // Create a non-local URL.
$urlnonlocal = 'http://www.google.com/pluginfile.php/644/block_html/content/arithmetic-quiz-1-1.h5p'; $urlnonlocal = 'http://www.google.com/pluginfile.php/644/block_html/content/arithmetic-quiz-1-1.h5p';
$result = external::get_trusted_h5p_file($urlnonlocal, 0, 0, 0, 0); $result = external::get_trusted_h5p_file($urlnonlocal, 0, 0, 0, 0);
$result = external_api::clean_returnvalue(external::get_trusted_h5p_file_returns(), $result); $result = \external_api::clean_returnvalue(external::get_trusted_h5p_file_returns(), $result);
// Expected result: Just 1 record on warnings and none on files. // Expected result: Just 1 record on warnings and none on files.
$this->assertCount(0, $result['files']); $this->assertCount(0, $result['files']);
$this->assertCount(1, $result['warnings']); $this->assertCount(1, $result['warnings']);
@ -145,7 +149,7 @@ class core_h5p_external_testcase extends externallib_advanced_testcase {
); );
// Call the ws. // Call the ws.
$result = external::get_trusted_h5p_file($filenotfoundurl->out(), 0, 0, 0, 0); $result = external::get_trusted_h5p_file($filenotfoundurl->out(), 0, 0, 0, 0);
$result = external_api::clean_returnvalue(external::get_trusted_h5p_file_returns(), $result); $result = \external_api::clean_returnvalue(external::get_trusted_h5p_file_returns(), $result);
// Expected result: Just 1 record on warnings and none on files. // Expected result: Just 1 record on warnings and none on files.
$this->assertCount(0, $result['files']); $this->assertCount(0, $result['files']);
$this->assertCount(1, $result['warnings']); $this->assertCount(1, $result['warnings']);
@ -185,7 +189,7 @@ class core_h5p_external_testcase extends externallib_advanced_testcase {
// Call the WS. // Call the WS.
$result = external::get_trusted_h5p_file($url->out(), 0, 0, 0, 0); $result = external::get_trusted_h5p_file($url->out(), 0, 0, 0, 0);
$result = external_api::clean_returnvalue(external::get_trusted_h5p_file_returns(), $result); $result = \external_api::clean_returnvalue(external::get_trusted_h5p_file_returns(), $result);
// Check info export file to compare with the ws's results. // Check info export file to compare with the ws's results.
$this->assertEquals($deployedfile['filepath'], $result['files'][0]['filepath']); $this->assertEquals($deployedfile['filepath'], $result['files'][0]['filepath']);
@ -230,7 +234,7 @@ class core_h5p_external_testcase extends externallib_advanced_testcase {
// Call the WS. // Call the WS.
$result = external::get_trusted_h5p_file($url->out(false), 0, 0, 0, 0); $result = external::get_trusted_h5p_file($url->out(false), 0, 0, 0, 0);
$result = external_api::clean_returnvalue(external::get_trusted_h5p_file_returns(), $result); $result = \external_api::clean_returnvalue(external::get_trusted_h5p_file_returns(), $result);
// Expected result: Just 1 record on files and none on warnings. // Expected result: Just 1 record on files and none on warnings.
$this->assertCount(1, $result['files']); $this->assertCount(1, $result['files']);
$this->assertCount(0, $result['warnings']); $this->assertCount(0, $result['warnings']);

View file

@ -14,6 +14,10 @@
// You should have received a copy of the GNU General Public License // You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>. // along with Moodle. If not, see <http://www.gnu.org/licenses/>.
namespace core;
use externallib_advanced_testcase;
defined('MOODLE_INTERNAL') || die(); defined('MOODLE_INTERNAL') || die();
global $CFG; global $CFG;
@ -28,7 +32,7 @@ require_once($CFG->dirroot . '/webservice/tests/helpers.php');
* @copyright 2012 Jerome Mouneyrac * @copyright 2012 Jerome Mouneyrac
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
class core_external_testcase extends externallib_advanced_testcase { class external_externallib_test extends externallib_advanced_testcase {
/** /**
* Test get_string * Test get_string
@ -36,44 +40,44 @@ class core_external_testcase extends externallib_advanced_testcase {
public function test_get_string() { public function test_get_string() {
$this->resetAfterTest(true); $this->resetAfterTest(true);
$service = new stdClass(); $service = new \stdClass();
$service->name = 'Dummy Service'; $service->name = 'Dummy Service';
$service->id = 12; $service->id = 12;
// String with two parameters. // String with two parameters.
$returnedstring = core_external::get_string('addservice', 'webservice', null, $returnedstring = \core_external::get_string('addservice', 'webservice', null,
array(array('name' => 'name', 'value' => $service->name), array(array('name' => 'name', 'value' => $service->name),
array('name' => 'id', 'value' => $service->id))); array('name' => 'id', 'value' => $service->id)));
// We need to execute the return values cleaning process to simulate the web service server. // We need to execute the return values cleaning process to simulate the web service server.
$returnedstring = external_api::clean_returnvalue(core_external::get_string_returns(), $returnedstring); $returnedstring = \external_api::clean_returnvalue(\core_external::get_string_returns(), $returnedstring);
$corestring = get_string('addservice', 'webservice', $service); $corestring = get_string('addservice', 'webservice', $service);
$this->assertSame($corestring, $returnedstring); $this->assertSame($corestring, $returnedstring);
// String with one parameter. // String with one parameter.
$acapname = 'A capability name'; $acapname = 'A capability name';
$returnedstring = core_external::get_string('missingrequiredcapability', 'webservice', null, $returnedstring = \core_external::get_string('missingrequiredcapability', 'webservice', null,
array(array('value' => $acapname))); array(array('value' => $acapname)));
// We need to execute the return values cleaning process to simulate the web service server. // We need to execute the return values cleaning process to simulate the web service server.
$returnedstring = external_api::clean_returnvalue(core_external::get_string_returns(), $returnedstring); $returnedstring = \external_api::clean_returnvalue(\core_external::get_string_returns(), $returnedstring);
$corestring = get_string('missingrequiredcapability', 'webservice', $acapname); $corestring = get_string('missingrequiredcapability', 'webservice', $acapname);
$this->assertSame($corestring, $returnedstring); $this->assertSame($corestring, $returnedstring);
// String without parameters. // String without parameters.
$returnedstring = core_external::get_string('missingpassword', 'webservice'); $returnedstring = \core_external::get_string('missingpassword', 'webservice');
// We need to execute the return values cleaning process to simulate the web service server. // We need to execute the return values cleaning process to simulate the web service server.
$returnedstring = external_api::clean_returnvalue(core_external::get_string_returns(), $returnedstring); $returnedstring = \external_api::clean_returnvalue(\core_external::get_string_returns(), $returnedstring);
$corestring = get_string('missingpassword', 'webservice'); $corestring = get_string('missingpassword', 'webservice');
$this->assertSame($corestring, $returnedstring); $this->assertSame($corestring, $returnedstring);
// String with two parameter but one is invalid (not named). // String with two parameter but one is invalid (not named).
$this->expectException('moodle_exception'); $this->expectException('moodle_exception');
$returnedstring = core_external::get_string('addservice', 'webservice', null, $returnedstring = \core_external::get_string('addservice', 'webservice', null,
array(array('value' => $service->name), array(array('value' => $service->name),
array('name' => 'id', 'value' => $service->id))); array('name' => 'id', 'value' => $service->id)));
} }
@ -82,8 +86,8 @@ class core_external_testcase extends externallib_advanced_testcase {
* Test get_string with HTML. * Test get_string with HTML.
*/ */
public function test_get_string_containing_html() { public function test_get_string_containing_html() {
$result = core_external::get_string('registrationinfo'); $result = \core_external::get_string('registrationinfo');
$actual = external_api::clean_returnvalue(core_external::get_string_returns(), $result); $actual = \external_api::clean_returnvalue(\core_external::get_string_returns(), $result);
$expected = get_string('registrationinfo', 'moodle'); $expected = get_string('registrationinfo', 'moodle');
$this->assertSame($expected, $actual); $this->assertSame($expected, $actual);
} }
@ -92,8 +96,8 @@ class core_external_testcase extends externallib_advanced_testcase {
* Test get_string with arguments containing HTML. * Test get_string with arguments containing HTML.
*/ */
public function test_get_string_with_args_containing_html() { public function test_get_string_with_args_containing_html() {
$result = core_external::get_string('added', 'moodle', null, [['value' => '<strong>Test</strong>']]); $result = \core_external::get_string('added', 'moodle', null, [['value' => '<strong>Test</strong>']]);
$actual = external_api::clean_returnvalue(core_external::get_string_returns(), $result); $actual = \external_api::clean_returnvalue(\core_external::get_string_returns(), $result);
$expected = get_string('added', 'moodle', '<strong>Test</strong>'); $expected = get_string('added', 'moodle', '<strong>Test</strong>');
$this->assertSame($expected, $actual); $this->assertSame($expected, $actual);
} }
@ -106,11 +110,11 @@ class core_external_testcase extends externallib_advanced_testcase {
$stringmanager = get_string_manager(); $stringmanager = get_string_manager();
$service = new stdClass(); $service = new \stdClass();
$service->name = 'Dummy Service'; $service->name = 'Dummy Service';
$service->id = 12; $service->id = 12;
$returnedstrings = core_external::get_strings( $returnedstrings = \core_external::get_strings(
array( array(
array( array(
'stringid' => 'addservice', 'component' => 'webservice', 'stringid' => 'addservice', 'component' => 'webservice',
@ -123,7 +127,7 @@ class core_external_testcase extends externallib_advanced_testcase {
)); ));
// We need to execute the return values cleaning process to simulate the web service server. // We need to execute the return values cleaning process to simulate the web service server.
$returnedstrings = external_api::clean_returnvalue(core_external::get_strings_returns(), $returnedstrings); $returnedstrings = \external_api::clean_returnvalue(\core_external::get_strings_returns(), $returnedstrings);
foreach($returnedstrings as $returnedstring) { foreach($returnedstrings as $returnedstring) {
$corestring = $stringmanager->get_string($returnedstring['stringid'], $corestring = $stringmanager->get_string($returnedstring['stringid'],
@ -138,8 +142,8 @@ class core_external_testcase extends externallib_advanced_testcase {
* Test get_strings with HTML. * Test get_strings with HTML.
*/ */
public function test_get_strings_containing_html() { public function test_get_strings_containing_html() {
$result = core_external::get_strings([['stringid' => 'registrationinfo'], ['stringid' => 'loginaspasswordexplain']]); $result = \core_external::get_strings([['stringid' => 'registrationinfo'], ['stringid' => 'loginaspasswordexplain']]);
$actual = external_api::clean_returnvalue(core_external::get_strings_returns(), $result); $actual = \external_api::clean_returnvalue(\core_external::get_strings_returns(), $result);
$this->assertSame(get_string('registrationinfo', 'moodle'), $actual[0]['string']); $this->assertSame(get_string('registrationinfo', 'moodle'), $actual[0]['string']);
$this->assertSame(get_string('loginaspasswordexplain', 'moodle'), $actual[1]['string']); $this->assertSame(get_string('loginaspasswordexplain', 'moodle'), $actual[1]['string']);
} }
@ -148,11 +152,11 @@ class core_external_testcase extends externallib_advanced_testcase {
* Test get_strings with arguments containing HTML. * Test get_strings with arguments containing HTML.
*/ */
public function test_get_strings_with_args_containing_html() { public function test_get_strings_with_args_containing_html() {
$result = core_external::get_strings([ $result = \core_external::get_strings([
['stringid' => 'added', 'stringparams' => [['value' => '<strong>Test</strong>']]], ['stringid' => 'added', 'stringparams' => [['value' => '<strong>Test</strong>']]],
['stringid' => 'loggedinas', 'stringparams' => [['value' => '<strong>Test</strong>']]]] ['stringid' => 'loggedinas', 'stringparams' => [['value' => '<strong>Test</strong>']]]]
); );
$actual = external_api::clean_returnvalue(core_external::get_strings_returns(), $result); $actual = \external_api::clean_returnvalue(\core_external::get_strings_returns(), $result);
$this->assertSame(get_string('added', 'moodle', '<strong>Test</strong>'), $actual[0]['string']); $this->assertSame(get_string('added', 'moodle', '<strong>Test</strong>'), $actual[0]['string']);
$this->assertSame(get_string('loggedinas', 'moodle', '<strong>Test</strong>'), $actual[1]['string']); $this->assertSame(get_string('loggedinas', 'moodle', '<strong>Test</strong>'), $actual[1]['string']);
} }
@ -168,10 +172,10 @@ class core_external_testcase extends externallib_advanced_testcase {
$wsstrings = $stringmanager->load_component_strings('webservice', current_language()); $wsstrings = $stringmanager->load_component_strings('webservice', current_language());
$componentstrings = core_external::get_component_strings('webservice'); $componentstrings = \core_external::get_component_strings('webservice');
// We need to execute the return values cleaning process to simulate the web service server. // We need to execute the return values cleaning process to simulate the web service server.
$componentstrings = external_api::clean_returnvalue(core_external::get_component_strings_returns(), $componentstrings); $componentstrings = \external_api::clean_returnvalue(\core_external::get_component_strings_returns(), $componentstrings);
$this->assertEquals(count($componentstrings), count($wsstrings)); $this->assertEquals(count($componentstrings), count($wsstrings));
foreach($componentstrings as $string) { foreach($componentstrings as $string) {
@ -187,9 +191,9 @@ class core_external_testcase extends externallib_advanced_testcase {
// Call service for component that does not have inplace_editable callback. // Call service for component that does not have inplace_editable callback.
try { try {
core_external::update_inplace_editable('tool_log', 'itemtype', 1, 'newvalue'); \core_external::update_inplace_editable('tool_log', 'itemtype', 1, 'newvalue');
$this->fail('Exception expected'); $this->fail('Exception expected');
} catch (moodle_exception $e) { } catch (\moodle_exception $e) {
$this->assertEquals('Error calling update processor', $e->getMessage()); $this->assertEquals('Error calling update processor', $e->getMessage());
} }
@ -197,8 +201,8 @@ class core_external_testcase extends externallib_advanced_testcase {
// More detailed test for tag updating can be found in core_tag component. // More detailed test for tag updating can be found in core_tag component.
$this->setAdminUser(); $this->setAdminUser();
$tag = $this->getDataGenerator()->create_tag(); $tag = $this->getDataGenerator()->create_tag();
$res = core_external::update_inplace_editable('core_tag', 'tagname', $tag->id, 'new tag name'); $res = \core_external::update_inplace_editable('core_tag', 'tagname', $tag->id, 'new tag name');
$res = external_api::clean_returnvalue(core_external::update_inplace_editable_returns(), $res); $res = \external_api::clean_returnvalue(\core_external::update_inplace_editable_returns(), $res);
$this->assertEquals('new tag name', $res['value']); $this->assertEquals('new tag name', $res['value']);
} }
@ -221,11 +225,11 @@ class core_external_testcase extends externallib_advanced_testcase {
// Change the forum name. // Change the forum name.
$newname = 'New forum name $$(a+b)=2$$'; $newname = 'New forum name $$(a+b)=2$$';
$res = core_external::update_inplace_editable('core_course', 'activityname', $forum->cmid, $newname); $res = \core_external::update_inplace_editable('core_course', 'activityname', $forum->cmid, $newname);
$res = external_api::clean_returnvalue(core_external::update_inplace_editable_returns(), $res); $res = \external_api::clean_returnvalue(\core_external::update_inplace_editable_returns(), $res);
// Format original data. // Format original data.
$context = context_module::instance($forum->cmid); $context = \context_module::instance($forum->cmid);
$newname = external_format_string($newname, $context->id); $newname = external_format_string($newname, $context->id);
$editlabel = get_string('newactivityname', '', $newname); $editlabel = get_string('newactivityname', '', $newname);
@ -243,7 +247,7 @@ class core_external_testcase extends externallib_advanced_testcase {
// will not match expected values. // will not match expected values.
$this->setTimezone(99, 'Australia/Perth'); $this->setTimezone(99, 'Australia/Perth');
$context = context_system::instance(); $context = \context_system::instance();
$request = [ $request = [
[ [
'timestamp' => 1293876000, 'timestamp' => 1293876000,
@ -264,8 +268,8 @@ class core_external_testcase extends externallib_advanced_testcase {
], ],
]; ];
$result = core_external::get_user_dates($context->id, null, null, $request); $result = \core_external::get_user_dates($context->id, null, null, $request);
$result = external_api::clean_returnvalue(core_external::get_user_dates_returns(), $result); $result = \external_api::clean_returnvalue(\core_external::get_user_dates_returns(), $result);
$this->assertEquals('Saturday, 1 January 2011, 6:00', $result['dates'][0]); $this->assertEquals('Saturday, 1 January 2011, 6:00', $result['dates'][0]);
$this->assertEquals('1 01 2011', $result['dates'][1]); $this->assertEquals('1 01 2011', $result['dates'][1]);

View file

@ -23,11 +23,13 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
namespace core\event;
defined('MOODLE_INTERNAL') || die(); defined('MOODLE_INTERNAL') || die();
require_once(__DIR__.'/fixtures/event_fixtures.php'); require_once(__DIR__.'/../fixtures/event_fixtures.php');
class core_events_testcase extends advanced_testcase { class events_test extends \advanced_testcase {
/** /**
* Test set up. * Test set up.
@ -50,8 +52,8 @@ class core_events_testcase extends advanced_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\core\event\course_category_created', $event); $this->assertInstanceOf('\core\event\course_category_created', $event);
$this->assertEquals(context_coursecat::instance($category->id), $event->get_context()); $this->assertEquals(\context_coursecat::instance($category->id), $event->get_context());
$url = new moodle_url('/course/management.php', array('categoryid' => $event->objectid)); $url = new \moodle_url('/course/management.php', array('categoryid' => $event->objectid));
$this->assertEquals($url, $event->get_url()); $this->assertEquals($url, $event->get_url());
$expected = array(SITEID, 'category', 'add', 'editcategory.php?id=' . $category->id, $category->id); $expected = array(SITEID, 'category', 'add', 'editcategory.php?id=' . $category->id, $category->id);
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
@ -66,7 +68,7 @@ class core_events_testcase extends advanced_testcase {
$category = $this->getDataGenerator()->create_category(); $category = $this->getDataGenerator()->create_category();
// Create some data we are going to use to update this category. // Create some data we are going to use to update this category.
$data = new stdClass(); $data = new \stdClass();
$data->name = 'Category name change'; $data->name = 'Category name change';
// Trigger and capture the event for updating a category. // Trigger and capture the event for updating a category.
@ -77,8 +79,8 @@ class core_events_testcase extends advanced_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\core\event\course_category_updated', $event); $this->assertInstanceOf('\core\event\course_category_updated', $event);
$this->assertEquals(context_coursecat::instance($category->id), $event->get_context()); $this->assertEquals(\context_coursecat::instance($category->id), $event->get_context());
$url = new moodle_url('/course/editcategory.php', array('id' => $event->objectid)); $url = new \moodle_url('/course/editcategory.php', array('id' => $event->objectid));
$this->assertEquals($url, $event->get_url()); $this->assertEquals($url, $event->get_url());
$expected = array(SITEID, 'category', 'update', 'editcategory.php?id=' . $category->id, $category->id); $expected = array(SITEID, 'category', 'update', 'editcategory.php?id=' . $category->id, $category->id);
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
@ -95,7 +97,7 @@ class core_events_testcase extends advanced_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\core\event\course_category_updated', $event); $this->assertInstanceOf('\core\event\course_category_updated', $event);
$this->assertEquals(context_coursecat::instance($childcat->id), $event->get_context()); $this->assertEquals(\context_coursecat::instance($childcat->id), $event->get_context());
$expected = array(SITEID, 'category', 'move', 'editcategory.php?id=' . $childcat->id, $childcat->id); $expected = array(SITEID, 'category', 'move', 'editcategory.php?id=' . $childcat->id, $childcat->id);
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
@ -107,7 +109,7 @@ class core_events_testcase extends advanced_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\core\event\course_category_updated', $event); $this->assertInstanceOf('\core\event\course_category_updated', $event);
$this->assertEquals(context_coursecat::instance($category2->id), $event->get_context()); $this->assertEquals(\context_coursecat::instance($category2->id), $event->get_context());
$expected = array(SITEID, 'category', 'move', 'management.php?categoryid=' . $category2->id, $category2->id); $expected = array(SITEID, 'category', 'move', 'management.php?categoryid=' . $category2->id, $category2->id);
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
@ -119,7 +121,7 @@ class core_events_testcase extends advanced_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\core\event\course_category_updated', $event); $this->assertInstanceOf('\core\event\course_category_updated', $event);
$this->assertEquals(context_coursecat::instance($childcat->id), $event->get_context()); $this->assertEquals(\context_coursecat::instance($childcat->id), $event->get_context());
$expected = array(SITEID, 'category', 'move', 'editcategory.php?id=' . $childcat->id, $childcat->id); $expected = array(SITEID, 'category', 'move', 'editcategory.php?id=' . $childcat->id, $childcat->id);
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
@ -131,7 +133,7 @@ class core_events_testcase extends advanced_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\core\event\course_category_updated', $event); $this->assertInstanceOf('\core\event\course_category_updated', $event);
$this->assertEquals(context_coursecat::instance($category2->id), $event->get_context()); $this->assertEquals(\context_coursecat::instance($category2->id), $event->get_context());
$expected = array(SITEID, 'category', 'hide', 'editcategory.php?id=' . $category2->id, $category2->id); $expected = array(SITEID, 'category', 'hide', 'editcategory.php?id=' . $category2->id, $category2->id);
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
@ -143,7 +145,7 @@ class core_events_testcase extends advanced_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\core\event\course_category_updated', $event); $this->assertInstanceOf('\core\event\course_category_updated', $event);
$this->assertEquals(context_coursecat::instance($category2->id), $event->get_context()); $this->assertEquals(\context_coursecat::instance($category2->id), $event->get_context());
$expected = array(SITEID, 'category', 'show', 'editcategory.php?id=' . $category2->id, $category2->id); $expected = array(SITEID, 'category', 'show', 'editcategory.php?id=' . $category2->id, $category2->id);
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
@ -158,7 +160,7 @@ class core_events_testcase extends advanced_testcase {
public function test_email_failed() { public function test_email_failed() {
// Trigger event for failing to send email. // Trigger event for failing to send email.
$event = \core\event\email_failed::create(array( $event = \core\event\email_failed::create(array(
'context' => context_system::instance(), 'context' => \context_system::instance(),
'userid' => 1, 'userid' => 1,
'relateduserid' => 2, 'relateduserid' => 2,
'other' => array( 'other' => array(
@ -175,7 +177,7 @@ class core_events_testcase extends advanced_testcase {
$event = reset($events); $event = reset($events);
$this->assertInstanceOf('\core\event\email_failed', $event); $this->assertInstanceOf('\core\event\email_failed', $event);
$this->assertEquals(context_system::instance(), $event->get_context()); $this->assertEquals(\context_system::instance(), $event->get_context());
$expected = array(SITEID, 'library', 'mailer', qualified_me(), 'ERROR: The email failed to send!'); $expected = array(SITEID, 'library', 'mailer', qualified_me(), 'ERROR: The email failed to send!');
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
@ -188,7 +190,7 @@ class core_events_testcase extends advanced_testcase {
$user = $this->getDataGenerator()->create_user(); $user = $this->getDataGenerator()->create_user();
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
$context = context_course::instance($course->id); $context = \context_course::instance($course->id);
$eventparams = array(); $eventparams = array();
$eventparams['context'] = $context; $eventparams['context'] = $context;
@ -204,7 +206,7 @@ class core_events_testcase extends advanced_testcase {
$event = reset($events); $event = reset($events);
$this->assertInstanceOf('\core\event\course_user_report_viewed', $event); $this->assertInstanceOf('\core\event\course_user_report_viewed', $event);
$this->assertEquals(context_course::instance($course->id), $event->get_context()); $this->assertEquals(\context_course::instance($course->id), $event->get_context());
$expected = array($course->id, 'course', 'user report', 'user.php?id=' . $course->id . '&amp;user=' $expected = array($course->id, 'course', 'user report', 'user.php?id=' . $course->id . '&amp;user='
. $user->id . '&amp;mode=grade', $user->id); . $user->id . '&amp;mode=grade', $user->id);
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
@ -218,7 +220,7 @@ class core_events_testcase extends advanced_testcase {
$user = $this->getDataGenerator()->create_user(); $user = $this->getDataGenerator()->create_user();
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
$context = context_course::instance($course->id); $context = \context_course::instance($course->id);
// First try with no optional parameters. // First try with no optional parameters.
$eventparams = array(); $eventparams = array();
@ -232,7 +234,7 @@ class core_events_testcase extends advanced_testcase {
$event = reset($events); $event = reset($events);
$this->assertInstanceOf('\core\event\course_viewed', $event); $this->assertInstanceOf('\core\event\course_viewed', $event);
$this->assertEquals(context_course::instance($course->id), $event->get_context()); $this->assertEquals(\context_course::instance($course->id), $event->get_context());
$expected = array($course->id, 'course', 'view', 'view.php?id=' . $course->id, $course->id); $expected = array($course->id, 'course', 'view', 'view.php?id=' . $course->id, $course->id);
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
@ -253,7 +255,7 @@ class core_events_testcase extends advanced_testcase {
$this->assertInstanceOf('\core\event\course_viewed', $event); $this->assertInstanceOf('\core\event\course_viewed', $event);
$this->assertEquals(context_course::instance($course->id), $event->get_context()); $this->assertEquals(\context_course::instance($course->id), $event->get_context());
$expected = array($course->id, 'course', 'view section', 'view.php?id=' . $course->id . '&amp;section=' $expected = array($course->id, 'course', 'view section', 'view.php?id=' . $course->id . '&amp;section='
. $sectionnumber, $sectionnumber); . $sectionnumber, $sectionnumber);
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
@ -270,7 +272,7 @@ class core_events_testcase extends advanced_testcase {
$this->setAdminUser(); $this->setAdminUser();
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
$context = context_course::instance($course->id); $context = \context_course::instance($course->id);
$event = \core\event\recent_activity_viewed::create(array('context' => $context)); $event = \core\event\recent_activity_viewed::create(array('context' => $context));
@ -285,7 +287,7 @@ class core_events_testcase extends advanced_testcase {
$expected = array($course->id, "course", "recent", "recent.php?id=$course->id", $course->id); $expected = array($course->id, "course", "recent", "recent.php?id=$course->id", $course->id);
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
$url = new moodle_url('/course/recent.php', array('id' => $course->id)); $url = new \moodle_url('/course/recent.php', array('id' => $course->id));
$this->assertEquals($url, $event->get_url()); $this->assertEquals($url, $event->get_url());
$event->get_name(); $event->get_name();
} }
@ -296,7 +298,7 @@ class core_events_testcase extends advanced_testcase {
$user = $this->getDataGenerator()->create_user(); $user = $this->getDataGenerator()->create_user();
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
$coursecontext = context_course::instance($course->id); $coursecontext = \context_course::instance($course->id);
// User profile viewed in course context. // User profile viewed in course context.
$eventparams = array( $eventparams = array(
@ -324,7 +326,7 @@ class core_events_testcase extends advanced_testcase {
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
// User profile viewed in user context. // User profile viewed in user context.
$usercontext = context_user::instance($user->id); $usercontext = \context_user::instance($user->id);
$eventparams['context'] = $usercontext; $eventparams['context'] = $usercontext;
unset($eventparams['courseid'], $eventparams['other']); unset($eventparams['courseid'], $eventparams['other']);
$event = \core\event\user_profile_viewed::create($eventparams); $event = \core\event\user_profile_viewed::create($eventparams);
@ -350,7 +352,7 @@ class core_events_testcase extends advanced_testcase {
$user = $this->getDataGenerator()->create_user(); $user = $this->getDataGenerator()->create_user();
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
$coursecontext = context_course::instance($course->id); $coursecontext = \context_course::instance($course->id);
$event = \core_tests\event\grade_report_viewed::create( $event = \core_tests\event\grade_report_viewed::create(
array( array(
@ -390,7 +392,7 @@ class core_events_testcase extends advanced_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\core\event\database_text_field_content_replaced', $event); $this->assertInstanceOf('\core\event\database_text_field_content_replaced', $event);
$this->assertEquals(context_system::instance(), $event->get_context()); $this->assertEquals(\context_system::instance(), $event->get_context());
$this->assertEquals('searchstring', $event->other['search']); $this->assertEquals('searchstring', $event->other['search']);
$this->assertEquals('replacestring', $event->other['replace']); $this->assertEquals('replacestring', $event->other['replace']);
} }

View file

@ -23,6 +23,10 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
namespace core_message\event;
use core_message_messagelib_testcase;
defined('MOODLE_INTERNAL') || die(); defined('MOODLE_INTERNAL') || die();
global $CFG; global $CFG;
@ -37,7 +41,7 @@ require_once($CFG->dirroot . '/message/tests/messagelib_test.php');
* @copyright 2014 Mark Nelson <markn@moodle.com> * @copyright 2014 Mark Nelson <markn@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
class core_message_events_testcase extends core_message_messagelib_testcase { class events_test extends core_message_messagelib_testcase {
/** /**
* Test set up. * Test set up.
@ -68,11 +72,11 @@ class core_message_events_testcase extends core_message_messagelib_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\core\event\message_contact_added', $event); $this->assertInstanceOf('\core\event\message_contact_added', $event);
$this->assertEquals(context_user::instance(2), $event->get_context()); $this->assertEquals(\context_user::instance(2), $event->get_context());
$expected = array(SITEID, 'message', 'add contact', 'index.php?user1=' . $user->id . $expected = array(SITEID, 'message', 'add contact', 'index.php?user1=' . $user->id .
'&amp;user2=2', $user->id); '&amp;user2=2', $user->id);
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
$url = new moodle_url('/message/index.php', array('user1' => $event->userid, 'user2' => $event->relateduserid)); $url = new \moodle_url('/message/index.php', array('user1' => $event->userid, 'user2' => $event->relateduserid));
$this->assertEquals($url, $event->get_url()); $this->assertEquals($url, $event->get_url());
} }
@ -99,11 +103,11 @@ class core_message_events_testcase extends core_message_messagelib_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\core\event\message_contact_removed', $event); $this->assertInstanceOf('\core\event\message_contact_removed', $event);
$this->assertEquals(context_user::instance(2), $event->get_context()); $this->assertEquals(\context_user::instance(2), $event->get_context());
$expected = array(SITEID, 'message', 'remove contact', 'index.php?user1=' . $user->id . $expected = array(SITEID, 'message', 'remove contact', 'index.php?user1=' . $user->id .
'&amp;user2=2', $user->id); '&amp;user2=2', $user->id);
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
$url = new moodle_url('/message/index.php', array('user1' => $event->userid, 'user2' => $event->relateduserid)); $url = new \moodle_url('/message/index.php', array('user1' => $event->userid, 'user2' => $event->relateduserid));
$this->assertEquals($url, $event->get_url()); $this->assertEquals($url, $event->get_url());
} }
@ -130,7 +134,7 @@ class core_message_events_testcase extends core_message_messagelib_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\core\event\message_user_blocked', $event); $this->assertInstanceOf('\core\event\message_user_blocked', $event);
$this->assertEquals(context_user::instance(2), $event->get_context()); $this->assertEquals(\context_user::instance(2), $event->get_context());
} }
/** /**
@ -161,7 +165,7 @@ class core_message_events_testcase extends core_message_messagelib_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\core\event\message_user_unblocked', $event); $this->assertInstanceOf('\core\event\message_user_unblocked', $event);
$this->assertEquals(context_user::instance(2), $event->get_context()); $this->assertEquals(\context_user::instance(2), $event->get_context());
// Make sure that we have no blocked users. // Make sure that we have no blocked users.
$this->assertEmpty(\core_message\api::count_blocked_users()); $this->assertEmpty(\core_message\api::count_blocked_users());
@ -177,7 +181,7 @@ class core_message_events_testcase extends core_message_messagelib_testcase {
$event = \core\event\message_sent::create(array( $event = \core\event\message_sent::create(array(
'objectid' => 3, 'objectid' => 3,
'userid' => 1, 'userid' => 1,
'context' => context_system::instance(), 'context' => \context_system::instance(),
'relateduserid' => 2, 'relateduserid' => 2,
'other' => array( 'other' => array(
'courseid' => 4 'courseid' => 4
@ -192,10 +196,10 @@ class core_message_events_testcase extends core_message_messagelib_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\core\event\message_sent', $event); $this->assertInstanceOf('\core\event\message_sent', $event);
$this->assertEquals(context_system::instance(), $event->get_context()); $this->assertEquals(\context_system::instance(), $event->get_context());
$expected = array(SITEID, 'message', 'write', 'index.php?user=1&id=2&history=1#m3', 1); $expected = array(SITEID, 'message', 'write', 'index.php?user=1&id=2&history=1#m3', 1);
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
$url = new moodle_url('/message/index.php', array('user1' => $event->userid, 'user2' => $event->relateduserid)); $url = new \moodle_url('/message/index.php', array('user1' => $event->userid, 'user2' => $event->relateduserid));
$this->assertEquals($url, $event->get_url()); $this->assertEquals($url, $event->get_url());
$this->assertEquals(3, $event->objectid); $this->assertEquals(3, $event->objectid);
$this->assertEquals(4, $event->other['courseid']); $this->assertEquals(4, $event->other['courseid']);
@ -209,7 +213,7 @@ class core_message_events_testcase extends core_message_messagelib_testcase {
$event = \core\event\message_sent::create(array( $event = \core\event\message_sent::create(array(
'userid' => 1, 'userid' => 1,
'context' => context_system::instance(), 'context' => \context_system::instance(),
'relateduserid' => 2, 'relateduserid' => 2,
'other' => array( 'other' => array(
'messageid' => 3, 'messageid' => 3,
@ -229,10 +233,10 @@ class core_message_events_testcase extends core_message_messagelib_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\core\event\message_sent', $event); $this->assertInstanceOf('\core\event\message_sent', $event);
$this->assertEquals(context_system::instance(), $event->get_context()); $this->assertEquals(\context_system::instance(), $event->get_context());
$expected = array(SITEID, 'message', 'write', 'index.php?user=1&id=2&history=1#m3', 1); $expected = array(SITEID, 'message', 'write', 'index.php?user=1&id=2&history=1#m3', 1);
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
$url = new moodle_url('/message/index.php', array('user1' => $event->userid, 'user2' => $event->relateduserid)); $url = new \moodle_url('/message/index.php', array('user1' => $event->userid, 'user2' => $event->relateduserid));
$this->assertEquals($url, $event->get_url()); $this->assertEquals($url, $event->get_url());
$this->assertEquals(3, $event->objectid); $this->assertEquals(3, $event->objectid);
$this->assertEquals(4, $event->other['courseid']); $this->assertEquals(4, $event->other['courseid']);
@ -249,7 +253,7 @@ class core_message_events_testcase extends core_message_messagelib_testcase {
$event = \core\event\group_message_sent::create([ $event = \core\event\group_message_sent::create([
'objectid' => 3, 'objectid' => 3,
'userid' => 1, 'userid' => 1,
'context' => context_system::instance(), 'context' => \context_system::instance(),
'other' => [ 'other' => [
'courseid' => 4, 'courseid' => 4,
'conversationid' => 54 'conversationid' => 54
@ -264,8 +268,8 @@ class core_message_events_testcase extends core_message_messagelib_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\core\event\group_message_sent', $event); $this->assertInstanceOf('\core\event\group_message_sent', $event);
$this->assertEquals(context_system::instance(), $event->get_context()); $this->assertEquals(\context_system::instance(), $event->get_context());
$url = new moodle_url('/message/index.php'); $url = new \moodle_url('/message/index.php');
$this->assertEquals($url, $event->get_url()); $this->assertEquals($url, $event->get_url());
$this->assertEquals(3, $event->objectid); $this->assertEquals(3, $event->objectid);
$this->assertEquals(4, $event->other['courseid']); $this->assertEquals(4, $event->other['courseid']);
@ -283,7 +287,7 @@ class core_message_events_testcase extends core_message_messagelib_testcase {
$event = \core\event\group_message_sent::create([ $event = \core\event\group_message_sent::create([
'userid' => 1, 'userid' => 1,
'objectid' => 3, 'objectid' => 3,
'context' => context_system::instance(), 'context' => \context_system::instance(),
'relateduserid' => 2, 'relateduserid' => 2,
'other' => [ 'other' => [
'conversationid' => 34 'conversationid' => 34
@ -302,7 +306,7 @@ class core_message_events_testcase extends core_message_messagelib_testcase {
$event = \core\event\group_message_sent::create([ $event = \core\event\group_message_sent::create([
'userid' => 1, 'userid' => 1,
'objectid' => 3, 'objectid' => 3,
'context' => context_system::instance(), 'context' => \context_system::instance(),
'relateduserid' => 2, 'relateduserid' => 2,
'other' => [ 'other' => [
'courseid' => 44, 'courseid' => 44,
@ -325,8 +329,8 @@ class core_message_events_testcase extends core_message_messagelib_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\core\event\group_message_sent', $event); $this->assertInstanceOf('\core\event\group_message_sent', $event);
$this->assertEquals(context_system::instance(), $event->get_context()); $this->assertEquals(\context_system::instance(), $event->get_context());
$this->assertEquals(new moodle_url('/message/index.php'), $event->get_url()); $this->assertEquals(new \moodle_url('/message/index.php'), $event->get_url());
$this->assertEquals(1, $event->userid); $this->assertEquals(1, $event->userid);
$this->assertEquals(2, $event->other['conversationid']); $this->assertEquals(2, $event->other['conversationid']);
$this->assertEquals(3, $event->objectid); $this->assertEquals(3, $event->objectid);
@ -358,10 +362,10 @@ class core_message_events_testcase extends core_message_messagelib_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\core\event\message_viewed', $event); $this->assertInstanceOf('\core\event\message_viewed', $event);
$this->assertEquals(context_user::instance($user1->id), $event->get_context()); $this->assertEquals(\context_user::instance($user1->id), $event->get_context());
$this->assertEquals($mua->id, $event->objectid); $this->assertEquals($mua->id, $event->objectid);
$this->assertEquals($messageid, $event->other['messageid']); $this->assertEquals($messageid, $event->other['messageid']);
$url = new moodle_url('/message/index.php', array('user1' => $event->userid, 'user2' => $event->relateduserid)); $url = new \moodle_url('/message/index.php', array('user1' => $event->userid, 'user2' => $event->relateduserid));
$this->assertEquals($url, $event->get_url()); $this->assertEquals($url, $event->get_url());
} }
@ -520,9 +524,9 @@ class core_message_events_testcase extends core_message_messagelib_testcase {
$this->assertEquals($notificationid, $event->objectid); $this->assertEquals($notificationid, $event->objectid);
$this->assertEquals($user1->id, $event->userid); $this->assertEquals($user1->id, $event->userid);
$this->assertEquals($user2->id, $event->relateduserid); $this->assertEquals($user2->id, $event->relateduserid);
$this->assertEquals(context_system::instance(), $event->get_context()); $this->assertEquals(\context_system::instance(), $event->get_context());
$this->assertEquals($course->id, $event->other['courseid']); $this->assertEquals($course->id, $event->other['courseid']);
$url = new moodle_url('/message/output/popup/notifications.php', array('notificationid' => $event->objectid)); $url = new \moodle_url('/message/output/popup/notifications.php', array('notificationid' => $event->objectid));
$this->assertEquals($url, $event->get_url()); $this->assertEquals($url, $event->get_url());
} }
@ -568,8 +572,8 @@ class core_message_events_testcase extends core_message_messagelib_testcase {
$this->assertEquals($notificationid, $event->objectid); $this->assertEquals($notificationid, $event->objectid);
$this->assertEquals($user2->id, $event->userid); $this->assertEquals($user2->id, $event->userid);
$this->assertEquals($user1->id, $event->relateduserid); $this->assertEquals($user1->id, $event->relateduserid);
$this->assertEquals(context_user::instance($user2->id), $event->get_context()); $this->assertEquals(\context_user::instance($user2->id), $event->get_context());
$url = new moodle_url('/message/output/popup/notifications.php', array('notificationid' => $event->objectid)); $url = new \moodle_url('/message/output/popup/notifications.php', array('notificationid' => $event->objectid));
$this->assertEquals($url, $event->get_url()); $this->assertEquals($url, $event->get_url());
} }
} }

View file

@ -23,13 +23,15 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
namespace core_mnet\event;
defined('MOODLE_INTERNAL') || die(); defined('MOODLE_INTERNAL') || die();
global $CFG; global $CFG;
require_once($CFG->dirroot . '/mnet/lib.php'); require_once($CFG->dirroot . '/mnet/lib.php');
class mnet_events_testcase extends advanced_testcase { class events_test extends \advanced_testcase {
/** @var stdClass the mnet host we are using to test */ /** @var stdClass the mnet host we are using to test */
protected $mnethost; protected $mnethost;
@ -45,7 +47,7 @@ class mnet_events_testcase extends advanced_testcase {
$this->resetAfterTest(); $this->resetAfterTest();
// Add a mnet host. // Add a mnet host.
$this->mnethost = new stdClass(); $this->mnethost = new \stdClass();
$this->mnethost->name = 'A mnet host'; $this->mnethost->name = 'A mnet host';
$this->mnethost->public_key = 'A random public key!'; $this->mnethost->public_key = 'A random public key!';
$this->mnethost->id = $DB->insert_record('mnet_host', $this->mnethost); $this->mnethost->id = $DB->insert_record('mnet_host', $this->mnethost);
@ -63,7 +65,7 @@ class mnet_events_testcase extends advanced_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\core\event\mnet_access_control_created', $event); $this->assertInstanceOf('\core\event\mnet_access_control_created', $event);
$this->assertEquals(context_system::instance(), $event->get_context()); $this->assertEquals(\context_system::instance(), $event->get_context());
$expected = array(SITEID, 'admin/mnet', 'add', 'admin/mnet/access_control.php', $expected = array(SITEID, 'admin/mnet', 'add', 'admin/mnet/access_control.php',
'SSO ACL: enabled user \'username\' from ' . $this->mnethost->name); 'SSO ACL: enabled user \'username\' from ' . $this->mnethost->name);
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
@ -79,7 +81,7 @@ class mnet_events_testcase extends advanced_testcase {
global $DB; global $DB;
// Create a mnet access control. // Create a mnet access control.
$mnetaccesscontrol = new stdClass(); $mnetaccesscontrol = new \stdClass();
$mnetaccesscontrol->username = 'username'; $mnetaccesscontrol->username = 'username';
$mnetaccesscontrol->mnet_host_id = $this->mnethost->id; $mnetaccesscontrol->mnet_host_id = $this->mnethost->id;
$mnetaccesscontrol->accessctrl = 'enabled'; $mnetaccesscontrol->accessctrl = 'enabled';
@ -93,7 +95,7 @@ class mnet_events_testcase extends advanced_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\core\event\mnet_access_control_updated', $event); $this->assertInstanceOf('\core\event\mnet_access_control_updated', $event);
$this->assertEquals(context_system::instance(), $event->get_context()); $this->assertEquals(\context_system::instance(), $event->get_context());
$expected = array(SITEID, 'admin/mnet', 'update', 'admin/mnet/access_control.php', $expected = array(SITEID, 'admin/mnet', 'update', 'admin/mnet/access_control.php',
'SSO ACL: enabled user \'username\' from ' . $this->mnethost->name); 'SSO ACL: enabled user \'username\' from ' . $this->mnethost->name);
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);

View file

@ -23,6 +23,9 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
namespace assignsubmission_comments\event;
use mod_assign_test_generator;
defined('MOODLE_INTERNAL') || die(); defined('MOODLE_INTERNAL') || die();
global $CFG; global $CFG;
@ -39,7 +42,7 @@ require_once($CFG->dirroot . '/comment/lib.php');
* @copyright 2013 Rajesh Taneja <rajesh@moodle.com> * @copyright 2013 Rajesh Taneja <rajesh@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
class assignsubmission_comments_events_testcase extends advanced_testcase { class events_test extends \advanced_testcase {
// Use the generator helper. // Use the generator helper.
use mod_assign_test_generator; use mod_assign_test_generator;
@ -59,7 +62,7 @@ class assignsubmission_comments_events_testcase extends advanced_testcase {
$submission = $assign->get_user_submission($student->id, true); $submission = $assign->get_user_submission($student->id, true);
$context = $assign->get_context(); $context = $assign->get_context();
$options = new stdClass(); $options = new \stdClass();
$options->area = 'submission_comments'; $options->area = 'submission_comments';
$options->course = $assign->get_course(); $options->course = $assign->get_course();
$options->context = $context; $options->context = $context;
@ -68,7 +71,7 @@ class assignsubmission_comments_events_testcase extends advanced_testcase {
$options->showcount = true; $options->showcount = true;
$options->displaycancel = true; $options->displaycancel = true;
$comment = new comment($options); $comment = new \comment($options);
// Triggering and capturing the event. // Triggering and capturing the event.
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();
@ -81,7 +84,7 @@ class assignsubmission_comments_events_testcase extends advanced_testcase {
// Checking that the event contains the expected values. // Checking that the event contains the expected values.
$this->assertInstanceOf('\assignsubmission_comments\event\comment_created', $event); $this->assertInstanceOf('\assignsubmission_comments\event\comment_created', $event);
$this->assertEquals($context, $event->get_context()); $this->assertEquals($context, $event->get_context());
$url = new moodle_url('/mod/assign/view.php', array('id' => $assign->get_course_module()->id)); $url = new \moodle_url('/mod/assign/view.php', array('id' => $assign->get_course_module()->id));
$this->assertEquals($url, $event->get_url()); $this->assertEquals($url, $event->get_url());
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
} }
@ -101,7 +104,7 @@ class assignsubmission_comments_events_testcase extends advanced_testcase {
$submission = $assign->get_user_submission($student->id, true); $submission = $assign->get_user_submission($student->id, true);
$context = $assign->get_context(); $context = $assign->get_context();
$options = new stdClass(); $options = new \stdClass();
$options->area = 'submission_comments'; $options->area = 'submission_comments';
$options->course = $assign->get_course(); $options->course = $assign->get_course();
$options->context = $context; $options->context = $context;
@ -109,7 +112,7 @@ class assignsubmission_comments_events_testcase extends advanced_testcase {
$options->component = 'assignsubmission_comments'; $options->component = 'assignsubmission_comments';
$options->showcount = true; $options->showcount = true;
$options->displaycancel = true; $options->displaycancel = true;
$comment = new comment($options); $comment = new \comment($options);
$newcomment = $comment->add('New comment 1'); $newcomment = $comment->add('New comment 1');
// Triggering and capturing the event. // Triggering and capturing the event.
@ -122,7 +125,7 @@ class assignsubmission_comments_events_testcase extends advanced_testcase {
// Checking that the event contains the expected values. // Checking that the event contains the expected values.
$this->assertInstanceOf('\assignsubmission_comments\event\comment_deleted', $event); $this->assertInstanceOf('\assignsubmission_comments\event\comment_deleted', $event);
$this->assertEquals($context, $event->get_context()); $this->assertEquals($context, $event->get_context());
$url = new moodle_url('/mod/assign/view.php', array('id' => $assign->get_course_module()->id)); $url = new \moodle_url('/mod/assign/view.php', array('id' => $assign->get_course_module()->id));
$this->assertEquals($url, $event->get_url()); $this->assertEquals($url, $event->get_url());
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
} }

View file

@ -22,12 +22,16 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
namespace assignsubmission_file\event;
use mod_assign_test_generator;
defined('MOODLE_INTERNAL') || die(); defined('MOODLE_INTERNAL') || die();
global $CFG; global $CFG;
require_once($CFG->dirroot . '/mod/assign/tests/generator.php'); require_once($CFG->dirroot . '/mod/assign/tests/generator.php');
class assignsubmission_file_events_testcase extends advanced_testcase { class events_test extends \advanced_testcase {
// Use the generator helper. // Use the generator helper.
use mod_assign_test_generator; use mod_assign_test_generator;
@ -69,7 +73,7 @@ class assignsubmission_file_events_testcase extends advanced_testcase {
$files = $fs->get_area_files($context->id, 'assignsubmission_file', ASSIGNSUBMISSION_FILE_FILEAREA, $files = $fs->get_area_files($context->id, 'assignsubmission_file', ASSIGNSUBMISSION_FILE_FILEAREA,
$submission->id, 'id', false); $submission->id, 'id', false);
$data = new stdClass(); $data = new \stdClass();
$plugin = $assign->get_submission_plugin_by_type('file'); $plugin = $assign->get_submission_plugin_by_type('file');
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();
$plugin->save($submission, $data); $plugin->save($submission, $data);
@ -83,7 +87,7 @@ class assignsubmission_file_events_testcase extends advanced_testcase {
$this->assertCount(2, $event->other['pathnamehashes']); $this->assertCount(2, $event->other['pathnamehashes']);
$this->assertEquals($fi->get_pathnamehash(), $event->other['pathnamehashes'][0]); $this->assertEquals($fi->get_pathnamehash(), $event->other['pathnamehashes'][0]);
$this->assertEquals($fi2->get_pathnamehash(), $event->other['pathnamehashes'][1]); $this->assertEquals($fi2->get_pathnamehash(), $event->other['pathnamehashes'][1]);
$expected = new stdClass(); $expected = new \stdClass();
$expected->modulename = 'assign'; $expected->modulename = 'assign';
$expected->cmid = $cm->id; $expected->cmid = $cm->id;
$expected->itemid = $submission->id; $expected->itemid = $submission->id;
@ -132,7 +136,7 @@ class assignsubmission_file_events_testcase extends advanced_testcase {
$files = $fs->get_area_files($context->id, 'assignsubmission_file', ASSIGNSUBMISSION_FILE_FILEAREA, $files = $fs->get_area_files($context->id, 'assignsubmission_file', ASSIGNSUBMISSION_FILE_FILEAREA,
$submission->id, 'id', false); $submission->id, 'id', false);
$data = new stdClass(); $data = new \stdClass();
$plugin = $assign->get_submission_plugin_by_type('file'); $plugin = $assign->get_submission_plugin_by_type('file');
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();
$plugin->save($submission, $data); $plugin->save($submission, $data);
@ -186,7 +190,7 @@ class assignsubmission_file_events_testcase extends advanced_testcase {
$files = $fs->get_area_files($context->id, 'assignsubmission_file', ASSIGNSUBMISSION_FILE_FILEAREA, $files = $fs->get_area_files($context->id, 'assignsubmission_file', ASSIGNSUBMISSION_FILE_FILEAREA,
$submission->id, 'id', false); $submission->id, 'id', false);
$data = new stdClass(); $data = new \stdClass();
$plugin = $assign->get_submission_plugin_by_type('file'); $plugin = $assign->get_submission_plugin_by_type('file');
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();
// Create a submission. // Create a submission.

View file

@ -22,12 +22,16 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
namespace assignsubmission_onlinetext\event;
use mod_assign_test_generator;
defined('MOODLE_INTERNAL') || die(); defined('MOODLE_INTERNAL') || die();
global $CFG; global $CFG;
require_once($CFG->dirroot . '/mod/assign/tests/generator.php'); require_once($CFG->dirroot . '/mod/assign/tests/generator.php');
class assignsubmission_onlinetext_events_testcase extends advanced_testcase { class events_test extends \advanced_testcase {
// Use the generator helper. // Use the generator helper.
use mod_assign_test_generator; use mod_assign_test_generator;
@ -68,7 +72,7 @@ class assignsubmission_onlinetext_events_testcase extends advanced_testcase {
$this->assertEquals(array(), $event->other['pathnamehashes']); $this->assertEquals(array(), $event->other['pathnamehashes']);
$this->assertEquals(FORMAT_PLAIN, $event->other['format']); $this->assertEquals(FORMAT_PLAIN, $event->other['format']);
$this->assertEquals('Submission text', $event->other['content']); $this->assertEquals('Submission text', $event->other['content']);
$expected = new stdClass(); $expected = new \stdClass();
$expected->modulename = 'assign'; $expected->modulename = 'assign';
$expected->cmid = $cm->id; $expected->cmid = $cm->id;
$expected->itemid = $submission->id; $expected->itemid = $submission->id;

View file

@ -22,6 +22,10 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
namespace mod_assign\event;
use mod_assign_test_generator;
defined('MOODLE_INTERNAL') || die(); defined('MOODLE_INTERNAL') || die();
global $CFG; global $CFG;
@ -36,7 +40,7 @@ require_once($CFG->dirroot . '/mod/assign/locallib.php');
* @copyright 2014 Adrian Greeve <adrian@moodle.com> * @copyright 2014 Adrian Greeve <adrian@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
class assign_events_testcase extends advanced_testcase { class events_test extends \advanced_testcase {
// Use the generator helper. // Use the generator helper.
use mod_assign_test_generator; use mod_assign_test_generator;
@ -49,7 +53,7 @@ class assign_events_testcase extends advanced_testcase {
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
$generator = $this->getDataGenerator()->get_plugin_generator('mod_assign'); $generator = $this->getDataGenerator()->get_plugin_generator('mod_assign');
$instance = $generator->create_instance(array('course' => $course->id)); $instance = $generator->create_instance(array('course' => $course->id));
$modcontext = context_module::instance($instance->cmid); $modcontext = \context_module::instance($instance->cmid);
$data = array( $data = array(
'context' => $modcontext, 'context' => $modcontext,
@ -76,7 +80,7 @@ class assign_events_testcase extends advanced_testcase {
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
$generator = $this->getDataGenerator()->get_plugin_generator('mod_assign'); $generator = $this->getDataGenerator()->get_plugin_generator('mod_assign');
$instance = $generator->create_instance(array('course' => $course->id)); $instance = $generator->create_instance(array('course' => $course->id));
$modcontext = context_module::instance($instance->cmid); $modcontext = \context_module::instance($instance->cmid);
// Standard Event parameters. // Standard Event parameters.
$params = array( $params = array(
@ -105,7 +109,7 @@ class assign_events_testcase extends advanced_testcase {
try { try {
\mod_assign_unittests\event\submission_created::create($params); \mod_assign_unittests\event\submission_created::create($params);
$this->fail('Other must contain the key submissionid.'); $this->fail('Other must contain the key submissionid.');
} catch (Exception $e) { } catch (\Exception $e) {
$this->assertInstanceOf('coding_exception', $e); $this->assertInstanceOf('coding_exception', $e);
} }
// Check that the submission status debugging is fired. // Check that the submission status debugging is fired.
@ -114,7 +118,7 @@ class assign_events_testcase extends advanced_testcase {
try { try {
\mod_assign_unittests\event\submission_created::create($subinfo); \mod_assign_unittests\event\submission_created::create($subinfo);
$this->fail('Other must contain the key submissionattempt.'); $this->fail('Other must contain the key submissionattempt.');
} catch (Exception $e) { } catch (\Exception $e) {
$this->assertInstanceOf('coding_exception', $e); $this->assertInstanceOf('coding_exception', $e);
} }
@ -122,7 +126,7 @@ class assign_events_testcase extends advanced_testcase {
try { try {
\mod_assign_unittests\event\submission_created::create($subinfo); \mod_assign_unittests\event\submission_created::create($subinfo);
$this->fail('Other must contain the key submissionstatus.'); $this->fail('Other must contain the key submissionstatus.');
} catch (Exception $e) { } catch (\Exception $e) {
$this->assertInstanceOf('coding_exception', $e); $this->assertInstanceOf('coding_exception', $e);
} }
} }
@ -136,7 +140,7 @@ class assign_events_testcase extends advanced_testcase {
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
$generator = $this->getDataGenerator()->get_plugin_generator('mod_assign'); $generator = $this->getDataGenerator()->get_plugin_generator('mod_assign');
$instance = $generator->create_instance(array('course' => $course->id)); $instance = $generator->create_instance(array('course' => $course->id));
$modcontext = context_module::instance($instance->cmid); $modcontext = \context_module::instance($instance->cmid);
// Standard Event parameters. // Standard Event parameters.
$params = array( $params = array(
@ -165,7 +169,7 @@ class assign_events_testcase extends advanced_testcase {
try { try {
\mod_assign_unittests\event\submission_created::create($params); \mod_assign_unittests\event\submission_created::create($params);
$this->fail('Other must contain the key submissionid.'); $this->fail('Other must contain the key submissionid.');
} catch (Exception $e) { } catch (\Exception $e) {
$this->assertInstanceOf('coding_exception', $e); $this->assertInstanceOf('coding_exception', $e);
} }
// Check that the submission status debugging is fired. // Check that the submission status debugging is fired.
@ -174,7 +178,7 @@ class assign_events_testcase extends advanced_testcase {
try { try {
\mod_assign_unittests\event\submission_created::create($subinfo); \mod_assign_unittests\event\submission_created::create($subinfo);
$this->fail('Other must contain the key submissionattempt.'); $this->fail('Other must contain the key submissionattempt.');
} catch (Exception $e) { } catch (\Exception $e) {
$this->assertInstanceOf('coding_exception', $e); $this->assertInstanceOf('coding_exception', $e);
} }
@ -182,7 +186,7 @@ class assign_events_testcase extends advanced_testcase {
try { try {
\mod_assign_unittests\event\submission_created::create($subinfo); \mod_assign_unittests\event\submission_created::create($subinfo);
$this->fail('Other must contain the key submissionstatus.'); $this->fail('Other must contain the key submissionstatus.');
} catch (Exception $e) { } catch (\Exception $e) {
$this->assertInstanceOf('coding_exception', $e); $this->assertInstanceOf('coding_exception', $e);
} }
} }
@ -465,7 +469,7 @@ class assign_events_testcase extends advanced_testcase {
// Test setting workflow state in apply_grade_to_user. // Test setting workflow state in apply_grade_to_user.
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();
$data = new stdClass(); $data = new \stdClass();
$data->grade = '50.0'; $data->grade = '50.0';
$data->workflowstate = 'readyforrelease'; $data->workflowstate = 'readyforrelease';
$assign->testable_apply_grade_to_user($data, $student->id, 0); $assign->testable_apply_grade_to_user($data, $student->id, 0);
@ -612,7 +616,7 @@ class assign_events_testcase extends advanced_testcase {
// Test apply_grade_to_user. // Test apply_grade_to_user.
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();
$data = new stdClass(); $data = new \stdClass();
$data->grade = '50.0'; $data->grade = '50.0';
$assign->testable_apply_grade_to_user($data, $student->id, 0); $assign->testable_apply_grade_to_user($data, $student->id, 0);
$grade = $assign->get_user_grade($student->id, false, 0); $grade = $assign->get_user_grade($student->id, false, 0);
@ -759,7 +763,7 @@ class assign_events_testcase extends advanced_testcase {
$submission = $assign->get_user_submission($student->id, true); $submission = $assign->get_user_submission($student->id, true);
// Insert a grade for this submission. // Insert a grade for this submission.
$grade = new stdClass(); $grade = new \stdClass();
$grade->assignment = $assign->get_instance()->id; $grade->assignment = $assign->get_instance()->id;
$grade->userid = $student->id; $grade->userid = $student->id;
$gradeid = $DB->insert_record('assign_grades', $grade); $gradeid = $DB->insert_record('assign_grades', $grade);
@ -1023,7 +1027,7 @@ class assign_events_testcase extends advanced_testcase {
$assign = $this->create_instance($course); $assign = $this->create_instance($course);
// Create the data we want to pass to the submit_for_grading function. // Create the data we want to pass to the submit_for_grading function.
$data = new stdClass(); $data = new \stdClass();
$data->submissionstatement = 'We are the Borg. You will be assimilated. Resistance is futile. - do you agree $data->submissionstatement = 'We are the Borg. You will be assimilated. Resistance is futile. - do you agree
to these terms?'; to these terms?';
@ -1059,7 +1063,7 @@ class assign_events_testcase extends advanced_testcase {
} }
// Create the data we want to pass to the save_submission function. // Create the data we want to pass to the save_submission function.
$data = new stdClass(); $data = new \stdClass();
$data->onlinetext_editor = array( $data->onlinetext_editor = array(
'text' => 'Online text', 'text' => 'Online text',
'format' => FORMAT_HTML, 'format' => FORMAT_HTML,
@ -1158,7 +1162,7 @@ class assign_events_testcase extends advanced_testcase {
$params = array( $params = array(
'objectid' => 1, 'objectid' => 1,
'relateduserid' => 2, 'relateduserid' => 2,
'context' => context_module::instance($assign->cmid), 'context' => \context_module::instance($assign->cmid),
'other' => array( 'other' => array(
'assignid' => $assign->id 'assignid' => $assign->id
) )
@ -1173,7 +1177,7 @@ class assign_events_testcase extends advanced_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\mod_assign\event\user_override_created', $event); $this->assertInstanceOf('\mod_assign\event\user_override_created', $event);
$this->assertEquals(context_module::instance($assign->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($assign->cmid), $event->get_context());
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
} }
@ -1191,7 +1195,7 @@ class assign_events_testcase extends advanced_testcase {
$params = array( $params = array(
'objectid' => 1, 'objectid' => 1,
'context' => context_module::instance($assign->cmid), 'context' => \context_module::instance($assign->cmid),
'other' => array( 'other' => array(
'assignid' => $assign->id, 'assignid' => $assign->id,
'groupid' => 2 'groupid' => 2
@ -1207,7 +1211,7 @@ class assign_events_testcase extends advanced_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\mod_assign\event\group_override_created', $event); $this->assertInstanceOf('\mod_assign\event\group_override_created', $event);
$this->assertEquals(context_module::instance($assign->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($assign->cmid), $event->get_context());
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
} }
@ -1226,7 +1230,7 @@ class assign_events_testcase extends advanced_testcase {
$params = array( $params = array(
'objectid' => 1, 'objectid' => 1,
'relateduserid' => 2, 'relateduserid' => 2,
'context' => context_module::instance($assign->cmid), 'context' => \context_module::instance($assign->cmid),
'other' => array( 'other' => array(
'assignid' => $assign->id 'assignid' => $assign->id
) )
@ -1241,7 +1245,7 @@ class assign_events_testcase extends advanced_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\mod_assign\event\user_override_updated', $event); $this->assertInstanceOf('\mod_assign\event\user_override_updated', $event);
$this->assertEquals(context_module::instance($assign->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($assign->cmid), $event->get_context());
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
} }
@ -1259,7 +1263,7 @@ class assign_events_testcase extends advanced_testcase {
$params = array( $params = array(
'objectid' => 1, 'objectid' => 1,
'context' => context_module::instance($assign->cmid), 'context' => \context_module::instance($assign->cmid),
'other' => array( 'other' => array(
'assignid' => $assign->id, 'assignid' => $assign->id,
'groupid' => 2 'groupid' => 2
@ -1275,7 +1279,7 @@ class assign_events_testcase extends advanced_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\mod_assign\event\group_override_updated', $event); $this->assertInstanceOf('\mod_assign\event\group_override_updated', $event);
$this->assertEquals(context_module::instance($assign->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($assign->cmid), $event->get_context());
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
} }
@ -1289,11 +1293,11 @@ class assign_events_testcase extends advanced_testcase {
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
$assigninstance = $this->getDataGenerator()->create_module('assign', array('course' => $course->id)); $assigninstance = $this->getDataGenerator()->create_module('assign', array('course' => $course->id));
$cm = get_coursemodule_from_instance('assign', $assigninstance->id, $course->id); $cm = get_coursemodule_from_instance('assign', $assigninstance->id, $course->id);
$context = context_module::instance($cm->id); $context = \context_module::instance($cm->id);
$assign = new assign($context, $cm, $course); $assign = new \assign($context, $cm, $course);
// Create an override. // Create an override.
$override = new stdClass(); $override = new \stdClass();
$override->assign = $assigninstance->id; $override->assign = $assigninstance->id;
$override->userid = 2; $override->userid = 2;
$override->id = $DB->insert_record('assign_overrides', $override); $override->id = $DB->insert_record('assign_overrides', $override);
@ -1306,7 +1310,7 @@ class assign_events_testcase extends advanced_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\mod_assign\event\user_override_deleted', $event); $this->assertInstanceOf('\mod_assign\event\user_override_deleted', $event);
$this->assertEquals(context_module::instance($cm->id), $event->get_context()); $this->assertEquals(\context_module::instance($cm->id), $event->get_context());
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
} }
@ -1320,11 +1324,11 @@ class assign_events_testcase extends advanced_testcase {
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
$assigninstance = $this->getDataGenerator()->create_module('assign', array('course' => $course->id)); $assigninstance = $this->getDataGenerator()->create_module('assign', array('course' => $course->id));
$cm = get_coursemodule_from_instance('assign', $assigninstance->id, $course->id); $cm = get_coursemodule_from_instance('assign', $assigninstance->id, $course->id);
$context = context_module::instance($cm->id); $context = \context_module::instance($cm->id);
$assign = new assign($context, $cm, $course); $assign = new \assign($context, $cm, $course);
// Create an override. // Create an override.
$override = new stdClass(); $override = new \stdClass();
$override->assign = $assigninstance->id; $override->assign = $assigninstance->id;
$override->groupid = 2; $override->groupid = 2;
$override->id = $DB->insert_record('assign_overrides', $override); $override->id = $DB->insert_record('assign_overrides', $override);
@ -1337,7 +1341,7 @@ class assign_events_testcase extends advanced_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\mod_assign\event\group_override_deleted', $event); $this->assertInstanceOf('\mod_assign\event\group_override_deleted', $event);
$this->assertEquals(context_module::instance($cm->id), $event->get_context()); $this->assertEquals(\context_module::instance($cm->id), $event->get_context());
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
} }
@ -1386,8 +1390,8 @@ class assign_events_testcase extends advanced_testcase {
$instance = $generator->create_instance(array('course' => $course->id, 'blindmarking' => 1)); $instance = $generator->create_instance(array('course' => $course->id, 'blindmarking' => 1));
$cm = get_coursemodule_from_instance('assign', $instance->id, $course->id); $cm = get_coursemodule_from_instance('assign', $instance->id, $course->id);
$context = context_module::instance($cm->id); $context = \context_module::instance($cm->id);
$assign = new assign($context, $cm, $course); $assign = new \assign($context, $cm, $course);
$this->setUser($teacher); $this->setUser($teacher);
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();

View file

@ -23,6 +23,8 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
namespace mod_assign\search;
defined('MOODLE_INTERNAL') || die(); defined('MOODLE_INTERNAL') || die();
global $CFG; global $CFG;
@ -37,7 +39,7 @@ require_once($CFG->dirroot . '/mod/assign/locallib.php');
* @copyright 2016 Eric Merrill {@link http://www.merrilldigital.com} * @copyright 2016 Eric Merrill {@link http://www.merrilldigital.com}
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
class mod_assign_search_testcase extends advanced_testcase { class search_test extends \advanced_testcase {
/** /**
* Test for assign file attachments. * Test for assign file attachments.
@ -53,20 +55,20 @@ class mod_assign_search_testcase extends advanced_testcase {
$assignareaid = \core_search\manager::generate_areaid('mod_assign', 'activity'); $assignareaid = \core_search\manager::generate_areaid('mod_assign', 'activity');
// Set \core_search::instance to the mock_search_engine as we don't require the search engine to be working to test this. // Set \core_search::instance to the mock_search_engine as we don't require the search engine to be working to test this.
$search = testable_core_search::instance(); $search = \testable_core_search::instance();
$this->setAdminUser(); $this->setAdminUser();
// Setup test data. // Setup test data.
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
$fs = get_file_storage(); $fs = get_file_storage();
$usercontext = context_user::instance($USER->id); $usercontext = \context_user::instance($USER->id);
$record = new stdClass(); $record = new \stdClass();
$record->course = $course->id; $record->course = $course->id;
$assign = $this->getDataGenerator()->create_module('assign', $record); $assign = $this->getDataGenerator()->create_module('assign', $record);
$context = context_module::instance($assign->cmid); $context = \context_module::instance($assign->cmid);
// Attach the main file. We put them in the draft area, create_module will move them. // Attach the main file. We put them in the draft area, create_module will move them.
$filerecord = array( $filerecord = array(

View file

@ -23,8 +23,7 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
defined('MOODLE_INTERNAL') || die(); namespace mod_book\event;
global $CFG;
/** /**
* Events tests class. * Events tests class.
@ -34,7 +33,7 @@ global $CFG;
* @copyright 2013 Frédéric Massart * @copyright 2013 Frédéric Massart
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
class mod_book_events_testcase extends advanced_testcase { class events_test extends \advanced_testcase {
public function setUp(): void { public function setUp(): void {
$this->resetAfterTest(); $this->resetAfterTest();
@ -47,7 +46,7 @@ class mod_book_events_testcase extends advanced_testcase {
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
$book = $this->getDataGenerator()->create_module('book', array('course' => $course->id)); $book = $this->getDataGenerator()->create_module('book', array('course' => $course->id));
$bookgenerator = $this->getDataGenerator()->get_plugin_generator('mod_book'); $bookgenerator = $this->getDataGenerator()->get_plugin_generator('mod_book');
$context = context_module::instance($book->cmid); $context = \context_module::instance($book->cmid);
$chapter = $bookgenerator->create_chapter(array('bookid' => $book->id)); $chapter = $bookgenerator->create_chapter(array('bookid' => $book->id));
@ -62,7 +61,7 @@ class mod_book_events_testcase extends advanced_testcase {
// Checking that the event contains the expected values. // Checking that the event contains the expected values.
$this->assertInstanceOf('\mod_book\event\chapter_created', $event); $this->assertInstanceOf('\mod_book\event\chapter_created', $event);
$this->assertEquals(context_module::instance($book->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($book->cmid), $event->get_context());
$this->assertEquals($chapter->id, $event->objectid); $this->assertEquals($chapter->id, $event->objectid);
$expected = array($course->id, 'book', 'add chapter', 'view.php?id='.$book->cmid.'&chapterid='.$chapter->id, $expected = array($course->id, 'book', 'add chapter', 'view.php?id='.$book->cmid.'&chapterid='.$chapter->id,
$chapter->id, $book->cmid); $chapter->id, $book->cmid);
@ -77,7 +76,7 @@ class mod_book_events_testcase extends advanced_testcase {
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
$book = $this->getDataGenerator()->create_module('book', array('course' => $course->id)); $book = $this->getDataGenerator()->create_module('book', array('course' => $course->id));
$bookgenerator = $this->getDataGenerator()->get_plugin_generator('mod_book'); $bookgenerator = $this->getDataGenerator()->get_plugin_generator('mod_book');
$context = context_module::instance($book->cmid); $context = \context_module::instance($book->cmid);
$chapter = $bookgenerator->create_chapter(array('bookid' => $book->id)); $chapter = $bookgenerator->create_chapter(array('bookid' => $book->id));
@ -92,7 +91,7 @@ class mod_book_events_testcase extends advanced_testcase {
// Checking that the event contains the expected values. // Checking that the event contains the expected values.
$this->assertInstanceOf('\mod_book\event\chapter_updated', $event); $this->assertInstanceOf('\mod_book\event\chapter_updated', $event);
$this->assertEquals(context_module::instance($book->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($book->cmid), $event->get_context());
$this->assertEquals($chapter->id, $event->objectid); $this->assertEquals($chapter->id, $event->objectid);
$expected = array($course->id, 'book', 'update chapter', 'view.php?id='.$book->cmid.'&chapterid='.$chapter->id, $expected = array($course->id, 'book', 'update chapter', 'view.php?id='.$book->cmid.'&chapterid='.$chapter->id,
$chapter->id, $book->cmid); $chapter->id, $book->cmid);
@ -107,7 +106,7 @@ class mod_book_events_testcase extends advanced_testcase {
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
$book = $this->getDataGenerator()->create_module('book', array('course' => $course->id)); $book = $this->getDataGenerator()->create_module('book', array('course' => $course->id));
$bookgenerator = $this->getDataGenerator()->get_plugin_generator('mod_book'); $bookgenerator = $this->getDataGenerator()->get_plugin_generator('mod_book');
$context = context_module::instance($book->cmid); $context = \context_module::instance($book->cmid);
$chapter = $bookgenerator->create_chapter(array('bookid' => $book->id)); $chapter = $bookgenerator->create_chapter(array('bookid' => $book->id));
@ -123,7 +122,7 @@ class mod_book_events_testcase extends advanced_testcase {
// Checking that the event contains the expected values. // Checking that the event contains the expected values.
$this->assertInstanceOf('\mod_book\event\chapter_deleted', $event); $this->assertInstanceOf('\mod_book\event\chapter_deleted', $event);
$this->assertEquals(context_module::instance($book->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($book->cmid), $event->get_context());
$this->assertEquals($chapter->id, $event->objectid); $this->assertEquals($chapter->id, $event->objectid);
$this->assertEquals($chapter, $event->get_record_snapshot('book_chapters', $chapter->id)); $this->assertEquals($chapter, $event->get_record_snapshot('book_chapters', $chapter->id));
$this->assertEventLegacyLogData($legacy, $event); $this->assertEventLegacyLogData($legacy, $event);
@ -136,7 +135,7 @@ class mod_book_events_testcase extends advanced_testcase {
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
$params = array( $params = array(
'context' => context_course::instance($course->id) 'context' => \context_course::instance($course->id)
); );
$event = \mod_book\event\course_module_instance_list_viewed::create($params); $event = \mod_book\event\course_module_instance_list_viewed::create($params);
@ -149,7 +148,7 @@ class mod_book_events_testcase extends advanced_testcase {
// Checking that the event contains the expected values. // Checking that the event contains the expected values.
$this->assertInstanceOf('\mod_book\event\course_module_instance_list_viewed', $event); $this->assertInstanceOf('\mod_book\event\course_module_instance_list_viewed', $event);
$this->assertEquals(context_course::instance($course->id), $event->get_context()); $this->assertEquals(\context_course::instance($course->id), $event->get_context());
$expected = array($course->id, 'book', 'view all', 'index.php?id='.$course->id, ''); $expected = array($course->id, 'book', 'view all', 'index.php?id='.$course->id, '');
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
@ -163,7 +162,7 @@ class mod_book_events_testcase extends advanced_testcase {
$book = $this->getDataGenerator()->create_module('book', array('course' => $course->id)); $book = $this->getDataGenerator()->create_module('book', array('course' => $course->id));
$params = array( $params = array(
'context' => context_module::instance($book->cmid), 'context' => \context_module::instance($book->cmid),
'objectid' => $book->id 'objectid' => $book->id
); );
$event = \mod_book\event\course_module_viewed::create($params); $event = \mod_book\event\course_module_viewed::create($params);
@ -177,7 +176,7 @@ class mod_book_events_testcase extends advanced_testcase {
// Checking that the event contains the expected values. // Checking that the event contains the expected values.
$this->assertInstanceOf('\mod_book\event\course_module_viewed', $event); $this->assertInstanceOf('\mod_book\event\course_module_viewed', $event);
$this->assertEquals(context_module::instance($book->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($book->cmid), $event->get_context());
$this->assertEquals($book->id, $event->objectid); $this->assertEquals($book->id, $event->objectid);
$expected = array($course->id, 'book', 'view', 'view.php?id=' . $book->cmid, $book->id, $book->cmid); $expected = array($course->id, 'book', 'view', 'view.php?id=' . $book->cmid, $book->id, $book->cmid);
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
@ -191,7 +190,7 @@ class mod_book_events_testcase extends advanced_testcase {
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
$book = $this->getDataGenerator()->create_module('book', array('course' => $course->id)); $book = $this->getDataGenerator()->create_module('book', array('course' => $course->id));
$bookgenerator = $this->getDataGenerator()->get_plugin_generator('mod_book'); $bookgenerator = $this->getDataGenerator()->get_plugin_generator('mod_book');
$context = context_module::instance($book->cmid); $context = \context_module::instance($book->cmid);
$chapter = $bookgenerator->create_chapter(array('bookid' => $book->id)); $chapter = $bookgenerator->create_chapter(array('bookid' => $book->id));
@ -206,7 +205,7 @@ class mod_book_events_testcase extends advanced_testcase {
// Checking that the event contains the expected values. // Checking that the event contains the expected values.
$this->assertInstanceOf('\mod_book\event\chapter_viewed', $event); $this->assertInstanceOf('\mod_book\event\chapter_viewed', $event);
$this->assertEquals(context_module::instance($book->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($book->cmid), $event->get_context());
$this->assertEquals($chapter->id, $event->objectid); $this->assertEquals($chapter->id, $event->objectid);
$expected = array($course->id, 'book', 'view chapter', 'view.php?id=' . $book->cmid . '&amp;chapterid=' . $expected = array($course->id, 'book', 'view chapter', 'view.php?id=' . $book->cmid . '&amp;chapterid=' .
$chapter->id, $chapter->id, $book->cmid); $chapter->id, $chapter->id, $book->cmid);

View file

@ -23,6 +23,8 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
namespace mod_book\search;
defined('MOODLE_INTERNAL') || die(); defined('MOODLE_INTERNAL') || die();
global $CFG; global $CFG;
@ -36,7 +38,7 @@ require_once($CFG->dirroot . '/search/tests/fixtures/testable_core_search.php');
* @copyright 2016 Eric Merrill {@link http://www.merrilldigital.com} * @copyright 2016 Eric Merrill {@link http://www.merrilldigital.com}
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
class mod_book_search_testcase extends advanced_testcase { class search_test extends \advanced_testcase {
/** /**
* @var string Area id * @var string Area id
@ -50,7 +52,7 @@ class mod_book_search_testcase extends advanced_testcase {
$this->bookchapterareaid = \core_search\manager::generate_areaid('mod_book', 'chapter'); $this->bookchapterareaid = \core_search\manager::generate_areaid('mod_book', 'chapter');
// Set \core_search::instance to the mock_search_engine as we don't require the search engine to be working to test this. // Set \core_search::instance to the mock_search_engine as we don't require the search engine to be working to test this.
$search = testable_core_search::instance(); $search = \testable_core_search::instance();
} }
/** /**

View file

@ -23,8 +23,7 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
defined('MOODLE_INTERNAL') || die(); namespace booktool_exportimscp\event;
global $CFG;
/** /**
* Events tests class. * Events tests class.
@ -34,7 +33,7 @@ global $CFG;
* @copyright 2013 Frédéric Massart * @copyright 2013 Frédéric Massart
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
class booktool_exportimscp_events_testcase extends advanced_testcase { class events_test extends \advanced_testcase {
public function setUp(): void { public function setUp(): void {
$this->resetAfterTest(); $this->resetAfterTest();
@ -46,7 +45,7 @@ class booktool_exportimscp_events_testcase extends advanced_testcase {
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
$book = $this->getDataGenerator()->create_module('book', array('course' => $course->id)); $book = $this->getDataGenerator()->create_module('book', array('course' => $course->id));
$context = context_module::instance($book->cmid); $context = \context_module::instance($book->cmid);
$event = \booktool_exportimscp\event\book_exported::create_from_book($book, $context); $event = \booktool_exportimscp\event\book_exported::create_from_book($book, $context);
@ -59,7 +58,7 @@ class booktool_exportimscp_events_testcase extends advanced_testcase {
// Checking that the event contains the expected values. // Checking that the event contains the expected values.
$this->assertInstanceOf('\booktool_exportimscp\event\book_exported', $event); $this->assertInstanceOf('\booktool_exportimscp\event\book_exported', $event);
$this->assertEquals(context_module::instance($book->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($book->cmid), $event->get_context());
$this->assertEquals($book->id, $event->objectid); $this->assertEquals($book->id, $event->objectid);
$expected = array($course->id, 'book', 'exportimscp', 'tool/exportimscp/index.php?id=' . $book->cmid, $expected = array($course->id, 'book', 'exportimscp', 'tool/exportimscp/index.php?id=' . $book->cmid,
$book->id, $book->cmid); $book->id, $book->cmid);

View file

@ -23,8 +23,7 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
defined('MOODLE_INTERNAL') || die(); namespace booktool_print\event;
global $CFG;
/** /**
* Events tests class. * Events tests class.
@ -34,7 +33,7 @@ global $CFG;
* @copyright 2013 Frédéric Massart * @copyright 2013 Frédéric Massart
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
class booktool_print_events_testcase extends advanced_testcase { class events_test extends \advanced_testcase {
public function setUp(): void { public function setUp(): void {
$this->resetAfterTest(); $this->resetAfterTest();
@ -46,7 +45,7 @@ class booktool_print_events_testcase extends advanced_testcase {
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
$book = $this->getDataGenerator()->create_module('book', array('course' => $course->id)); $book = $this->getDataGenerator()->create_module('book', array('course' => $course->id));
$context = context_module::instance($book->cmid); $context = \context_module::instance($book->cmid);
$event = \booktool_print\event\book_printed::create_from_book($book, $context); $event = \booktool_print\event\book_printed::create_from_book($book, $context);
@ -59,7 +58,7 @@ class booktool_print_events_testcase extends advanced_testcase {
// Checking that the event contains the expected values. // Checking that the event contains the expected values.
$this->assertInstanceOf('\booktool_print\event\book_printed', $event); $this->assertInstanceOf('\booktool_print\event\book_printed', $event);
$this->assertEquals(context_module::instance($book->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($book->cmid), $event->get_context());
$this->assertEquals($book->id, $event->objectid); $this->assertEquals($book->id, $event->objectid);
$expected = array($course->id, 'book', 'print', 'tool/print/index.php?id=' . $book->cmid, $book->id, $book->cmid); $expected = array($course->id, 'book', 'print', 'tool/print/index.php?id=' . $book->cmid, $book->id, $book->cmid);
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
@ -75,7 +74,7 @@ class booktool_print_events_testcase extends advanced_testcase {
$book = $this->getDataGenerator()->create_module('book', array('course' => $course->id)); $book = $this->getDataGenerator()->create_module('book', array('course' => $course->id));
$bookgenerator = $this->getDataGenerator()->get_plugin_generator('mod_book'); $bookgenerator = $this->getDataGenerator()->get_plugin_generator('mod_book');
$chapter = $bookgenerator->create_chapter(array('bookid' => $book->id)); $chapter = $bookgenerator->create_chapter(array('bookid' => $book->id));
$context = context_module::instance($book->cmid); $context = \context_module::instance($book->cmid);
$event = \booktool_print\event\chapter_printed::create_from_chapter($book, $context, $chapter); $event = \booktool_print\event\chapter_printed::create_from_chapter($book, $context, $chapter);
@ -88,7 +87,7 @@ class booktool_print_events_testcase extends advanced_testcase {
// Checking that the event contains the expected values. // Checking that the event contains the expected values.
$this->assertInstanceOf('\booktool_print\event\chapter_printed', $event); $this->assertInstanceOf('\booktool_print\event\chapter_printed', $event);
$this->assertEquals(context_module::instance($book->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($book->cmid), $event->get_context());
$this->assertEquals($chapter->id, $event->objectid); $this->assertEquals($chapter->id, $event->objectid);
$expected = array($course->id, 'book', 'print chapter', 'tool/print/index.php?id=' . $book->cmid . $expected = array($course->id, 'book', 'print chapter', 'tool/print/index.php?id=' . $book->cmid .
'&chapterid=' . $chapter->id, $chapter->id, $book->cmid); '&chapterid=' . $chapter->id, $chapter->id, $book->cmid);

View file

@ -22,6 +22,8 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
namespace mod_chat\event;
defined('MOODLE_INTERNAL') || die(); defined('MOODLE_INTERNAL') || die();
global $CFG; global $CFG;
@ -34,7 +36,7 @@ require_once($CFG->dirroot . '/mod/chat/lib.php');
* @copyright 2013 Frédéric Massart * @copyright 2013 Frédéric Massart
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
class mod_chat_events_testcase extends advanced_testcase { class events_test extends \advanced_testcase {
public function test_message_sent() { public function test_message_sent() {
global $DB; global $DB;
@ -111,7 +113,7 @@ class mod_chat_events_testcase extends advanced_testcase {
$chat = $this->getDataGenerator()->create_module('chat', array('course' => $course->id)); $chat = $this->getDataGenerator()->create_module('chat', array('course' => $course->id));
$params = array( $params = array(
'context' => context_module::instance($chat->cmid), 'context' => \context_module::instance($chat->cmid),
'objectid' => $chat->id, 'objectid' => $chat->id,
'other' => array( 'other' => array(
'start' => 1234, 'start' => 1234,
@ -126,7 +128,7 @@ class mod_chat_events_testcase extends advanced_testcase {
$event = reset($events); $event = reset($events);
$this->assertInstanceOf('\mod_chat\event\sessions_viewed', $event); $this->assertInstanceOf('\mod_chat\event\sessions_viewed', $event);
$this->assertEquals($USER->id, $event->userid); $this->assertEquals($USER->id, $event->userid);
$this->assertEquals(context_module::instance($chat->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($chat->cmid), $event->get_context());
$this->assertEquals(1234, $event->other['start']); $this->assertEquals(1234, $event->other['start']);
$this->assertEquals(5678, $event->other['end']); $this->assertEquals(5678, $event->other['end']);
$this->assertEquals($chat->id, $event->objectid); $this->assertEquals($chat->id, $event->objectid);
@ -146,7 +148,7 @@ class mod_chat_events_testcase extends advanced_testcase {
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
$params = array( $params = array(
'context' => context_course::instance($course->id) 'context' => \context_course::instance($course->id)
); );
$event = \mod_chat\event\course_module_instance_list_viewed::create($params); $event = \mod_chat\event\course_module_instance_list_viewed::create($params);
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();
@ -155,7 +157,7 @@ class mod_chat_events_testcase extends advanced_testcase {
$event = reset($events); $event = reset($events);
$this->assertInstanceOf('\mod_chat\event\course_module_instance_list_viewed', $event); $this->assertInstanceOf('\mod_chat\event\course_module_instance_list_viewed', $event);
$this->assertEquals($USER->id, $event->userid); $this->assertEquals($USER->id, $event->userid);
$this->assertEquals(context_course::instance($course->id), $event->get_context()); $this->assertEquals(\context_course::instance($course->id), $event->get_context());
$expected = array($course->id, 'chat', 'view all', "index.php?id=$course->id", ''); $expected = array($course->id, 'chat', 'view all', "index.php?id=$course->id", '');
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
@ -167,7 +169,7 @@ class mod_chat_events_testcase extends advanced_testcase {
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
$chat = $this->getDataGenerator()->create_module('chat', array('course' => $course->id)); $chat = $this->getDataGenerator()->create_module('chat', array('course' => $course->id));
$cm = get_coursemodule_from_instance('chat', $chat->id); $cm = get_coursemodule_from_instance('chat', $chat->id);
$context = context_module::instance($cm->id); $context = \context_module::instance($cm->id);
$params = array( $params = array(
'objectid' => $chat->id, 'objectid' => $chat->id,
@ -180,7 +182,7 @@ class mod_chat_events_testcase extends advanced_testcase {
$expected = array($course->id, 'chat', 'view', "view.php?id=$cm->id", $chat->id, $cm->id); $expected = array($course->id, 'chat', 'view', "view.php?id=$cm->id", $chat->id, $cm->id);
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
$url = new moodle_url('/mod/chat/view.php', array('id' => $cm->id)); $url = new \moodle_url('/mod/chat/view.php', array('id' => $cm->id));
$this->assertEquals($url, $event->get_url()); $this->assertEquals($url, $event->get_url());
$event->get_name(); $event->get_name();
} }

View file

@ -22,6 +22,8 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
namespace mod_choice\event;
defined('MOODLE_INTERNAL') || die(); defined('MOODLE_INTERNAL') || die();
global $CFG; global $CFG;
@ -34,7 +36,7 @@ require_once($CFG->dirroot . '/mod/choice/lib.php');
* @copyright 2013 Adrian Greeve <adrian@moodle.com> * @copyright 2013 Adrian Greeve <adrian@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
class mod_choice_events_testcase extends advanced_testcase { class events_test extends \advanced_testcase {
/** @var choice_object */ /** @var choice_object */
protected $choice; protected $choice;
@ -58,7 +60,7 @@ class mod_choice_events_testcase extends advanced_testcase {
$this->course = $this->getDataGenerator()->create_course(); $this->course = $this->getDataGenerator()->create_course();
$this->choice = $this->getDataGenerator()->create_module('choice', array('course' => $this->course->id)); $this->choice = $this->getDataGenerator()->create_module('choice', array('course' => $this->course->id));
$this->cm = $DB->get_record('course_modules', array('id' => $this->choice->cmid)); $this->cm = $DB->get_record('course_modules', array('id' => $this->choice->cmid));
$this->context = context_module::instance($this->choice->cmid); $this->context = \context_module::instance($this->choice->cmid);
} }
/** /**
@ -82,7 +84,7 @@ class mod_choice_events_testcase extends advanced_testcase {
$this->assertInstanceOf('\mod_choice\event\answer_created', $events[0]); $this->assertInstanceOf('\mod_choice\event\answer_created', $events[0]);
$this->assertEquals($user->id, $events[0]->userid); $this->assertEquals($user->id, $events[0]->userid);
$this->assertEquals($user->id, $events[0]->relateduserid); $this->assertEquals($user->id, $events[0]->relateduserid);
$this->assertEquals(context_module::instance($this->choice->cmid), $events[0]->get_context()); $this->assertEquals(\context_module::instance($this->choice->cmid), $events[0]->get_context());
$this->assertEquals($answer->id, $events[0]->objectid); $this->assertEquals($answer->id, $events[0]->objectid);
$this->assertEquals($this->choice->id, $events[0]->other['choiceid']); $this->assertEquals($this->choice->id, $events[0]->other['choiceid']);
$this->assertEquals($optionids[3], $events[0]->other['optionid']); $this->assertEquals($optionids[3], $events[0]->other['optionid']);
@ -110,7 +112,7 @@ class mod_choice_events_testcase extends advanced_testcase {
$this->assertInstanceOf('\mod_choice\event\answer_created', $events[0]); $this->assertInstanceOf('\mod_choice\event\answer_created', $events[0]);
$this->assertEquals($USER->id, $events[0]->userid); $this->assertEquals($USER->id, $events[0]->userid);
$this->assertEquals($user->id, $events[0]->relateduserid); $this->assertEquals($user->id, $events[0]->relateduserid);
$this->assertEquals(context_module::instance($this->choice->cmid), $events[0]->get_context()); $this->assertEquals(\context_module::instance($this->choice->cmid), $events[0]->get_context());
$this->assertEquals($answer->id, $events[0]->objectid); $this->assertEquals($answer->id, $events[0]->objectid);
$this->assertEquals($this->choice->id, $events[0]->other['choiceid']); $this->assertEquals($this->choice->id, $events[0]->other['choiceid']);
$this->assertEquals($optionids[3], $events[0]->other['optionid']); $this->assertEquals($optionids[3], $events[0]->other['optionid']);
@ -132,7 +134,7 @@ class mod_choice_events_testcase extends advanced_testcase {
$choice = $this->getDataGenerator()->create_module('choice', array('course' => $this->course->id, $choice = $this->getDataGenerator()->create_module('choice', array('course' => $this->course->id,
'allowmultiple' => 1)); 'allowmultiple' => 1));
$cm = $DB->get_record('course_modules', array('id' => $choice->cmid)); $cm = $DB->get_record('course_modules', array('id' => $choice->cmid));
$context = context_module::instance($choice->cmid); $context = \context_module::instance($choice->cmid);
$optionids = array_keys($DB->get_records('choice_options', array('choiceid' => $choice->id))); $optionids = array_keys($DB->get_records('choice_options', array('choiceid' => $choice->id)));
$submittedoptionids = array($optionids[1], $optionids[3]); $submittedoptionids = array($optionids[1], $optionids[3]);
@ -149,7 +151,7 @@ class mod_choice_events_testcase extends advanced_testcase {
$this->assertInstanceOf('\mod_choice\event\answer_created', $events[0]); $this->assertInstanceOf('\mod_choice\event\answer_created', $events[0]);
$this->assertEquals($user->id, $events[0]->userid); $this->assertEquals($user->id, $events[0]->userid);
$this->assertEquals($user->id, $events[0]->relateduserid); $this->assertEquals($user->id, $events[0]->relateduserid);
$this->assertEquals(context_module::instance($choice->cmid), $events[0]->get_context()); $this->assertEquals(\context_module::instance($choice->cmid), $events[0]->get_context());
$this->assertEquals($answers[0]->id, $events[0]->objectid); $this->assertEquals($answers[0]->id, $events[0]->objectid);
$this->assertEquals($choice->id, $events[0]->other['choiceid']); $this->assertEquals($choice->id, $events[0]->other['choiceid']);
$this->assertEquals($optionids[1], $events[0]->other['optionid']); $this->assertEquals($optionids[1], $events[0]->other['optionid']);
@ -158,7 +160,7 @@ class mod_choice_events_testcase extends advanced_testcase {
$this->assertInstanceOf('\mod_choice\event\answer_created', $events[1]); $this->assertInstanceOf('\mod_choice\event\answer_created', $events[1]);
$this->assertEquals($user->id, $events[1]->userid); $this->assertEquals($user->id, $events[1]->userid);
$this->assertEquals($user->id, $events[1]->relateduserid); $this->assertEquals($user->id, $events[1]->relateduserid);
$this->assertEquals(context_module::instance($choice->cmid), $events[1]->get_context()); $this->assertEquals(\context_module::instance($choice->cmid), $events[1]->get_context());
$this->assertEquals($answers[1]->id, $events[1]->objectid); $this->assertEquals($answers[1]->id, $events[1]->objectid);
$this->assertEquals($choice->id, $events[1]->other['choiceid']); $this->assertEquals($choice->id, $events[1]->other['choiceid']);
$this->assertEquals($optionids[3], $events[1]->other['optionid']); $this->assertEquals($optionids[3], $events[1]->other['optionid']);
@ -181,7 +183,7 @@ class mod_choice_events_testcase extends advanced_testcase {
$eventdata['other'] = array(); $eventdata['other'] = array();
// Make sure content identifier is always set. // Make sure content identifier is always set.
$this->expectException(coding_exception::class); $this->expectException(\coding_exception::class);
$event = \mod_choice\event\answer_created::create($eventdata); $event = \mod_choice\event\answer_created::create($eventdata);
$event->trigger(); $event->trigger();
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
@ -214,7 +216,7 @@ class mod_choice_events_testcase extends advanced_testcase {
$this->assertCount(2, $events); $this->assertCount(2, $events);
$this->assertInstanceOf('\mod_choice\event\answer_deleted', $events[0]); $this->assertInstanceOf('\mod_choice\event\answer_deleted', $events[0]);
$this->assertEquals($user->id, $events[0]->userid); $this->assertEquals($user->id, $events[0]->userid);
$this->assertEquals(context_module::instance($this->choice->cmid), $events[0]->get_context()); $this->assertEquals(\context_module::instance($this->choice->cmid), $events[0]->get_context());
$this->assertEquals($oldanswer->id, $events[0]->objectid); $this->assertEquals($oldanswer->id, $events[0]->objectid);
$this->assertEquals($this->choice->id, $events[0]->other['choiceid']); $this->assertEquals($this->choice->id, $events[0]->other['choiceid']);
$this->assertEquals($optionids[2], $events[0]->other['optionid']); $this->assertEquals($optionids[2], $events[0]->other['optionid']);
@ -222,7 +224,7 @@ class mod_choice_events_testcase extends advanced_testcase {
$this->assertInstanceOf('\mod_choice\event\answer_created', $events[1]); $this->assertInstanceOf('\mod_choice\event\answer_created', $events[1]);
$this->assertEquals($user->id, $events[1]->userid); $this->assertEquals($user->id, $events[1]->userid);
$this->assertEquals(context_module::instance($this->choice->cmid), $events[1]->get_context()); $this->assertEquals(\context_module::instance($this->choice->cmid), $events[1]->get_context());
$this->assertEquals($newanswer->id, $events[1]->objectid); $this->assertEquals($newanswer->id, $events[1]->objectid);
$this->assertEquals($this->choice->id, $events[1]->other['choiceid']); $this->assertEquals($this->choice->id, $events[1]->other['choiceid']);
$this->assertEquals($optionids[3], $events[1]->other['optionid']); $this->assertEquals($optionids[3], $events[1]->other['optionid']);
@ -260,7 +262,7 @@ class mod_choice_events_testcase extends advanced_testcase {
$this->assertInstanceOf('\mod_choice\event\answer_deleted', $event); $this->assertInstanceOf('\mod_choice\event\answer_deleted', $event);
$this->assertEquals($USER->id, $event->userid); $this->assertEquals($USER->id, $event->userid);
$this->assertEquals($user->id, $event->relateduserid); $this->assertEquals($user->id, $event->relateduserid);
$this->assertEquals(context_module::instance($this->choice->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($this->choice->cmid), $event->get_context());
$this->assertEquals($this->choice->id, $event->other['choiceid']); $this->assertEquals($this->choice->id, $event->other['choiceid']);
$this->assertEquals($answer->optionid, $event->other['optionid']); $this->assertEquals($answer->optionid, $event->other['optionid']);
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
@ -296,7 +298,7 @@ class mod_choice_events_testcase extends advanced_testcase {
$this->assertCount(1, $event); $this->assertCount(1, $event);
$this->assertInstanceOf('\mod_choice\event\report_viewed', $event[0]); $this->assertInstanceOf('\mod_choice\event\report_viewed', $event[0]);
$this->assertEquals($USER->id, $event[0]->userid); $this->assertEquals($USER->id, $event[0]->userid);
$this->assertEquals(context_module::instance($this->choice->cmid), $event[0]->get_context()); $this->assertEquals(\context_module::instance($this->choice->cmid), $event[0]->get_context());
$expected = array($this->course->id, "choice", "report", 'report.php?id=' . $this->context->instanceid, $expected = array($this->course->id, "choice", "report", 'report.php?id=' . $this->context->instanceid,
$this->choice->id, $this->context->instanceid); $this->choice->id, $this->context->instanceid);
$this->assertEventLegacyLogData($expected, $event[0]); $this->assertEventLegacyLogData($expected, $event[0]);
@ -334,7 +336,7 @@ class mod_choice_events_testcase extends advanced_testcase {
$this->assertCount(1, $event); $this->assertCount(1, $event);
$this->assertInstanceOf('\mod_choice\event\report_downloaded', $event[0]); $this->assertInstanceOf('\mod_choice\event\report_downloaded', $event[0]);
$this->assertEquals($USER->id, $event[0]->userid); $this->assertEquals($USER->id, $event[0]->userid);
$this->assertEquals(context_module::instance($this->choice->cmid), $event[0]->get_context()); $this->assertEquals(\context_module::instance($this->choice->cmid), $event[0]->get_context());
$this->assertEquals('csv', $event[0]->other['format']); $this->assertEquals('csv', $event[0]->other['format']);
$this->assertEquals($this->choice->id, $event[0]->other['choiceid']); $this->assertEquals($this->choice->id, $event[0]->other['choiceid']);
$this->assertEventContextNotUsed($event[0]); $this->assertEventContextNotUsed($event[0]);
@ -368,7 +370,7 @@ class mod_choice_events_testcase extends advanced_testcase {
$this->assertCount(1, $event); $this->assertCount(1, $event);
$this->assertInstanceOf('\mod_choice\event\course_module_viewed', $event[0]); $this->assertInstanceOf('\mod_choice\event\course_module_viewed', $event[0]);
$this->assertEquals($USER->id, $event[0]->userid); $this->assertEquals($USER->id, $event[0]->userid);
$this->assertEquals(context_module::instance($this->choice->cmid), $event[0]->get_context()); $this->assertEquals(\context_module::instance($this->choice->cmid), $event[0]->get_context());
$expected = array($this->course->id, "choice", "view", 'view.php?id=' . $this->context->instanceid, $expected = array($this->course->id, "choice", "view", 'view.php?id=' . $this->context->instanceid,
$this->choice->id, $this->context->instanceid); $this->choice->id, $this->context->instanceid);
$this->assertEventLegacyLogData($expected, $event[0]); $this->assertEventLegacyLogData($expected, $event[0]);
@ -386,7 +388,7 @@ class mod_choice_events_testcase extends advanced_testcase {
// let's just check that the event contains the expected basic information. // let's just check that the event contains the expected basic information.
$this->setAdminUser(); $this->setAdminUser();
$params = array('context' => context_course::instance($this->course->id)); $params = array('context' => \context_course::instance($this->course->id));
$event = \mod_choice\event\course_module_instance_list_viewed::create($params); $event = \mod_choice\event\course_module_instance_list_viewed::create($params);
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();
$event->trigger(); $event->trigger();
@ -394,7 +396,7 @@ class mod_choice_events_testcase extends advanced_testcase {
$event = reset($events); $event = reset($events);
$this->assertInstanceOf('\mod_choice\event\course_module_instance_list_viewed', $event); $this->assertInstanceOf('\mod_choice\event\course_module_instance_list_viewed', $event);
$this->assertEquals($USER->id, $event->userid); $this->assertEquals($USER->id, $event->userid);
$this->assertEquals(context_course::instance($this->course->id), $event->get_context()); $this->assertEquals(\context_course::instance($this->course->id), $event->get_context());
$expected = array($this->course->id, 'choice', 'view all', 'index.php?id=' . $this->course->id, ''); $expected = array($this->course->id, 'choice', 'view all', 'index.php?id=' . $this->course->id, '');
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);

View file

@ -23,11 +23,9 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
defined('MOODLE_INTERNAL') || die(); namespace mod_data\event;
global $CFG; class events_test extends \advanced_testcase {
class mod_data_events_testcase extends advanced_testcase {
/** /**
* Test set up. * Test set up.
@ -55,7 +53,7 @@ class mod_data_events_testcase extends advanced_testcase {
// Now we want to create a field. // Now we want to create a field.
$field = data_get_field_new('text', $data); $field = data_get_field_new('text', $data);
$fielddata = new stdClass(); $fielddata = new \stdClass();
$fielddata->name = 'Test'; $fielddata->name = 'Test';
$fielddata->description = 'Test description'; $fielddata->description = 'Test description';
$field->define_field($fielddata); $field->define_field($fielddata);
@ -68,12 +66,12 @@ class mod_data_events_testcase extends advanced_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\mod_data\event\field_created', $event); $this->assertInstanceOf('\mod_data\event\field_created', $event);
$this->assertEquals(context_module::instance($data->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($data->cmid), $event->get_context());
$expected = array($course->id, 'data', 'fields add', 'field.php?d=' . $data->id . '&amp;mode=display&amp;fid=' . $expected = array($course->id, 'data', 'fields add', 'field.php?d=' . $data->id . '&amp;mode=display&amp;fid=' .
$field->field->id, $field->field->id, $data->cmid); $field->field->id, $field->field->id, $data->cmid);
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
$url = new moodle_url('/mod/data/field.php', array('d' => $data->id)); $url = new \moodle_url('/mod/data/field.php', array('d' => $data->id));
$this->assertEquals($url, $event->get_url()); $this->assertEquals($url, $event->get_url());
} }
@ -94,7 +92,7 @@ class mod_data_events_testcase extends advanced_testcase {
// Now we want to create a field. // Now we want to create a field.
$field = data_get_field_new('text', $data); $field = data_get_field_new('text', $data);
$fielddata = new stdClass(); $fielddata = new \stdClass();
$fielddata->name = 'Test'; $fielddata->name = 'Test';
$fielddata->description = 'Test description'; $fielddata->description = 'Test description';
$field->define_field($fielddata); $field->define_field($fielddata);
@ -108,12 +106,12 @@ class mod_data_events_testcase extends advanced_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\mod_data\event\field_updated', $event); $this->assertInstanceOf('\mod_data\event\field_updated', $event);
$this->assertEquals(context_module::instance($data->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($data->cmid), $event->get_context());
$expected = array($course->id, 'data', 'fields update', 'field.php?d=' . $data->id . '&amp;mode=display&amp;fid=' . $expected = array($course->id, 'data', 'fields update', 'field.php?d=' . $data->id . '&amp;mode=display&amp;fid=' .
$field->field->id, $field->field->id, $data->cmid); $field->field->id, $field->field->id, $data->cmid);
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
$url = new moodle_url('/mod/data/field.php', array('d' => $data->id)); $url = new \moodle_url('/mod/data/field.php', array('d' => $data->id));
$this->assertEquals($url, $event->get_url()); $this->assertEquals($url, $event->get_url());
} }
@ -134,7 +132,7 @@ class mod_data_events_testcase extends advanced_testcase {
// Now we want to create a field. // Now we want to create a field.
$field = data_get_field_new('text', $data); $field = data_get_field_new('text', $data);
$fielddata = new stdClass(); $fielddata = new \stdClass();
$fielddata->name = 'Test'; $fielddata->name = 'Test';
$fielddata->description = 'Test description'; $fielddata->description = 'Test description';
$field->define_field($fielddata); $field->define_field($fielddata);
@ -148,11 +146,11 @@ class mod_data_events_testcase extends advanced_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\mod_data\event\field_deleted', $event); $this->assertInstanceOf('\mod_data\event\field_deleted', $event);
$this->assertEquals(context_module::instance($data->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($data->cmid), $event->get_context());
$expected = array($course->id, 'data', 'fields delete', 'field.php?d=' . $data->id, $field->field->name, $data->cmid); $expected = array($course->id, 'data', 'fields delete', 'field.php?d=' . $data->id, $field->field->name, $data->cmid);
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
$url = new moodle_url('/mod/data/field.php', array('d' => $data->id)); $url = new \moodle_url('/mod/data/field.php', array('d' => $data->id));
$this->assertEquals($url, $event->get_url()); $this->assertEquals($url, $event->get_url());
} }
@ -177,12 +175,12 @@ class mod_data_events_testcase extends advanced_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\mod_data\event\record_created', $event); $this->assertInstanceOf('\mod_data\event\record_created', $event);
$this->assertEquals(context_module::instance($data->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($data->cmid), $event->get_context());
$expected = array($course->id, 'data', 'add', 'view.php?d=' . $data->id . '&amp;rid=' . $recordid, $expected = array($course->id, 'data', 'add', 'view.php?d=' . $data->id . '&amp;rid=' . $recordid,
$data->id, $data->cmid); $data->id, $data->cmid);
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
$url = new moodle_url('/mod/data/view.php', array('d' => $data->id, 'rid' => $recordid)); $url = new \moodle_url('/mod/data/view.php', array('d' => $data->id, 'rid' => $recordid));
$this->assertEquals($url, $event->get_url()); $this->assertEquals($url, $event->get_url());
} }
@ -205,7 +203,7 @@ class mod_data_events_testcase extends advanced_testcase {
// Trigger an event for updating this record. // Trigger an event for updating this record.
$event = \mod_data\event\record_updated::create(array( $event = \mod_data\event\record_updated::create(array(
'objectid' => 1, 'objectid' => 1,
'context' => context_module::instance($data->cmid), 'context' => \context_module::instance($data->cmid),
'courseid' => $course->id, 'courseid' => $course->id,
'other' => array( 'other' => array(
'dataid' => $data->id 'dataid' => $data->id
@ -220,11 +218,11 @@ class mod_data_events_testcase extends advanced_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\mod_data\event\record_updated', $event); $this->assertInstanceOf('\mod_data\event\record_updated', $event);
$this->assertEquals(context_module::instance($data->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($data->cmid), $event->get_context());
$expected = array($course->id, 'data', 'update', 'view.php?d=' . $data->id . '&amp;rid=1', $data->id, $data->cmid); $expected = array($course->id, 'data', 'update', 'view.php?d=' . $data->id . '&amp;rid=1', $data->id, $data->cmid);
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
$url = new moodle_url('/mod/data/view.php', array('d' => $data->id, 'rid' => $event->objectid)); $url = new \moodle_url('/mod/data/view.php', array('d' => $data->id, 'rid' => $event->objectid));
$this->assertEquals($url, $event->get_url()); $this->assertEquals($url, $event->get_url());
} }
@ -245,20 +243,20 @@ class mod_data_events_testcase extends advanced_testcase {
// Now we want to create a field. // Now we want to create a field.
$field = data_get_field_new('text', $data); $field = data_get_field_new('text', $data);
$fielddata = new stdClass(); $fielddata = new \stdClass();
$fielddata->name = 'Test'; $fielddata->name = 'Test';
$fielddata->description = 'Test description'; $fielddata->description = 'Test description';
$field->define_field($fielddata); $field->define_field($fielddata);
$field->insert_field(); $field->insert_field();
// Create data record. // Create data record.
$datarecords = new stdClass(); $datarecords = new \stdClass();
$datarecords->userid = '2'; $datarecords->userid = '2';
$datarecords->dataid = $data->id; $datarecords->dataid = $data->id;
$datarecords->id = $DB->insert_record('data_records', $datarecords); $datarecords->id = $DB->insert_record('data_records', $datarecords);
// Create data content. // Create data content.
$datacontent = new stdClass(); $datacontent = new \stdClass();
$datacontent->fieldid = $field->field->id; $datacontent->fieldid = $field->field->id;
$datacontent->recordid = $datarecords->id; $datacontent->recordid = $datarecords->id;
$datacontent->id = $DB->insert_record('data_content', $datacontent); $datacontent->id = $DB->insert_record('data_content', $datacontent);
@ -271,11 +269,11 @@ class mod_data_events_testcase extends advanced_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\mod_data\event\record_deleted', $event); $this->assertInstanceOf('\mod_data\event\record_deleted', $event);
$this->assertEquals(context_module::instance($data->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($data->cmid), $event->get_context());
$expected = array($course->id, 'data', 'record delete', 'view.php?id=' . $data->cmid, $data->id, $data->cmid); $expected = array($course->id, 'data', 'record delete', 'view.php?id=' . $data->cmid, $data->id, $data->cmid);
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
$url = new moodle_url('/mod/data/view.php', array('d' => $data->id)); $url = new \moodle_url('/mod/data/view.php', array('d' => $data->id));
$this->assertEquals($url, $event->get_url()); $this->assertEquals($url, $event->get_url());
} }
@ -297,7 +295,7 @@ class mod_data_events_testcase extends advanced_testcase {
// Trigger an event for updating this record. // Trigger an event for updating this record.
$event = \mod_data\event\template_viewed::create(array( $event = \mod_data\event\template_viewed::create(array(
'context' => context_module::instance($data->cmid), 'context' => \context_module::instance($data->cmid),
'courseid' => $course->id, 'courseid' => $course->id,
'other' => array( 'other' => array(
'dataid' => $data->id 'dataid' => $data->id
@ -312,12 +310,12 @@ class mod_data_events_testcase extends advanced_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\mod_data\event\template_viewed', $event); $this->assertInstanceOf('\mod_data\event\template_viewed', $event);
$this->assertEquals(context_module::instance($data->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($data->cmid), $event->get_context());
$expected = array($course->id, 'data', 'templates view', 'templates.php?id=' . $data->cmid . '&amp;d=' . $expected = array($course->id, 'data', 'templates view', 'templates.php?id=' . $data->cmid . '&amp;d=' .
$data->id, $data->id, $data->cmid); $data->id, $data->id, $data->cmid);
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
$url = new moodle_url('/mod/data/templates.php', array('d' => $data->id)); $url = new \moodle_url('/mod/data/templates.php', array('d' => $data->id));
$this->assertEquals($url, $event->get_url()); $this->assertEquals($url, $event->get_url());
} }
@ -339,7 +337,7 @@ class mod_data_events_testcase extends advanced_testcase {
// Trigger an event for updating this record. // Trigger an event for updating this record.
$event = \mod_data\event\template_updated::create(array( $event = \mod_data\event\template_updated::create(array(
'context' => context_module::instance($data->cmid), 'context' => \context_module::instance($data->cmid),
'courseid' => $course->id, 'courseid' => $course->id,
'other' => array( 'other' => array(
'dataid' => $data->id, 'dataid' => $data->id,
@ -354,12 +352,12 @@ class mod_data_events_testcase extends advanced_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\mod_data\event\template_updated', $event); $this->assertInstanceOf('\mod_data\event\template_updated', $event);
$this->assertEquals(context_module::instance($data->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($data->cmid), $event->get_context());
$expected = array($course->id, 'data', 'templates saved', 'templates.php?id=' . $data->cmid . '&amp;d=' . $expected = array($course->id, 'data', 'templates saved', 'templates.php?id=' . $data->cmid . '&amp;d=' .
$data->id, $data->id, $data->cmid); $data->id, $data->id, $data->cmid);
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
$url = new moodle_url('/mod/data/templates.php', array('d' => $data->id)); $url = new \moodle_url('/mod/data/templates.php', array('d' => $data->id));
$this->assertEquals($url, $event->get_url()); $this->assertEquals($url, $event->get_url());
} }
} }

View file

@ -24,6 +24,8 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
namespace mod_data\search;
defined('MOODLE_INTERNAL') || die(); defined('MOODLE_INTERNAL') || die();
global $CFG; global $CFG;
@ -43,7 +45,7 @@ require_once($CFG->dirroot . '/mod/data/tests/generator/lib.php');
* @copyright 2012 Adrian Greeve * @copyright 2012 Adrian Greeve
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
class mod_data_search_test extends advanced_testcase { class search_test extends \advanced_testcase {
/** /**
* @var stdObject $recorddata An object that holds information from the table data. * @var stdObject $recorddata An object that holds information from the table data.
*/ */
@ -112,7 +114,7 @@ class mod_data_search_test extends advanced_testcase {
$this->databaseentryareaid = \core_search\manager::generate_areaid('mod_data', 'entry'); $this->databaseentryareaid = \core_search\manager::generate_areaid('mod_data', 'entry');
// Set \core_search::instance to the mock_search_engine as we don't require the search engine to be working to test this. // Set \core_search::instance to the mock_search_engine as we don't require the search engine to be working to test this.
$search = testable_core_search::instance(); $search = \testable_core_search::instance();
} }
@ -160,9 +162,9 @@ class mod_data_search_test extends advanced_testcase {
// Set up data for the test database. // Set up data for the test database.
$files = array( $files = array(
'data_fields' => __DIR__.'/fixtures/test_data_fields.csv', 'data_fields' => __DIR__.'/../fixtures/test_data_fields.csv',
'data_records' => __DIR__.'/fixtures/test_data_records.csv', 'data_records' => __DIR__.'/../fixtures/test_data_records.csv',
'data_content' => __DIR__.'/fixtures/test_data_content.csv', 'data_content' => __DIR__.'/../fixtures/test_data_content.csv',
); );
$this->dataset_from_files($files)->to_database(); $this->dataset_from_files($files)->to_database();
// Set dataid to the correct value now the data has been inserted by csv file. // Set dataid to the correct value now the data has been inserted by csv file.
@ -170,11 +172,11 @@ class mod_data_search_test extends advanced_testcase {
$DB->execute('UPDATE {data_records} SET dataid = ?', array($data->id)); $DB->execute('UPDATE {data_records} SET dataid = ?', array($data->id));
// Create the search array which contains our advanced search criteria. // Create the search array which contains our advanced search criteria.
$fieldinfo = array('0' => new stdClass(), $fieldinfo = array('0' => new \stdClass(),
'1' => new stdClass(), '1' => new \stdClass(),
'2' => new stdClass(), '2' => new \stdClass(),
'3' => new stdClass(), '3' => new \stdClass(),
'4' => new stdClass()); '4' => new \stdClass());
$fieldinfo['0']->id = 1; $fieldinfo['0']->id = 1;
$fieldinfo['0']->data = '3.721,46.6126'; $fieldinfo['0']->data = '3.721,46.6126';
$fieldinfo['1']->id = 2; $fieldinfo['1']->id = 2;
@ -196,7 +198,7 @@ class mod_data_search_test extends advanced_testcase {
} else { } else {
$val = $field->data; $val = $field->data;
} }
$search_array[$field->id] = new stdClass(); $search_array[$field->id] = new \stdClass();
list($search_array[$field->id]->sql, $search_array[$field->id]->params) = $searchfield->generate_sql('c' . $field->id, $val); list($search_array[$field->id]->sql, $search_array[$field->id]->params) = $searchfield->generate_sql('c' . $field->id, $val);
} }
@ -204,7 +206,7 @@ class mod_data_search_test extends advanced_testcase {
// Setting up the comparison stdClass for the last test. // Setting up the comparison stdClass for the last test.
$user = $DB->get_record('user', array('id'=>6)); $user = $DB->get_record('user', array('id'=>6));
$this->finalrecord[6] = new stdClass(); $this->finalrecord[6] = new \stdClass();
$this->finalrecord[6]->id = 6; $this->finalrecord[6]->id = 6;
$this->finalrecord[6]->approved = 1; $this->finalrecord[6]->approved = 1;
$this->finalrecord[6]->timecreated = 1234567891; $this->finalrecord[6]->timecreated = 1234567891;
@ -265,7 +267,7 @@ class mod_data_search_test extends advanced_testcase {
$datagenerator = $this->getDataGenerator()->get_plugin_generator('mod_data'); $datagenerator = $this->getDataGenerator()->get_plugin_generator('mod_data');
$course1 = $this->getDataGenerator()->create_course(); $course1 = $this->getDataGenerator()->create_course();
$fieldrecord = new StdClass(); $fieldrecord = new \stdClass();
$fieldrecord->name = 'field-1'; $fieldrecord->name = 'field-1';
$fieldrecord->type = 'text'; $fieldrecord->type = 'text';
$fieldrecord->titlefield = true; $fieldrecord->titlefield = true;
@ -278,7 +280,7 @@ class mod_data_search_test extends advanced_testcase {
$record13 = $datagenerator->create_entry($data1, [$field1->field->id => 'value13'], 0, ['Bats']); $record13 = $datagenerator->create_entry($data1, [$field1->field->id => 'value13'], 0, ['Bats']);
$searcharray = []; $searcharray = [];
$searcharray[DATA_TAGS] = new stdClass(); $searcharray[DATA_TAGS] = new \stdClass();
$searcharray[DATA_TAGS]->params = []; $searcharray[DATA_TAGS]->params = [];
$searcharray[DATA_TAGS]->rawtagnames = ['Cats']; $searcharray[DATA_TAGS]->rawtagnames = ['Cats'];
$searcharray[DATA_TAGS]->sql = ''; $searcharray[DATA_TAGS]->sql = '';
@ -309,7 +311,7 @@ class mod_data_search_test extends advanced_testcase {
$this->getDataGenerator()->enrol_user($user1->id, $course1->id, 'student'); $this->getDataGenerator()->enrol_user($user1->id, $course1->id, 'student');
$record = new stdClass(); $record = new \stdClass();
$record->course = $course1->id; $record->course = $course1->id;
$this->setUser($user1); $this->setUser($user1);
@ -355,13 +357,13 @@ class mod_data_search_test extends advanced_testcase {
$this->create_default_data_record($data2); $this->create_default_data_record($data2);
// Test indexing with contexts. // Test indexing with contexts.
$rs = $searcharea->get_document_recordset(0, context_module::instance($data1->cmid)); $rs = $searcharea->get_document_recordset(0, \context_module::instance($data1->cmid));
$this->assertEquals(1, iterator_count($rs)); $this->assertEquals(1, iterator_count($rs));
$rs->close(); $rs->close();
$rs = $searcharea->get_document_recordset(0, context_module::instance($data2->cmid)); $rs = $searcharea->get_document_recordset(0, \context_module::instance($data2->cmid));
$this->assertEquals(1, iterator_count($rs)); $this->assertEquals(1, iterator_count($rs));
$rs->close(); $rs->close();
$rs = $searcharea->get_document_recordset(0, context_course::instance($course1->id)); $rs = $searcharea->get_document_recordset(0, \context_course::instance($course1->id));
$this->assertEquals(2, iterator_count($rs)); $this->assertEquals(2, iterator_count($rs));
$rs->close(); $rs->close();
} }
@ -384,7 +386,7 @@ class mod_data_search_test extends advanced_testcase {
$this->getDataGenerator()->enrol_user($user1->id, $course->id, 'student'); $this->getDataGenerator()->enrol_user($user1->id, $course->id, 'student');
$record = new stdClass(); $record = new \stdClass();
$record->course = $course->id; $record->course = $course->id;
$this->setAdminUser(); $this->setAdminUser();
@ -672,7 +674,7 @@ class mod_data_search_test extends advanced_testcase {
$this->getDataGenerator()->enrol_user($user3->id, $course2->id, 'student'); $this->getDataGenerator()->enrol_user($user3->id, $course2->id, 'student');
$record = new stdClass(); $record = new \stdClass();
$record->course = $course1->id; $record->course = $course1->id;
$this->setUser($userteacher1); $this->setUser($userteacher1);
@ -726,7 +728,7 @@ class mod_data_search_test extends advanced_testcase {
$this->getDataGenerator()->create_group_member(array('userid' => $user3->id, 'groupid' => $groupb->id)); $this->getDataGenerator()->create_group_member(array('userid' => $user3->id, 'groupid' => $groupb->id));
$record = new stdClass(); $record = new \stdClass();
$record->course = $course->id; $record->course = $course->id;
$this->setUser($userteacher1); $this->setUser($userteacher1);
@ -774,7 +776,7 @@ class mod_data_search_test extends advanced_testcase {
$this->getDataGenerator()->enrol_user($user2->id, $course->id, 'student'); $this->getDataGenerator()->enrol_user($user2->id, $course->id, 'student');
$this->getDataGenerator()->enrol_user($userteacher1->id, $course->id, 'teacher'); $this->getDataGenerator()->enrol_user($userteacher1->id, $course->id, 'teacher');
$record = new stdClass(); $record = new \stdClass();
$record->course = $course->id; $record->course = $course->id;
$this->setUser($userteacher1); $this->setUser($userteacher1);
@ -864,7 +866,7 @@ class mod_data_search_test extends advanced_testcase {
$this->getDataGenerator()->enrol_user($user1->id, $course->id, 'student'); $this->getDataGenerator()->enrol_user($user1->id, $course->id, 'student');
$record = new stdClass(); $record = new \stdClass();
$record->course = $course->id; $record->course = $course->id;
$this->setAdminUser(); $this->setAdminUser();
@ -873,7 +875,7 @@ class mod_data_search_test extends advanced_testcase {
$data1 = $this->getDataGenerator()->create_module('data', $record); $data1 = $this->getDataGenerator()->create_module('data', $record);
// Creating file field. // Creating file field.
$record = new stdClass; $record = new \stdClass;
$record->type = 'file'; $record->type = 'file';
$record->dataid = $data1->id; $record->dataid = $data1->id;
$record->required = 0; $record->required = 0;
@ -886,7 +888,7 @@ class mod_data_search_test extends advanced_testcase {
$data1filefieldid = $DB->insert_record('data_fields', $record); $data1filefieldid = $DB->insert_record('data_fields', $record);
// Creating text field. // Creating text field.
$record = new stdClass; $record = new \stdClass;
$record->type = 'text'; $record->type = 'text';
$record->dataid = $data1->id; $record->dataid = $data1->id;
$record->required = 0; $record->required = 0;
@ -899,7 +901,7 @@ class mod_data_search_test extends advanced_testcase {
$data1textfieldid = $DB->insert_record('data_fields', $record); $data1textfieldid = $DB->insert_record('data_fields', $record);
// Creating textarea field. // Creating textarea field.
$record = new stdClass; $record = new \stdClass;
$record->type = 'textarea'; $record->type = 'textarea';
$record->dataid = $data1->id; $record->dataid = $data1->id;
$record->required = 0; $record->required = 0;
@ -914,7 +916,7 @@ class mod_data_search_test extends advanced_testcase {
$data1textareafieldid = $DB->insert_record('data_fields', $record); $data1textareafieldid = $DB->insert_record('data_fields', $record);
// Creating 1st entry. // Creating 1st entry.
$record = new stdClass; $record = new \stdClass;
$record->userid = $USER->id; $record->userid = $USER->id;
$record->dataid = $data1->id; $record->dataid = $data1->id;
$record->groupid = 0; $record->groupid = 0;
@ -922,7 +924,7 @@ class mod_data_search_test extends advanced_testcase {
$data1record1id = $DB->insert_record('data_records', $record); $data1record1id = $DB->insert_record('data_records', $record);
$filerecord = array( $filerecord = array(
'contextid' => context_module::instance($data1->cmid)->id, 'contextid' => \context_module::instance($data1->cmid)->id,
'component' => 'mod_data', 'component' => 'mod_data',
'filearea' => 'content', 'filearea' => 'content',
'itemid' => $data1record1id, 'itemid' => $data1record1id,
@ -932,19 +934,19 @@ class mod_data_search_test extends advanced_testcase {
$data1record1file = $fs->create_file_from_string($filerecord, 'Some contents 1'); $data1record1file = $fs->create_file_from_string($filerecord, 'Some contents 1');
$record = new stdClass; $record = new \stdClass;
$record->fieldid = $data1filefieldid; $record->fieldid = $data1filefieldid;
$record->recordid = $data1record1id; $record->recordid = $data1record1id;
$record->content = 'myfile1.txt'; $record->content = 'myfile1.txt';
$DB->insert_record('data_content', $record); $DB->insert_record('data_content', $record);
$record = new stdClass; $record = new \stdClass;
$record->fieldid = $data1textfieldid; $record->fieldid = $data1textfieldid;
$record->recordid = $data1record1id; $record->recordid = $data1record1id;
$record->content = 'sample text'; $record->content = 'sample text';
$DB->insert_record('data_content', $record); $DB->insert_record('data_content', $record);
$record = new stdClass; $record = new \stdClass;
$record->fieldid = $data1textareafieldid; $record->fieldid = $data1textareafieldid;
$record->recordid = $data1record1id; $record->recordid = $data1record1id;
$record->content = '<br>sample text<p /><br/>'; $record->content = '<br>sample text<p /><br/>';
@ -952,7 +954,7 @@ class mod_data_search_test extends advanced_testcase {
$DB->insert_record('data_content', $record); $DB->insert_record('data_content', $record);
// Creating 2nd entry. // Creating 2nd entry.
$record = new stdClass; $record = new \stdClass;
$record->userid = $USER->id; $record->userid = $USER->id;
$record->dataid = $data1->id; $record->dataid = $data1->id;
$record->groupid = 0; $record->groupid = 0;
@ -962,19 +964,19 @@ class mod_data_search_test extends advanced_testcase {
$filerecord['filename'] = 'myfile2.txt'; $filerecord['filename'] = 'myfile2.txt';
$data1record2file = $fs->create_file_from_string($filerecord, 'Some contents 2'); $data1record2file = $fs->create_file_from_string($filerecord, 'Some contents 2');
$record = new stdClass; $record = new \stdClass;
$record->fieldid = $data1filefieldid; $record->fieldid = $data1filefieldid;
$record->recordid = $data1record2id; $record->recordid = $data1record2id;
$record->content = 'myfile2.txt'; $record->content = 'myfile2.txt';
$DB->insert_record('data_content', $record); $DB->insert_record('data_content', $record);
$record = new stdClass; $record = new \stdClass;
$record->fieldid = $data1textfieldid; $record->fieldid = $data1textfieldid;
$record->recordid = $data1record2id; $record->recordid = $data1record2id;
$record->content = 'sample text'; $record->content = 'sample text';
$DB->insert_record('data_content', $record); $DB->insert_record('data_content', $record);
$record = new stdClass; $record = new \stdClass;
$record->fieldid = $data1textareafieldid; $record->fieldid = $data1textareafieldid;
$record->recordid = $data1record2id; $record->recordid = $data1record2id;
$record->content = '<br>sample text<p /><br/>'; $record->content = '<br>sample text<p /><br/>';
@ -1024,7 +1026,7 @@ class mod_data_search_test extends advanced_testcase {
// Creating variables dynamically. // Creating variables dynamically.
$fieldname = 'field-'.$count; $fieldname = 'field-'.$count;
$record = new stdClass(); $record = new \stdClass();
$record->name = $fieldname; $record->name = $fieldname;
if (is_array($fieldtype)) { if (is_array($fieldtype)) {

View file

@ -22,7 +22,7 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later. * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later.
*/ */
global $CFG; namespace mod_feedback\event;
/** /**
* Class mod_feedback_events_testcase * Class mod_feedback_events_testcase
@ -33,7 +33,7 @@ global $CFG;
* @copyright 2013 Ankit Agarwal * @copyright 2013 Ankit Agarwal
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later. * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later.
*/ */
class mod_feedback_events_testcase extends advanced_testcase { class events_test extends \advanced_testcase {
/** @var stdClass A user who likes to interact with feedback activity. */ /** @var stdClass A user who likes to interact with feedback activity. */
private $eventuser; private $eventuser;
@ -64,17 +64,17 @@ class mod_feedback_events_testcase extends advanced_testcase {
$this->eventuser = $gen->create_user(); // Create a user. $this->eventuser = $gen->create_user(); // Create a user.
$course = $gen->create_course(); // Create a course. $course = $gen->create_course(); // Create a course.
// Assign manager role, so user can see reports. // Assign manager role, so user can see reports.
role_assign(1, $this->eventuser->id, context_course::instance($course->id)); role_assign(1, $this->eventuser->id, \context_course::instance($course->id));
// Add a feedback activity to the created course. // Add a feedback activity to the created course.
$record = new stdClass(); $record = new \stdClass();
$record->course = $course->id; $record->course = $course->id;
$feedback = $gen->create_module('feedback', $record); $feedback = $gen->create_module('feedback', $record);
$this->eventfeedback = $DB->get_record('feedback', array('id' => $feedback->id), '*', MUST_EXIST); // Get exact copy. $this->eventfeedback = $DB->get_record('feedback', array('id' => $feedback->id), '*', MUST_EXIST); // Get exact copy.
$this->eventcm = get_coursemodule_from_instance('feedback', $this->eventfeedback->id, false, MUST_EXIST); $this->eventcm = get_coursemodule_from_instance('feedback', $this->eventfeedback->id, false, MUST_EXIST);
// Create a feedback item. // Create a feedback item.
$item = new stdClass(); $item = new \stdClass();
$item->feedback = $this->eventfeedback->id; $item->feedback = $this->eventfeedback->id;
$item->type = 'numeric'; $item->type = 'numeric';
$item->presentation = '0|0'; $item->presentation = '0|0';
@ -82,14 +82,14 @@ class mod_feedback_events_testcase extends advanced_testcase {
$this->eventfeedbackitem = $DB->get_record('feedback_item', array('id' => $itemid), '*', MUST_EXIST); $this->eventfeedbackitem = $DB->get_record('feedback_item', array('id' => $itemid), '*', MUST_EXIST);
// Create a response from a user. // Create a response from a user.
$response = new stdClass(); $response = new \stdClass();
$response->feedback = $this->eventfeedback->id; $response->feedback = $this->eventfeedback->id;
$response->userid = $this->eventuser->id; $response->userid = $this->eventuser->id;
$response->anonymous_response = FEEDBACK_ANONYMOUS_YES; $response->anonymous_response = FEEDBACK_ANONYMOUS_YES;
$completedid = $DB->insert_record('feedback_completed', $response); $completedid = $DB->insert_record('feedback_completed', $response);
$this->eventfeedbackcompleted = $DB->get_record('feedback_completed', array('id' => $completedid), '*', MUST_EXIST); $this->eventfeedbackcompleted = $DB->get_record('feedback_completed', array('id' => $completedid), '*', MUST_EXIST);
$value = new stdClass(); $value = new \stdClass();
$value->course_id = $course->id; $value->course_id = $course->id;
$value->item = $this->eventfeedbackitem->id; $value->item = $this->eventfeedbackitem->id;
$value->completed = $this->eventfeedbackcompleted->id; $value->completed = $this->eventfeedbackcompleted->id;
@ -141,13 +141,13 @@ class mod_feedback_events_testcase extends advanced_testcase {
$this->assertDebuggingCalled(); $this->assertDebuggingCalled();
// Create a response, with anonymous set to no and test can_view(). // Create a response, with anonymous set to no and test can_view().
$response = new stdClass(); $response = new \stdClass();
$response->feedback = $this->eventcm->instance; $response->feedback = $this->eventcm->instance;
$response->userid = $this->eventuser->id; $response->userid = $this->eventuser->id;
$response->anonymous_response = FEEDBACK_ANONYMOUS_NO; $response->anonymous_response = FEEDBACK_ANONYMOUS_NO;
$completedid = $DB->insert_record('feedback_completed', $response); $completedid = $DB->insert_record('feedback_completed', $response);
$DB->get_record('feedback_completed', array('id' => $completedid), '*', MUST_EXIST); $DB->get_record('feedback_completed', array('id' => $completedid), '*', MUST_EXIST);
$value = new stdClass(); $value = new \stdClass();
$value->course_id = $this->eventcourse->id; $value->course_id = $this->eventcourse->id;
$value->item = $this->eventfeedbackitem->id; $value->item = $this->eventfeedbackitem->id;
$value->completed = $completedid; $value->completed = $completedid;
@ -178,7 +178,7 @@ class mod_feedback_events_testcase extends advanced_testcase {
$this->resetAfterTest(); $this->resetAfterTest();
$context = context_module::instance($this->eventcm->id); $context = \context_module::instance($this->eventcm->id);
// Test not setting other['anonymous']. // Test not setting other['anonymous'].
try { try {
@ -189,7 +189,7 @@ class mod_feedback_events_testcase extends advanced_testcase {
)); ));
$this->fail("Event validation should not allow \\mod_feedback\\event\\response_deleted to be triggered without $this->fail("Event validation should not allow \\mod_feedback\\event\\response_deleted to be triggered without
other['anonymous']"); other['anonymous']");
} catch (coding_exception $e) { } catch (\coding_exception $e) {
$this->assertStringContainsString("The 'anonymous' value must be set in other.", $e->getMessage()); $this->assertStringContainsString("The 'anonymous' value must be set in other.", $e->getMessage());
} }
} }
@ -203,13 +203,13 @@ class mod_feedback_events_testcase extends advanced_testcase {
$this->setUser($this->eventuser); $this->setUser($this->eventuser);
// Create a temporary response, with anonymous set to yes. // Create a temporary response, with anonymous set to yes.
$response = new stdClass(); $response = new \stdClass();
$response->feedback = $this->eventcm->instance; $response->feedback = $this->eventcm->instance;
$response->userid = $this->eventuser->id; $response->userid = $this->eventuser->id;
$response->anonymous_response = FEEDBACK_ANONYMOUS_YES; $response->anonymous_response = FEEDBACK_ANONYMOUS_YES;
$completedid = $DB->insert_record('feedback_completedtmp', $response); $completedid = $DB->insert_record('feedback_completedtmp', $response);
$completed = $DB->get_record('feedback_completedtmp', array('id' => $completedid), '*', MUST_EXIST); $completed = $DB->get_record('feedback_completedtmp', array('id' => $completedid), '*', MUST_EXIST);
$value = new stdClass(); $value = new \stdClass();
$value->course_id = $this->eventcourse->id; $value->course_id = $this->eventcourse->id;
$value->item = $this->eventfeedbackitem->id; $value->item = $this->eventfeedbackitem->id;
$value->completed = $completedid; $value->completed = $completedid;
@ -242,13 +242,13 @@ class mod_feedback_events_testcase extends advanced_testcase {
$this->assertEventLegacyLogData(null, $event); $this->assertEventLegacyLogData(null, $event);
// Create a temporary response, with anonymous set to no. // Create a temporary response, with anonymous set to no.
$response = new stdClass(); $response = new \stdClass();
$response->feedback = $this->eventcm->instance; $response->feedback = $this->eventcm->instance;
$response->userid = $this->eventuser->id; $response->userid = $this->eventuser->id;
$response->anonymous_response = FEEDBACK_ANONYMOUS_NO; $response->anonymous_response = FEEDBACK_ANONYMOUS_NO;
$completedid = $DB->insert_record('feedback_completedtmp', $response); $completedid = $DB->insert_record('feedback_completedtmp', $response);
$completed = $DB->get_record('feedback_completedtmp', array('id' => $completedid), '*', MUST_EXIST); $completed = $DB->get_record('feedback_completedtmp', array('id' => $completedid), '*', MUST_EXIST);
$value = new stdClass(); $value = new \stdClass();
$value->course_id = $this->eventcourse->id; $value->course_id = $this->eventcourse->id;
$value->item = $this->eventfeedbackitem->id; $value->item = $this->eventfeedbackitem->id;
$value->completed = $completedid; $value->completed = $completedid;
@ -283,7 +283,7 @@ class mod_feedback_events_testcase extends advanced_testcase {
$this->resetAfterTest(); $this->resetAfterTest();
$context = context_module::instance($this->eventcm->id); $context = \context_module::instance($this->eventcm->id);
// Test not setting instanceid. // Test not setting instanceid.
try { try {
@ -296,7 +296,7 @@ class mod_feedback_events_testcase extends advanced_testcase {
)); ));
$this->fail("Event validation should not allow \\mod_feedback\\event\\response_deleted to be triggered without $this->fail("Event validation should not allow \\mod_feedback\\event\\response_deleted to be triggered without
other['instanceid']"); other['instanceid']");
} catch (coding_exception $e) { } catch (\coding_exception $e) {
$this->assertStringContainsString("The 'instanceid' value must be set in other.", $e->getMessage()); $this->assertStringContainsString("The 'instanceid' value must be set in other.", $e->getMessage());
} }
@ -311,7 +311,7 @@ class mod_feedback_events_testcase extends advanced_testcase {
)); ));
$this->fail("Event validation should not allow \\mod_feedback\\event\\response_deleted to be triggered without $this->fail("Event validation should not allow \\mod_feedback\\event\\response_deleted to be triggered without
other['cmid']"); other['cmid']");
} catch (coding_exception $e) { } catch (\coding_exception $e) {
$this->assertStringContainsString("The 'cmid' value must be set in other.", $e->getMessage()); $this->assertStringContainsString("The 'cmid' value must be set in other.", $e->getMessage());
} }
@ -325,7 +325,7 @@ class mod_feedback_events_testcase extends advanced_testcase {
)); ));
$this->fail("Event validation should not allow \\mod_feedback\\event\\response_deleted to be triggered without $this->fail("Event validation should not allow \\mod_feedback\\event\\response_deleted to be triggered without
other['anonymous']"); other['anonymous']");
} catch (coding_exception $e) { } catch (\coding_exception $e) {
$this->assertStringContainsString("The 'anonymous' value must be set in other.", $e->getMessage()); $this->assertStringContainsString("The 'anonymous' value must be set in other.", $e->getMessage());
} }
} }
@ -343,4 +343,3 @@ class mod_feedback_events_testcase extends advanced_testcase {
$this->assertEmpty($DB->get_records('feedback_template', array('course' => $courseid))); $this->assertEmpty($DB->get_records('feedback_template', array('course' => $courseid)));
} }
} }

View file

@ -24,6 +24,12 @@
* @since Moodle 3.3 * @since Moodle 3.3
*/ */
namespace mod_feedback\external;
use externallib_advanced_testcase;
use feedback_item_multichoice;
use mod_feedback_external;
defined('MOODLE_INTERNAL') || die(); defined('MOODLE_INTERNAL') || die();
global $CFG; global $CFG;
@ -31,8 +37,6 @@ global $CFG;
require_once($CFG->dirroot . '/webservice/tests/helpers.php'); require_once($CFG->dirroot . '/webservice/tests/helpers.php');
require_once($CFG->dirroot . '/mod/feedback/lib.php'); require_once($CFG->dirroot . '/mod/feedback/lib.php');
use mod_feedback\external\feedback_summary_exporter;
/** /**
* Feedback module external functions tests * Feedback module external functions tests
* *
@ -42,7 +46,7 @@ use mod_feedback\external\feedback_summary_exporter;
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since Moodle 3.3 * @since Moodle 3.3
*/ */
class mod_feedback_external_testcase extends externallib_advanced_testcase { class external_test extends externallib_advanced_testcase {
/** /**
* Set up for every test * Set up for every test
@ -56,7 +60,7 @@ class mod_feedback_external_testcase extends externallib_advanced_testcase {
$this->course = $this->getDataGenerator()->create_course(); $this->course = $this->getDataGenerator()->create_course();
$this->feedback = $this->getDataGenerator()->create_module('feedback', $this->feedback = $this->getDataGenerator()->create_module('feedback',
array('course' => $this->course->id, 'email_notification' => 1)); array('course' => $this->course->id, 'email_notification' => 1));
$this->context = context_module::instance($this->feedback->cmid); $this->context = \context_module::instance($this->feedback->cmid);
$this->cm = get_coursemodule_from_instance('feedback', $this->feedback->id); $this->cm = get_coursemodule_from_instance('feedback', $this->feedback->id);
// Create users. // Create users.
@ -73,7 +77,7 @@ class mod_feedback_external_testcase extends externallib_advanced_testcase {
/** /**
* Helper method to add items to an existing feedback. * Helper method to add items to an existing feedback.
* *
* @param stdClass $feedback feedback instance * @param \stdClass $feedback feedback instance
* @param integer $pagescount the number of pages we want in the feedback * @param integer $pagescount the number of pages we want in the feedback
* @return array list of items created * @return array list of items created
*/ */
@ -109,7 +113,7 @@ class mod_feedback_external_testcase extends externallib_advanced_testcase {
$course2 = self::getDataGenerator()->create_course(); $course2 = self::getDataGenerator()->create_course();
// Second feedback. // Second feedback.
$record = new stdClass(); $record = new \stdClass();
$record->course = $course2->id; $record->course = $course2->id;
$feedback2 = self::getDataGenerator()->create_module('feedback', $record); $feedback2 = self::getDataGenerator()->create_module('feedback', $record);
@ -158,14 +162,14 @@ class mod_feedback_external_testcase extends externallib_advanced_testcase {
// Call the external function passing course ids. // Call the external function passing course ids.
$result = mod_feedback_external::get_feedbacks_by_courses(array($course2->id, $this->course->id)); $result = mod_feedback_external::get_feedbacks_by_courses(array($course2->id, $this->course->id));
$result = external_api::clean_returnvalue($returndescription, $result); $result = \external_api::clean_returnvalue($returndescription, $result);
$this->assertEquals($expectedfeedbacks, $result['feedbacks']); $this->assertEquals($expectedfeedbacks, $result['feedbacks']);
$this->assertCount(0, $result['warnings']); $this->assertCount(0, $result['warnings']);
// Call the external function without passing course id. // Call the external function without passing course id.
$result = mod_feedback_external::get_feedbacks_by_courses(); $result = mod_feedback_external::get_feedbacks_by_courses();
$result = external_api::clean_returnvalue($returndescription, $result); $result = \external_api::clean_returnvalue($returndescription, $result);
$this->assertEquals($expectedfeedbacks, $result['feedbacks']); $this->assertEquals($expectedfeedbacks, $result['feedbacks']);
$this->assertCount(0, $result['warnings']); $this->assertCount(0, $result['warnings']);
@ -175,7 +179,7 @@ class mod_feedback_external_testcase extends externallib_advanced_testcase {
// Call the external function without passing course id. // Call the external function without passing course id.
$result = mod_feedback_external::get_feedbacks_by_courses(); $result = mod_feedback_external::get_feedbacks_by_courses();
$result = external_api::clean_returnvalue($returndescription, $result); $result = \external_api::clean_returnvalue($returndescription, $result);
$this->assertEquals($expectedfeedbacks, $result['feedbacks']); $this->assertEquals($expectedfeedbacks, $result['feedbacks']);
// Call for the second course we unenrolled the user from, expected warning. // Call for the second course we unenrolled the user from, expected warning.
@ -201,14 +205,14 @@ class mod_feedback_external_testcase extends externallib_advanced_testcase {
$expectedfeedbacks[0]['page_after_submitformat'] = 1; $expectedfeedbacks[0]['page_after_submitformat'] = 1;
$result = mod_feedback_external::get_feedbacks_by_courses(); $result = mod_feedback_external::get_feedbacks_by_courses();
$result = external_api::clean_returnvalue($returndescription, $result); $result = \external_api::clean_returnvalue($returndescription, $result);
$this->assertEquals($expectedfeedbacks, $result['feedbacks']); $this->assertEquals($expectedfeedbacks, $result['feedbacks']);
// Admin also should get all the information. // Admin also should get all the information.
self::setAdminUser(); self::setAdminUser();
$result = mod_feedback_external::get_feedbacks_by_courses(array($this->course->id)); $result = mod_feedback_external::get_feedbacks_by_courses(array($this->course->id));
$result = external_api::clean_returnvalue($returndescription, $result); $result = \external_api::clean_returnvalue($returndescription, $result);
$this->assertEquals($expectedfeedbacks, $result['feedbacks']); $this->assertEquals($expectedfeedbacks, $result['feedbacks']);
} }
@ -219,7 +223,7 @@ class mod_feedback_external_testcase extends externallib_advanced_testcase {
self::setUser($this->student); self::setUser($this->student);
$result = mod_feedback_external::get_feedback_access_information($this->feedback->id); $result = mod_feedback_external::get_feedback_access_information($this->feedback->id);
$result = external_api::clean_returnvalue(mod_feedback_external::get_feedback_access_information_returns(), $result); $result = \external_api::clean_returnvalue(mod_feedback_external::get_feedback_access_information_returns(), $result);
$this->assertFalse($result['canviewanalysis']); $this->assertFalse($result['canviewanalysis']);
$this->assertFalse($result['candeletesubmissions']); $this->assertFalse($result['candeletesubmissions']);
@ -240,7 +244,7 @@ class mod_feedback_external_testcase extends externallib_advanced_testcase {
self::setUser($this->teacher); self::setUser($this->teacher);
$result = mod_feedback_external::get_feedback_access_information($this->feedback->id); $result = mod_feedback_external::get_feedback_access_information($this->feedback->id);
$result = external_api::clean_returnvalue(mod_feedback_external::get_feedback_access_information_returns(), $result); $result = \external_api::clean_returnvalue(mod_feedback_external::get_feedback_access_information_returns(), $result);
$this->assertTrue($result['canviewanalysis']); $this->assertTrue($result['canviewanalysis']);
$this->assertTrue($result['canviewreports']); $this->assertTrue($result['canviewreports']);
@ -256,7 +260,7 @@ class mod_feedback_external_testcase extends externallib_advanced_testcase {
// Add some items to the feedback and check is not empty any more. // Add some items to the feedback and check is not empty any more.
self::populate_feedback($this->feedback); self::populate_feedback($this->feedback);
$result = mod_feedback_external::get_feedback_access_information($this->feedback->id); $result = mod_feedback_external::get_feedback_access_information($this->feedback->id);
$result = external_api::clean_returnvalue(mod_feedback_external::get_feedback_access_information_returns(), $result); $result = \external_api::clean_returnvalue(mod_feedback_external::get_feedback_access_information_returns(), $result);
$this->assertFalse($result['isempty']); $this->assertFalse($result['isempty']);
} }
@ -265,7 +269,7 @@ class mod_feedback_external_testcase extends externallib_advanced_testcase {
*/ */
public function test_view_feedback_invalid_id() { public function test_view_feedback_invalid_id() {
// Test invalid instance id. // Test invalid instance id.
$this->expectException('moodle_exception'); $this->expectException('\moodle_exception');
mod_feedback_external::view_feedback(0); mod_feedback_external::view_feedback(0);
} }
/** /**
@ -274,7 +278,7 @@ class mod_feedback_external_testcase extends externallib_advanced_testcase {
public function test_view_feedback_not_enrolled_user() { public function test_view_feedback_not_enrolled_user() {
$usernotenrolled = self::getDataGenerator()->create_user(); $usernotenrolled = self::getDataGenerator()->create_user();
$this->setUser($usernotenrolled); $this->setUser($usernotenrolled);
$this->expectException('moodle_exception'); $this->expectException('\moodle_exception');
mod_feedback_external::view_feedback(0); mod_feedback_external::view_feedback(0);
} }
/** /**
@ -285,7 +289,7 @@ class mod_feedback_external_testcase extends externallib_advanced_testcase {
// We need a explicit prohibit since this capability is allowed for students by default. // We need a explicit prohibit since this capability is allowed for students by default.
assign_capability('mod/feedback:view', CAP_PROHIBIT, $this->studentrole->id, $this->context->id); assign_capability('mod/feedback:view', CAP_PROHIBIT, $this->studentrole->id, $this->context->id);
accesslib_clear_all_caches_for_unit_testing(); accesslib_clear_all_caches_for_unit_testing();
$this->expectException('moodle_exception'); $this->expectException('\moodle_exception');
mod_feedback_external::view_feedback(0); mod_feedback_external::view_feedback(0);
} }
/** /**
@ -297,7 +301,7 @@ class mod_feedback_external_testcase extends externallib_advanced_testcase {
// Trigger and capture the event. // Trigger and capture the event.
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();
$result = mod_feedback_external::view_feedback($this->feedback->id); $result = mod_feedback_external::view_feedback($this->feedback->id);
$result = external_api::clean_returnvalue(mod_feedback_external::view_feedback_returns(), $result); $result = \external_api::clean_returnvalue(mod_feedback_external::view_feedback_returns(), $result);
$events = $sink->get_events(); $events = $sink->get_events();
$this->assertCount(1, $events); $this->assertCount(1, $events);
$event = array_shift($events); $event = array_shift($events);
@ -334,7 +338,7 @@ class mod_feedback_external_testcase extends externallib_advanced_testcase {
$this->setUser($this->student); $this->setUser($this->student);
$result = mod_feedback_external::get_current_completed_tmp($this->feedback->id); $result = mod_feedback_external::get_current_completed_tmp($this->feedback->id);
$result = external_api::clean_returnvalue(mod_feedback_external::get_current_completed_tmp_returns(), $result); $result = \external_api::clean_returnvalue(mod_feedback_external::get_current_completed_tmp_returns(), $result);
$this->assertEquals($record['id'], $result['feedback']['id']); $this->assertEquals($record['id'], $result['feedback']['id']);
} }
@ -349,7 +353,7 @@ class mod_feedback_external_testcase extends externallib_advanced_testcase {
$itemscreated = self::populate_feedback($this->feedback, 2); $itemscreated = self::populate_feedback($this->feedback, 2);
$result = mod_feedback_external::get_items($this->feedback->id); $result = mod_feedback_external::get_items($this->feedback->id);
$result = external_api::clean_returnvalue(mod_feedback_external::get_items_returns(), $result); $result = \external_api::clean_returnvalue(mod_feedback_external::get_items_returns(), $result);
$this->assertCount(count($itemscreated), $result['items']); $this->assertCount(count($itemscreated), $result['items']);
$index = 1; $index = 1;
foreach ($result['items'] as $key => $item) { foreach ($result['items'] as $key => $item) {
@ -383,7 +387,7 @@ class mod_feedback_external_testcase extends externallib_advanced_testcase {
// First try a feedback we didn't attempt. // First try a feedback we didn't attempt.
$result = mod_feedback_external::launch_feedback($this->feedback->id); $result = mod_feedback_external::launch_feedback($this->feedback->id);
$result = external_api::clean_returnvalue(mod_feedback_external::launch_feedback_returns(), $result); $result = \external_api::clean_returnvalue(mod_feedback_external::launch_feedback_returns(), $result);
$this->assertEquals(0, $result['gopage']); $this->assertEquals(0, $result['gopage']);
// Now, try a feedback that we attempted. // Now, try a feedback that we attempted.
@ -420,7 +424,7 @@ class mod_feedback_external_testcase extends externallib_advanced_testcase {
$DB->insert_record('feedback_valuetmp', (object) $response); $DB->insert_record('feedback_valuetmp', (object) $response);
$result = mod_feedback_external::launch_feedback($this->feedback->id); $result = mod_feedback_external::launch_feedback($this->feedback->id);
$result = external_api::clean_returnvalue(mod_feedback_external::launch_feedback_returns(), $result); $result = \external_api::clean_returnvalue(mod_feedback_external::launch_feedback_returns(), $result);
$this->assertEquals(1, $result['gopage']); $this->assertEquals(1, $result['gopage']);
} }
@ -436,14 +440,14 @@ class mod_feedback_external_testcase extends externallib_advanced_testcase {
// Retrieve first page. // Retrieve first page.
$result = mod_feedback_external::get_page_items($this->feedback->id, 0); $result = mod_feedback_external::get_page_items($this->feedback->id, 0);
$result = external_api::clean_returnvalue(mod_feedback_external::get_page_items_returns(), $result); $result = \external_api::clean_returnvalue(mod_feedback_external::get_page_items_returns(), $result);
$this->assertCount(3, $result['items']); // The first page has 3 items. $this->assertCount(3, $result['items']); // The first page has 3 items.
$this->assertTrue($result['hasnextpage']); $this->assertTrue($result['hasnextpage']);
$this->assertFalse($result['hasprevpage']); $this->assertFalse($result['hasprevpage']);
// Retrieve second page. // Retrieve second page.
$result = mod_feedback_external::get_page_items($this->feedback->id, 1); $result = mod_feedback_external::get_page_items($this->feedback->id, 1);
$result = external_api::clean_returnvalue(mod_feedback_external::get_page_items_returns(), $result); $result = \external_api::clean_returnvalue(mod_feedback_external::get_page_items_returns(), $result);
$this->assertCount(5, $result['items']); // The second page has 5 items (page break doesn't count). $this->assertCount(5, $result['items']); // The second page has 5 items (page break doesn't count).
$this->assertFalse($result['hasnextpage']); $this->assertFalse($result['hasnextpage']);
$this->assertTrue($result['hasprevpage']); $this->assertTrue($result['hasprevpage']);
@ -496,14 +500,14 @@ class mod_feedback_external_testcase extends externallib_advanced_testcase {
// Process first page. // Process first page.
$firstpagedata = [$data[0], $data[1]]; $firstpagedata = [$data[0], $data[1]];
$result = mod_feedback_external::process_page($this->feedback->id, 0, $firstpagedata); $result = mod_feedback_external::process_page($this->feedback->id, 0, $firstpagedata);
$result = external_api::clean_returnvalue(mod_feedback_external::process_page_returns(), $result); $result = \external_api::clean_returnvalue(mod_feedback_external::process_page_returns(), $result);
$this->assertEquals(1, $result['jumpto']); $this->assertEquals(1, $result['jumpto']);
$this->assertFalse($result['completed']); $this->assertFalse($result['completed']);
// Now, process the second page. But first we are going back to the first page. // Now, process the second page. But first we are going back to the first page.
$secondpagedata = [$data[2], $data[3], $data[4], $data[5], $data[6]]; $secondpagedata = [$data[2], $data[3], $data[4], $data[5], $data[6]];
$result = mod_feedback_external::process_page($this->feedback->id, 1, $secondpagedata, true); $result = mod_feedback_external::process_page($this->feedback->id, 1, $secondpagedata, true);
$result = external_api::clean_returnvalue(mod_feedback_external::process_page_returns(), $result); $result = \external_api::clean_returnvalue(mod_feedback_external::process_page_returns(), $result);
$this->assertFalse($result['completed']); $this->assertFalse($result['completed']);
$this->assertEquals(0, $result['jumpto']); // We jumped to the first page. $this->assertEquals(0, $result['jumpto']); // We jumped to the first page.
// Check the values were correctly saved. // Check the values were correctly saved.
@ -512,7 +516,7 @@ class mod_feedback_external_testcase extends externallib_advanced_testcase {
// Go forward again (sending the same data). // Go forward again (sending the same data).
$result = mod_feedback_external::process_page($this->feedback->id, 0, $firstpagedata); $result = mod_feedback_external::process_page($this->feedback->id, 0, $firstpagedata);
$result = external_api::clean_returnvalue(mod_feedback_external::process_page_returns(), $result); $result = \external_api::clean_returnvalue(mod_feedback_external::process_page_returns(), $result);
$this->assertEquals(1, $result['jumpto']); $this->assertEquals(1, $result['jumpto']);
$this->assertFalse($result['completed']); $this->assertFalse($result['completed']);
$tmpitems = $DB->get_records('feedback_valuetmp'); $tmpitems = $DB->get_records('feedback_valuetmp');
@ -523,7 +527,7 @@ class mod_feedback_external_testcase extends externallib_advanced_testcase {
$data[2]['value'] = 2; // 2 is value of the option 'b'. $data[2]['value'] = 2; // 2 is value of the option 'b'.
$secondpagedata = [$data[2], $data[3], $data[4], $data[5], $data[6]]; $secondpagedata = [$data[2], $data[3], $data[4], $data[5], $data[6]];
$result = mod_feedback_external::process_page($this->feedback->id, 1, $secondpagedata); $result = mod_feedback_external::process_page($this->feedback->id, 1, $secondpagedata);
$result = external_api::clean_returnvalue(mod_feedback_external::process_page_returns(), $result); $result = \external_api::clean_returnvalue(mod_feedback_external::process_page_returns(), $result);
$this->assertTrue($result['completed']); $this->assertTrue($result['completed']);
$this->assertTrue(strpos($result['completionpagecontents'], $pagecontents) !== false); $this->assertTrue(strpos($result['completionpagecontents'], $pagecontents) !== false);
// Check all the items were saved. // Check all the items were saved.
@ -601,7 +605,7 @@ class mod_feedback_external_testcase extends externallib_advanced_testcase {
// Process first page. // Process first page.
$firstpagedata = [$data[0], $data[1]]; $firstpagedata = [$data[0], $data[1]];
$result = mod_feedback_external::process_page($this->feedback->id, 0, $firstpagedata, false, $this->course->id); $result = mod_feedback_external::process_page($this->feedback->id, 0, $firstpagedata, false, $this->course->id);
$result = external_api::clean_returnvalue(mod_feedback_external::process_page_returns(), $result); $result = \external_api::clean_returnvalue(mod_feedback_external::process_page_returns(), $result);
$this->assertEquals(1, $result['jumpto']); $this->assertEquals(1, $result['jumpto']);
$this->assertFalse($result['completed']); $this->assertFalse($result['completed']);
@ -609,7 +613,7 @@ class mod_feedback_external_testcase extends externallib_advanced_testcase {
$data[2]['value'] = 2; // 2 is value of the option 'b'; $data[2]['value'] = 2; // 2 is value of the option 'b';
$secondpagedata = [$data[2], $data[3], $data[4], $data[5], $data[6]]; $secondpagedata = [$data[2], $data[3], $data[4], $data[5], $data[6]];
$result = mod_feedback_external::process_page($this->feedback->id, 1, $secondpagedata, false, $this->course->id); $result = mod_feedback_external::process_page($this->feedback->id, 1, $secondpagedata, false, $this->course->id);
$result = external_api::clean_returnvalue(mod_feedback_external::process_page_returns(), $result); $result = \external_api::clean_returnvalue(mod_feedback_external::process_page_returns(), $result);
$this->assertTrue($result['completed']); $this->assertTrue($result['completed']);
$this->assertTrue(strpos($result['completionpagecontents'], $pagecontents) !== false); $this->assertTrue(strpos($result['completionpagecontents'], $pagecontents) !== false);
// Check all the items were saved. // Check all the items were saved.
@ -648,13 +652,13 @@ class mod_feedback_external_testcase extends externallib_advanced_testcase {
]; ];
// Process the feedback, there is only one page so the feedback will be completed. // Process the feedback, there is only one page so the feedback will be completed.
$result = mod_feedback_external::process_page($this->feedback->id, 0, $pagedata); $result = mod_feedback_external::process_page($this->feedback->id, 0, $pagedata);
$result = external_api::clean_returnvalue(mod_feedback_external::process_page_returns(), $result); $result = \external_api::clean_returnvalue(mod_feedback_external::process_page_returns(), $result);
$this->assertTrue($result['completed']); $this->assertTrue($result['completed']);
// Retrieve analysis. // Retrieve analysis.
$this->setUser($this->teacher); $this->setUser($this->teacher);
$result = mod_feedback_external::get_analysis($this->feedback->id); $result = mod_feedback_external::get_analysis($this->feedback->id);
$result = external_api::clean_returnvalue(mod_feedback_external::get_analysis_returns(), $result); $result = \external_api::clean_returnvalue(mod_feedback_external::get_analysis_returns(), $result);
$this->assertEquals(1, $result['completedcount']); // 1 feedback completed. $this->assertEquals(1, $result['completedcount']); // 1 feedback completed.
$this->assertEquals(2, $result['itemscount']); // 2 items in the feedback. $this->assertEquals(2, $result['itemscount']); // 2 items in the feedback.
$this->assertCount(2, $result['itemsdata']); $this->assertCount(2, $result['itemsdata']);
@ -676,13 +680,13 @@ class mod_feedback_external_testcase extends externallib_advanced_testcase {
// Process the feedback, there is only one page so the feedback will be completed. // Process the feedback, there is only one page so the feedback will be completed.
$result = mod_feedback_external::process_page($this->feedback->id, 0, $pagedata); $result = mod_feedback_external::process_page($this->feedback->id, 0, $pagedata);
$result = external_api::clean_returnvalue(mod_feedback_external::process_page_returns(), $result); $result = \external_api::clean_returnvalue(mod_feedback_external::process_page_returns(), $result);
$this->assertTrue($result['completed']); $this->assertTrue($result['completed']);
// Retrieve analysis. // Retrieve analysis.
$this->setUser($this->teacher); $this->setUser($this->teacher);
$result = mod_feedback_external::get_analysis($this->feedback->id); $result = mod_feedback_external::get_analysis($this->feedback->id);
$result = external_api::clean_returnvalue(mod_feedback_external::get_analysis_returns(), $result); $result = \external_api::clean_returnvalue(mod_feedback_external::get_analysis_returns(), $result);
$this->assertEquals(2, $result['completedcount']); // 2 feedback completed. $this->assertEquals(2, $result['completedcount']); // 2 feedback completed.
$this->assertEquals(2, $result['itemscount']); $this->assertEquals(2, $result['itemscount']);
$this->assertCount(2, $result['itemsdata'][0]['data']); // There are 2 responses per item. $this->assertCount(2, $result['itemsdata'][0]['data']); // There are 2 responses per item.
@ -710,12 +714,12 @@ class mod_feedback_external_testcase extends externallib_advanced_testcase {
]; ];
// Process the feedback, there are two pages so the feedback will be unfinished yet. // Process the feedback, there are two pages so the feedback will be unfinished yet.
$result = mod_feedback_external::process_page($this->feedback->id, 0, $pagedata); $result = mod_feedback_external::process_page($this->feedback->id, 0, $pagedata);
$result = external_api::clean_returnvalue(mod_feedback_external::process_page_returns(), $result); $result = \external_api::clean_returnvalue(mod_feedback_external::process_page_returns(), $result);
$this->assertFalse($result['completed']); $this->assertFalse($result['completed']);
// Retrieve the unfinished responses. // Retrieve the unfinished responses.
$result = mod_feedback_external::get_unfinished_responses($this->feedback->id); $result = mod_feedback_external::get_unfinished_responses($this->feedback->id);
$result = external_api::clean_returnvalue(mod_feedback_external::get_unfinished_responses_returns(), $result); $result = \external_api::clean_returnvalue(mod_feedback_external::get_unfinished_responses_returns(), $result);
// Check that ids and responses match. // Check that ids and responses match.
foreach ($result['responses'] as $r) { foreach ($result['responses'] as $r) {
if ($r['item'] == $numericitem->id) { if ($r['item'] == $numericitem->id) {
@ -746,12 +750,12 @@ class mod_feedback_external_testcase extends externallib_advanced_testcase {
// Process the feedback, there is only one page so the feedback will be completed. // Process the feedback, there is only one page so the feedback will be completed.
$result = mod_feedback_external::process_page($this->feedback->id, 0, $pagedata); $result = mod_feedback_external::process_page($this->feedback->id, 0, $pagedata);
$result = external_api::clean_returnvalue(mod_feedback_external::process_page_returns(), $result); $result = \external_api::clean_returnvalue(mod_feedback_external::process_page_returns(), $result);
$this->assertTrue($result['completed']); $this->assertTrue($result['completed']);
// Retrieve the responses. // Retrieve the responses.
$result = mod_feedback_external::get_finished_responses($this->feedback->id); $result = mod_feedback_external::get_finished_responses($this->feedback->id);
$result = external_api::clean_returnvalue(mod_feedback_external::get_finished_responses_returns(), $result); $result = \external_api::clean_returnvalue(mod_feedback_external::get_finished_responses_returns(), $result);
// Check that ids and responses match. // Check that ids and responses match.
foreach ($result['responses'] as $r) { foreach ($result['responses'] as $r) {
if ($r['item'] == $numericitem->id) { if ($r['item'] == $numericitem->id) {
@ -768,7 +772,7 @@ class mod_feedback_external_testcase extends externallib_advanced_testcase {
*/ */
public function test_get_non_respondents_no_permissions() { public function test_get_non_respondents_no_permissions() {
$this->setUser($this->student); $this->setUser($this->student);
$this->expectException('moodle_exception'); $this->expectException('\moodle_exception');
mod_feedback_external::get_non_respondents($this->feedback->id); mod_feedback_external::get_non_respondents($this->feedback->id);
} }
@ -777,7 +781,7 @@ class mod_feedback_external_testcase extends externallib_advanced_testcase {
*/ */
public function test_get_non_respondents_from_anonymous_feedback() { public function test_get_non_respondents_from_anonymous_feedback() {
$this->setUser($this->student); $this->setUser($this->student);
$this->expectException('moodle_exception'); $this->expectException('\moodle_exception');
$this->expectExceptionMessage(get_string('anonymous', 'feedback')); $this->expectExceptionMessage(get_string('anonymous', 'feedback'));
mod_feedback_external::get_non_respondents($this->feedback->id); mod_feedback_external::get_non_respondents($this->feedback->id);
} }
@ -809,13 +813,13 @@ class mod_feedback_external_testcase extends externallib_advanced_testcase {
// Process the feedback, there is only one page so the feedback will be completed. // Process the feedback, there is only one page so the feedback will be completed.
$result = mod_feedback_external::process_page($this->feedback->id, 0, $pagedata); $result = mod_feedback_external::process_page($this->feedback->id, 0, $pagedata);
$result = external_api::clean_returnvalue(mod_feedback_external::process_page_returns(), $result); $result = \external_api::clean_returnvalue(mod_feedback_external::process_page_returns(), $result);
$this->assertTrue($result['completed']); $this->assertTrue($result['completed']);
// Retrieve the non-respondent users. // Retrieve the non-respondent users.
$this->setUser($this->teacher); $this->setUser($this->teacher);
$result = mod_feedback_external::get_non_respondents($this->feedback->id); $result = mod_feedback_external::get_non_respondents($this->feedback->id);
$result = external_api::clean_returnvalue(mod_feedback_external::get_non_respondents_returns(), $result); $result = \external_api::clean_returnvalue(mod_feedback_external::get_non_respondents_returns(), $result);
$this->assertCount(0, $result['warnings']); $this->assertCount(0, $result['warnings']);
$this->assertCount(1, $result['users']); $this->assertCount(1, $result['users']);
$this->assertEquals($anotherstudent->id, $result['users'][0]['userid']); $this->assertEquals($anotherstudent->id, $result['users'][0]['userid']);
@ -826,13 +830,13 @@ class mod_feedback_external_testcase extends externallib_advanced_testcase {
$this->setUser($anotherstudent2); $this->setUser($anotherstudent2);
$this->setUser($this->teacher); $this->setUser($this->teacher);
$result = mod_feedback_external::get_non_respondents($this->feedback->id); $result = mod_feedback_external::get_non_respondents($this->feedback->id);
$result = external_api::clean_returnvalue(mod_feedback_external::get_non_respondents_returns(), $result); $result = \external_api::clean_returnvalue(mod_feedback_external::get_non_respondents_returns(), $result);
$this->assertCount(0, $result['warnings']); $this->assertCount(0, $result['warnings']);
$this->assertCount(2, $result['users']); $this->assertCount(2, $result['users']);
// Test pagination. // Test pagination.
$result = mod_feedback_external::get_non_respondents($this->feedback->id, 0, 'lastaccess', 0, 1); $result = mod_feedback_external::get_non_respondents($this->feedback->id, 0, 'lastaccess', 0, 1);
$result = external_api::clean_returnvalue(mod_feedback_external::get_non_respondents_returns(), $result); $result = \external_api::clean_returnvalue(mod_feedback_external::get_non_respondents_returns(), $result);
$this->assertCount(0, $result['warnings']); $this->assertCount(0, $result['warnings']);
$this->assertCount(1, $result['users']); $this->assertCount(1, $result['users']);
} }
@ -879,7 +883,7 @@ class mod_feedback_external_testcase extends externallib_advanced_testcase {
// Process the feedback, there is only one page so the feedback will be completed. // Process the feedback, there is only one page so the feedback will be completed.
$result = mod_feedback_external::process_page($this->feedback->id, 0, $pagedata); $result = mod_feedback_external::process_page($this->feedback->id, 0, $pagedata);
$result = external_api::clean_returnvalue(mod_feedback_external::process_page_returns(), $result); $result = \external_api::clean_returnvalue(mod_feedback_external::process_page_returns(), $result);
$this->assertTrue($result['completed']); $this->assertTrue($result['completed']);
$this->setUser($anotherstudent1); $this->setUser($anotherstudent1);
@ -890,7 +894,7 @@ class mod_feedback_external_testcase extends externallib_advanced_testcase {
]; ];
$result = mod_feedback_external::process_page($this->feedback->id, 0, $pagedata); $result = mod_feedback_external::process_page($this->feedback->id, 0, $pagedata);
$result = external_api::clean_returnvalue(mod_feedback_external::process_page_returns(), $result); $result = \external_api::clean_returnvalue(mod_feedback_external::process_page_returns(), $result);
$this->assertTrue($result['completed']); $this->assertTrue($result['completed']);
$this->setUser($anotherstudent2); $this->setUser($anotherstudent2);
@ -901,7 +905,7 @@ class mod_feedback_external_testcase extends externallib_advanced_testcase {
]; ];
$result = mod_feedback_external::process_page($this->feedback->id, 0, $pagedata); $result = mod_feedback_external::process_page($this->feedback->id, 0, $pagedata);
$result = external_api::clean_returnvalue(mod_feedback_external::process_page_returns(), $result); $result = \external_api::clean_returnvalue(mod_feedback_external::process_page_returns(), $result);
$this->assertTrue($result['completed']); $this->assertTrue($result['completed']);
} }
@ -914,7 +918,7 @@ class mod_feedback_external_testcase extends externallib_advanced_testcase {
// Retrieve the responses analysis. // Retrieve the responses analysis.
$this->setUser($this->teacher); $this->setUser($this->teacher);
$result = mod_feedback_external::get_responses_analysis($this->feedback->id); $result = mod_feedback_external::get_responses_analysis($this->feedback->id);
$result = external_api::clean_returnvalue(mod_feedback_external::get_responses_analysis_returns(), $result); $result = \external_api::clean_returnvalue(mod_feedback_external::get_responses_analysis_returns(), $result);
$this->assertCount(0, $result['warnings']); $this->assertCount(0, $result['warnings']);
$this->assertEquals(0, $result['totalattempts']); $this->assertEquals(0, $result['totalattempts']);
$this->assertEquals(2, $result['totalanonattempts']); // Only see my groups. $this->assertEquals(2, $result['totalanonattempts']); // Only see my groups.
@ -937,7 +941,7 @@ class mod_feedback_external_testcase extends externallib_advanced_testcase {
// Retrieve the responses analysis. // Retrieve the responses analysis.
$this->setUser($this->teacher); $this->setUser($this->teacher);
$result = mod_feedback_external::get_responses_analysis($this->feedback->id); $result = mod_feedback_external::get_responses_analysis($this->feedback->id);
$result = external_api::clean_returnvalue(mod_feedback_external::get_responses_analysis_returns(), $result); $result = \external_api::clean_returnvalue(mod_feedback_external::get_responses_analysis_returns(), $result);
$this->assertCount(0, $result['warnings']); $this->assertCount(0, $result['warnings']);
$this->assertEquals(2, $result['totalattempts']); $this->assertEquals(2, $result['totalattempts']);
$this->assertEquals(0, $result['totalanonattempts']); // Only see my groups. $this->assertEquals(0, $result['totalanonattempts']); // Only see my groups.
@ -960,7 +964,7 @@ class mod_feedback_external_testcase extends externallib_advanced_testcase {
$this->setUser($this->student); $this->setUser($this->student);
$this->expectExceptionMessage(get_string('anonymous', 'feedback')); $this->expectExceptionMessage(get_string('anonymous', 'feedback'));
$this->expectException('moodle_exception'); $this->expectException('\moodle_exception');
mod_feedback_external::get_last_completed($this->feedback->id); mod_feedback_external::get_last_completed($this->feedback->id);
} }
@ -987,7 +991,7 @@ class mod_feedback_external_testcase extends externallib_advanced_testcase {
$this->setUser($this->student); $this->setUser($this->student);
$this->expectExceptionMessage(get_string('anonymous', 'feedback')); $this->expectExceptionMessage(get_string('anonymous', 'feedback'));
$this->expectException('moodle_exception'); $this->expectException('\moodle_exception');
mod_feedback_external::get_last_completed($this->feedback->id); mod_feedback_external::get_last_completed($this->feedback->id);
} }
@ -1013,7 +1017,7 @@ class mod_feedback_external_testcase extends externallib_advanced_testcase {
// Test user with full capabilities. // Test user with full capabilities.
$this->setUser($this->student); $this->setUser($this->student);
$result = mod_feedback_external::get_last_completed($this->feedback->id); $result = mod_feedback_external::get_last_completed($this->feedback->id);
$result = external_api::clean_returnvalue(mod_feedback_external::get_last_completed_returns(), $result); $result = \external_api::clean_returnvalue(mod_feedback_external::get_last_completed_returns(), $result);
$this->assertEquals($record, $result['completed']); $this->assertEquals($record, $result['completed']);
} }
@ -1030,7 +1034,7 @@ class mod_feedback_external_testcase extends externallib_advanced_testcase {
$this->setUser($this->student); $this->setUser($this->student);
$this->expectExceptionMessage(get_string('not_completed_yet', 'feedback')); $this->expectExceptionMessage(get_string('not_completed_yet', 'feedback'));
$this->expectException('moodle_exception'); $this->expectException('\moodle_exception');
mod_feedback_external::get_last_completed($this->feedback->id); mod_feedback_external::get_last_completed($this->feedback->id);
} }
@ -1043,20 +1047,20 @@ class mod_feedback_external_testcase extends externallib_advanced_testcase {
$this->setUser($this->student); $this->setUser($this->student);
// Access the site feedback via the site activity. // Access the site feedback via the site activity.
$result = mod_feedback_external::get_feedback_access_information($sitefeedback->id); $result = mod_feedback_external::get_feedback_access_information($sitefeedback->id);
$result = external_api::clean_returnvalue(mod_feedback_external::get_feedback_access_information_returns(), $result); $result = \external_api::clean_returnvalue(mod_feedback_external::get_feedback_access_information_returns(), $result);
$this->assertTrue($result['cancomplete']); $this->assertTrue($result['cancomplete']);
$this->assertTrue($result['cansubmit']); $this->assertTrue($result['cansubmit']);
// Access the site feedback via course where I'm enrolled. // Access the site feedback via course where I'm enrolled.
$result = mod_feedback_external::get_feedback_access_information($sitefeedback->id, $this->course->id); $result = mod_feedback_external::get_feedback_access_information($sitefeedback->id, $this->course->id);
$result = external_api::clean_returnvalue(mod_feedback_external::get_feedback_access_information_returns(), $result); $result = \external_api::clean_returnvalue(mod_feedback_external::get_feedback_access_information_returns(), $result);
$this->assertTrue($result['cancomplete']); $this->assertTrue($result['cancomplete']);
$this->assertTrue($result['cansubmit']); $this->assertTrue($result['cansubmit']);
// Access the site feedback via course where I'm not enrolled. // Access the site feedback via course where I'm not enrolled.
$othercourse = $this->getDataGenerator()->create_course(); $othercourse = $this->getDataGenerator()->create_course();
$this->expectException('moodle_exception'); $this->expectException('\moodle_exception');
mod_feedback_external::get_feedback_access_information($sitefeedback->id, $othercourse->id); mod_feedback_external::get_feedback_access_information($sitefeedback->id, $othercourse->id);
} }
@ -1072,7 +1076,7 @@ class mod_feedback_external_testcase extends externallib_advanced_testcase {
// Access the site feedback via course where I'm enrolled and mapped. // Access the site feedback via course where I'm enrolled and mapped.
$result = mod_feedback_external::get_feedback_access_information($sitefeedback->id, $this->course->id); $result = mod_feedback_external::get_feedback_access_information($sitefeedback->id, $this->course->id);
$result = external_api::clean_returnvalue(mod_feedback_external::get_feedback_access_information_returns(), $result); $result = \external_api::clean_returnvalue(mod_feedback_external::get_feedback_access_information_returns(), $result);
$this->assertTrue($result['cancomplete']); $this->assertTrue($result['cancomplete']);
$this->assertTrue($result['cansubmit']); $this->assertTrue($result['cansubmit']);
@ -1080,7 +1084,7 @@ class mod_feedback_external_testcase extends externallib_advanced_testcase {
$othercourse = $this->getDataGenerator()->create_course(); $othercourse = $this->getDataGenerator()->create_course();
$this->getDataGenerator()->enrol_user($this->student->id, $othercourse->id, $this->studentrole->id, 'manual'); $this->getDataGenerator()->enrol_user($this->student->id, $othercourse->id, $this->studentrole->id, 'manual');
$this->expectException('moodle_exception'); $this->expectException('\moodle_exception');
$this->expectExceptionMessage(get_string('cannotaccess', 'mod_feedback')); $this->expectExceptionMessage(get_string('cannotaccess', 'mod_feedback'));
mod_feedback_external::get_feedback_access_information($sitefeedback->id, $othercourse->id); mod_feedback_external::get_feedback_access_information($sitefeedback->id, $othercourse->id);
} }

View file

@ -23,9 +23,9 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
defined('MOODLE_INTERNAL') || die(); namespace mod_folder\event;
class mod_folder_events_testcase extends advanced_testcase { class events_test extends \advanced_testcase {
/** /**
* Tests set up. * Tests set up.
@ -46,7 +46,7 @@ class mod_folder_events_testcase extends advanced_testcase {
$folder = $this->getDataGenerator()->create_module('folder', array('course' => $course->id)); $folder = $this->getDataGenerator()->create_module('folder', array('course' => $course->id));
$params = array( $params = array(
'context' => context_module::instance($folder->cmid), 'context' => \context_module::instance($folder->cmid),
'objectid' => $folder->id, 'objectid' => $folder->id,
'courseid' => $course->id 'courseid' => $course->id
); );
@ -62,7 +62,7 @@ class mod_folder_events_testcase extends advanced_testcase {
// Checking that the event contains the expected values. // Checking that the event contains the expected values.
$this->assertInstanceOf('\mod_folder\event\folder_updated', $event); $this->assertInstanceOf('\mod_folder\event\folder_updated', $event);
$this->assertEquals(context_module::instance($folder->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($folder->cmid), $event->get_context());
$this->assertEquals($folder->id, $event->objectid); $this->assertEquals($folder->id, $event->objectid);
$expected = array($course->id, 'folder', 'edit', 'edit.php?id=' . $folder->cmid, $folder->id, $folder->cmid); $expected = array($course->id, 'folder', 'edit', 'edit.php?id=' . $folder->cmid, $folder->id, $folder->cmid);
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
@ -79,7 +79,7 @@ class mod_folder_events_testcase extends advanced_testcase {
$this->setAdminUser(); $this->setAdminUser();
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
$folder = $this->getDataGenerator()->create_module('folder', array('course' => $course->id)); $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_id('folder', $folder->cmid, $course->id, true, MUST_EXIST); $cm = get_coursemodule_from_id('folder', $folder->cmid, $course->id, true, MUST_EXIST);
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();
@ -90,7 +90,7 @@ class mod_folder_events_testcase extends advanced_testcase {
// Checking that the event contains the expected values. // Checking that the event contains the expected values.
$this->assertInstanceOf('\mod_folder\event\all_files_downloaded', $event); $this->assertInstanceOf('\mod_folder\event\all_files_downloaded', $event);
$this->assertEquals(context_module::instance($folder->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($folder->cmid), $event->get_context());
$this->assertEquals($folder->id, $event->objectid); $this->assertEquals($folder->id, $event->objectid);
$expected = array($course->id, 'folder', 'edit', 'edit.php?id=' . $folder->cmid, $folder->id, $folder->cmid); $expected = array($course->id, 'folder', 'edit', 'edit.php?id=' . $folder->cmid, $folder->id, $folder->cmid);
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);

View file

@ -23,6 +23,8 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
namespace mod_folder\search;
defined('MOODLE_INTERNAL') || die(); defined('MOODLE_INTERNAL') || die();
global $CFG; global $CFG;
@ -36,7 +38,7 @@ require_once($CFG->dirroot . '/search/tests/fixtures/testable_core_search.php');
* @copyright 2016 Eric Merrill {@link http://www.merrilldigital.com} * @copyright 2016 Eric Merrill {@link http://www.merrilldigital.com}
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
class mod_folder_search_testcase extends advanced_testcase { class search_test extends \advanced_testcase {
/** /**
* @var string Area id * @var string Area id
@ -50,7 +52,7 @@ class mod_folder_search_testcase extends advanced_testcase {
$this->folderareaid = \core_search\manager::generate_areaid('mod_folder', 'activity'); $this->folderareaid = \core_search\manager::generate_areaid('mod_folder', 'activity');
// Set \core_search::instance to the mock_search_engine as we don't require the search engine to be working to test this. // Set \core_search::instance to the mock_search_engine as we don't require the search engine to be working to test this.
$search = testable_core_search::instance(); $search = \testable_core_search::instance();
} }
/** /**
@ -66,9 +68,9 @@ class mod_folder_search_testcase extends advanced_testcase {
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
$fs = get_file_storage(); $fs = get_file_storage();
$usercontext = context_user::instance($USER->id); $usercontext = \context_user::instance($USER->id);
$record = new stdClass(); $record = new \stdClass();
$record->course = $course->id; $record->course = $course->id;
$record->files = file_get_unused_draft_itemid(); $record->files = file_get_unused_draft_itemid();

View file

@ -23,7 +23,7 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
defined('MOODLE_INTERNAL') || die(); namespace forumreport_summary\event;
/** /**
* Tests for forum report summary events. * Tests for forum report summary events.
@ -33,7 +33,7 @@ defined('MOODLE_INTERNAL') || die();
* @copyright 2019 Michael Hawkins <michaelh@moodle.com> * @copyright 2019 Michael Hawkins <michaelh@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
class forumreport_summary_events_testcase extends advanced_testcase { class events_test extends \advanced_testcase {
/** /**
* Test report_downloaded event. * Test report_downloaded event.
*/ */
@ -51,7 +51,7 @@ class forumreport_summary_events_testcase extends advanced_testcase {
// Create forum. // Create forum.
$this->setUser($teacher); $this->setUser($teacher);
$forum = $this->getDataGenerator()->create_module('forum', ['course' => $course->id]); $forum = $this->getDataGenerator()->create_module('forum', ['course' => $course->id]);
$context = context_module::instance($forum->cmid); $context = \context_module::instance($forum->cmid);
// Trigger and capture event. // Trigger and capture event.
$eventparams = [ $eventparams = [
@ -75,7 +75,7 @@ class forumreport_summary_events_testcase extends advanced_testcase {
$this->assertEquals(CONTEXT_MODULE, $event->contextlevel); $this->assertEquals(CONTEXT_MODULE, $event->contextlevel);
$this->assertEquals($forum->cmid, $event->contextinstanceid); $this->assertEquals($forum->cmid, $event->contextinstanceid);
$this->assertEquals($teacher->id, $event->userid); $this->assertEquals($teacher->id, $event->userid);
$url = new moodle_url('/mod/forum/report/summary/index.php', $url = new \moodle_url('/mod/forum/report/summary/index.php',
['courseid' => $course->id, 'forumid' => $forum->id]); ['courseid' => $course->id, 'forumid' => $forum->id]);
$this->assertEquals($url, $event->get_url()); $this->assertEquals($url, $event->get_url());
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
@ -100,7 +100,7 @@ class forumreport_summary_events_testcase extends advanced_testcase {
// Create forum. // Create forum.
$this->setUser($teacher); $this->setUser($teacher);
$forum = $this->getDataGenerator()->create_module('forum', ['course' => $course->id]); $forum = $this->getDataGenerator()->create_module('forum', ['course' => $course->id]);
$context = context_module::instance($forum->cmid); $context = \context_module::instance($forum->cmid);
// Trigger and capture event. // Trigger and capture event.
$eventparams = [ $eventparams = [
@ -124,7 +124,7 @@ class forumreport_summary_events_testcase extends advanced_testcase {
$this->assertEquals(CONTEXT_MODULE, $event->contextlevel); $this->assertEquals(CONTEXT_MODULE, $event->contextlevel);
$this->assertEquals($forum->cmid, $event->contextinstanceid); $this->assertEquals($forum->cmid, $event->contextinstanceid);
$this->assertEquals($teacher->id, $event->userid); $this->assertEquals($teacher->id, $event->userid);
$url = new moodle_url('/mod/forum/report/summary/index.php', $url = new \moodle_url('/mod/forum/report/summary/index.php',
['courseid' => $course->id, 'forumid' => $forum->id]); ['courseid' => $course->id, 'forumid' => $forum->id]);
$this->assertEquals($url, $event->get_url()); $this->assertEquals($url, $event->get_url());
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);

View file

@ -23,7 +23,7 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
defined('MOODLE_INTERNAL') || die(); namespace mod_forum\event;
/** /**
* Tests for forum events. * Tests for forum events.
@ -33,7 +33,7 @@ defined('MOODLE_INTERNAL') || die();
* @copyright 2014 Dan Poltawski <dan@moodle.com> * @copyright 2014 Dan Poltawski <dan@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
class mod_forum_events_testcase extends advanced_testcase { class events_test extends \advanced_testcase {
/** /**
* Tests set up. * Tests set up.
@ -57,12 +57,12 @@ class mod_forum_events_testcase extends advanced_testcase {
*/ */
public function test_course_searched_searchterm_validation() { public function test_course_searched_searchterm_validation() {
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
$coursectx = context_course::instance($course->id); $coursectx = \context_course::instance($course->id);
$params = array( $params = array(
'context' => $coursectx, 'context' => $coursectx,
); );
$this->expectException(coding_exception::class); $this->expectException(\coding_exception::class);
$this->expectExceptionMessage("The 'searchterm' value must be set in other."); $this->expectExceptionMessage("The 'searchterm' value must be set in other.");
\mod_forum\event\course_searched::create($params); \mod_forum\event\course_searched::create($params);
} }
@ -73,13 +73,13 @@ class mod_forum_events_testcase extends advanced_testcase {
public function test_course_searched_context_validation() { public function test_course_searched_context_validation() {
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
$forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id)); $forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id));
$context = context_module::instance($forum->cmid); $context = \context_module::instance($forum->cmid);
$params = array( $params = array(
'context' => $context, 'context' => $context,
'other' => array('searchterm' => 'testing'), 'other' => array('searchterm' => 'testing'),
); );
$this->expectException(coding_exception::class); $this->expectException(\coding_exception::class);
$this->expectExceptionMessage('Context level must be CONTEXT_COURSE.'); $this->expectExceptionMessage('Context level must be CONTEXT_COURSE.');
\mod_forum\event\course_searched::create($params); \mod_forum\event\course_searched::create($params);
} }
@ -91,7 +91,7 @@ class mod_forum_events_testcase extends advanced_testcase {
// Setup test data. // Setup test data.
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
$coursectx = context_course::instance($course->id); $coursectx = \context_course::instance($course->id);
$searchterm = 'testing123'; $searchterm = 'testing123';
$params = array( $params = array(
@ -125,13 +125,13 @@ class mod_forum_events_testcase extends advanced_testcase {
public function test_discussion_created_forumid_validation() { public function test_discussion_created_forumid_validation() {
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
$forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id)); $forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id));
$context = context_module::instance($forum->cmid); $context = \context_module::instance($forum->cmid);
$params = array( $params = array(
'context' => $context, 'context' => $context,
); );
$this->expectException(coding_exception::class); $this->expectException(\coding_exception::class);
$this->expectExceptionMessage("The 'forumid' value must be set in other."); $this->expectExceptionMessage("The 'forumid' value must be set in other.");
\mod_forum\event\discussion_created::create($params); \mod_forum\event\discussion_created::create($params);
} }
@ -144,11 +144,11 @@ class mod_forum_events_testcase extends advanced_testcase {
$forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id)); $forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id));
$params = array( $params = array(
'context' => context_system::instance(), 'context' => \context_system::instance(),
'other' => array('forumid' => $forum->id), 'other' => array('forumid' => $forum->id),
); );
$this->expectException(coding_exception::class); $this->expectException(\coding_exception::class);
$this->expectExceptionMessage('Context level must be CONTEXT_MODULE.'); $this->expectExceptionMessage('Context level must be CONTEXT_MODULE.');
\mod_forum\event\discussion_created::create($params); \mod_forum\event\discussion_created::create($params);
} }
@ -170,7 +170,7 @@ class mod_forum_events_testcase extends advanced_testcase {
$record['userid'] = $user->id; $record['userid'] = $user->id;
$discussion = $this->getDataGenerator()->get_plugin_generator('mod_forum')->create_discussion($record); $discussion = $this->getDataGenerator()->get_plugin_generator('mod_forum')->create_discussion($record);
$context = context_module::instance($forum->cmid); $context = \context_module::instance($forum->cmid);
$params = array( $params = array(
'context' => $context, 'context' => $context,
@ -204,13 +204,13 @@ class mod_forum_events_testcase extends advanced_testcase {
public function test_discussion_updated_forumid_validation() { public function test_discussion_updated_forumid_validation() {
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
$forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id)); $forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id));
$context = context_module::instance($forum->cmid); $context = \context_module::instance($forum->cmid);
$params = array( $params = array(
'context' => $context, 'context' => $context,
); );
$this->expectException(coding_exception::class); $this->expectException(\coding_exception::class);
$this->expectExceptionMessage("The 'forumid' value must be set in other."); $this->expectExceptionMessage("The 'forumid' value must be set in other.");
\mod_forum\event\discussion_updated::create($params); \mod_forum\event\discussion_updated::create($params);
} }
@ -223,11 +223,11 @@ class mod_forum_events_testcase extends advanced_testcase {
$forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id)); $forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id));
$params = array( $params = array(
'context' => context_system::instance(), 'context' => \context_system::instance(),
'other' => array('forumid' => $forum->id), 'other' => array('forumid' => $forum->id),
); );
$this->expectException(coding_exception::class); $this->expectException(\coding_exception::class);
$this->expectExceptionMessage('Context level must be CONTEXT_MODULE.'); $this->expectExceptionMessage('Context level must be CONTEXT_MODULE.');
\mod_forum\event\discussion_updated::create($params); \mod_forum\event\discussion_updated::create($params);
} }
@ -249,7 +249,7 @@ class mod_forum_events_testcase extends advanced_testcase {
$record['userid'] = $user->id; $record['userid'] = $user->id;
$discussion = $this->getDataGenerator()->get_plugin_generator('mod_forum')->create_discussion($record); $discussion = $this->getDataGenerator()->get_plugin_generator('mod_forum')->create_discussion($record);
$context = context_module::instance($forum->cmid); $context = \context_module::instance($forum->cmid);
$params = array( $params = array(
'context' => $context, 'context' => $context,
@ -281,13 +281,13 @@ class mod_forum_events_testcase extends advanced_testcase {
public function test_discussion_deleted_forumid_validation() { public function test_discussion_deleted_forumid_validation() {
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
$forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id)); $forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id));
$context = context_module::instance($forum->cmid); $context = \context_module::instance($forum->cmid);
$params = array( $params = array(
'context' => $context, 'context' => $context,
); );
$this->expectException(coding_exception::class); $this->expectException(\coding_exception::class);
$this->expectExceptionMessage("The 'forumid' value must be set in other."); $this->expectExceptionMessage("The 'forumid' value must be set in other.");
\mod_forum\event\discussion_deleted::create($params); \mod_forum\event\discussion_deleted::create($params);
} }
@ -300,11 +300,11 @@ class mod_forum_events_testcase extends advanced_testcase {
$forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id)); $forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id));
$params = array( $params = array(
'context' => context_system::instance(), 'context' => \context_system::instance(),
'other' => array('forumid' => $forum->id), 'other' => array('forumid' => $forum->id),
); );
$this->expectException(coding_exception::class); $this->expectException(\coding_exception::class);
$this->expectExceptionMessage('Context level must be CONTEXT_MODULE.'); $this->expectExceptionMessage('Context level must be CONTEXT_MODULE.');
\mod_forum\event\discussion_deleted::create($params); \mod_forum\event\discussion_deleted::create($params);
} }
@ -326,7 +326,7 @@ class mod_forum_events_testcase extends advanced_testcase {
$record['userid'] = $user->id; $record['userid'] = $user->id;
$discussion = $this->getDataGenerator()->get_plugin_generator('mod_forum')->create_discussion($record); $discussion = $this->getDataGenerator()->get_plugin_generator('mod_forum')->create_discussion($record);
$context = context_module::instance($forum->cmid); $context = \context_module::instance($forum->cmid);
$params = array( $params = array(
'context' => $context, 'context' => $context,
@ -360,14 +360,14 @@ class mod_forum_events_testcase extends advanced_testcase {
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
$toforum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id)); $toforum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id));
$context = context_module::instance($toforum->cmid); $context = \context_module::instance($toforum->cmid);
$params = array( $params = array(
'context' => $context, 'context' => $context,
'other' => array('toforumid' => $toforum->id) 'other' => array('toforumid' => $toforum->id)
); );
$this->expectException(coding_exception::class); $this->expectException(\coding_exception::class);
$this->expectExceptionMessage("The 'fromforumid' value must be set in other."); $this->expectExceptionMessage("The 'fromforumid' value must be set in other.");
\mod_forum\event\discussion_moved::create($params); \mod_forum\event\discussion_moved::create($params);
} }
@ -379,14 +379,14 @@ class mod_forum_events_testcase extends advanced_testcase {
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
$fromforum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id)); $fromforum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id));
$toforum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id)); $toforum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id));
$context = context_module::instance($toforum->cmid); $context = \context_module::instance($toforum->cmid);
$params = array( $params = array(
'context' => $context, 'context' => $context,
'other' => array('fromforumid' => $fromforum->id) 'other' => array('fromforumid' => $fromforum->id)
); );
$this->expectException(coding_exception::class); $this->expectException(\coding_exception::class);
$this->expectExceptionMessage("The 'toforumid' value must be set in other."); $this->expectExceptionMessage("The 'toforumid' value must be set in other.");
\mod_forum\event\discussion_moved::create($params); \mod_forum\event\discussion_moved::create($params);
} }
@ -408,12 +408,12 @@ class mod_forum_events_testcase extends advanced_testcase {
$discussion = $this->getDataGenerator()->get_plugin_generator('mod_forum')->create_discussion($record); $discussion = $this->getDataGenerator()->get_plugin_generator('mod_forum')->create_discussion($record);
$params = array( $params = array(
'context' => context_system::instance(), 'context' => \context_system::instance(),
'objectid' => $discussion->id, 'objectid' => $discussion->id,
'other' => array('fromforumid' => $fromforum->id, 'toforumid' => $toforum->id) 'other' => array('fromforumid' => $fromforum->id, 'toforumid' => $toforum->id)
); );
$this->expectException(coding_exception::class); $this->expectException(\coding_exception::class);
$this->expectExceptionMessage('Context level must be CONTEXT_MODULE.'); $this->expectExceptionMessage('Context level must be CONTEXT_MODULE.');
\mod_forum\event\discussion_moved::create($params); \mod_forum\event\discussion_moved::create($params);
} }
@ -435,7 +435,7 @@ class mod_forum_events_testcase extends advanced_testcase {
$record['userid'] = $user->id; $record['userid'] = $user->id;
$discussion = $this->getDataGenerator()->get_plugin_generator('mod_forum')->create_discussion($record); $discussion = $this->getDataGenerator()->get_plugin_generator('mod_forum')->create_discussion($record);
$context = context_module::instance($toforum->cmid); $context = \context_module::instance($toforum->cmid);
$params = array( $params = array(
'context' => $context, 'context' => $context,
@ -480,11 +480,11 @@ class mod_forum_events_testcase extends advanced_testcase {
$discussion = $this->getDataGenerator()->get_plugin_generator('mod_forum')->create_discussion($record); $discussion = $this->getDataGenerator()->get_plugin_generator('mod_forum')->create_discussion($record);
$params = array( $params = array(
'context' => context_system::instance(), 'context' => \context_system::instance(),
'objectid' => $discussion->id, 'objectid' => $discussion->id,
); );
$this->expectException(coding_exception::class); $this->expectException(\coding_exception::class);
$this->expectExceptionMessage('Context level must be CONTEXT_MODULE.'); $this->expectExceptionMessage('Context level must be CONTEXT_MODULE.');
\mod_forum\event\discussion_viewed::create($params); \mod_forum\event\discussion_viewed::create($params);
} }
@ -505,7 +505,7 @@ class mod_forum_events_testcase extends advanced_testcase {
$record['userid'] = $user->id; $record['userid'] = $user->id;
$discussion = $this->getDataGenerator()->get_plugin_generator('mod_forum')->create_discussion($record); $discussion = $this->getDataGenerator()->get_plugin_generator('mod_forum')->create_discussion($record);
$context = context_module::instance($forum->cmid); $context = \context_module::instance($forum->cmid);
$params = array( $params = array(
'context' => $context, 'context' => $context,
@ -540,11 +540,11 @@ class mod_forum_events_testcase extends advanced_testcase {
$forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id)); $forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id));
$params = array( $params = array(
'context' => context_system::instance(), 'context' => \context_system::instance(),
'objectid' => $forum->id, 'objectid' => $forum->id,
); );
$this->expectException(coding_exception::class); $this->expectException(\coding_exception::class);
$this->expectExceptionMessage('Context level must be CONTEXT_MODULE.'); $this->expectExceptionMessage('Context level must be CONTEXT_MODULE.');
\mod_forum\event\course_module_viewed::create($params); \mod_forum\event\course_module_viewed::create($params);
} }
@ -557,7 +557,7 @@ class mod_forum_events_testcase extends advanced_testcase {
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
$forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id)); $forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id));
$context = context_module::instance($forum->cmid); $context = \context_module::instance($forum->cmid);
$params = array( $params = array(
'context' => $context, 'context' => $context,
@ -594,11 +594,11 @@ class mod_forum_events_testcase extends advanced_testcase {
$forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id)); $forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id));
$params = array( $params = array(
'context' => context_module::instance($forum->cmid), 'context' => \context_module::instance($forum->cmid),
'relateduserid' => $user->id, 'relateduserid' => $user->id,
); );
$this->expectException(coding_exception::class); $this->expectException(\coding_exception::class);
$this->expectExceptionMessage("The 'forumid' value must be set in other."); $this->expectExceptionMessage("The 'forumid' value must be set in other.");
\mod_forum\event\subscription_created::create($params); \mod_forum\event\subscription_created::create($params);
} }
@ -611,11 +611,11 @@ class mod_forum_events_testcase extends advanced_testcase {
$forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id)); $forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id));
$params = array( $params = array(
'context' => context_module::instance($forum->cmid), 'context' => \context_module::instance($forum->cmid),
'objectid' => $forum->id, 'objectid' => $forum->id,
); );
$this->expectException(coding_exception::class); $this->expectException(\coding_exception::class);
$this->expectExceptionMessage("The 'relateduserid' must be set."); $this->expectExceptionMessage("The 'relateduserid' must be set.");
\mod_forum\event\subscription_created::create($params); \mod_forum\event\subscription_created::create($params);
} }
@ -629,12 +629,12 @@ class mod_forum_events_testcase extends advanced_testcase {
$forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id)); $forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id));
$params = array( $params = array(
'context' => context_system::instance(), 'context' => \context_system::instance(),
'other' => array('forumid' => $forum->id), 'other' => array('forumid' => $forum->id),
'relateduserid' => $user->id, 'relateduserid' => $user->id,
); );
$this->expectException(coding_exception::class); $this->expectException(\coding_exception::class);
$this->expectExceptionMessage('Context level must be CONTEXT_MODULE.'); $this->expectExceptionMessage('Context level must be CONTEXT_MODULE.');
\mod_forum\event\subscription_created::create($params); \mod_forum\event\subscription_created::create($params);
} }
@ -648,7 +648,7 @@ class mod_forum_events_testcase extends advanced_testcase {
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
$forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id)); $forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id));
$user = $this->getDataGenerator()->create_user(); $user = $this->getDataGenerator()->create_user();
$context = context_module::instance($forum->cmid); $context = \context_module::instance($forum->cmid);
// Add a subscription. // Add a subscription.
$record = array(); $record = array();
@ -694,11 +694,11 @@ class mod_forum_events_testcase extends advanced_testcase {
$forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id)); $forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id));
$params = array( $params = array(
'context' => context_module::instance($forum->cmid), 'context' => \context_module::instance($forum->cmid),
'relateduserid' => $user->id, 'relateduserid' => $user->id,
); );
$this->expectException(coding_exception::class); $this->expectException(\coding_exception::class);
$this->expectExceptionMessage("The 'forumid' value must be set in other."); $this->expectExceptionMessage("The 'forumid' value must be set in other.");
\mod_forum\event\subscription_deleted::create($params); \mod_forum\event\subscription_deleted::create($params);
} }
@ -711,11 +711,11 @@ class mod_forum_events_testcase extends advanced_testcase {
$forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id)); $forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id));
$params = array( $params = array(
'context' => context_module::instance($forum->cmid), 'context' => \context_module::instance($forum->cmid),
'objectid' => $forum->id, 'objectid' => $forum->id,
); );
$this->expectException(coding_exception::class); $this->expectException(\coding_exception::class);
$this->expectExceptionMessage("The 'relateduserid' must be set."); $this->expectExceptionMessage("The 'relateduserid' must be set.");
\mod_forum\event\subscription_deleted::create($params); \mod_forum\event\subscription_deleted::create($params);
} }
@ -729,12 +729,12 @@ class mod_forum_events_testcase extends advanced_testcase {
$forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id)); $forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id));
$params = array( $params = array(
'context' => context_system::instance(), 'context' => \context_system::instance(),
'other' => array('forumid' => $forum->id), 'other' => array('forumid' => $forum->id),
'relateduserid' => $user->id, 'relateduserid' => $user->id,
); );
$this->expectException(coding_exception::class); $this->expectException(\coding_exception::class);
$this->expectExceptionMessage('Context level must be CONTEXT_MODULE.'); $this->expectExceptionMessage('Context level must be CONTEXT_MODULE.');
\mod_forum\event\subscription_deleted::create($params); \mod_forum\event\subscription_deleted::create($params);
} }
@ -748,7 +748,7 @@ class mod_forum_events_testcase extends advanced_testcase {
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
$forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id)); $forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id));
$user = $this->getDataGenerator()->create_user(); $user = $this->getDataGenerator()->create_user();
$context = context_module::instance($forum->cmid); $context = \context_module::instance($forum->cmid);
// Add a subscription. // Add a subscription.
$record = array(); $record = array();
@ -794,11 +794,11 @@ class mod_forum_events_testcase extends advanced_testcase {
$forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id)); $forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id));
$params = array( $params = array(
'context' => context_module::instance($forum->cmid), 'context' => \context_module::instance($forum->cmid),
'relateduserid' => $user->id, 'relateduserid' => $user->id,
); );
$this->expectException(coding_exception::class); $this->expectException(\coding_exception::class);
$this->expectExceptionMessage("The 'forumid' value must be set in other."); $this->expectExceptionMessage("The 'forumid' value must be set in other.");
\mod_forum\event\readtracking_enabled::create($params); \mod_forum\event\readtracking_enabled::create($params);
} }
@ -811,11 +811,11 @@ class mod_forum_events_testcase extends advanced_testcase {
$forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id)); $forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id));
$params = array( $params = array(
'context' => context_module::instance($forum->cmid), 'context' => \context_module::instance($forum->cmid),
'objectid' => $forum->id, 'objectid' => $forum->id,
); );
$this->expectException(coding_exception::class); $this->expectException(\coding_exception::class);
$this->expectExceptionMessage("The 'relateduserid' must be set."); $this->expectExceptionMessage("The 'relateduserid' must be set.");
\mod_forum\event\readtracking_enabled::create($params); \mod_forum\event\readtracking_enabled::create($params);
} }
@ -829,12 +829,12 @@ class mod_forum_events_testcase extends advanced_testcase {
$forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id)); $forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id));
$params = array( $params = array(
'context' => context_system::instance(), 'context' => \context_system::instance(),
'other' => array('forumid' => $forum->id), 'other' => array('forumid' => $forum->id),
'relateduserid' => $user->id, 'relateduserid' => $user->id,
); );
$this->expectException(coding_exception::class); $this->expectException(\coding_exception::class);
$this->expectExceptionMessage('Context level must be CONTEXT_MODULE.'); $this->expectExceptionMessage('Context level must be CONTEXT_MODULE.');
\mod_forum\event\readtracking_enabled::create($params); \mod_forum\event\readtracking_enabled::create($params);
} }
@ -847,7 +847,7 @@ class mod_forum_events_testcase extends advanced_testcase {
$user = $this->getDataGenerator()->create_user(); $user = $this->getDataGenerator()->create_user();
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
$forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id)); $forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id));
$context = context_module::instance($forum->cmid); $context = \context_module::instance($forum->cmid);
$params = array( $params = array(
'context' => $context, 'context' => $context,
@ -885,11 +885,11 @@ class mod_forum_events_testcase extends advanced_testcase {
$forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id)); $forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id));
$params = array( $params = array(
'context' => context_module::instance($forum->cmid), 'context' => \context_module::instance($forum->cmid),
'relateduserid' => $user->id, 'relateduserid' => $user->id,
); );
$this->expectException(coding_exception::class); $this->expectException(\coding_exception::class);
$this->expectExceptionMessage("The 'forumid' value must be set in other."); $this->expectExceptionMessage("The 'forumid' value must be set in other.");
\mod_forum\event\readtracking_disabled::create($params); \mod_forum\event\readtracking_disabled::create($params);
} }
@ -902,11 +902,11 @@ class mod_forum_events_testcase extends advanced_testcase {
$forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id)); $forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id));
$params = array( $params = array(
'context' => context_module::instance($forum->cmid), 'context' => \context_module::instance($forum->cmid),
'objectid' => $forum->id, 'objectid' => $forum->id,
); );
$this->expectException(coding_exception::class); $this->expectException(\coding_exception::class);
$this->expectExceptionMessage("The 'relateduserid' must be set."); $this->expectExceptionMessage("The 'relateduserid' must be set.");
\mod_forum\event\readtracking_disabled::create($params); \mod_forum\event\readtracking_disabled::create($params);
} }
@ -920,12 +920,12 @@ class mod_forum_events_testcase extends advanced_testcase {
$forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id)); $forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id));
$params = array( $params = array(
'context' => context_system::instance(), 'context' => \context_system::instance(),
'other' => array('forumid' => $forum->id), 'other' => array('forumid' => $forum->id),
'relateduserid' => $user->id, 'relateduserid' => $user->id,
); );
$this->expectException(coding_exception::class); $this->expectException(\coding_exception::class);
$this->expectExceptionMessage('Context level must be CONTEXT_MODULE.'); $this->expectExceptionMessage('Context level must be CONTEXT_MODULE.');
\mod_forum\event\readtracking_disabled::create($params); \mod_forum\event\readtracking_disabled::create($params);
} }
@ -938,7 +938,7 @@ class mod_forum_events_testcase extends advanced_testcase {
$user = $this->getDataGenerator()->create_user(); $user = $this->getDataGenerator()->create_user();
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
$forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id)); $forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id));
$context = context_module::instance($forum->cmid); $context = \context_module::instance($forum->cmid);
$params = array( $params = array(
'context' => $context, 'context' => $context,
@ -976,11 +976,11 @@ class mod_forum_events_testcase extends advanced_testcase {
$forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id)); $forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id));
$params = array( $params = array(
'context' => context_module::instance($forum->cmid), 'context' => \context_module::instance($forum->cmid),
'relateduserid' => $user->id, 'relateduserid' => $user->id,
); );
$this->expectException(coding_exception::class); $this->expectException(\coding_exception::class);
$this->expectExceptionMessage("The 'forumid' value must be set in other."); $this->expectExceptionMessage("The 'forumid' value must be set in other.");
\mod_forum\event\subscribers_viewed::create($params); \mod_forum\event\subscribers_viewed::create($params);
} }
@ -994,12 +994,12 @@ class mod_forum_events_testcase extends advanced_testcase {
$forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id)); $forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id));
$params = array( $params = array(
'context' => context_system::instance(), 'context' => \context_system::instance(),
'other' => array('forumid' => $forum->id), 'other' => array('forumid' => $forum->id),
'relateduserid' => $user->id, 'relateduserid' => $user->id,
); );
$this->expectException(coding_exception::class); $this->expectException(\coding_exception::class);
$this->expectExceptionMessage('Context level must be CONTEXT_MODULE.'); $this->expectExceptionMessage('Context level must be CONTEXT_MODULE.');
\mod_forum\event\subscribers_viewed::create($params); \mod_forum\event\subscribers_viewed::create($params);
} }
@ -1011,7 +1011,7 @@ class mod_forum_events_testcase extends advanced_testcase {
// Setup test data. // Setup test data.
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
$forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id)); $forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id));
$context = context_module::instance($forum->cmid); $context = \context_module::instance($forum->cmid);
$params = array( $params = array(
'context' => $context, 'context' => $context,
@ -1045,11 +1045,11 @@ class mod_forum_events_testcase extends advanced_testcase {
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
$params = array( $params = array(
'context' => context_course::instance($course->id), 'context' => \context_course::instance($course->id),
'relateduserid' => $user->id, 'relateduserid' => $user->id,
); );
$this->expectException(coding_exception::class); $this->expectException(\coding_exception::class);
$this->expectExceptionMessage("The 'reportmode' value must be set in other."); $this->expectExceptionMessage("The 'reportmode' value must be set in other.");
\mod_forum\event\user_report_viewed::create($params); \mod_forum\event\user_report_viewed::create($params);
} }
@ -1063,12 +1063,12 @@ class mod_forum_events_testcase extends advanced_testcase {
$forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id)); $forum = $this->getDataGenerator()->create_module('forum', array('course' => $course->id));
$params = array( $params = array(
'context' => context_module::instance($forum->cmid), 'context' => \context_module::instance($forum->cmid),
'other' => array('reportmode' => 'posts'), 'other' => array('reportmode' => 'posts'),
'relateduserid' => $user->id, 'relateduserid' => $user->id,
); );
$this->expectException(coding_exception::class); $this->expectException(\coding_exception::class);
$this->expectExceptionMessage('Context level must be either CONTEXT_SYSTEM, CONTEXT_COURSE or CONTEXT_USER.'); $this->expectExceptionMessage('Context level must be either CONTEXT_SYSTEM, CONTEXT_COURSE or CONTEXT_USER.');
\mod_forum\event\user_report_viewed::create($params); \mod_forum\event\user_report_viewed::create($params);
} }
@ -1079,11 +1079,11 @@ class mod_forum_events_testcase extends advanced_testcase {
public function test_user_report_viewed_relateduserid_validation() { public function test_user_report_viewed_relateduserid_validation() {
$params = array( $params = array(
'context' => context_system::instance(), 'context' => \context_system::instance(),
'other' => array('reportmode' => 'posts'), 'other' => array('reportmode' => 'posts'),
); );
$this->expectException(coding_exception::class); $this->expectException(\coding_exception::class);
$this->expectExceptionMessage("The 'relateduserid' must be set."); $this->expectExceptionMessage("The 'relateduserid' must be set.");
\mod_forum\event\user_report_viewed::create($params); \mod_forum\event\user_report_viewed::create($params);
} }
@ -1095,7 +1095,7 @@ class mod_forum_events_testcase extends advanced_testcase {
// Setup test data. // Setup test data.
$user = $this->getDataGenerator()->create_user(); $user = $this->getDataGenerator()->create_user();
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
$context = context_course::instance($course->id); $context = \context_course::instance($course->id);
$params = array( $params = array(
'context' => $context, 'context' => $context,
@ -1139,7 +1139,7 @@ class mod_forum_events_testcase extends advanced_testcase {
$discussion = $this->getDataGenerator()->get_plugin_generator('mod_forum')->create_discussion($record); $discussion = $this->getDataGenerator()->get_plugin_generator('mod_forum')->create_discussion($record);
$params = array( $params = array(
'context' => context_module::instance($forum->cmid), 'context' => \context_module::instance($forum->cmid),
'other' => array('forumid' => $forum->id, 'forumtype' => $forum->type, 'discussionid' => $discussion->id) 'other' => array('forumid' => $forum->id, 'forumtype' => $forum->type, 'discussionid' => $discussion->id)
); );
@ -1168,12 +1168,12 @@ class mod_forum_events_testcase extends advanced_testcase {
$post = $this->getDataGenerator()->get_plugin_generator('mod_forum')->create_post($record); $post = $this->getDataGenerator()->get_plugin_generator('mod_forum')->create_post($record);
$params = array( $params = array(
'context' => context_module::instance($forum->cmid), 'context' => \context_module::instance($forum->cmid),
'objectid' => $post->id, 'objectid' => $post->id,
'other' => array('forumid' => $forum->id, 'forumtype' => $forum->type) 'other' => array('forumid' => $forum->id, 'forumtype' => $forum->type)
); );
$this->expectException(coding_exception::class); $this->expectException(\coding_exception::class);
$this->expectExceptionMessage("The 'discussionid' value must be set in other."); $this->expectExceptionMessage("The 'discussionid' value must be set in other.");
\mod_forum\event\post_created::create($params); \mod_forum\event\post_created::create($params);
} }
@ -1200,12 +1200,12 @@ class mod_forum_events_testcase extends advanced_testcase {
$post = $this->getDataGenerator()->get_plugin_generator('mod_forum')->create_post($record); $post = $this->getDataGenerator()->get_plugin_generator('mod_forum')->create_post($record);
$params = array( $params = array(
'context' => context_module::instance($forum->cmid), 'context' => \context_module::instance($forum->cmid),
'objectid' => $post->id, 'objectid' => $post->id,
'other' => array('discussionid' => $discussion->id, 'forumtype' => $forum->type) 'other' => array('discussionid' => $discussion->id, 'forumtype' => $forum->type)
); );
$this->expectException(coding_exception::class); $this->expectException(\coding_exception::class);
$this->expectExceptionMessage("The 'forumid' value must be set in other."); $this->expectExceptionMessage("The 'forumid' value must be set in other.");
\mod_forum\event\post_created::create($params); \mod_forum\event\post_created::create($params);
} }
@ -1232,12 +1232,12 @@ class mod_forum_events_testcase extends advanced_testcase {
$post = $this->getDataGenerator()->get_plugin_generator('mod_forum')->create_post($record); $post = $this->getDataGenerator()->get_plugin_generator('mod_forum')->create_post($record);
$params = array( $params = array(
'context' => context_module::instance($forum->cmid), 'context' => \context_module::instance($forum->cmid),
'objectid' => $post->id, 'objectid' => $post->id,
'other' => array('discussionid' => $discussion->id, 'forumid' => $forum->id) 'other' => array('discussionid' => $discussion->id, 'forumid' => $forum->id)
); );
$this->expectException(coding_exception::class); $this->expectException(\coding_exception::class);
$this->expectExceptionMessage("The 'forumtype' value must be set in other."); $this->expectExceptionMessage("The 'forumtype' value must be set in other.");
\mod_forum\event\post_created::create($params); \mod_forum\event\post_created::create($params);
} }
@ -1264,12 +1264,12 @@ class mod_forum_events_testcase extends advanced_testcase {
$post = $this->getDataGenerator()->get_plugin_generator('mod_forum')->create_post($record); $post = $this->getDataGenerator()->get_plugin_generator('mod_forum')->create_post($record);
$params = array( $params = array(
'context' => context_system::instance(), 'context' => \context_system::instance(),
'objectid' => $post->id, 'objectid' => $post->id,
'other' => array('discussionid' => $discussion->id, 'forumid' => $forum->id, 'forumtype' => $forum->type) 'other' => array('discussionid' => $discussion->id, 'forumid' => $forum->id, 'forumtype' => $forum->type)
); );
$this->expectException(coding_exception::class); $this->expectException(\coding_exception::class);
$this->expectExceptionMessage('Context level must be CONTEXT_MODULE.'); $this->expectExceptionMessage('Context level must be CONTEXT_MODULE.');
\mod_forum\event\post_created::create($params); \mod_forum\event\post_created::create($params);
} }
@ -1296,7 +1296,7 @@ class mod_forum_events_testcase extends advanced_testcase {
$record['userid'] = $user->id; $record['userid'] = $user->id;
$post = $this->getDataGenerator()->get_plugin_generator('mod_forum')->create_post($record); $post = $this->getDataGenerator()->get_plugin_generator('mod_forum')->create_post($record);
$context = context_module::instance($forum->cmid); $context = \context_module::instance($forum->cmid);
$params = array( $params = array(
'context' => $context, 'context' => $context,
@ -1349,7 +1349,7 @@ class mod_forum_events_testcase extends advanced_testcase {
$record['userid'] = $user->id; $record['userid'] = $user->id;
$post = $this->getDataGenerator()->get_plugin_generator('mod_forum')->create_post($record); $post = $this->getDataGenerator()->get_plugin_generator('mod_forum')->create_post($record);
$context = context_module::instance($forum->cmid); $context = \context_module::instance($forum->cmid);
$params = array( $params = array(
'context' => $context, 'context' => $context,
@ -1396,7 +1396,7 @@ class mod_forum_events_testcase extends advanced_testcase {
$discussion = $this->getDataGenerator()->get_plugin_generator('mod_forum')->create_discussion($record); $discussion = $this->getDataGenerator()->get_plugin_generator('mod_forum')->create_discussion($record);
$params = array( $params = array(
'context' => context_module::instance($forum->cmid), 'context' => \context_module::instance($forum->cmid),
'other' => array('forumid' => $forum->id, 'forumtype' => $forum->type, 'discussionid' => $discussion->id) 'other' => array('forumid' => $forum->id, 'forumtype' => $forum->type, 'discussionid' => $discussion->id)
); );
@ -1425,12 +1425,12 @@ class mod_forum_events_testcase extends advanced_testcase {
$post = $this->getDataGenerator()->get_plugin_generator('mod_forum')->create_post($record); $post = $this->getDataGenerator()->get_plugin_generator('mod_forum')->create_post($record);
$params = array( $params = array(
'context' => context_module::instance($forum->cmid), 'context' => \context_module::instance($forum->cmid),
'objectid' => $post->id, 'objectid' => $post->id,
'other' => array('forumid' => $forum->id, 'forumtype' => $forum->type) 'other' => array('forumid' => $forum->id, 'forumtype' => $forum->type)
); );
$this->expectException(coding_exception::class); $this->expectException(\coding_exception::class);
$this->expectExceptionMessage("The 'discussionid' value must be set in other."); $this->expectExceptionMessage("The 'discussionid' value must be set in other.");
\mod_forum\event\post_deleted::create($params); \mod_forum\event\post_deleted::create($params);
} }
@ -1457,12 +1457,12 @@ class mod_forum_events_testcase extends advanced_testcase {
$post = $this->getDataGenerator()->get_plugin_generator('mod_forum')->create_post($record); $post = $this->getDataGenerator()->get_plugin_generator('mod_forum')->create_post($record);
$params = array( $params = array(
'context' => context_module::instance($forum->cmid), 'context' => \context_module::instance($forum->cmid),
'objectid' => $post->id, 'objectid' => $post->id,
'other' => array('discussionid' => $discussion->id, 'forumtype' => $forum->type) 'other' => array('discussionid' => $discussion->id, 'forumtype' => $forum->type)
); );
$this->expectException(coding_exception::class); $this->expectException(\coding_exception::class);
$this->expectExceptionMessage("The 'forumid' value must be set in other."); $this->expectExceptionMessage("The 'forumid' value must be set in other.");
\mod_forum\event\post_deleted::create($params); \mod_forum\event\post_deleted::create($params);
} }
@ -1489,12 +1489,12 @@ class mod_forum_events_testcase extends advanced_testcase {
$post = $this->getDataGenerator()->get_plugin_generator('mod_forum')->create_post($record); $post = $this->getDataGenerator()->get_plugin_generator('mod_forum')->create_post($record);
$params = array( $params = array(
'context' => context_module::instance($forum->cmid), 'context' => \context_module::instance($forum->cmid),
'objectid' => $post->id, 'objectid' => $post->id,
'other' => array('discussionid' => $discussion->id, 'forumid' => $forum->id) 'other' => array('discussionid' => $discussion->id, 'forumid' => $forum->id)
); );
$this->expectException(coding_exception::class); $this->expectException(\coding_exception::class);
$this->expectExceptionMessage("The 'forumtype' value must be set in other."); $this->expectExceptionMessage("The 'forumtype' value must be set in other.");
\mod_forum\event\post_deleted::create($params); \mod_forum\event\post_deleted::create($params);
} }
@ -1521,12 +1521,12 @@ class mod_forum_events_testcase extends advanced_testcase {
$post = $this->getDataGenerator()->get_plugin_generator('mod_forum')->create_post($record); $post = $this->getDataGenerator()->get_plugin_generator('mod_forum')->create_post($record);
$params = array( $params = array(
'context' => context_system::instance(), 'context' => \context_system::instance(),
'objectid' => $post->id, 'objectid' => $post->id,
'other' => array('discussionid' => $discussion->id, 'forumid' => $forum->id, 'forumtype' => $forum->type) 'other' => array('discussionid' => $discussion->id, 'forumid' => $forum->id, 'forumtype' => $forum->type)
); );
$this->expectException(coding_exception::class); $this->expectException(\coding_exception::class);
$this->expectExceptionMessage('Context level must be CONTEXT_MODULE.'); $this->expectExceptionMessage('Context level must be CONTEXT_MODULE.');
\mod_forum\event\post_deleted::create($params); \mod_forum\event\post_deleted::create($params);
} }
@ -1576,7 +1576,7 @@ class mod_forum_events_testcase extends advanced_testcase {
// Check that the events contain the expected values. // Check that the events contain the expected values.
$this->assertInstanceOf('\mod_forum\event\post_deleted', $event); $this->assertInstanceOf('\mod_forum\event\post_deleted', $event);
$this->assertEquals(context_module::instance($forum->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($forum->cmid), $event->get_context());
$expected = array($course->id, 'forum', 'delete post', "discuss.php?d={$discussion->id}", $lastpost->id, $forum->cmid); $expected = array($course->id, 'forum', 'delete post', "discuss.php?d={$discussion->id}", $lastpost->id, $forum->cmid);
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
$url = new \moodle_url('/mod/forum/discuss.php', array('d' => $discussion->id)); $url = new \moodle_url('/mod/forum/discuss.php', array('d' => $discussion->id));
@ -1596,7 +1596,7 @@ class mod_forum_events_testcase extends advanced_testcase {
if ($event instanceof \mod_forum\event\discussion_deleted) { if ($event instanceof \mod_forum\event\discussion_deleted) {
// Check that the event contains the expected values. // Check that the event contains the expected values.
$this->assertEquals($event->objectid, $discussion->id); $this->assertEquals($event->objectid, $discussion->id);
$this->assertEquals(context_module::instance($forum->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($forum->cmid), $event->get_context());
$expected = array($course->id, 'forum', 'delete discussion', "view.php?id={$forum->cmid}", $expected = array($course->id, 'forum', 'delete discussion', "view.php?id={$forum->cmid}",
$forum->id, $forum->cmid); $forum->id, $forum->cmid);
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
@ -1609,7 +1609,7 @@ class mod_forum_events_testcase extends advanced_testcase {
// Check that the event contains the expected values. // Check that the event contains the expected values.
$this->assertInstanceOf('\mod_forum\event\post_deleted', $event); $this->assertInstanceOf('\mod_forum\event\post_deleted', $event);
$this->assertEquals($event->objectid, $post->id); $this->assertEquals($event->objectid, $post->id);
$this->assertEquals(context_module::instance($forum->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($forum->cmid), $event->get_context());
$expected = array($course->id, 'forum', 'delete post', "discuss.php?d={$discussion->id}", $post->id, $forum->cmid); $expected = array($course->id, 'forum', 'delete post', "discuss.php?d={$discussion->id}", $post->id, $forum->cmid);
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
$url = new \moodle_url('/mod/forum/discuss.php', array('d' => $discussion->id)); $url = new \moodle_url('/mod/forum/discuss.php', array('d' => $discussion->id));
@ -1642,7 +1642,7 @@ class mod_forum_events_testcase extends advanced_testcase {
$record['userid'] = $user->id; $record['userid'] = $user->id;
$post = $this->getDataGenerator()->get_plugin_generator('mod_forum')->create_post($record); $post = $this->getDataGenerator()->get_plugin_generator('mod_forum')->create_post($record);
$context = context_module::instance($forum->cmid); $context = \context_module::instance($forum->cmid);
$params = array( $params = array(
'context' => $context, 'context' => $context,
@ -1693,12 +1693,12 @@ class mod_forum_events_testcase extends advanced_testcase {
$post = $this->getDataGenerator()->get_plugin_generator('mod_forum')->create_post($record); $post = $this->getDataGenerator()->get_plugin_generator('mod_forum')->create_post($record);
$params = array( $params = array(
'context' => context_module::instance($forum->cmid), 'context' => \context_module::instance($forum->cmid),
'objectid' => $post->id, 'objectid' => $post->id,
'other' => array('forumid' => $forum->id, 'forumtype' => $forum->type) 'other' => array('forumid' => $forum->id, 'forumtype' => $forum->type)
); );
$this->expectException(coding_exception::class); $this->expectException(\coding_exception::class);
$this->expectExceptionMessage("The 'discussionid' value must be set in other."); $this->expectExceptionMessage("The 'discussionid' value must be set in other.");
\mod_forum\event\post_updated::create($params); \mod_forum\event\post_updated::create($params);
} }
@ -1725,12 +1725,12 @@ class mod_forum_events_testcase extends advanced_testcase {
$post = $this->getDataGenerator()->get_plugin_generator('mod_forum')->create_post($record); $post = $this->getDataGenerator()->get_plugin_generator('mod_forum')->create_post($record);
$params = array( $params = array(
'context' => context_module::instance($forum->cmid), 'context' => \context_module::instance($forum->cmid),
'objectid' => $post->id, 'objectid' => $post->id,
'other' => array('discussionid' => $discussion->id, 'forumtype' => $forum->type) 'other' => array('discussionid' => $discussion->id, 'forumtype' => $forum->type)
); );
$this->expectException(coding_exception::class); $this->expectException(\coding_exception::class);
$this->expectExceptionMessage("The 'forumid' value must be set in other."); $this->expectExceptionMessage("The 'forumid' value must be set in other.");
\mod_forum\event\post_updated::create($params); \mod_forum\event\post_updated::create($params);
} }
@ -1757,12 +1757,12 @@ class mod_forum_events_testcase extends advanced_testcase {
$post = $this->getDataGenerator()->get_plugin_generator('mod_forum')->create_post($record); $post = $this->getDataGenerator()->get_plugin_generator('mod_forum')->create_post($record);
$params = array( $params = array(
'context' => context_module::instance($forum->cmid), 'context' => \context_module::instance($forum->cmid),
'objectid' => $post->id, 'objectid' => $post->id,
'other' => array('discussionid' => $discussion->id, 'forumid' => $forum->id) 'other' => array('discussionid' => $discussion->id, 'forumid' => $forum->id)
); );
$this->expectException(coding_exception::class); $this->expectException(\coding_exception::class);
$this->expectExceptionMessage("The 'forumtype' value must be set in other."); $this->expectExceptionMessage("The 'forumtype' value must be set in other.");
\mod_forum\event\post_updated::create($params); \mod_forum\event\post_updated::create($params);
} }
@ -1789,12 +1789,12 @@ class mod_forum_events_testcase extends advanced_testcase {
$post = $this->getDataGenerator()->get_plugin_generator('mod_forum')->create_post($record); $post = $this->getDataGenerator()->get_plugin_generator('mod_forum')->create_post($record);
$params = array( $params = array(
'context' => context_system::instance(), 'context' => \context_system::instance(),
'objectid' => $post->id, 'objectid' => $post->id,
'other' => array('discussionid' => $discussion->id, 'forumid' => $forum->id, 'forumtype' => $forum->type) 'other' => array('discussionid' => $discussion->id, 'forumid' => $forum->id, 'forumtype' => $forum->type)
); );
$this->expectException(coding_exception::class); $this->expectException(\coding_exception::class);
$this->expectExceptionMessage('Context level must be CONTEXT_MODULE.'); $this->expectExceptionMessage('Context level must be CONTEXT_MODULE.');
\mod_forum\event\post_updated::create($params); \mod_forum\event\post_updated::create($params);
} }
@ -1821,7 +1821,7 @@ class mod_forum_events_testcase extends advanced_testcase {
$record['userid'] = $user->id; $record['userid'] = $user->id;
$post = $this->getDataGenerator()->get_plugin_generator('mod_forum')->create_post($record); $post = $this->getDataGenerator()->get_plugin_generator('mod_forum')->create_post($record);
$context = context_module::instance($forum->cmid); $context = \context_module::instance($forum->cmid);
$params = array( $params = array(
'context' => $context, 'context' => $context,
@ -1874,7 +1874,7 @@ class mod_forum_events_testcase extends advanced_testcase {
$record['userid'] = $user->id; $record['userid'] = $user->id;
$post = $this->getDataGenerator()->get_plugin_generator('mod_forum')->create_post($record); $post = $this->getDataGenerator()->get_plugin_generator('mod_forum')->create_post($record);
$context = context_module::instance($forum->cmid); $context = \context_module::instance($forum->cmid);
$params = array( $params = array(
'context' => $context, 'context' => $context,
@ -1997,7 +1997,7 @@ class mod_forum_events_testcase extends advanced_testcase {
$subscription->id = $DB->insert_record('forum_discussion_subs', $subscription); $subscription->id = $DB->insert_record('forum_discussion_subs', $subscription);
$context = context_module::instance($forum->cmid); $context = \context_module::instance($forum->cmid);
$params = array( $params = array(
'context' => $context, 'context' => $context,
@ -2056,7 +2056,7 @@ class mod_forum_events_testcase extends advanced_testcase {
$subscription->id = $DB->insert_record('forum_discussion_subs', $subscription); $subscription->id = $DB->insert_record('forum_discussion_subs', $subscription);
$context = context_module::instance($forum->cmid); $context = \context_module::instance($forum->cmid);
$params = array( $params = array(
'context' => \context_course::instance($course->id), 'context' => \context_course::instance($course->id),
@ -2069,7 +2069,7 @@ class mod_forum_events_testcase extends advanced_testcase {
); );
// Without an invalid context. // Without an invalid context.
$this->expectException(coding_exception::class); $this->expectException(\coding_exception::class);
$this->expectExceptionMessage('Context level must be CONTEXT_MODULE.'); $this->expectExceptionMessage('Context level must be CONTEXT_MODULE.');
\mod_forum\event\discussion_subscription_created::create($params); \mod_forum\event\discussion_subscription_created::create($params);
} }
@ -2113,7 +2113,7 @@ class mod_forum_events_testcase extends advanced_testcase {
// Without the discussion. // Without the discussion.
$params = array( $params = array(
'context' => context_module::instance($forum->cmid), 'context' => \context_module::instance($forum->cmid),
'objectid' => $subscription->id, 'objectid' => $subscription->id,
'relateduserid' => $user->id, 'relateduserid' => $user->id,
'other' => array( 'other' => array(
@ -2121,7 +2121,7 @@ class mod_forum_events_testcase extends advanced_testcase {
) )
); );
$this->expectException(coding_exception::class); $this->expectException(\coding_exception::class);
$this->expectExceptionMessage("The 'discussion' value must be set in other."); $this->expectExceptionMessage("The 'discussion' value must be set in other.");
\mod_forum\event\discussion_subscription_created::create($params); \mod_forum\event\discussion_subscription_created::create($params);
} }
@ -2165,7 +2165,7 @@ class mod_forum_events_testcase extends advanced_testcase {
// Without the forumid. // Without the forumid.
$params = array( $params = array(
'context' => context_module::instance($forum->cmid), 'context' => \context_module::instance($forum->cmid),
'objectid' => $subscription->id, 'objectid' => $subscription->id,
'relateduserid' => $user->id, 'relateduserid' => $user->id,
'other' => array( 'other' => array(
@ -2173,7 +2173,7 @@ class mod_forum_events_testcase extends advanced_testcase {
) )
); );
$this->expectException(coding_exception::class); $this->expectException(\coding_exception::class);
$this->expectExceptionMessage("The 'forumid' value must be set in other."); $this->expectExceptionMessage("The 'forumid' value must be set in other.");
\mod_forum\event\discussion_subscription_created::create($params); \mod_forum\event\discussion_subscription_created::create($params);
} }
@ -2215,11 +2215,11 @@ class mod_forum_events_testcase extends advanced_testcase {
$subscription->id = $DB->insert_record('forum_discussion_subs', $subscription); $subscription->id = $DB->insert_record('forum_discussion_subs', $subscription);
$context = context_module::instance($forum->cmid); $context = \context_module::instance($forum->cmid);
// Without the relateduserid. // Without the relateduserid.
$params = array( $params = array(
'context' => context_module::instance($forum->cmid), 'context' => \context_module::instance($forum->cmid),
'objectid' => $subscription->id, 'objectid' => $subscription->id,
'other' => array( 'other' => array(
'forumid' => $forum->id, 'forumid' => $forum->id,
@ -2227,7 +2227,7 @@ class mod_forum_events_testcase extends advanced_testcase {
) )
); );
$this->expectException(coding_exception::class); $this->expectException(\coding_exception::class);
$this->expectExceptionMessage("The 'relateduserid' must be set."); $this->expectExceptionMessage("The 'relateduserid' must be set.");
\mod_forum\event\discussion_subscription_created::create($params); \mod_forum\event\discussion_subscription_created::create($params);
} }
@ -2324,7 +2324,7 @@ class mod_forum_events_testcase extends advanced_testcase {
$subscription->id = $DB->insert_record('forum_discussion_subs', $subscription); $subscription->id = $DB->insert_record('forum_discussion_subs', $subscription);
$context = context_module::instance($forum->cmid); $context = \context_module::instance($forum->cmid);
$params = array( $params = array(
'context' => $context, 'context' => $context,
@ -2407,7 +2407,7 @@ class mod_forum_events_testcase extends advanced_testcase {
$subscription->id = $DB->insert_record('forum_discussion_subs', $subscription); $subscription->id = $DB->insert_record('forum_discussion_subs', $subscription);
$context = context_module::instance($forum->cmid); $context = \context_module::instance($forum->cmid);
$params = array( $params = array(
'context' => \context_course::instance($course->id), 'context' => \context_course::instance($course->id),
@ -2420,7 +2420,7 @@ class mod_forum_events_testcase extends advanced_testcase {
); );
// Without an invalid context. // Without an invalid context.
$this->expectException(coding_exception::class); $this->expectException(\coding_exception::class);
$this->expectExceptionMessage('Context level must be CONTEXT_MODULE.'); $this->expectExceptionMessage('Context level must be CONTEXT_MODULE.');
\mod_forum\event\discussion_subscription_deleted::create($params); \mod_forum\event\discussion_subscription_deleted::create($params);
} }
@ -2464,7 +2464,7 @@ class mod_forum_events_testcase extends advanced_testcase {
// Without the discussion. // Without the discussion.
$params = array( $params = array(
'context' => context_module::instance($forum->cmid), 'context' => \context_module::instance($forum->cmid),
'objectid' => $subscription->id, 'objectid' => $subscription->id,
'relateduserid' => $user->id, 'relateduserid' => $user->id,
'other' => array( 'other' => array(
@ -2472,7 +2472,7 @@ class mod_forum_events_testcase extends advanced_testcase {
) )
); );
$this->expectException(coding_exception::class); $this->expectException(\coding_exception::class);
$this->expectExceptionMessage("The 'discussion' value must be set in other."); $this->expectExceptionMessage("The 'discussion' value must be set in other.");
\mod_forum\event\discussion_subscription_deleted::create($params); \mod_forum\event\discussion_subscription_deleted::create($params);
} }
@ -2516,7 +2516,7 @@ class mod_forum_events_testcase extends advanced_testcase {
// Without the forumid. // Without the forumid.
$params = array( $params = array(
'context' => context_module::instance($forum->cmid), 'context' => \context_module::instance($forum->cmid),
'objectid' => $subscription->id, 'objectid' => $subscription->id,
'relateduserid' => $user->id, 'relateduserid' => $user->id,
'other' => array( 'other' => array(
@ -2524,7 +2524,7 @@ class mod_forum_events_testcase extends advanced_testcase {
) )
); );
$this->expectException(coding_exception::class); $this->expectException(\coding_exception::class);
$this->expectExceptionMessage("The 'forumid' value must be set in other."); $this->expectExceptionMessage("The 'forumid' value must be set in other.");
\mod_forum\event\discussion_subscription_deleted::create($params); \mod_forum\event\discussion_subscription_deleted::create($params);
} }
@ -2566,11 +2566,11 @@ class mod_forum_events_testcase extends advanced_testcase {
$subscription->id = $DB->insert_record('forum_discussion_subs', $subscription); $subscription->id = $DB->insert_record('forum_discussion_subs', $subscription);
$context = context_module::instance($forum->cmid); $context = \context_module::instance($forum->cmid);
// Without the relateduserid. // Without the relateduserid.
$params = array( $params = array(
'context' => context_module::instance($forum->cmid), 'context' => \context_module::instance($forum->cmid),
'objectid' => $subscription->id, 'objectid' => $subscription->id,
'other' => array( 'other' => array(
'forumid' => $forum->id, 'forumid' => $forum->id,
@ -2578,7 +2578,7 @@ class mod_forum_events_testcase extends advanced_testcase {
) )
); );
$this->expectException(coding_exception::class); $this->expectException(\coding_exception::class);
$this->expectExceptionMessage("The 'relateduserid' must be set."); $this->expectExceptionMessage("The 'relateduserid' must be set.");
\mod_forum\event\discussion_subscription_deleted::create($params); \mod_forum\event\discussion_subscription_deleted::create($params);
} }
@ -2614,7 +2614,7 @@ class mod_forum_events_testcase extends advanced_testcase {
$post = $this->getDataGenerator()->get_plugin_generator('mod_forum')->create_post($record); $post = $this->getDataGenerator()->get_plugin_generator('mod_forum')->create_post($record);
// Set up the default page event to use this forum. // Set up the default page event to use this forum.
$PAGE = new moodle_page(); $PAGE = new \moodle_page();
$cm = get_coursemodule_from_instance('forum', $discussion->forum); $cm = get_coursemodule_from_instance('forum', $discussion->forum);
$context = \context_module::instance($cm->id); $context = \context_module::instance($cm->id);
$PAGE->set_context($context); $PAGE->set_context($context);
@ -2672,7 +2672,7 @@ class mod_forum_events_testcase extends advanced_testcase {
$this->assertEquals($context, $event->get_context()); $this->assertEquals($context, $event->get_context());
// Now try with the context for a different module (quiz). // Now try with the context for a different module (quiz).
$PAGE = new moodle_page(); $PAGE = new \moodle_page();
$cm = get_coursemodule_from_instance('quiz', $quiz->id); $cm = get_coursemodule_from_instance('quiz', $quiz->id);
$quizcontext = \context_module::instance($cm->id); $quizcontext = \context_module::instance($cm->id);
$PAGE->set_context($quizcontext); $PAGE->set_context($quizcontext);
@ -2730,7 +2730,7 @@ class mod_forum_events_testcase extends advanced_testcase {
$this->assertEquals($context, $event->get_context()); $this->assertEquals($context, $event->get_context());
// Now try with the course context - the module context should still be used. // Now try with the course context - the module context should still be used.
$PAGE = new moodle_page(); $PAGE = new \moodle_page();
$coursecontext = \context_course::instance($course->id); $coursecontext = \context_course::instance($course->id);
$PAGE->set_context($coursecontext); $PAGE->set_context($coursecontext);

View file

@ -23,6 +23,8 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
namespace mod_forum\search;
defined('MOODLE_INTERNAL') || die(); defined('MOODLE_INTERNAL') || die();
global $CFG; global $CFG;
@ -38,7 +40,7 @@ require_once($CFG->dirroot . '/mod/forum/lib.php');
* @copyright 2015 David Monllao {@link http://www.davidmonllao.com} * @copyright 2015 David Monllao {@link http://www.davidmonllao.com}
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
class mod_forum_search_testcase extends advanced_testcase { class search_test extends \advanced_testcase {
/** /**
* @var string Area id * @var string Area id
@ -52,7 +54,7 @@ class mod_forum_search_testcase extends advanced_testcase {
$this->forumpostareaid = \core_search\manager::generate_areaid('mod_forum', 'post'); $this->forumpostareaid = \core_search\manager::generate_areaid('mod_forum', 'post');
// Set \core_search::instance to the mock_search_engine as we don't require the search engine to be working to test this. // Set \core_search::instance to the mock_search_engine as we don't require the search engine to be working to test this.
$search = testable_core_search::instance(); $search = \testable_core_search::instance();
} }
/** /**
@ -96,14 +98,14 @@ class mod_forum_search_testcase extends advanced_testcase {
$this->getDataGenerator()->enrol_user($user1->id, $course1->id, 'student'); $this->getDataGenerator()->enrol_user($user1->id, $course1->id, 'student');
$this->getDataGenerator()->enrol_user($user2->id, $course1->id, 'student'); $this->getDataGenerator()->enrol_user($user2->id, $course1->id, 'student');
$record = new stdClass(); $record = new \stdClass();
$record->course = $course1->id; $record->course = $course1->id;
// Available for both student and teacher. // Available for both student and teacher.
$forum1 = self::getDataGenerator()->create_module('forum', $record); $forum1 = self::getDataGenerator()->create_module('forum', $record);
// Create discussion1. // Create discussion1.
$record = new stdClass(); $record = new \stdClass();
$record->course = $course1->id; $record->course = $course1->id;
$record->userid = $user1->id; $record->userid = $user1->id;
$record->forum = $forum1->id; $record->forum = $forum1->id;
@ -111,7 +113,7 @@ class mod_forum_search_testcase extends advanced_testcase {
$discussion1 = self::getDataGenerator()->get_plugin_generator('mod_forum')->create_discussion($record); $discussion1 = self::getDataGenerator()->get_plugin_generator('mod_forum')->create_discussion($record);
// Create post1 in discussion1. // Create post1 in discussion1.
$record = new stdClass(); $record = new \stdClass();
$record->discussion = $discussion1->id; $record->discussion = $discussion1->id;
$record->parent = $discussion1->firstpost; $record->parent = $discussion1->firstpost;
$record->userid = $user2->id; $record->userid = $user2->id;
@ -147,7 +149,7 @@ class mod_forum_search_testcase extends advanced_testcase {
// Context test: create another forum with 1 post. // Context test: create another forum with 1 post.
$forum2 = self::getDataGenerator()->create_module('forum', ['course' => $course1->id]); $forum2 = self::getDataGenerator()->create_module('forum', ['course' => $course1->id]);
$record = new stdClass(); $record = new \stdClass();
$record->course = $course1->id; $record->course = $course1->id;
$record->userid = $user1->id; $record->userid = $user1->id;
$record->forum = $forum2->id; $record->forum = $forum2->id;
@ -155,13 +157,13 @@ class mod_forum_search_testcase extends advanced_testcase {
self::getDataGenerator()->get_plugin_generator('mod_forum')->create_discussion($record); self::getDataGenerator()->get_plugin_generator('mod_forum')->create_discussion($record);
// Test indexing with each forum then combined course context. // Test indexing with each forum then combined course context.
$rs = $searcharea->get_document_recordset(0, context_module::instance($forum1->cmid)); $rs = $searcharea->get_document_recordset(0, \context_module::instance($forum1->cmid));
$this->assertEquals(2, iterator_count($rs)); $this->assertEquals(2, iterator_count($rs));
$rs->close(); $rs->close();
$rs = $searcharea->get_document_recordset(0, context_module::instance($forum2->cmid)); $rs = $searcharea->get_document_recordset(0, \context_module::instance($forum2->cmid));
$this->assertEquals(1, iterator_count($rs)); $this->assertEquals(1, iterator_count($rs));
$rs->close(); $rs->close();
$rs = $searcharea->get_document_recordset(0, context_course::instance($course1->id)); $rs = $searcharea->get_document_recordset(0, \context_course::instance($course1->id));
$this->assertEquals(3, iterator_count($rs)); $this->assertEquals(3, iterator_count($rs));
$rs->close(); $rs->close();
} }
@ -182,7 +184,7 @@ class mod_forum_search_testcase extends advanced_testcase {
$course1 = self::getDataGenerator()->create_course(); $course1 = self::getDataGenerator()->create_course();
$this->getDataGenerator()->enrol_user($user->id, $course1->id, 'teacher'); $this->getDataGenerator()->enrol_user($user->id, $course1->id, 'teacher');
$record = new stdClass(); $record = new \stdClass();
$record->course = $course1->id; $record->course = $course1->id;
$forum1 = self::getDataGenerator()->create_module('forum', $record); $forum1 = self::getDataGenerator()->create_module('forum', $record);
@ -191,7 +193,7 @@ class mod_forum_search_testcase extends advanced_testcase {
set_coursemodule_visible($forum2->cmid, 0); set_coursemodule_visible($forum2->cmid, 0);
// Create discussion1. // Create discussion1.
$record = new stdClass(); $record = new \stdClass();
$record->course = $course1->id; $record->course = $course1->id;
$record->userid = $user->id; $record->userid = $user->id;
$record->forum = $forum1->id; $record->forum = $forum1->id;
@ -200,7 +202,7 @@ class mod_forum_search_testcase extends advanced_testcase {
$discussion1 = self::getDataGenerator()->get_plugin_generator('mod_forum')->create_discussion($record); $discussion1 = self::getDataGenerator()->get_plugin_generator('mod_forum')->create_discussion($record);
// Create post1 in discussion1. // Create post1 in discussion1.
$record = new stdClass(); $record = new \stdClass();
$record->discussion = $discussion1->id; $record->discussion = $discussion1->id;
$record->parent = $discussion1->firstpost; $record->parent = $discussion1->firstpost;
$record->userid = $user->id; $record->userid = $user->id;
@ -310,7 +312,7 @@ class mod_forum_search_testcase extends advanced_testcase {
$this->getDataGenerator()->enrol_user($user1->id, $course1->id, 'teacher'); $this->getDataGenerator()->enrol_user($user1->id, $course1->id, 'teacher');
$this->getDataGenerator()->enrol_user($user2->id, $course1->id, 'student'); $this->getDataGenerator()->enrol_user($user2->id, $course1->id, 'student');
$record = new stdClass(); $record = new \stdClass();
$record->course = $course1->id; $record->course = $course1->id;
// Available for both student and teacher. // Available for both student and teacher.
@ -321,7 +323,7 @@ class mod_forum_search_testcase extends advanced_testcase {
set_coursemodule_visible($forum2->cmid, 0); set_coursemodule_visible($forum2->cmid, 0);
// Create discussion1. // Create discussion1.
$record = new stdClass(); $record = new \stdClass();
$record->course = $course1->id; $record->course = $course1->id;
$record->userid = $user1->id; $record->userid = $user1->id;
$record->forum = $forum1->id; $record->forum = $forum1->id;
@ -329,7 +331,7 @@ class mod_forum_search_testcase extends advanced_testcase {
$discussion1 = self::getDataGenerator()->get_plugin_generator('mod_forum')->create_discussion($record); $discussion1 = self::getDataGenerator()->get_plugin_generator('mod_forum')->create_discussion($record);
// Create post1 in discussion1. // Create post1 in discussion1.
$record = new stdClass(); $record = new \stdClass();
$record->discussion = $discussion1->id; $record->discussion = $discussion1->id;
$record->parent = $discussion1->firstpost; $record->parent = $discussion1->firstpost;
$record->userid = $user2->id; $record->userid = $user2->id;
@ -337,7 +339,7 @@ class mod_forum_search_testcase extends advanced_testcase {
$discussion1reply1 = self::getDataGenerator()->get_plugin_generator('mod_forum')->create_post($record); $discussion1reply1 = self::getDataGenerator()->get_plugin_generator('mod_forum')->create_post($record);
// Create discussion2 only visible to teacher. // Create discussion2 only visible to teacher.
$record = new stdClass(); $record = new \stdClass();
$record->course = $course1->id; $record->course = $course1->id;
$record->userid = $user1->id; $record->userid = $user1->id;
$record->forum = $forum2->id; $record->forum = $forum2->id;
@ -345,7 +347,7 @@ class mod_forum_search_testcase extends advanced_testcase {
$discussion2 = self::getDataGenerator()->get_plugin_generator('mod_forum')->create_discussion($record); $discussion2 = self::getDataGenerator()->get_plugin_generator('mod_forum')->create_discussion($record);
// Create post2 in discussion2. // Create post2 in discussion2.
$record = new stdClass(); $record = new \stdClass();
$record->discussion = $discussion2->id; $record->discussion = $discussion2->id;
$record->parent = $discussion2->firstpost; $record->parent = $discussion2->firstpost;
$record->userid = $user1->id; $record->userid = $user1->id;
@ -379,13 +381,13 @@ class mod_forum_search_testcase extends advanced_testcase {
$this->getDataGenerator()->enrol_user($user1->id, $course1->id, 'student'); $this->getDataGenerator()->enrol_user($user1->id, $course1->id, 'student');
$this->getDataGenerator()->enrol_user($user2->id, $course1->id, 'student'); $this->getDataGenerator()->enrol_user($user2->id, $course1->id, 'student');
$record = new stdClass(); $record = new \stdClass();
$record->course = $course1->id; $record->course = $course1->id;
$forum1 = self::getDataGenerator()->create_module('forum', $record); $forum1 = self::getDataGenerator()->create_module('forum', $record);
// Create discussion1. // Create discussion1.
$record = new stdClass(); $record = new \stdClass();
$record->course = $course1->id; $record->course = $course1->id;
$record->userid = $user1->id; $record->userid = $user1->id;
$record->forum = $forum1->id; $record->forum = $forum1->id;
@ -396,7 +398,7 @@ class mod_forum_search_testcase extends advanced_testcase {
// Attach 2 file to the discussion post. // Attach 2 file to the discussion post.
$post = $DB->get_record('forum_posts', array('discussion' => $discussion1->id)); $post = $DB->get_record('forum_posts', array('discussion' => $discussion1->id));
$filerecord = array( $filerecord = array(
'contextid' => context_module::instance($forum1->cmid)->id, 'contextid' => \context_module::instance($forum1->cmid)->id,
'component' => 'mod_forum', 'component' => 'mod_forum',
'filearea' => 'attachment', 'filearea' => 'attachment',
'itemid' => $post->id, 'itemid' => $post->id,
@ -408,7 +410,7 @@ class mod_forum_search_testcase extends advanced_testcase {
$file2 = $fs->create_file_from_string($filerecord, 'Some contents 2'); $file2 = $fs->create_file_from_string($filerecord, 'Some contents 2');
// Create post1 in discussion1. // Create post1 in discussion1.
$record = new stdClass(); $record = new \stdClass();
$record->discussion = $discussion1->id; $record->discussion = $discussion1->id;
$record->parent = $discussion1->firstpost; $record->parent = $discussion1->firstpost;
$record->userid = $user2->id; $record->userid = $user2->id;
@ -421,7 +423,7 @@ class mod_forum_search_testcase extends advanced_testcase {
$file3 = $fs->create_file_from_string($filerecord, 'Some contents 3'); $file3 = $fs->create_file_from_string($filerecord, 'Some contents 3');
// Create post2 in discussion1. // Create post2 in discussion1.
$record = new stdClass(); $record = new \stdClass();
$record->discussion = $discussion1->id; $record->discussion = $discussion1->id;
$record->parent = $discussion1->firstpost; $record->parent = $discussion1->firstpost;
$record->userid = $user2->id; $record->userid = $user2->id;

View file

@ -23,7 +23,7 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
defined('MOODLE_INTERNAL') || die(); namespace mod_glossary\event;
/** /**
* Unit tests for glossary events. * Unit tests for glossary events.
@ -33,7 +33,7 @@ defined('MOODLE_INTERNAL') || die();
* @copyright 2013 Rajesh Taneja <rajesh@moodle.com> * @copyright 2013 Rajesh Taneja <rajesh@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
class glossary_event_testcase extends advanced_testcase { class events_test extends \advanced_testcase {
public function setUp(): void { public function setUp(): void {
$this->resetAfterTest(); $this->resetAfterTest();
@ -54,9 +54,9 @@ class glossary_event_testcase extends advanced_testcase {
$entry = $glossarygenerator->create_content($glossary); $entry = $glossarygenerator->create_content($glossary);
$context = context_module::instance($glossary->cmid); $context = \context_module::instance($glossary->cmid);
$cm = get_coursemodule_from_instance('glossary', $glossary->id, $course->id); $cm = get_coursemodule_from_instance('glossary', $glossary->id, $course->id);
$cmt = new stdClass(); $cmt = new \stdClass();
$cmt->component = 'mod_glossary'; $cmt->component = 'mod_glossary';
$cmt->context = $context; $cmt->context = $context;
$cmt->course = $course; $cmt->course = $course;
@ -64,7 +64,7 @@ class glossary_event_testcase extends advanced_testcase {
$cmt->area = 'glossary_entry'; $cmt->area = 'glossary_entry';
$cmt->itemid = $entry->id; $cmt->itemid = $entry->id;
$cmt->showcount = true; $cmt->showcount = true;
$comment = new comment($cmt); $comment = new \comment($cmt);
// Triggering and capturing the event. // Triggering and capturing the event.
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();
@ -76,7 +76,7 @@ class glossary_event_testcase extends advanced_testcase {
// Checking that the event contains the expected values. // Checking that the event contains the expected values.
$this->assertInstanceOf('\mod_glossary\event\comment_created', $event); $this->assertInstanceOf('\mod_glossary\event\comment_created', $event);
$this->assertEquals($context, $event->get_context()); $this->assertEquals($context, $event->get_context());
$url = new moodle_url('/mod/glossary/view.php', array('id' => $glossary->cmid)); $url = new \moodle_url('/mod/glossary/view.php', array('id' => $glossary->cmid));
$this->assertEquals($url, $event->get_url()); $this->assertEquals($url, $event->get_url());
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
} }
@ -96,9 +96,9 @@ class glossary_event_testcase extends advanced_testcase {
$entry = $glossarygenerator->create_content($glossary); $entry = $glossarygenerator->create_content($glossary);
$context = context_module::instance($glossary->cmid); $context = \context_module::instance($glossary->cmid);
$cm = get_coursemodule_from_instance('glossary', $glossary->id, $course->id); $cm = get_coursemodule_from_instance('glossary', $glossary->id, $course->id);
$cmt = new stdClass(); $cmt = new \stdClass();
$cmt->component = 'mod_glossary'; $cmt->component = 'mod_glossary';
$cmt->context = $context; $cmt->context = $context;
$cmt->course = $course; $cmt->course = $course;
@ -106,7 +106,7 @@ class glossary_event_testcase extends advanced_testcase {
$cmt->area = 'glossary_entry'; $cmt->area = 'glossary_entry';
$cmt->itemid = $entry->id; $cmt->itemid = $entry->id;
$cmt->showcount = true; $cmt->showcount = true;
$comment = new comment($cmt); $comment = new \comment($cmt);
$newcomment = $comment->add('New comment 1'); $newcomment = $comment->add('New comment 1');
// Triggering and capturing the event. // Triggering and capturing the event.
@ -119,7 +119,7 @@ class glossary_event_testcase extends advanced_testcase {
// Checking that the event contains the expected values. // Checking that the event contains the expected values.
$this->assertInstanceOf('\mod_glossary\event\comment_deleted', $event); $this->assertInstanceOf('\mod_glossary\event\comment_deleted', $event);
$this->assertEquals($context, $event->get_context()); $this->assertEquals($context, $event->get_context());
$url = new moodle_url('/mod/glossary/view.php', array('id' => $glossary->cmid)); $url = new \moodle_url('/mod/glossary/view.php', array('id' => $glossary->cmid));
$this->assertEquals($url, $event->get_url()); $this->assertEquals($url, $event->get_url());
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
} }
@ -134,7 +134,7 @@ class glossary_event_testcase extends advanced_testcase {
$dbcourse = $DB->get_record('course', array('id' => $course->id)); $dbcourse = $DB->get_record('course', array('id' => $course->id));
$dbglossary = $DB->get_record('glossary', array('id' => $glossary->id)); $dbglossary = $DB->get_record('glossary', array('id' => $glossary->id));
$context = context_module::instance($glossary->cmid); $context = \context_module::instance($glossary->cmid);
$mode = 'letter'; $mode = 'letter';
$event = \mod_glossary\event\course_module_viewed::create(array( $event = \mod_glossary\event\course_module_viewed::create(array(
@ -161,7 +161,7 @@ class glossary_event_testcase extends advanced_testcase {
$expected = array($course->id, 'glossary', 'view', 'view.php?id=' . $glossary->cmid . '&amp;tab=-1', $expected = array($course->id, 'glossary', 'view', 'view.php?id=' . $glossary->cmid . '&amp;tab=-1',
$glossary->id, $glossary->cmid); $glossary->id, $glossary->cmid);
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
$this->assertEquals(new moodle_url('/mod/glossary/view.php', array('id' => $glossary->cmid, 'mode' => $mode)), $event->get_url()); $this->assertEquals(new \moodle_url('/mod/glossary/view.php', array('id' => $glossary->cmid, 'mode' => $mode)), $event->get_url());
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
} }
@ -172,7 +172,7 @@ class glossary_event_testcase extends advanced_testcase {
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
$event = \mod_glossary\event\course_module_instance_list_viewed::create(array( $event = \mod_glossary\event\course_module_instance_list_viewed::create(array(
'context' => context_course::instance($course->id) 'context' => \context_course::instance($course->id)
)); ));
// Triggering and capturing the event. // Triggering and capturing the event.
@ -198,7 +198,7 @@ class glossary_event_testcase extends advanced_testcase {
$this->setAdminUser(); $this->setAdminUser();
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
$glossary = $this->getDataGenerator()->create_module('glossary', array('course' => $course)); $glossary = $this->getDataGenerator()->create_module('glossary', array('course' => $course));
$context = context_module::instance($glossary->cmid); $context = \context_module::instance($glossary->cmid);
$glossarygenerator = $this->getDataGenerator()->get_plugin_generator('mod_glossary'); $glossarygenerator = $this->getDataGenerator()->get_plugin_generator('mod_glossary');
$entry = $glossarygenerator->create_content($glossary); $entry = $glossarygenerator->create_content($glossary);
@ -234,7 +234,7 @@ class glossary_event_testcase extends advanced_testcase {
$this->setAdminUser(); $this->setAdminUser();
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
$glossary = $this->getDataGenerator()->create_module('glossary', array('course' => $course)); $glossary = $this->getDataGenerator()->create_module('glossary', array('course' => $course));
$context = context_module::instance($glossary->cmid); $context = \context_module::instance($glossary->cmid);
$glossarygenerator = $this->getDataGenerator()->get_plugin_generator('mod_glossary'); $glossarygenerator = $this->getDataGenerator()->get_plugin_generator('mod_glossary');
$entry = $glossarygenerator->create_content($glossary); $entry = $glossarygenerator->create_content($glossary);
@ -271,7 +271,7 @@ class glossary_event_testcase extends advanced_testcase {
$this->setAdminUser(); $this->setAdminUser();
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
$glossary = $this->getDataGenerator()->create_module('glossary', array('course' => $course)); $glossary = $this->getDataGenerator()->create_module('glossary', array('course' => $course));
$context = context_module::instance($glossary->cmid); $context = \context_module::instance($glossary->cmid);
$prevmode = 'view'; $prevmode = 'view';
$hook = 'ALL'; $hook = 'ALL';
@ -316,10 +316,10 @@ class glossary_event_testcase extends advanced_testcase {
$this->setAdminUser(); $this->setAdminUser();
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
$glossary = $this->getDataGenerator()->create_module('glossary', array('course' => $course)); $glossary = $this->getDataGenerator()->create_module('glossary', array('course' => $course));
$context = context_module::instance($glossary->cmid); $context = \context_module::instance($glossary->cmid);
// Create category and trigger event. // Create category and trigger event.
$category = new stdClass(); $category = new \stdClass();
$category->name = 'New category'; $category->name = 'New category';
$category->usedynalink = 0; $category->usedynalink = 0;
$category->id = $DB->insert_record('glossary_categories', $category); $category->id = $DB->insert_record('glossary_categories', $category);
@ -415,7 +415,7 @@ class glossary_event_testcase extends advanced_testcase {
$this->setUser($teacher); $this->setUser($teacher);
$glossary = $this->getDataGenerator()->create_module('glossary', $glossary = $this->getDataGenerator()->create_module('glossary',
array('course' => $course, 'defaultapproval' => 0)); array('course' => $course, 'defaultapproval' => 0));
$context = context_module::instance($glossary->cmid); $context = \context_module::instance($glossary->cmid);
$this->setUser($student); $this->setUser($student);
$glossarygenerator = $this->getDataGenerator()->get_plugin_generator('mod_glossary'); $glossarygenerator = $this->getDataGenerator()->get_plugin_generator('mod_glossary');
@ -424,7 +424,7 @@ class glossary_event_testcase extends advanced_testcase {
// Approve entry, trigger and validate event. // Approve entry, trigger and validate event.
$this->setUser($teacher); $this->setUser($teacher);
$newentry = new stdClass(); $newentry = new \stdClass();
$newentry->id = $entry->id; $newentry->id = $entry->id;
$newentry->approved = true; $newentry->approved = true;
$newentry->timemodified = time(); $newentry->timemodified = time();
@ -453,7 +453,7 @@ class glossary_event_testcase extends advanced_testcase {
// Disapprove entry, trigger and validate event. // Disapprove entry, trigger and validate event.
$this->setUser($teacher); $this->setUser($teacher);
$newentry = new stdClass(); $newentry = new \stdClass();
$newentry->id = $entry->id; $newentry->id = $entry->id;
$newentry->approved = false; $newentry->approved = false;
$newentry->timemodified = time(); $newentry->timemodified = time();
@ -487,7 +487,7 @@ class glossary_event_testcase extends advanced_testcase {
$this->setAdminUser(); $this->setAdminUser();
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
$glossary = $this->getDataGenerator()->create_module('glossary', array('course' => $course)); $glossary = $this->getDataGenerator()->create_module('glossary', array('course' => $course));
$context = context_module::instance($glossary->cmid); $context = \context_module::instance($glossary->cmid);
$glossarygenerator = $this->getDataGenerator()->get_plugin_generator('mod_glossary'); $glossarygenerator = $this->getDataGenerator()->get_plugin_generator('mod_glossary');
$entry = $glossarygenerator->create_content($glossary); $entry = $glossarygenerator->create_content($glossary);

View file

@ -23,6 +23,11 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
namespace mod_glossary\external;
use externallib_advanced_testcase;
use mod_glossary_external;
defined('MOODLE_INTERNAL') || die(); defined('MOODLE_INTERNAL') || die();
global $CFG; global $CFG;
require_once($CFG->dirroot . '/webservice/tests/helpers.php'); require_once($CFG->dirroot . '/webservice/tests/helpers.php');
@ -35,7 +40,7 @@ require_once($CFG->dirroot . '/webservice/tests/helpers.php');
* @copyright 2015 Costantino Cito <ccito@cvaconsulting.com> * @copyright 2015 Costantino Cito <ccito@cvaconsulting.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
class mod_glossary_external_testcase extends externallib_advanced_testcase { class external_test extends externallib_advanced_testcase {
/** /**
* Test get_glossaries_by_courses * Test get_glossaries_by_courses
@ -57,7 +62,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
// Check results where student is enrolled. // Check results where student is enrolled.
$this->setUser($s1); $this->setUser($s1);
$glossaries = mod_glossary_external::get_glossaries_by_courses(array()); $glossaries = mod_glossary_external::get_glossaries_by_courses(array());
$glossaries = external_api::clean_returnvalue(mod_glossary_external::get_glossaries_by_courses_returns(), $glossaries); $glossaries = \external_api::clean_returnvalue(mod_glossary_external::get_glossaries_by_courses_returns(), $glossaries);
$this->assertCount(2, $glossaries['glossaries']); $this->assertCount(2, $glossaries['glossaries']);
$this->assertEquals('First Glossary', $glossaries['glossaries'][0]['name']); $this->assertEquals('First Glossary', $glossaries['glossaries'][0]['name']);
@ -67,7 +72,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
// Check results with specific course IDs. // Check results with specific course IDs.
$glossaries = mod_glossary_external::get_glossaries_by_courses(array($c1->id, $c2->id)); $glossaries = mod_glossary_external::get_glossaries_by_courses(array($c1->id, $c2->id));
$glossaries = external_api::clean_returnvalue(mod_glossary_external::get_glossaries_by_courses_returns(), $glossaries); $glossaries = \external_api::clean_returnvalue(mod_glossary_external::get_glossaries_by_courses_returns(), $glossaries);
$this->assertCount(2, $glossaries['glossaries']); $this->assertCount(2, $glossaries['glossaries']);
$this->assertEquals('First Glossary', $glossaries['glossaries'][0]['name']); $this->assertEquals('First Glossary', $glossaries['glossaries'][0]['name']);
@ -82,7 +87,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
$this->setAdminUser(); $this->setAdminUser();
$glossaries = mod_glossary_external::get_glossaries_by_courses(array($c2->id)); $glossaries = mod_glossary_external::get_glossaries_by_courses(array($c2->id));
$glossaries = external_api::clean_returnvalue(mod_glossary_external::get_glossaries_by_courses_returns(), $glossaries); $glossaries = \external_api::clean_returnvalue(mod_glossary_external::get_glossaries_by_courses_returns(), $glossaries);
$this->assertCount(1, $glossaries['glossaries']); $this->assertCount(1, $glossaries['glossaries']);
$this->assertEquals('Third Glossary', $glossaries['glossaries'][0]['name']); $this->assertEquals('Third Glossary', $glossaries['glossaries'][0]['name']);
@ -101,7 +106,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();
$this->setUser($u1); $this->setUser($u1);
$return = mod_glossary_external::view_glossary($g1->id, 'letter'); $return = mod_glossary_external::view_glossary($g1->id, 'letter');
$return = external_api::clean_returnvalue(mod_glossary_external::view_glossary_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::view_glossary_returns(), $return);
$events = $sink->get_events(); $events = $sink->get_events();
// Assertion. // Assertion.
@ -120,7 +125,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
$g1 = $this->getDataGenerator()->create_module('glossary', array('course' => $c1->id)); $g1 = $this->getDataGenerator()->create_module('glossary', array('course' => $c1->id));
$u1 = $this->getDataGenerator()->create_user(); $u1 = $this->getDataGenerator()->create_user();
$this->getDataGenerator()->enrol_user($u1->id, $c1->id); $this->getDataGenerator()->enrol_user($u1->id, $c1->id);
$ctx = context_module::instance($g1->cmid); $ctx = \context_module::instance($g1->cmid);
// Revoke permission. // Revoke permission.
$roles = get_archetype_roles('user'); $roles = get_archetype_roles('user');
@ -130,7 +135,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
// Assertion. // Assertion.
$this->setUser($u1); $this->setUser($u1);
$this->expectException(require_login_exception::class); $this->expectException(\require_login_exception::class);
$this->expectExceptionMessage('Activity is hidden'); $this->expectExceptionMessage('Activity is hidden');
mod_glossary_external::view_glossary($g1->id, 'letter'); mod_glossary_external::view_glossary($g1->id, 'letter');
} }
@ -148,14 +153,14 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
$e2 = $gg->create_content($g1, array('approved' => 0, 'userid' => $u1->id)); $e2 = $gg->create_content($g1, array('approved' => 0, 'userid' => $u1->id));
$e3 = $gg->create_content($g1, array('approved' => 0, 'userid' => -1)); $e3 = $gg->create_content($g1, array('approved' => 0, 'userid' => -1));
$e4 = $gg->create_content($g2, array('approved' => 1)); $e4 = $gg->create_content($g2, array('approved' => 1));
$ctx = context_module::instance($g1->cmid); $ctx = \context_module::instance($g1->cmid);
$this->getDataGenerator()->enrol_user($u1->id, $c1->id); $this->getDataGenerator()->enrol_user($u1->id, $c1->id);
$this->setUser($u1); $this->setUser($u1);
// Test readable entry. // Test readable entry.
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();
$return = mod_glossary_external::view_entry($e1->id); $return = mod_glossary_external::view_entry($e1->id);
$return = external_api::clean_returnvalue(mod_glossary_external::view_entry_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::view_entry_returns(), $return);
$events = $sink->get_events(); $events = $sink->get_events();
$this->assertTrue($return['status']); $this->assertTrue($return['status']);
$this->assertEmpty($return['warnings']); $this->assertEmpty($return['warnings']);
@ -165,7 +170,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
// Test non-approved of self. // Test non-approved of self.
$return = mod_glossary_external::view_entry($e2->id); $return = mod_glossary_external::view_entry($e2->id);
$return = external_api::clean_returnvalue(mod_glossary_external::view_entry_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::view_entry_returns(), $return);
$events = $sink->get_events(); $events = $sink->get_events();
$this->assertTrue($return['status']); $this->assertTrue($return['status']);
$this->assertEmpty($return['warnings']); $this->assertEmpty($return['warnings']);
@ -177,12 +182,12 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
try { try {
mod_glossary_external::view_entry($e3->id); mod_glossary_external::view_entry($e3->id);
$this->fail('Cannot view non-approved entries of others.'); $this->fail('Cannot view non-approved entries of others.');
} catch (invalid_parameter_exception $e) { } catch (\invalid_parameter_exception $e) {
// All good. // All good.
} }
// Test non-readable entry. // Test non-readable entry.
$this->expectException(require_login_exception::class); $this->expectException(\require_login_exception::class);
$this->expectExceptionMessage('Activity is hidden'); $this->expectExceptionMessage('Activity is hidden');
mod_glossary_external::view_entry($e4->id); mod_glossary_external::view_entry($e4->id);
} }
@ -196,7 +201,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
$g1 = $this->getDataGenerator()->create_module('glossary', array('course' => $c1->id)); $g1 = $this->getDataGenerator()->create_module('glossary', array('course' => $c1->id));
$g2 = $this->getDataGenerator()->create_module('glossary', array('course' => $c1->id)); $g2 = $this->getDataGenerator()->create_module('glossary', array('course' => $c1->id));
$u1 = $this->getDataGenerator()->create_user(); $u1 = $this->getDataGenerator()->create_user();
$ctx = context_module::instance($g1->cmid); $ctx = \context_module::instance($g1->cmid);
$this->getDataGenerator()->enrol_user($u1->id, $c1->id); $this->getDataGenerator()->enrol_user($u1->id, $c1->id);
$e1a = $gg->create_content($g1, array('approved' => 0, 'concept' => 'Bob', 'userid' => 2, 'tags' => array('Cats', 'Dogs'))); $e1a = $gg->create_content($g1, array('approved' => 0, 'concept' => 'Bob', 'userid' => 2, 'tags' => array('Cats', 'Dogs')));
@ -209,7 +214,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
// Just a normal request from admin user. // Just a normal request from admin user.
$return = mod_glossary_external::get_entries_by_letter($g1->id, 'ALL', 0, 20, array()); $return = mod_glossary_external::get_entries_by_letter($g1->id, 'ALL', 0, 20, array());
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_by_letter_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_by_letter_returns(), $return);
$this->assertCount(3, $return['entries']); $this->assertCount(3, $return['entries']);
$this->assertEquals(3, $return['count']); $this->assertEquals(3, $return['count']);
$this->assertEquals($e1c->id, $return['entries'][0]['id']); $this->assertEquals($e1c->id, $return['entries'][0]['id']);
@ -220,7 +225,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
// An admin user requesting all the entries. // An admin user requesting all the entries.
$return = mod_glossary_external::get_entries_by_letter($g1->id, 'ALL', 0, 20, array('includenotapproved' => 1)); $return = mod_glossary_external::get_entries_by_letter($g1->id, 'ALL', 0, 20, array('includenotapproved' => 1));
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_by_letter_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_by_letter_returns(), $return);
$this->assertCount(4, $return['entries']); $this->assertCount(4, $return['entries']);
$this->assertEquals(4, $return['count']); $this->assertEquals(4, $return['count']);
$this->assertEquals($e1d->id, $return['entries'][0]['id']); $this->assertEquals($e1d->id, $return['entries'][0]['id']);
@ -231,7 +236,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
// A normal user. // A normal user.
$this->setUser($u1); $this->setUser($u1);
$return = mod_glossary_external::get_entries_by_letter($g1->id, 'ALL', 0, 20, array()); $return = mod_glossary_external::get_entries_by_letter($g1->id, 'ALL', 0, 20, array());
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_by_letter_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_by_letter_returns(), $return);
$this->assertCount(3, $return['entries']); $this->assertCount(3, $return['entries']);
$this->assertEquals(3, $return['count']); $this->assertEquals(3, $return['count']);
$this->assertEquals($e1d->id, $return['entries'][0]['id']); $this->assertEquals($e1d->id, $return['entries'][0]['id']);
@ -240,7 +245,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
// A normal user requesting to view all non approved entries. // A normal user requesting to view all non approved entries.
$return = mod_glossary_external::get_entries_by_letter($g1->id, 'ALL', 0, 20, array('includenotapproved' => 1)); $return = mod_glossary_external::get_entries_by_letter($g1->id, 'ALL', 0, 20, array('includenotapproved' => 1));
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_by_letter_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_by_letter_returns(), $return);
$this->assertCount(3, $return['entries']); $this->assertCount(3, $return['entries']);
$this->assertEquals(3, $return['count']); $this->assertEquals(3, $return['count']);
$this->assertEquals($e1d->id, $return['entries'][0]['id']); $this->assertEquals($e1d->id, $return['entries'][0]['id']);
@ -256,7 +261,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
$c1 = $this->getDataGenerator()->create_course(); $c1 = $this->getDataGenerator()->create_course();
$g1 = $this->getDataGenerator()->create_module('glossary', array('course' => $c1->id)); $g1 = $this->getDataGenerator()->create_module('glossary', array('course' => $c1->id));
$u1 = $this->getDataGenerator()->create_user(); $u1 = $this->getDataGenerator()->create_user();
$ctx = context_module::instance($g1->cmid); $ctx = \context_module::instance($g1->cmid);
$this->getDataGenerator()->enrol_user($u1->id, $c1->id); $this->getDataGenerator()->enrol_user($u1->id, $c1->id);
$e1a = $gg->create_content($g1, array('approved' => 1, 'concept' => '0-day', 'userid' => $u1->id)); $e1a = $gg->create_content($g1, array('approved' => 1, 'concept' => '0-day', 'userid' => $u1->id));
@ -267,14 +272,14 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
// Requesting a single letter. // Requesting a single letter.
$return = mod_glossary_external::get_entries_by_letter($g1->id, 'b', 0, 20, array()); $return = mod_glossary_external::get_entries_by_letter($g1->id, 'b', 0, 20, array());
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_by_letter_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_by_letter_returns(), $return);
$this->assertCount(1, $return['entries']); $this->assertCount(1, $return['entries']);
$this->assertEquals(1, $return['count']); $this->assertEquals(1, $return['count']);
$this->assertEquals($e1b->id, $return['entries'][0]['id']); $this->assertEquals($e1b->id, $return['entries'][0]['id']);
// Requesting special letters. // Requesting special letters.
$return = mod_glossary_external::get_entries_by_letter($g1->id, 'SPECIAL', 0, 20, array()); $return = mod_glossary_external::get_entries_by_letter($g1->id, 'SPECIAL', 0, 20, array());
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_by_letter_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_by_letter_returns(), $return);
$this->assertCount(2, $return['entries']); $this->assertCount(2, $return['entries']);
$this->assertEquals(2, $return['count']); $this->assertEquals(2, $return['count']);
$this->assertEquals($e1a->id, $return['entries'][0]['id']); $this->assertEquals($e1a->id, $return['entries'][0]['id']);
@ -282,12 +287,12 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
// Requesting with limit. // Requesting with limit.
$return = mod_glossary_external::get_entries_by_letter($g1->id, 'ALL', 0, 1, array()); $return = mod_glossary_external::get_entries_by_letter($g1->id, 'ALL', 0, 1, array());
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_by_letter_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_by_letter_returns(), $return);
$this->assertCount(1, $return['entries']); $this->assertCount(1, $return['entries']);
$this->assertEquals(3, $return['count']); $this->assertEquals(3, $return['count']);
$this->assertEquals($e1a->id, $return['entries'][0]['id']); $this->assertEquals($e1a->id, $return['entries'][0]['id']);
$return = mod_glossary_external::get_entries_by_letter($g1->id, 'ALL', 1, 2, array()); $return = mod_glossary_external::get_entries_by_letter($g1->id, 'ALL', 1, 2, array());
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_by_letter_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_by_letter_returns(), $return);
$this->assertCount(2, $return['entries']); $this->assertCount(2, $return['entries']);
$this->assertEquals(3, $return['count']); $this->assertEquals(3, $return['count']);
$this->assertEquals($e1c->id, $return['entries'][0]['id']); $this->assertEquals($e1c->id, $return['entries'][0]['id']);
@ -304,7 +309,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
$g1 = $this->getDataGenerator()->create_module('glossary', array('course' => $c1->id, 'displayformat' => 'entrylist')); $g1 = $this->getDataGenerator()->create_module('glossary', array('course' => $c1->id, 'displayformat' => 'entrylist'));
$g2 = $this->getDataGenerator()->create_module('glossary', array('course' => $c1->id)); $g2 = $this->getDataGenerator()->create_module('glossary', array('course' => $c1->id));
$u1 = $this->getDataGenerator()->create_user(); $u1 = $this->getDataGenerator()->create_user();
$ctx = context_module::instance($g1->cmid); $ctx = \context_module::instance($g1->cmid);
$this->getDataGenerator()->enrol_user($u1->id, $c1->id); $this->getDataGenerator()->enrol_user($u1->id, $c1->id);
$now = time(); $now = time();
@ -322,7 +327,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
// Ordering by time modified descending. // Ordering by time modified descending.
$return = mod_glossary_external::get_entries_by_date($g1->id, 'UPDATE', 'DESC', 0, 20, array()); $return = mod_glossary_external::get_entries_by_date($g1->id, 'UPDATE', 'DESC', 0, 20, array());
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_by_date_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_by_date_returns(), $return);
$this->assertCount(3, $return['entries']); $this->assertCount(3, $return['entries']);
$this->assertEquals(3, $return['count']); $this->assertEquals(3, $return['count']);
$this->assertEquals($e1a->id, $return['entries'][0]['id']); $this->assertEquals($e1a->id, $return['entries'][0]['id']);
@ -333,7 +338,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
// Ordering by time modified ascending. // Ordering by time modified ascending.
$return = mod_glossary_external::get_entries_by_date($g1->id, 'UPDATE', 'ASC', 0, 20, array()); $return = mod_glossary_external::get_entries_by_date($g1->id, 'UPDATE', 'ASC', 0, 20, array());
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_by_date_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_by_date_returns(), $return);
$this->assertCount(3, $return['entries']); $this->assertCount(3, $return['entries']);
$this->assertEquals(3, $return['count']); $this->assertEquals(3, $return['count']);
$this->assertEquals($e1b->id, $return['entries'][0]['id']); $this->assertEquals($e1b->id, $return['entries'][0]['id']);
@ -342,7 +347,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
// Ordering by time created asc. // Ordering by time created asc.
$return = mod_glossary_external::get_entries_by_date($g1->id, 'CREATION', 'ASC', 0, 20, array()); $return = mod_glossary_external::get_entries_by_date($g1->id, 'CREATION', 'ASC', 0, 20, array());
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_by_date_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_by_date_returns(), $return);
$this->assertCount(3, $return['entries']); $this->assertCount(3, $return['entries']);
$this->assertEquals(3, $return['count']); $this->assertEquals(3, $return['count']);
$this->assertEquals($e1a->id, $return['entries'][0]['id']); $this->assertEquals($e1a->id, $return['entries'][0]['id']);
@ -351,7 +356,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
// Ordering by time created descending. // Ordering by time created descending.
$return = mod_glossary_external::get_entries_by_date($g1->id, 'CREATION', 'DESC', 0, 20, array()); $return = mod_glossary_external::get_entries_by_date($g1->id, 'CREATION', 'DESC', 0, 20, array());
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_by_date_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_by_date_returns(), $return);
$this->assertCount(3, $return['entries']); $this->assertCount(3, $return['entries']);
$this->assertEquals(3, $return['count']); $this->assertEquals(3, $return['count']);
$this->assertEquals($e1b->id, $return['entries'][0]['id']); $this->assertEquals($e1b->id, $return['entries'][0]['id']);
@ -361,7 +366,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
// Ordering including to approve. // Ordering including to approve.
$return = mod_glossary_external::get_entries_by_date($g1->id, 'CREATION', 'ASC', 0, 20, $return = mod_glossary_external::get_entries_by_date($g1->id, 'CREATION', 'ASC', 0, 20,
array('includenotapproved' => true)); array('includenotapproved' => true));
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_by_date_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_by_date_returns(), $return);
$this->assertCount(4, $return['entries']); $this->assertCount(4, $return['entries']);
$this->assertEquals(4, $return['count']); $this->assertEquals(4, $return['count']);
$this->assertEquals($e1a->id, $return['entries'][0]['id']); $this->assertEquals($e1a->id, $return['entries'][0]['id']);
@ -372,14 +377,14 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
// Ordering including to approve and pagination. // Ordering including to approve and pagination.
$return = mod_glossary_external::get_entries_by_date($g1->id, 'CREATION', 'ASC', 0, 2, $return = mod_glossary_external::get_entries_by_date($g1->id, 'CREATION', 'ASC', 0, 2,
array('includenotapproved' => true)); array('includenotapproved' => true));
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_by_date_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_by_date_returns(), $return);
$this->assertCount(2, $return['entries']); $this->assertCount(2, $return['entries']);
$this->assertEquals(4, $return['count']); $this->assertEquals(4, $return['count']);
$this->assertEquals($e1a->id, $return['entries'][0]['id']); $this->assertEquals($e1a->id, $return['entries'][0]['id']);
$this->assertEquals($e1c->id, $return['entries'][1]['id']); $this->assertEquals($e1c->id, $return['entries'][1]['id']);
$return = mod_glossary_external::get_entries_by_date($g1->id, 'CREATION', 'ASC', 2, 2, $return = mod_glossary_external::get_entries_by_date($g1->id, 'CREATION', 'ASC', 2, 2,
array('includenotapproved' => true)); array('includenotapproved' => true));
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_by_date_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_by_date_returns(), $return);
$this->assertCount(2, $return['entries']); $this->assertCount(2, $return['entries']);
$this->assertEquals(4, $return['count']); $this->assertEquals(4, $return['count']);
$this->assertEquals($e1d->id, $return['entries'][0]['id']); $this->assertEquals($e1d->id, $return['entries'][0]['id']);
@ -400,7 +405,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
$cat2a = $gg->create_category($g2); $cat2a = $gg->create_category($g2);
$return = mod_glossary_external::get_categories($g1->id, 0, 20); $return = mod_glossary_external::get_categories($g1->id, 0, 20);
$return = external_api::clean_returnvalue(mod_glossary_external::get_categories_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_categories_returns(), $return);
$this->assertCount(3, $return['categories']); $this->assertCount(3, $return['categories']);
$this->assertEquals(3, $return['count']); $this->assertEquals(3, $return['count']);
$this->assertEquals($cat1a->id, $return['categories'][0]['id']); $this->assertEquals($cat1a->id, $return['categories'][0]['id']);
@ -408,7 +413,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
$this->assertEquals($cat1c->id, $return['categories'][2]['id']); $this->assertEquals($cat1c->id, $return['categories'][2]['id']);
$return = mod_glossary_external::get_categories($g1->id, 1, 2); $return = mod_glossary_external::get_categories($g1->id, 1, 2);
$return = external_api::clean_returnvalue(mod_glossary_external::get_categories_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_categories_returns(), $return);
$this->assertCount(2, $return['categories']); $this->assertCount(2, $return['categories']);
$this->assertEquals(3, $return['count']); $this->assertEquals(3, $return['count']);
$this->assertEquals($cat1b->id, $return['categories'][0]['id']); $this->assertEquals($cat1b->id, $return['categories'][0]['id']);
@ -423,7 +428,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
$g1 = $this->getDataGenerator()->create_module('glossary', array('course' => $c1->id, 'displayformat' => 'entrylist')); $g1 = $this->getDataGenerator()->create_module('glossary', array('course' => $c1->id, 'displayformat' => 'entrylist'));
$g2 = $this->getDataGenerator()->create_module('glossary', array('course' => $c1->id, 'displayformat' => 'entrylist')); $g2 = $this->getDataGenerator()->create_module('glossary', array('course' => $c1->id, 'displayformat' => 'entrylist'));
$u1 = $this->getDataGenerator()->create_user(); $u1 = $this->getDataGenerator()->create_user();
$ctx = context_module::instance($g1->cmid); $ctx = \context_module::instance($g1->cmid);
$e1a1 = $gg->create_content($g1, array('approved' => 1, 'userid' => $u1->id, 'tags' => array('Cats', 'Dogs'))); $e1a1 = $gg->create_content($g1, array('approved' => 1, 'userid' => $u1->id, 'tags' => array('Cats', 'Dogs')));
$e1a2 = $gg->create_content($g1, array('approved' => 1, 'userid' => $u1->id)); $e1a2 = $gg->create_content($g1, array('approved' => 1, 'userid' => $u1->id));
@ -444,7 +449,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
// Browse one category. // Browse one category.
$return = mod_glossary_external::get_entries_by_category($g1->id, $cat1a->id, 0, 20, array()); $return = mod_glossary_external::get_entries_by_category($g1->id, $cat1a->id, 0, 20, array());
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_by_category_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_by_category_returns(), $return);
$this->assertCount(3, $return['entries']); $this->assertCount(3, $return['entries']);
$this->assertEquals(3, $return['count']); $this->assertEquals(3, $return['count']);
$this->assertEquals($e1a1->id, $return['entries'][0]['id']); $this->assertEquals($e1a1->id, $return['entries'][0]['id']);
@ -455,7 +460,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
// Browse all categories. // Browse all categories.
$return = mod_glossary_external::get_entries_by_category($g1->id, GLOSSARY_SHOW_ALL_CATEGORIES, 0, 20, array()); $return = mod_glossary_external::get_entries_by_category($g1->id, GLOSSARY_SHOW_ALL_CATEGORIES, 0, 20, array());
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_by_category_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_by_category_returns(), $return);
$this->assertCount(5, $return['entries']); $this->assertCount(5, $return['entries']);
$this->assertEquals(5, $return['count']); $this->assertEquals(5, $return['count']);
$this->assertEquals($e1b1->id, $return['entries'][0]['id']); $this->assertEquals($e1b1->id, $return['entries'][0]['id']);
@ -466,7 +471,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
// Browse uncategorised. // Browse uncategorised.
$return = mod_glossary_external::get_entries_by_category($g1->id, GLOSSARY_SHOW_NOT_CATEGORISED, 0, 20, array()); $return = mod_glossary_external::get_entries_by_category($g1->id, GLOSSARY_SHOW_NOT_CATEGORISED, 0, 20, array());
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_by_category_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_by_category_returns(), $return);
$this->assertCount(1, $return['entries']); $this->assertCount(1, $return['entries']);
$this->assertEquals(1, $return['count']); $this->assertEquals(1, $return['count']);
$this->assertEquals($e1x1->id, $return['entries'][0]['id']); $this->assertEquals($e1x1->id, $return['entries'][0]['id']);
@ -474,7 +479,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
// Including to approve. // Including to approve.
$return = mod_glossary_external::get_entries_by_category($g1->id, $cat1b->id, 0, 20, $return = mod_glossary_external::get_entries_by_category($g1->id, $cat1b->id, 0, 20,
array('includenotapproved' => true)); array('includenotapproved' => true));
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_by_category_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_by_category_returns(), $return);
$this->assertCount(2, $return['entries']); $this->assertCount(2, $return['entries']);
$this->assertEquals(2, $return['count']); $this->assertEquals(2, $return['count']);
$this->assertEquals($e1b1->id, $return['entries'][0]['id']); $this->assertEquals($e1b1->id, $return['entries'][0]['id']);
@ -483,7 +488,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
// Using limit. // Using limit.
$return = mod_glossary_external::get_entries_by_category($g1->id, GLOSSARY_SHOW_ALL_CATEGORIES, 0, 3, $return = mod_glossary_external::get_entries_by_category($g1->id, GLOSSARY_SHOW_ALL_CATEGORIES, 0, 3,
array('includenotapproved' => true)); array('includenotapproved' => true));
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_by_category_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_by_category_returns(), $return);
$this->assertCount(3, $return['entries']); $this->assertCount(3, $return['entries']);
$this->assertEquals(6, $return['count']); $this->assertEquals(6, $return['count']);
$this->assertEquals($e1b1->id, $return['entries'][0]['id']); $this->assertEquals($e1b1->id, $return['entries'][0]['id']);
@ -491,7 +496,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
$this->assertEquals($e1a1->id, $return['entries'][2]['id']); $this->assertEquals($e1a1->id, $return['entries'][2]['id']);
$return = mod_glossary_external::get_entries_by_category($g1->id, GLOSSARY_SHOW_ALL_CATEGORIES, 3, 2, $return = mod_glossary_external::get_entries_by_category($g1->id, GLOSSARY_SHOW_ALL_CATEGORIES, 3, 2,
array('includenotapproved' => true)); array('includenotapproved' => true));
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_by_category_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_by_category_returns(), $return);
$this->assertCount(2, $return['entries']); $this->assertCount(2, $return['entries']);
$this->assertEquals(6, $return['count']); $this->assertEquals(6, $return['count']);
$this->assertEquals($e1a2->id, $return['entries'][0]['id']); $this->assertEquals($e1a2->id, $return['entries'][0]['id']);
@ -510,7 +515,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
$u2 = $this->getDataGenerator()->create_user(array('lastname' => 'Alpha')); $u2 = $this->getDataGenerator()->create_user(array('lastname' => 'Alpha'));
$u3 = $this->getDataGenerator()->create_user(array('lastname' => 'Omega')); $u3 = $this->getDataGenerator()->create_user(array('lastname' => 'Omega'));
$ctx = context_module::instance($g1->cmid); $ctx = \context_module::instance($g1->cmid);
$e1a = $gg->create_content($g1, array('userid' => $u1->id, 'approved' => 1)); $e1a = $gg->create_content($g1, array('userid' => $u1->id, 'approved' => 1));
$e1b = $gg->create_content($g1, array('userid' => $u1->id, 'approved' => 1)); $e1b = $gg->create_content($g1, array('userid' => $u1->id, 'approved' => 1));
@ -522,7 +527,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
// Simple request. // Simple request.
$return = mod_glossary_external::get_authors($g1->id, 0, 20, array()); $return = mod_glossary_external::get_authors($g1->id, 0, 20, array());
$return = external_api::clean_returnvalue(mod_glossary_external::get_authors_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_authors_returns(), $return);
$this->assertCount(2, $return['authors']); $this->assertCount(2, $return['authors']);
$this->assertEquals(2, $return['count']); $this->assertEquals(2, $return['count']);
$this->assertEquals($u2->id, $return['authors'][0]['id']); $this->assertEquals($u2->id, $return['authors'][0]['id']);
@ -530,7 +535,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
// Include users with entries pending approval. // Include users with entries pending approval.
$return = mod_glossary_external::get_authors($g1->id, 0, 20, array('includenotapproved' => true)); $return = mod_glossary_external::get_authors($g1->id, 0, 20, array('includenotapproved' => true));
$return = external_api::clean_returnvalue(mod_glossary_external::get_authors_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_authors_returns(), $return);
$this->assertCount(3, $return['authors']); $this->assertCount(3, $return['authors']);
$this->assertEquals(3, $return['count']); $this->assertEquals(3, $return['count']);
$this->assertEquals($u2->id, $return['authors'][0]['id']); $this->assertEquals($u2->id, $return['authors'][0]['id']);
@ -539,7 +544,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
// Pagination. // Pagination.
$return = mod_glossary_external::get_authors($g1->id, 1, 1, array('includenotapproved' => true)); $return = mod_glossary_external::get_authors($g1->id, 1, 1, array('includenotapproved' => true));
$return = external_api::clean_returnvalue(mod_glossary_external::get_authors_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_authors_returns(), $return);
$this->assertCount(1, $return['authors']); $this->assertCount(1, $return['authors']);
$this->assertEquals(3, $return['count']); $this->assertEquals(3, $return['count']);
$this->assertEquals($u3->id, $return['authors'][0]['id']); $this->assertEquals($u3->id, $return['authors'][0]['id']);
@ -557,7 +562,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
$u2 = $this->getDataGenerator()->create_user(array('lastname' => 'Ultra', 'firstname' => '1337')); $u2 = $this->getDataGenerator()->create_user(array('lastname' => 'Ultra', 'firstname' => '1337'));
$u3 = $this->getDataGenerator()->create_user(array('lastname' => 'Alpha', 'firstname' => 'Omega')); $u3 = $this->getDataGenerator()->create_user(array('lastname' => 'Alpha', 'firstname' => 'Omega'));
$u4 = $this->getDataGenerator()->create_user(array('lastname' => '0-day', 'firstname' => 'Zoe')); $u4 = $this->getDataGenerator()->create_user(array('lastname' => '0-day', 'firstname' => 'Zoe'));
$ctx = context_module::instance($g1->cmid); $ctx = \context_module::instance($g1->cmid);
$this->getDataGenerator()->enrol_user($u1->id, $c1->id); $this->getDataGenerator()->enrol_user($u1->id, $c1->id);
$e1a1 = $gg->create_content($g1, array('approved' => 1, 'userid' => $u1->id)); $e1a1 = $gg->create_content($g1, array('approved' => 1, 'userid' => $u1->id));
@ -573,7 +578,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
// Requesting a single letter. // Requesting a single letter.
$return = mod_glossary_external::get_entries_by_author($g1->id, 'u', 'LASTNAME', 'ASC', 0, 20, array()); $return = mod_glossary_external::get_entries_by_author($g1->id, 'u', 'LASTNAME', 'ASC', 0, 20, array());
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_by_author_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_by_author_returns(), $return);
$this->assertCount(4, $return['entries']); $this->assertCount(4, $return['entries']);
$this->assertEquals(4, $return['count']); $this->assertEquals(4, $return['count']);
$this->assertEquals($e1b2->id, $return['entries'][0]['id']); $this->assertEquals($e1b2->id, $return['entries'][0]['id']);
@ -585,19 +590,19 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
// Requesting special letters. // Requesting special letters.
$return = mod_glossary_external::get_entries_by_author($g1->id, 'SPECIAL', 'LASTNAME', 'ASC', 0, 20, array()); $return = mod_glossary_external::get_entries_by_author($g1->id, 'SPECIAL', 'LASTNAME', 'ASC', 0, 20, array());
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_by_author_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_by_author_returns(), $return);
$this->assertCount(1, $return['entries']); $this->assertCount(1, $return['entries']);
$this->assertEquals(1, $return['count']); $this->assertEquals(1, $return['count']);
$this->assertEquals($e1d1->id, $return['entries'][0]['id']); $this->assertEquals($e1d1->id, $return['entries'][0]['id']);
// Requesting with limit. // Requesting with limit.
$return = mod_glossary_external::get_entries_by_author($g1->id, 'ALL', 'LASTNAME', 'ASC', 0, 1, array()); $return = mod_glossary_external::get_entries_by_author($g1->id, 'ALL', 'LASTNAME', 'ASC', 0, 1, array());
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_by_author_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_by_author_returns(), $return);
$this->assertCount(1, $return['entries']); $this->assertCount(1, $return['entries']);
$this->assertEquals(6, $return['count']); $this->assertEquals(6, $return['count']);
$this->assertEquals($e1d1->id, $return['entries'][0]['id']); $this->assertEquals($e1d1->id, $return['entries'][0]['id']);
$return = mod_glossary_external::get_entries_by_author($g1->id, 'ALL', 'LASTNAME', 'ASC', 1, 2, array()); $return = mod_glossary_external::get_entries_by_author($g1->id, 'ALL', 'LASTNAME', 'ASC', 1, 2, array());
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_by_author_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_by_author_returns(), $return);
$this->assertCount(2, $return['entries']); $this->assertCount(2, $return['entries']);
$this->assertEquals(6, $return['count']); $this->assertEquals(6, $return['count']);
$this->assertEquals($e1c1->id, $return['entries'][0]['id']); $this->assertEquals($e1c1->id, $return['entries'][0]['id']);
@ -607,7 +612,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
$this->setAdminUser(); $this->setAdminUser();
$return = mod_glossary_external::get_entries_by_author($g1->id, 'ALL', 'LASTNAME', 'ASC', 0, 20, $return = mod_glossary_external::get_entries_by_author($g1->id, 'ALL', 'LASTNAME', 'ASC', 0, 20,
array('includenotapproved' => true)); array('includenotapproved' => true));
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_by_author_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_by_author_returns(), $return);
$this->assertCount(7, $return['entries']); $this->assertCount(7, $return['entries']);
$this->assertEquals(7, $return['count']); $this->assertEquals(7, $return['count']);
$this->assertEquals($e1d1->id, $return['entries'][0]['id']); $this->assertEquals($e1d1->id, $return['entries'][0]['id']);
@ -620,28 +625,28 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
// Changing order. // Changing order.
$return = mod_glossary_external::get_entries_by_author($g1->id, 'ALL', 'LASTNAME', 'DESC', 0, 1, array()); $return = mod_glossary_external::get_entries_by_author($g1->id, 'ALL', 'LASTNAME', 'DESC', 0, 1, array());
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_by_author_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_by_author_returns(), $return);
$this->assertCount(1, $return['entries']); $this->assertCount(1, $return['entries']);
$this->assertEquals(6, $return['count']); $this->assertEquals(6, $return['count']);
$this->assertEquals($e1a1->id, $return['entries'][0]['id']); $this->assertEquals($e1a1->id, $return['entries'][0]['id']);
// Sorting by firstname. // Sorting by firstname.
$return = mod_glossary_external::get_entries_by_author($g1->id, 'ALL', 'FIRSTNAME', 'ASC', 0, 1, array()); $return = mod_glossary_external::get_entries_by_author($g1->id, 'ALL', 'FIRSTNAME', 'ASC', 0, 1, array());
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_by_author_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_by_author_returns(), $return);
$this->assertCount(1, $return['entries']); $this->assertCount(1, $return['entries']);
$this->assertEquals(6, $return['count']); $this->assertEquals(6, $return['count']);
$this->assertEquals($e1b2->id, $return['entries'][0]['id']); $this->assertEquals($e1b2->id, $return['entries'][0]['id']);
// Sorting by firstname descending. // Sorting by firstname descending.
$return = mod_glossary_external::get_entries_by_author($g1->id, 'ALL', 'FIRSTNAME', 'DESC', 0, 1, array()); $return = mod_glossary_external::get_entries_by_author($g1->id, 'ALL', 'FIRSTNAME', 'DESC', 0, 1, array());
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_by_author_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_by_author_returns(), $return);
$this->assertCount(1, $return['entries']); $this->assertCount(1, $return['entries']);
$this->assertEquals(6, $return['count']); $this->assertEquals(6, $return['count']);
$this->assertEquals($e1d1->id, $return['entries'][0]['id']); $this->assertEquals($e1d1->id, $return['entries'][0]['id']);
// Filtering by firstname descending. // Filtering by firstname descending.
$return = mod_glossary_external::get_entries_by_author($g1->id, 'z', 'FIRSTNAME', 'DESC', 0, 20, array()); $return = mod_glossary_external::get_entries_by_author($g1->id, 'z', 'FIRSTNAME', 'DESC', 0, 20, array());
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_by_author_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_by_author_returns(), $return);
$this->assertCount(4, $return['entries']); $this->assertCount(4, $return['entries']);
$this->assertEquals(4, $return['count']); $this->assertEquals(4, $return['count']);
$this->assertEquals($e1d1->id, $return['entries'][0]['id']); $this->assertEquals($e1d1->id, $return['entries'][0]['id']);
@ -652,7 +657,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
// Test with a deleted user. // Test with a deleted user.
delete_user($u2); delete_user($u2);
$return = mod_glossary_external::get_entries_by_author($g1->id, 'u', 'LASTNAME', 'ASC', 0, 20, array()); $return = mod_glossary_external::get_entries_by_author($g1->id, 'u', 'LASTNAME', 'ASC', 0, 20, array());
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_by_author_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_by_author_returns(), $return);
$this->assertCount(4, $return['entries']); $this->assertCount(4, $return['entries']);
$this->assertEquals(4, $return['count']); $this->assertEquals(4, $return['count']);
$this->assertEquals($e1b2->id, $return['entries'][0]['id']); $this->assertEquals($e1b2->id, $return['entries'][0]['id']);
@ -673,7 +678,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
$u2 = $this->getDataGenerator()->create_user(array('lastname' => 'Ultra', 'firstname' => '1337')); $u2 = $this->getDataGenerator()->create_user(array('lastname' => 'Ultra', 'firstname' => '1337'));
$u3 = $this->getDataGenerator()->create_user(array('lastname' => 'Alpha', 'firstname' => 'Omega')); $u3 = $this->getDataGenerator()->create_user(array('lastname' => 'Alpha', 'firstname' => 'Omega'));
$u4 = $this->getDataGenerator()->create_user(array('lastname' => '0-day', 'firstname' => 'Zoe')); $u4 = $this->getDataGenerator()->create_user(array('lastname' => '0-day', 'firstname' => 'Zoe'));
$ctx = context_module::instance($g1->cmid); $ctx = \context_module::instance($g1->cmid);
$this->getDataGenerator()->enrol_user($u1->id, $c1->id); $this->getDataGenerator()->enrol_user($u1->id, $c1->id);
$e1a1 = $gg->create_content($g1, array('approved' => 1, 'userid' => $u1->id, 'concept' => 'Zoom', $e1a1 = $gg->create_content($g1, array('approved' => 1, 'userid' => $u1->id, 'concept' => 'Zoom',
@ -689,7 +694,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
// Standard request. // Standard request.
$return = mod_glossary_external::get_entries_by_author_id($g1->id, $u1->id, 'CONCEPT', 'ASC', 0, 20, array()); $return = mod_glossary_external::get_entries_by_author_id($g1->id, $u1->id, 'CONCEPT', 'ASC', 0, 20, array());
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_by_author_id_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_by_author_id_returns(), $return);
$this->assertCount(3, $return['entries']); $this->assertCount(3, $return['entries']);
$this->assertEquals(3, $return['count']); $this->assertEquals(3, $return['count']);
$this->assertEquals($e1a2->id, $return['entries'][0]['id']); $this->assertEquals($e1a2->id, $return['entries'][0]['id']);
@ -698,7 +703,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
// Standard request descending. // Standard request descending.
$return = mod_glossary_external::get_entries_by_author_id($g1->id, $u1->id, 'CONCEPT', 'DESC', 0, 20, array()); $return = mod_glossary_external::get_entries_by_author_id($g1->id, $u1->id, 'CONCEPT', 'DESC', 0, 20, array());
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_by_author_id_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_by_author_id_returns(), $return);
$this->assertCount(3, $return['entries']); $this->assertCount(3, $return['entries']);
$this->assertEquals(3, $return['count']); $this->assertEquals(3, $return['count']);
$this->assertEquals($e1a1->id, $return['entries'][0]['id']); $this->assertEquals($e1a1->id, $return['entries'][0]['id']);
@ -707,7 +712,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
// Requesting ordering by time created. // Requesting ordering by time created.
$return = mod_glossary_external::get_entries_by_author_id($g1->id, $u1->id, 'CREATION', 'ASC', 0, 20, array()); $return = mod_glossary_external::get_entries_by_author_id($g1->id, $u1->id, 'CREATION', 'ASC', 0, 20, array());
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_by_author_id_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_by_author_id_returns(), $return);
$this->assertCount(3, $return['entries']); $this->assertCount(3, $return['entries']);
$this->assertEquals(3, $return['count']); $this->assertEquals(3, $return['count']);
$this->assertEquals($e1a3->id, $return['entries'][0]['id']); $this->assertEquals($e1a3->id, $return['entries'][0]['id']);
@ -716,7 +721,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
// Requesting ordering by time created descending. // Requesting ordering by time created descending.
$return = mod_glossary_external::get_entries_by_author_id($g1->id, $u1->id, 'CREATION', 'DESC', 0, 20, array()); $return = mod_glossary_external::get_entries_by_author_id($g1->id, $u1->id, 'CREATION', 'DESC', 0, 20, array());
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_by_author_id_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_by_author_id_returns(), $return);
$this->assertCount(3, $return['entries']); $this->assertCount(3, $return['entries']);
$this->assertEquals(3, $return['count']); $this->assertEquals(3, $return['count']);
$this->assertEquals($e1a2->id, $return['entries'][0]['id']); $this->assertEquals($e1a2->id, $return['entries'][0]['id']);
@ -725,7 +730,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
// Requesting ordering by time modified. // Requesting ordering by time modified.
$return = mod_glossary_external::get_entries_by_author_id($g1->id, $u1->id, 'UPDATE', 'ASC', 0, 20, array()); $return = mod_glossary_external::get_entries_by_author_id($g1->id, $u1->id, 'UPDATE', 'ASC', 0, 20, array());
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_by_author_id_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_by_author_id_returns(), $return);
$this->assertCount(3, $return['entries']); $this->assertCount(3, $return['entries']);
$this->assertEquals(3, $return['count']); $this->assertEquals(3, $return['count']);
$this->assertEquals($e1a1->id, $return['entries'][0]['id']); $this->assertEquals($e1a1->id, $return['entries'][0]['id']);
@ -734,7 +739,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
// Requesting ordering by time modified descending. // Requesting ordering by time modified descending.
$return = mod_glossary_external::get_entries_by_author_id($g1->id, $u1->id, 'UPDATE', 'DESC', 0, 20, array()); $return = mod_glossary_external::get_entries_by_author_id($g1->id, $u1->id, 'UPDATE', 'DESC', 0, 20, array());
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_by_author_id_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_by_author_id_returns(), $return);
$this->assertCount(3, $return['entries']); $this->assertCount(3, $return['entries']);
$this->assertEquals(3, $return['count']); $this->assertEquals(3, $return['count']);
$this->assertEquals($e1a2->id, $return['entries'][0]['id']); $this->assertEquals($e1a2->id, $return['entries'][0]['id']);
@ -744,7 +749,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
// Including non approved. // Including non approved.
$return = mod_glossary_external::get_entries_by_author_id($g1->id, $u1->id, 'CONCEPT', 'ASC', 0, 20, $return = mod_glossary_external::get_entries_by_author_id($g1->id, $u1->id, 'CONCEPT', 'ASC', 0, 20,
array('includenotapproved' => true)); array('includenotapproved' => true));
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_by_author_id_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_by_author_id_returns(), $return);
$this->assertCount(4, $return['entries']); $this->assertCount(4, $return['entries']);
$this->assertEquals(4, $return['count']); $this->assertEquals(4, $return['count']);
$this->assertEquals($e1a2->id, $return['entries'][0]['id']); $this->assertEquals($e1a2->id, $return['entries'][0]['id']);
@ -755,14 +760,14 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
// Pagination. // Pagination.
$return = mod_glossary_external::get_entries_by_author_id($g1->id, $u1->id, 'CONCEPT', 'ASC', 0, 2, $return = mod_glossary_external::get_entries_by_author_id($g1->id, $u1->id, 'CONCEPT', 'ASC', 0, 2,
array('includenotapproved' => true)); array('includenotapproved' => true));
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_by_author_id_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_by_author_id_returns(), $return);
$this->assertCount(2, $return['entries']); $this->assertCount(2, $return['entries']);
$this->assertEquals(4, $return['count']); $this->assertEquals(4, $return['count']);
$this->assertEquals($e1a2->id, $return['entries'][0]['id']); $this->assertEquals($e1a2->id, $return['entries'][0]['id']);
$this->assertEquals($e1a4->id, $return['entries'][1]['id']); $this->assertEquals($e1a4->id, $return['entries'][1]['id']);
$return = mod_glossary_external::get_entries_by_author_id($g1->id, $u1->id, 'CONCEPT', 'ASC', 1, 2, $return = mod_glossary_external::get_entries_by_author_id($g1->id, $u1->id, 'CONCEPT', 'ASC', 1, 2,
array('includenotapproved' => true)); array('includenotapproved' => true));
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_by_author_id_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_by_author_id_returns(), $return);
$this->assertCount(2, $return['entries']); $this->assertCount(2, $return['entries']);
$this->assertEquals(4, $return['count']); $this->assertEquals(4, $return['count']);
$this->assertEquals($e1a4->id, $return['entries'][0]['id']); $this->assertEquals($e1a4->id, $return['entries'][0]['id']);
@ -778,7 +783,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
$g1 = $this->getDataGenerator()->create_module('glossary', array('course' => $c1->id)); $g1 = $this->getDataGenerator()->create_module('glossary', array('course' => $c1->id));
$g2 = $this->getDataGenerator()->create_module('glossary', array('course' => $c1->id)); $g2 = $this->getDataGenerator()->create_module('glossary', array('course' => $c1->id));
$u1 = $this->getDataGenerator()->create_user(); $u1 = $this->getDataGenerator()->create_user();
$ctx = context_module::instance($g1->cmid); $ctx = \context_module::instance($g1->cmid);
$this->getDataGenerator()->enrol_user($u1->id, $c1->id); $this->getDataGenerator()->enrol_user($u1->id, $c1->id);
$this->setUser($u1); $this->setUser($u1);
@ -798,7 +803,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
// Test simple query. // Test simple query.
$query = 'hero'; $query = 'hero';
$return = mod_glossary_external::get_entries_by_search($g1->id, $query, false, 'CONCEPT', 'ASC', 0, 20, array()); $return = mod_glossary_external::get_entries_by_search($g1->id, $query, false, 'CONCEPT', 'ASC', 0, 20, array());
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_by_search_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_by_search_returns(), $return);
$this->assertCount(1, $return['entries']); $this->assertCount(1, $return['entries']);
$this->assertEquals(1, $return['count']); $this->assertEquals(1, $return['count']);
$this->assertEquals($e3->id, $return['entries'][0]['id']); $this->assertEquals($e3->id, $return['entries'][0]['id']);
@ -808,7 +813,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
// Enabling full search. // Enabling full search.
$query = 'hero'; $query = 'hero';
$return = mod_glossary_external::get_entries_by_search($g1->id, $query, true, 'CONCEPT', 'ASC', 0, 20, array()); $return = mod_glossary_external::get_entries_by_search($g1->id, $query, true, 'CONCEPT', 'ASC', 0, 20, array());
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_by_search_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_by_search_returns(), $return);
$this->assertCount(2, $return['entries']); $this->assertCount(2, $return['entries']);
$this->assertEquals(2, $return['count']); $this->assertEquals(2, $return['count']);
$this->assertEquals($e5->id, $return['entries'][0]['id']); $this->assertEquals($e5->id, $return['entries'][0]['id']);
@ -817,7 +822,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
// Concept descending. // Concept descending.
$query = 'hero'; $query = 'hero';
$return = mod_glossary_external::get_entries_by_search($g1->id, $query, true, 'CONCEPT', 'DESC', 0, 20, array()); $return = mod_glossary_external::get_entries_by_search($g1->id, $query, true, 'CONCEPT', 'DESC', 0, 20, array());
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_by_search_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_by_search_returns(), $return);
$this->assertCount(2, $return['entries']); $this->assertCount(2, $return['entries']);
$this->assertEquals(2, $return['count']); $this->assertEquals(2, $return['count']);
$this->assertEquals($e3->id, $return['entries'][0]['id']); $this->assertEquals($e3->id, $return['entries'][0]['id']);
@ -826,12 +831,12 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
// Search on alias. // Search on alias.
$query = 'couscous'; $query = 'couscous';
$return = mod_glossary_external::get_entries_by_search($g1->id, $query, false, 'CONCEPT', 'ASC', 0, 20, array()); $return = mod_glossary_external::get_entries_by_search($g1->id, $query, false, 'CONCEPT', 'ASC', 0, 20, array());
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_by_search_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_by_search_returns(), $return);
$this->assertCount(1, $return['entries']); $this->assertCount(1, $return['entries']);
$this->assertEquals(1, $return['count']); $this->assertEquals(1, $return['count']);
$this->assertEquals($e7->id, $return['entries'][0]['id']); $this->assertEquals($e7->id, $return['entries'][0]['id']);
$return = mod_glossary_external::get_entries_by_search($g1->id, $query, true, 'CONCEPT', 'ASC', 0, 20, array()); $return = mod_glossary_external::get_entries_by_search($g1->id, $query, true, 'CONCEPT', 'ASC', 0, 20, array());
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_by_search_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_by_search_returns(), $return);
$this->assertCount(1, $return['entries']); $this->assertCount(1, $return['entries']);
$this->assertEquals(1, $return['count']); $this->assertEquals(1, $return['count']);
$this->assertEquals($e7->id, $return['entries'][0]['id']); $this->assertEquals($e7->id, $return['entries'][0]['id']);
@ -839,12 +844,12 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
// Pagination and ordering on created date. // Pagination and ordering on created date.
$query = 'ou'; $query = 'ou';
$return = mod_glossary_external::get_entries_by_search($g1->id, $query, false, 'CREATION', 'ASC', 0, 1, array()); $return = mod_glossary_external::get_entries_by_search($g1->id, $query, false, 'CREATION', 'ASC', 0, 1, array());
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_by_search_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_by_search_returns(), $return);
$this->assertCount(1, $return['entries']); $this->assertCount(1, $return['entries']);
$this->assertEquals(3, $return['count']); $this->assertEquals(3, $return['count']);
$this->assertEquals($e7->id, $return['entries'][0]['id']); $this->assertEquals($e7->id, $return['entries'][0]['id']);
$return = mod_glossary_external::get_entries_by_search($g1->id, $query, false, 'CREATION', 'DESC', 0, 1, array()); $return = mod_glossary_external::get_entries_by_search($g1->id, $query, false, 'CREATION', 'DESC', 0, 1, array());
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_by_search_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_by_search_returns(), $return);
$this->assertCount(1, $return['entries']); $this->assertCount(1, $return['entries']);
$this->assertEquals(3, $return['count']); $this->assertEquals(3, $return['count']);
$this->assertEquals($e1->id, $return['entries'][0]['id']); $this->assertEquals($e1->id, $return['entries'][0]['id']);
@ -852,12 +857,12 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
// Ordering on updated date. // Ordering on updated date.
$query = 'ou'; $query = 'ou';
$return = mod_glossary_external::get_entries_by_search($g1->id, $query, false, 'UPDATE', 'ASC', 0, 1, array()); $return = mod_glossary_external::get_entries_by_search($g1->id, $query, false, 'UPDATE', 'ASC', 0, 1, array());
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_by_search_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_by_search_returns(), $return);
$this->assertCount(1, $return['entries']); $this->assertCount(1, $return['entries']);
$this->assertEquals(3, $return['count']); $this->assertEquals(3, $return['count']);
$this->assertEquals($e2->id, $return['entries'][0]['id']); $this->assertEquals($e2->id, $return['entries'][0]['id']);
$return = mod_glossary_external::get_entries_by_search($g1->id, $query, false, 'UPDATE', 'DESC', 0, 1, array()); $return = mod_glossary_external::get_entries_by_search($g1->id, $query, false, 'UPDATE', 'DESC', 0, 1, array());
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_by_search_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_by_search_returns(), $return);
$this->assertCount(1, $return['entries']); $this->assertCount(1, $return['entries']);
$this->assertEquals(3, $return['count']); $this->assertEquals(3, $return['count']);
$this->assertEquals($e7->id, $return['entries'][0]['id']); $this->assertEquals($e7->id, $return['entries'][0]['id']);
@ -866,7 +871,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
$query = 'ou'; $query = 'ou';
$return = mod_glossary_external::get_entries_by_search($g1->id, $query, false, 'CONCEPT', 'ASC', 0, 20, $return = mod_glossary_external::get_entries_by_search($g1->id, $query, false, 'CONCEPT', 'ASC', 0, 20,
array('includenotapproved' => true)); array('includenotapproved' => true));
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_by_search_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_by_search_returns(), $return);
$this->assertCount(4, $return['entries']); $this->assertCount(4, $return['entries']);
$this->assertEquals(4, $return['count']); $this->assertEquals(4, $return['count']);
$this->assertEquals($e1->id, $return['entries'][0]['id']); $this->assertEquals($e1->id, $return['entries'][0]['id']);
@ -878,7 +883,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
$query = '+Heroes -Abcd'; $query = '+Heroes -Abcd';
$return = mod_glossary_external::get_entries_by_search($g1->id, $query, true, 'CONCEPT', 'ASC', 0, 20, $return = mod_glossary_external::get_entries_by_search($g1->id, $query, true, 'CONCEPT', 'ASC', 0, 20,
array('includenotapproved' => true)); array('includenotapproved' => true));
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_by_search_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_by_search_returns(), $return);
$this->assertCount(2, $return['entries']); $this->assertCount(2, $return['entries']);
$this->assertEquals(2, $return['count']); $this->assertEquals(2, $return['count']);
$this->assertEquals($e6->id, $return['entries'][0]['id']); $this->assertEquals($e6->id, $return['entries'][0]['id']);
@ -894,7 +899,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
$g1 = $this->getDataGenerator()->create_module('glossary', array('course' => $c1->id)); $g1 = $this->getDataGenerator()->create_module('glossary', array('course' => $c1->id));
$g2 = $this->getDataGenerator()->create_module('glossary', array('course' => $c1->id)); $g2 = $this->getDataGenerator()->create_module('glossary', array('course' => $c1->id));
$u1 = $this->getDataGenerator()->create_user(); $u1 = $this->getDataGenerator()->create_user();
$ctx = context_module::instance($g1->cmid); $ctx = \context_module::instance($g1->cmid);
$this->getDataGenerator()->enrol_user($u1->id, $c1->id); $this->getDataGenerator()->enrol_user($u1->id, $c1->id);
$this->setAdminUser(); $this->setAdminUser();
@ -908,7 +913,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
// Search concept + alias. // Search concept + alias.
$return = mod_glossary_external::get_entries_by_term($g1->id, 'cat', 0, 20, array('includenotapproved' => false)); $return = mod_glossary_external::get_entries_by_term($g1->id, 'cat', 0, 20, array('includenotapproved' => false));
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_by_term_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_by_term_returns(), $return);
$this->assertCount(2, $return['entries']); $this->assertCount(2, $return['entries']);
$this->assertEquals(2, $return['count']); $this->assertEquals(2, $return['count']);
// Compare ids, ignore ordering of array, using canonicalize parameter of assertEquals. // Compare ids, ignore ordering of array, using canonicalize parameter of assertEquals.
@ -927,7 +932,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
// Search alias. // Search alias.
$return = mod_glossary_external::get_entries_by_term($g1->id, 'dog', 0, 20, array('includenotapproved' => false)); $return = mod_glossary_external::get_entries_by_term($g1->id, 'dog', 0, 20, array('includenotapproved' => false));
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_by_term_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_by_term_returns(), $return);
$this->assertCount(2, $return['entries']); $this->assertCount(2, $return['entries']);
$this->assertEquals(2, $return['count']); $this->assertEquals(2, $return['count']);
@ -938,7 +943,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
// Search including not approved. // Search including not approved.
$return = mod_glossary_external::get_entries_by_term($g1->id, 'dog', 0, 20, array('includenotapproved' => true)); $return = mod_glossary_external::get_entries_by_term($g1->id, 'dog', 0, 20, array('includenotapproved' => true));
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_by_term_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_by_term_returns(), $return);
$this->assertCount(3, $return['entries']); $this->assertCount(3, $return['entries']);
$this->assertEquals(3, $return['count']); $this->assertEquals(3, $return['count']);
// Compare ids, ignore ordering of array, using canonicalize parameter of assertEquals. // Compare ids, ignore ordering of array, using canonicalize parameter of assertEquals.
@ -948,13 +953,13 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
// Pagination. // Pagination.
$return = mod_glossary_external::get_entries_by_term($g1->id, 'dog', 0, 1, array('includenotapproved' => true)); $return = mod_glossary_external::get_entries_by_term($g1->id, 'dog', 0, 1, array('includenotapproved' => true));
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_by_term_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_by_term_returns(), $return);
$this->assertCount(1, $return['entries']); $this->assertCount(1, $return['entries']);
// We don't compare the returned entry id because it may be different depending on the DBMS, // We don't compare the returned entry id because it may be different depending on the DBMS,
// for example, Postgres does a random sorting in this case. // for example, Postgres does a random sorting in this case.
$this->assertEquals(3, $return['count']); $this->assertEquals(3, $return['count']);
$return = mod_glossary_external::get_entries_by_term($g1->id, 'dog', 1, 1, array('includenotapproved' => true)); $return = mod_glossary_external::get_entries_by_term($g1->id, 'dog', 1, 1, array('includenotapproved' => true));
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_by_term_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_by_term_returns(), $return);
$this->assertCount(1, $return['entries']); $this->assertCount(1, $return['entries']);
$this->assertEquals(3, $return['count']); $this->assertEquals(3, $return['count']);
} }
@ -968,7 +973,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
$g1 = $this->getDataGenerator()->create_module('glossary', array('course' => $c1->id)); $g1 = $this->getDataGenerator()->create_module('glossary', array('course' => $c1->id));
$g2 = $this->getDataGenerator()->create_module('glossary', array('course' => $c1->id)); $g2 = $this->getDataGenerator()->create_module('glossary', array('course' => $c1->id));
$u1 = $this->getDataGenerator()->create_user(); $u1 = $this->getDataGenerator()->create_user();
$ctx = context_module::instance($g1->cmid); $ctx = \context_module::instance($g1->cmid);
$this->getDataGenerator()->enrol_user($u1->id, $c1->id); $this->getDataGenerator()->enrol_user($u1->id, $c1->id);
$e1a = $gg->create_content($g1, array('approved' => 0, 'concept' => 'Bob', 'userid' => $u1->id, $e1a = $gg->create_content($g1, array('approved' => 0, 'concept' => 'Bob', 'userid' => $u1->id,
@ -984,7 +989,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
// Simple listing. // Simple listing.
$return = mod_glossary_external::get_entries_to_approve($g1->id, 'ALL', 'CONCEPT', 'ASC', 0, 20); $return = mod_glossary_external::get_entries_to_approve($g1->id, 'ALL', 'CONCEPT', 'ASC', 0, 20);
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_to_approve_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_to_approve_returns(), $return);
$this->assertCount(4, $return['entries']); $this->assertCount(4, $return['entries']);
$this->assertEquals(4, $return['count']); $this->assertEquals(4, $return['count']);
$this->assertEquals($e1d->id, $return['entries'][0]['id']); $this->assertEquals($e1d->id, $return['entries'][0]['id']);
@ -994,7 +999,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
// Revert ordering of concept. // Revert ordering of concept.
$return = mod_glossary_external::get_entries_to_approve($g1->id, 'ALL', 'CONCEPT', 'DESC', 0, 20); $return = mod_glossary_external::get_entries_to_approve($g1->id, 'ALL', 'CONCEPT', 'DESC', 0, 20);
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_to_approve_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_to_approve_returns(), $return);
$this->assertCount(4, $return['entries']); $this->assertCount(4, $return['entries']);
$this->assertEquals(4, $return['count']); $this->assertEquals(4, $return['count']);
$this->assertEquals($e1b->id, $return['entries'][0]['id']); $this->assertEquals($e1b->id, $return['entries'][0]['id']);
@ -1004,27 +1009,27 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
// Filtering by letter. // Filtering by letter.
$return = mod_glossary_external::get_entries_to_approve($g1->id, 'a', 'CONCEPT', 'ASC', 0, 20); $return = mod_glossary_external::get_entries_to_approve($g1->id, 'a', 'CONCEPT', 'ASC', 0, 20);
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_to_approve_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_to_approve_returns(), $return);
$this->assertCount(1, $return['entries']); $this->assertCount(1, $return['entries']);
$this->assertEquals(1, $return['count']); $this->assertEquals(1, $return['count']);
$this->assertEquals($e1c->id, $return['entries'][0]['id']); $this->assertEquals($e1c->id, $return['entries'][0]['id']);
// Filtering by special. // Filtering by special.
$return = mod_glossary_external::get_entries_to_approve($g1->id, 'SPECIAL', 'CONCEPT', 'ASC', 0, 20); $return = mod_glossary_external::get_entries_to_approve($g1->id, 'SPECIAL', 'CONCEPT', 'ASC', 0, 20);
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_to_approve_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_to_approve_returns(), $return);
$this->assertCount(1, $return['entries']); $this->assertCount(1, $return['entries']);
$this->assertEquals(1, $return['count']); $this->assertEquals(1, $return['count']);
$this->assertEquals($e1d->id, $return['entries'][0]['id']); $this->assertEquals($e1d->id, $return['entries'][0]['id']);
// Pagination. // Pagination.
$return = mod_glossary_external::get_entries_to_approve($g1->id, 'ALL', 'CONCEPT', 'ASC', 0, 2); $return = mod_glossary_external::get_entries_to_approve($g1->id, 'ALL', 'CONCEPT', 'ASC', 0, 2);
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_to_approve_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_to_approve_returns(), $return);
$this->assertCount(2, $return['entries']); $this->assertCount(2, $return['entries']);
$this->assertEquals(4, $return['count']); $this->assertEquals(4, $return['count']);
$this->assertEquals($e1d->id, $return['entries'][0]['id']); $this->assertEquals($e1d->id, $return['entries'][0]['id']);
$this->assertEquals($e1c->id, $return['entries'][1]['id']); $this->assertEquals($e1c->id, $return['entries'][1]['id']);
$return = mod_glossary_external::get_entries_to_approve($g1->id, 'ALL', 'CONCEPT', 'ASC', 1, 2); $return = mod_glossary_external::get_entries_to_approve($g1->id, 'ALL', 'CONCEPT', 'ASC', 1, 2);
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_to_approve_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_to_approve_returns(), $return);
$this->assertCount(2, $return['entries']); $this->assertCount(2, $return['entries']);
$this->assertEquals(4, $return['count']); $this->assertEquals(4, $return['count']);
$this->assertEquals($e1c->id, $return['entries'][0]['id']); $this->assertEquals($e1c->id, $return['entries'][0]['id']);
@ -1032,28 +1037,28 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
// Ordering by creation date. // Ordering by creation date.
$return = mod_glossary_external::get_entries_to_approve($g1->id, 'ALL', 'CREATION', 'ASC', 0, 1); $return = mod_glossary_external::get_entries_to_approve($g1->id, 'ALL', 'CREATION', 'ASC', 0, 1);
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_to_approve_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_to_approve_returns(), $return);
$this->assertCount(1, $return['entries']); $this->assertCount(1, $return['entries']);
$this->assertEquals(4, $return['count']); $this->assertEquals(4, $return['count']);
$this->assertEquals($e1b->id, $return['entries'][0]['id']); $this->assertEquals($e1b->id, $return['entries'][0]['id']);
// Ordering by creation date desc. // Ordering by creation date desc.
$return = mod_glossary_external::get_entries_to_approve($g1->id, 'ALL', 'CREATION', 'DESC', 0, 1); $return = mod_glossary_external::get_entries_to_approve($g1->id, 'ALL', 'CREATION', 'DESC', 0, 1);
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_to_approve_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_to_approve_returns(), $return);
$this->assertCount(1, $return['entries']); $this->assertCount(1, $return['entries']);
$this->assertEquals(4, $return['count']); $this->assertEquals(4, $return['count']);
$this->assertEquals($e1a->id, $return['entries'][0]['id']); $this->assertEquals($e1a->id, $return['entries'][0]['id']);
// Ordering by update date. // Ordering by update date.
$return = mod_glossary_external::get_entries_to_approve($g1->id, 'ALL', 'UPDATE', 'ASC', 0, 1); $return = mod_glossary_external::get_entries_to_approve($g1->id, 'ALL', 'UPDATE', 'ASC', 0, 1);
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_to_approve_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_to_approve_returns(), $return);
$this->assertCount(1, $return['entries']); $this->assertCount(1, $return['entries']);
$this->assertEquals(4, $return['count']); $this->assertEquals(4, $return['count']);
$this->assertEquals($e1c->id, $return['entries'][0]['id']); $this->assertEquals($e1c->id, $return['entries'][0]['id']);
// Ordering by update date desc. // Ordering by update date desc.
$return = mod_glossary_external::get_entries_to_approve($g1->id, 'ALL', 'UPDATE', 'DESC', 0, 1); $return = mod_glossary_external::get_entries_to_approve($g1->id, 'ALL', 'UPDATE', 'DESC', 0, 1);
$return = external_api::clean_returnvalue(mod_glossary_external::get_entries_to_approve_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entries_to_approve_returns(), $return);
$this->assertCount(1, $return['entries']); $this->assertCount(1, $return['entries']);
$this->assertEquals(4, $return['count']); $this->assertEquals(4, $return['count']);
$this->assertEquals($e1d->id, $return['entries'][0]['id']); $this->assertEquals($e1d->id, $return['entries'][0]['id']);
@ -1077,7 +1082,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
$u1 = $this->getDataGenerator()->create_user(); $u1 = $this->getDataGenerator()->create_user();
$u2 = $this->getDataGenerator()->create_user(); $u2 = $this->getDataGenerator()->create_user();
$u3 = $this->getDataGenerator()->create_user(); $u3 = $this->getDataGenerator()->create_user();
$ctx = context_module::instance($g1->cmid); $ctx = \context_module::instance($g1->cmid);
$this->getDataGenerator()->enrol_user($u1->id, $c1->id); $this->getDataGenerator()->enrol_user($u1->id, $c1->id);
$this->getDataGenerator()->enrol_user($u2->id, $c1->id); $this->getDataGenerator()->enrol_user($u2->id, $c1->id);
$this->getDataGenerator()->enrol_user($u3->id, $c1->id); $this->getDataGenerator()->enrol_user($u3->id, $c1->id);
@ -1102,7 +1107,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
$this->setUser($u1); $this->setUser($u1);
$return = mod_glossary_external::get_entry_by_id($e1->id); $return = mod_glossary_external::get_entry_by_id($e1->id);
$return = external_api::clean_returnvalue(mod_glossary_external::get_entry_by_id_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entry_by_id_returns(), $return);
$this->assertEquals($e1->id, $return['entry']['id']); $this->assertEquals($e1->id, $return['entry']['id']);
$this->assertEquals('Cats', $return['entry']['tags'][0]['rawname']); $this->assertEquals('Cats', $return['entry']['tags'][0]['rawname']);
$this->assertEquals('Dogs', $return['entry']['tags'][1]['rawname']); $this->assertEquals('Dogs', $return['entry']['tags'][1]['rawname']);
@ -1110,35 +1115,35 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
$this->assertTrue($return['permissions']['candelete']); $this->assertTrue($return['permissions']['candelete']);
$return = mod_glossary_external::get_entry_by_id($e2->id); $return = mod_glossary_external::get_entry_by_id($e2->id);
$return = external_api::clean_returnvalue(mod_glossary_external::get_entry_by_id_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entry_by_id_returns(), $return);
$this->assertEquals($e2->id, $return['entry']['id']); $this->assertEquals($e2->id, $return['entry']['id']);
$this->assertTrue($return['permissions']['candelete']); $this->assertTrue($return['permissions']['candelete']);
try { try {
$return = mod_glossary_external::get_entry_by_id($e3->id); $return = mod_glossary_external::get_entry_by_id($e3->id);
$this->fail('Cannot view unapproved entries of others.'); $this->fail('Cannot view unapproved entries of others.');
} catch (invalid_parameter_exception $e) { } catch (\invalid_parameter_exception $e) {
// All good. // All good.
} }
try { try {
$return = mod_glossary_external::get_entry_by_id($e4->id); $return = mod_glossary_external::get_entry_by_id($e4->id);
$this->fail('Cannot view entries from another course.'); $this->fail('Cannot view entries from another course.');
} catch (require_login_exception $e) { } catch (\require_login_exception $e) {
// All good. // All good.
} }
// An admin can see other's entries to be approved. // An admin can see other's entries to be approved.
$this->setAdminUser(); $this->setAdminUser();
$return = mod_glossary_external::get_entry_by_id($e3->id); $return = mod_glossary_external::get_entry_by_id($e3->id);
$return = external_api::clean_returnvalue(mod_glossary_external::get_entry_by_id_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entry_by_id_returns(), $return);
$this->assertEquals($e3->id, $return['entry']['id']); $this->assertEquals($e3->id, $return['entry']['id']);
$this->assertTrue($return['permissions']['candelete']); $this->assertTrue($return['permissions']['candelete']);
// Students can see other students approved entries but they will not be able to delete them. // Students can see other students approved entries but they will not be able to delete them.
$this->setUser($u3); $this->setUser($u3);
$return = mod_glossary_external::get_entry_by_id($e1->id); $return = mod_glossary_external::get_entry_by_id($e1->id);
$return = external_api::clean_returnvalue(mod_glossary_external::get_entry_by_id_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::get_entry_by_id_returns(), $return);
$this->assertEquals($e1->id, $return['entry']['id']); $this->assertEquals($e1->id, $return['entry']['id']);
$this->assertFalse($return['permissions']['candelete']); $this->assertFalse($return['permissions']['candelete']);
} }
@ -1154,7 +1159,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
$concept = 'A concept'; $concept = 'A concept';
$definition = '<p>A definition</p>'; $definition = '<p>A definition</p>';
$return = mod_glossary_external::add_entry($glossary->id, $concept, $definition, FORMAT_HTML); $return = mod_glossary_external::add_entry($glossary->id, $concept, $definition, FORMAT_HTML);
$return = external_api::clean_returnvalue(mod_glossary_external::add_entry_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::add_entry_returns(), $return);
// Get entry from DB. // Get entry from DB.
$entry = $DB->get_record('glossary_entries', array('id' => $return['entryid'])); $entry = $DB->get_record('glossary_entries', array('id' => $return['entryid']));
@ -1186,7 +1191,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
) )
); );
$return = mod_glossary_external::add_entry($glossary->id, $concept, $definition, FORMAT_HTML, $options); $return = mod_glossary_external::add_entry($glossary->id, $concept, $definition, FORMAT_HTML, $options);
$return = external_api::clean_returnvalue(mod_glossary_external::add_entry_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::add_entry_returns(), $return);
$aliases = $DB->get_records('glossary_alias', array('entryid' => $return['entryid'])); $aliases = $DB->get_records('glossary_alias', array('entryid' => $return['entryid']));
$this->assertCount(3, $aliases); $this->assertCount(3, $aliases);
@ -1216,7 +1221,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
) )
); );
$return = mod_glossary_external::add_entry($glossary->id, $concept, $definition, FORMAT_HTML, $options); $return = mod_glossary_external::add_entry($glossary->id, $concept, $definition, FORMAT_HTML, $options);
$return = external_api::clean_returnvalue(mod_glossary_external::add_entry_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::add_entry_returns(), $return);
$categories = $DB->get_records('glossary_entries_categories', array('entryid' => $return['entryid'])); $categories = $DB->get_records('glossary_entries_categories', array('entryid' => $return['entryid']));
$this->assertCount(2, $categories); $this->assertCount(2, $categories);
@ -1231,7 +1236,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
$glossary = $this->getDataGenerator()->create_module('glossary', array('course' => $course->id)); $glossary = $this->getDataGenerator()->create_module('glossary', array('course' => $course->id));
$context = context_module::instance($glossary->cmid); $context = \context_module::instance($glossary->cmid);
$this->setAdminUser(); $this->setAdminUser();
$concept = 'A concept'; $concept = 'A concept';
@ -1240,7 +1245,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
// Draft files. // Draft files.
$draftidinlineattach = file_get_unused_draft_itemid(); $draftidinlineattach = file_get_unused_draft_itemid();
$draftidattach = file_get_unused_draft_itemid(); $draftidattach = file_get_unused_draft_itemid();
$usercontext = context_user::instance($USER->id); $usercontext = \context_user::instance($USER->id);
$filerecordinline = array( $filerecordinline = array(
'contextid' => $usercontext->id, 'contextid' => $usercontext->id,
'component' => 'user', 'component' => 'user',
@ -1270,10 +1275,10 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
) )
); );
$return = mod_glossary_external::add_entry($glossary->id, $concept, $definition, FORMAT_HTML, $options); $return = mod_glossary_external::add_entry($glossary->id, $concept, $definition, FORMAT_HTML, $options);
$return = external_api::clean_returnvalue(mod_glossary_external::add_entry_returns(), $return); $return = \external_api::clean_returnvalue(mod_glossary_external::add_entry_returns(), $return);
$editorfiles = external_util::get_area_files($context->id, 'mod_glossary', 'entry', $return['entryid']); $editorfiles = \external_util::get_area_files($context->id, 'mod_glossary', 'entry', $return['entryid']);
$attachmentfiles = external_util::get_area_files($context->id, 'mod_glossary', 'attachment', $return['entryid']); $attachmentfiles = \external_util::get_area_files($context->id, 'mod_glossary', 'attachment', $return['entryid']);
$this->assertCount(1, $editorfiles); $this->assertCount(1, $editorfiles);
$this->assertCount(1, $attachmentfiles); $this->assertCount(1, $attachmentfiles);
@ -1309,19 +1314,19 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
$this->getDataGenerator()->enrol_user($teacher->id, $course->id, $teacherrole->id, 'manual'); $this->getDataGenerator()->enrol_user($teacher->id, $course->id, $teacherrole->id, 'manual');
// Create the glossary and contents. // Create the glossary and contents.
$record = new stdClass(); $record = new \stdClass();
$record->course = $course->id; $record->course = $course->id;
$record->assessed = RATING_AGGREGATE_AVERAGE; $record->assessed = RATING_AGGREGATE_AVERAGE;
$scale = $this->getDataGenerator()->create_scale(array('scale' => 'A,B,C,D')); $scale = $this->getDataGenerator()->create_scale(array('scale' => 'A,B,C,D'));
$record->scale = "-$scale->id"; $record->scale = "-$scale->id";
$glossary = $this->getDataGenerator()->create_module('glossary', $record); $glossary = $this->getDataGenerator()->create_module('glossary', $record);
$context = context_module::instance($glossary->cmid); $context = \context_module::instance($glossary->cmid);
$gg = $this->getDataGenerator()->get_plugin_generator('mod_glossary'); $gg = $this->getDataGenerator()->get_plugin_generator('mod_glossary');
$entry = $gg->create_content($glossary, array('approved' => 1, 'userid' => $user1->id)); $entry = $gg->create_content($glossary, array('approved' => 1, 'userid' => $user1->id));
// Rate the entry as user2. // Rate the entry as user2.
$rating1 = new stdClass(); $rating1 = new \stdClass();
$rating1->contextid = $context->id; $rating1->contextid = $context->id;
$rating1->component = 'mod_glossary'; $rating1->component = 'mod_glossary';
$rating1->ratingarea = 'entry'; $rating1->ratingarea = 'entry';
@ -1334,7 +1339,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
$rating1->id = $DB->insert_record('rating', $rating1); $rating1->id = $DB->insert_record('rating', $rating1);
// Rate the entry as user3. // Rate the entry as user3.
$rating2 = new stdClass(); $rating2 = new \stdClass();
$rating2->contextid = $context->id; $rating2->contextid = $context->id;
$rating2->component = 'mod_glossary'; $rating2->component = 'mod_glossary';
$rating2->ratingarea = 'entry'; $rating2->ratingarea = 'entry';
@ -1349,7 +1354,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
// As student, retrieve ratings information. // As student, retrieve ratings information.
$this->setUser($user1); $this->setUser($user1);
$result = mod_glossary_external::get_entry_by_id($entry->id); $result = mod_glossary_external::get_entry_by_id($entry->id);
$result = external_api::clean_returnvalue(mod_glossary_external::get_entry_by_id_returns(), $result); $result = \external_api::clean_returnvalue(mod_glossary_external::get_entry_by_id_returns(), $result);
$this->assertCount(1, $result['ratinginfo']['ratings']); $this->assertCount(1, $result['ratinginfo']['ratings']);
$this->assertFalse($result['ratinginfo']['ratings'][0]['canviewaggregate']); $this->assertFalse($result['ratinginfo']['ratings'][0]['canviewaggregate']);
$this->assertFalse($result['ratinginfo']['canviewall']); $this->assertFalse($result['ratinginfo']['canviewall']);
@ -1359,7 +1364,7 @@ class mod_glossary_external_testcase extends externallib_advanced_testcase {
// Now, as teacher, I should see the info correctly. // Now, as teacher, I should see the info correctly.
$this->setUser($teacher); $this->setUser($teacher);
$result = mod_glossary_external::get_entry_by_id($entry->id); $result = mod_glossary_external::get_entry_by_id($entry->id);
$result = external_api::clean_returnvalue(mod_glossary_external::get_entry_by_id_returns(), $result); $result = \external_api::clean_returnvalue(mod_glossary_external::get_entry_by_id_returns(), $result);
$this->assertCount(1, $result['ratinginfo']['ratings']); $this->assertCount(1, $result['ratinginfo']['ratings']);
$this->assertTrue($result['ratinginfo']['ratings'][0]['canviewaggregate']); $this->assertTrue($result['ratinginfo']['ratings'][0]['canviewaggregate']);
$this->assertTrue($result['ratinginfo']['canviewall']); $this->assertTrue($result['ratinginfo']['canviewall']);

View file

@ -23,6 +23,8 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
namespace mod_glossary\search;
defined('MOODLE_INTERNAL') || die(); defined('MOODLE_INTERNAL') || die();
global $CFG; global $CFG;
@ -37,7 +39,7 @@ require_once($CFG->dirroot . '/mod/glossary/tests/generator/lib.php');
* @copyright 2016 David Monllao {@link http://www.davidmonllao.com} * @copyright 2016 David Monllao {@link http://www.davidmonllao.com}
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
class mod_glossary_search_testcase extends advanced_testcase { class search_test extends \advanced_testcase {
/** /**
* @var string Area id * @var string Area id
@ -49,7 +51,7 @@ class mod_glossary_search_testcase extends advanced_testcase {
set_config('enableglobalsearch', true); set_config('enableglobalsearch', true);
// Set \core_search::instance to the mock_search_engine as we don't require the search engine to be working to test this. // Set \core_search::instance to the mock_search_engine as we don't require the search engine to be working to test this.
$search = testable_core_search::instance(); $search = \testable_core_search::instance();
$this->entryareaid = \core_search\manager::generate_areaid('mod_glossary', 'entry'); $this->entryareaid = \core_search\manager::generate_areaid('mod_glossary', 'entry');
} }
@ -94,7 +96,7 @@ class mod_glossary_search_testcase extends advanced_testcase {
$this->getDataGenerator()->enrol_user($user1->id, $course1->id, 'student'); $this->getDataGenerator()->enrol_user($user1->id, $course1->id, 'student');
$this->getDataGenerator()->enrol_user($user2->id, $course1->id, 'student'); $this->getDataGenerator()->enrol_user($user2->id, $course1->id, 'student');
$record = new stdClass(); $record = new \stdClass();
$record->course = $course1->id; $record->course = $course1->id;
$this->setUser($user1); $this->setUser($user1);
@ -138,13 +140,13 @@ class mod_glossary_search_testcase extends advanced_testcase {
self::getDataGenerator()->get_plugin_generator('mod_glossary')->create_content($glossary2); self::getDataGenerator()->get_plugin_generator('mod_glossary')->create_content($glossary2);
// Test indexing with each activity then combined course context. // Test indexing with each activity then combined course context.
$rs = $searcharea->get_document_recordset(0, context_module::instance($glossary1->cmid)); $rs = $searcharea->get_document_recordset(0, \context_module::instance($glossary1->cmid));
$this->assertEquals(2, iterator_count($rs)); $this->assertEquals(2, iterator_count($rs));
$rs->close(); $rs->close();
$rs = $searcharea->get_document_recordset(0, context_module::instance($glossary2->cmid)); $rs = $searcharea->get_document_recordset(0, \context_module::instance($glossary2->cmid));
$this->assertEquals(1, iterator_count($rs)); $this->assertEquals(1, iterator_count($rs));
$rs->close(); $rs->close();
$rs = $searcharea->get_document_recordset(0, context_course::instance($course1->id)); $rs = $searcharea->get_document_recordset(0, \context_course::instance($course1->id));
$this->assertEquals(3, iterator_count($rs)); $this->assertEquals(3, iterator_count($rs));
$rs->close(); $rs->close();
} }
@ -163,7 +165,7 @@ class mod_glossary_search_testcase extends advanced_testcase {
$course1 = self::getDataGenerator()->create_course(); $course1 = self::getDataGenerator()->create_course();
$this->getDataGenerator()->enrol_user($user->id, $course1->id, 'teacher'); $this->getDataGenerator()->enrol_user($user->id, $course1->id, 'teacher');
$record = new stdClass(); $record = new \stdClass();
$record->course = $course1->id; $record->course = $course1->id;
$this->setUser($user); $this->setUser($user);
@ -200,7 +202,7 @@ class mod_glossary_search_testcase extends advanced_testcase {
$this->getDataGenerator()->enrol_user($user1->id, $course1->id, 'teacher'); $this->getDataGenerator()->enrol_user($user1->id, $course1->id, 'teacher');
$this->getDataGenerator()->enrol_user($user2->id, $course1->id, 'student'); $this->getDataGenerator()->enrol_user($user2->id, $course1->id, 'student');
$record = new stdClass(); $record = new \stdClass();
$record->course = $course1->id; $record->course = $course1->id;
// Approved entries by default glossary, created by teacher. // Approved entries by default glossary, created by teacher.

View file

@ -23,13 +23,17 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
namespace mod_lesson\event;
use lesson;
defined('MOODLE_INTERNAL') || die(); defined('MOODLE_INTERNAL') || die();
global $CFG; global $CFG;
require_once($CFG->dirroot.'/mod/lesson/locallib.php'); require_once($CFG->dirroot.'/mod/lesson/locallib.php');
class mod_lesson_events_testcase extends advanced_testcase { class events_test extends \advanced_testcase {
/** @var stdClass the course used for testing */ /** @var stdClass the course used for testing */
private $course; private $course;
@ -146,7 +150,7 @@ class mod_lesson_events_testcase extends advanced_testcase {
// Trigger an event: page updated. // Trigger an event: page updated.
$eventparams = array( $eventparams = array(
'context' => context_module::instance($this->lesson->properties()->cmid), 'context' => \context_module::instance($this->lesson->properties()->cmid),
'objectid' => 25, 'objectid' => 25,
'other' => array( 'other' => array(
'pagetype' => 'True/false' 'pagetype' => 'True/false'
@ -180,7 +184,7 @@ class mod_lesson_events_testcase extends advanced_testcase {
$event = \mod_lesson\event\essay_attempt_viewed::create(array( $event = \mod_lesson\event\essay_attempt_viewed::create(array(
'objectid' => $this->lesson->id, 'objectid' => $this->lesson->id,
'relateduserid' => 3, 'relateduserid' => 3,
'context' => context_module::instance($this->lesson->properties()->cmid), 'context' => \context_module::instance($this->lesson->properties()->cmid),
'courseid' => $this->course->id 'courseid' => $this->course->id
)); ));
@ -192,7 +196,7 @@ class mod_lesson_events_testcase extends advanced_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\mod_lesson\event\essay_attempt_viewed', $event); $this->assertInstanceOf('\mod_lesson\event\essay_attempt_viewed', $event);
$this->assertEquals(context_module::instance($this->lesson->properties()->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($this->lesson->properties()->cmid), $event->get_context());
$expected = array($this->course->id, 'lesson', 'view grade', 'essay.php?id=' . $this->lesson->properties()->cmid . $expected = array($this->course->id, 'lesson', 'view grade', 'essay.php?id=' . $this->lesson->properties()->cmid .
'&mode=grade&attemptid='.$this->lesson->id, get_string('manualgrading', 'lesson'), $this->lesson->properties()->cmid); '&mode=grade&attemptid='.$this->lesson->id, get_string('manualgrading', 'lesson'), $this->lesson->properties()->cmid);
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
@ -211,7 +215,7 @@ class mod_lesson_events_testcase extends advanced_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\mod_lesson\event\lesson_started', $event); $this->assertInstanceOf('\mod_lesson\event\lesson_started', $event);
$this->assertEquals(context_module::instance($this->lesson->properties()->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($this->lesson->properties()->cmid), $event->get_context());
$expected = array($this->course->id, 'lesson', 'start', 'view.php?id=' . $this->lesson->properties()->cmid, $expected = array($this->course->id, 'lesson', 'start', 'view.php?id=' . $this->lesson->properties()->cmid,
$this->lesson->properties()->id, $this->lesson->properties()->cmid); $this->lesson->properties()->id, $this->lesson->properties()->cmid);
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
@ -233,7 +237,7 @@ class mod_lesson_events_testcase extends advanced_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\mod_lesson\event\lesson_restarted', $event); $this->assertInstanceOf('\mod_lesson\event\lesson_restarted', $event);
$this->assertEquals(context_module::instance($this->lesson->properties()->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($this->lesson->properties()->cmid), $event->get_context());
$expected = array($this->course->id, 'lesson', 'start', 'view.php?id=' . $this->lesson->properties()->cmid, $expected = array($this->course->id, 'lesson', 'start', 'view.php?id=' . $this->lesson->properties()->cmid,
$this->lesson->properties()->id, $this->lesson->properties()->cmid); $this->lesson->properties()->id, $this->lesson->properties()->cmid);
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
@ -256,7 +260,7 @@ class mod_lesson_events_testcase extends advanced_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\mod_lesson\event\lesson_resumed', $event); $this->assertInstanceOf('\mod_lesson\event\lesson_resumed', $event);
$this->assertEquals(context_module::instance($this->lesson->properties()->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($this->lesson->properties()->cmid), $event->get_context());
$expected = array($this->course->id, 'lesson', 'start', 'view.php?id=' . $this->lesson->properties()->cmid, $expected = array($this->course->id, 'lesson', 'start', 'view.php?id=' . $this->lesson->properties()->cmid,
$this->lesson->properties()->id, $this->lesson->properties()->cmid); $this->lesson->properties()->id, $this->lesson->properties()->cmid);
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
@ -270,7 +274,7 @@ class mod_lesson_events_testcase extends advanced_testcase {
global $DB, $USER; global $DB, $USER;
// Add a lesson timer so that stop_timer() does not complain. // Add a lesson timer so that stop_timer() does not complain.
$lessontimer = new stdClass(); $lessontimer = new \stdClass();
$lessontimer->lessonid = $this->lesson->properties()->id; $lessontimer->lessonid = $this->lesson->properties()->id;
$lessontimer->userid = $USER->id; $lessontimer->userid = $USER->id;
$lessontimer->startime = time(); $lessontimer->startime = time();
@ -285,7 +289,7 @@ class mod_lesson_events_testcase extends advanced_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\mod_lesson\event\lesson_ended', $event); $this->assertInstanceOf('\mod_lesson\event\lesson_ended', $event);
$this->assertEquals(context_module::instance($this->lesson->properties()->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($this->lesson->properties()->cmid), $event->get_context());
$expected = array($this->course->id, 'lesson', 'end', 'view.php?id=' . $this->lesson->properties()->cmid, $expected = array($this->course->id, 'lesson', 'end', 'view.php?id=' . $this->lesson->properties()->cmid,
$this->lesson->properties()->id, $this->lesson->properties()->cmid); $this->lesson->properties()->id, $this->lesson->properties()->cmid);
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
@ -305,7 +309,7 @@ class mod_lesson_events_testcase extends advanced_testcase {
$event = \mod_lesson\event\essay_assessed::create(array( $event = \mod_lesson\event\essay_assessed::create(array(
'objectid' => $gradeid, 'objectid' => $gradeid,
'relateduserid' => 3, 'relateduserid' => 3,
'context' => context_module::instance($this->lesson->properties()->cmid), 'context' => \context_module::instance($this->lesson->properties()->cmid),
'courseid' => $this->course->id, 'courseid' => $this->course->id,
'other' => array( 'other' => array(
'lessonid' => $this->lesson->id, 'lessonid' => $this->lesson->id,
@ -321,7 +325,7 @@ class mod_lesson_events_testcase extends advanced_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\mod_lesson\event\essay_assessed', $event); $this->assertInstanceOf('\mod_lesson\event\essay_assessed', $event);
$this->assertEquals(context_module::instance($this->lesson->properties()->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($this->lesson->properties()->cmid), $event->get_context());
$expected = array($this->course->id, 'lesson', 'update grade', 'essay.php?id=' . $this->lesson->properties()->cmid, $expected = array($this->course->id, 'lesson', 'update grade', 'essay.php?id=' . $this->lesson->properties()->cmid,
$this->lesson->name, $this->lesson->properties()->cmid); $this->lesson->name, $this->lesson->properties()->cmid);
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
@ -407,7 +411,7 @@ class mod_lesson_events_testcase extends advanced_testcase {
// Trigger an event: truefalse question answered. // Trigger an event: truefalse question answered.
$eventparams = array( $eventparams = array(
'context' => context_module::instance($this->lesson->properties()->cmid), 'context' => \context_module::instance($this->lesson->properties()->cmid),
'objectid' => 25, 'objectid' => 25,
'other' => array( 'other' => array(
'pagetype' => 'True/false' 'pagetype' => 'True/false'
@ -441,7 +445,7 @@ class mod_lesson_events_testcase extends advanced_testcase {
$params = array( $params = array(
'objectid' => 1, 'objectid' => 1,
'relateduserid' => 2, 'relateduserid' => 2,
'context' => context_module::instance($this->lesson->properties()->cmid), 'context' => \context_module::instance($this->lesson->properties()->cmid),
'other' => array( 'other' => array(
'lessonid' => $this->lesson->id 'lessonid' => $this->lesson->id
) )
@ -456,7 +460,7 @@ class mod_lesson_events_testcase extends advanced_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\mod_lesson\event\user_override_created', $event); $this->assertInstanceOf('\mod_lesson\event\user_override_created', $event);
$this->assertEquals(context_module::instance($this->lesson->properties()->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($this->lesson->properties()->cmid), $event->get_context());
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
} }
@ -470,7 +474,7 @@ class mod_lesson_events_testcase extends advanced_testcase {
$params = array( $params = array(
'objectid' => 1, 'objectid' => 1,
'context' => context_module::instance($this->lesson->properties()->cmid), 'context' => \context_module::instance($this->lesson->properties()->cmid),
'other' => array( 'other' => array(
'lessonid' => $this->lesson->id, 'lessonid' => $this->lesson->id,
'groupid' => 2 'groupid' => 2
@ -486,7 +490,7 @@ class mod_lesson_events_testcase extends advanced_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\mod_lesson\event\group_override_created', $event); $this->assertInstanceOf('\mod_lesson\event\group_override_created', $event);
$this->assertEquals(context_module::instance($this->lesson->properties()->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($this->lesson->properties()->cmid), $event->get_context());
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
} }
@ -501,7 +505,7 @@ class mod_lesson_events_testcase extends advanced_testcase {
$params = array( $params = array(
'objectid' => 1, 'objectid' => 1,
'relateduserid' => 2, 'relateduserid' => 2,
'context' => context_module::instance($this->lesson->properties()->cmid), 'context' => \context_module::instance($this->lesson->properties()->cmid),
'other' => array( 'other' => array(
'lessonid' => $this->lesson->id 'lessonid' => $this->lesson->id
) )
@ -516,7 +520,7 @@ class mod_lesson_events_testcase extends advanced_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\mod_lesson\event\user_override_updated', $event); $this->assertInstanceOf('\mod_lesson\event\user_override_updated', $event);
$this->assertEquals(context_module::instance($this->lesson->properties()->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($this->lesson->properties()->cmid), $event->get_context());
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
} }
@ -530,7 +534,7 @@ class mod_lesson_events_testcase extends advanced_testcase {
$params = array( $params = array(
'objectid' => 1, 'objectid' => 1,
'context' => context_module::instance($this->lesson->properties()->cmid), 'context' => \context_module::instance($this->lesson->properties()->cmid),
'other' => array( 'other' => array(
'lessonid' => $this->lesson->id, 'lessonid' => $this->lesson->id,
'groupid' => 2 'groupid' => 2
@ -546,7 +550,7 @@ class mod_lesson_events_testcase extends advanced_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\mod_lesson\event\group_override_updated', $event); $this->assertInstanceOf('\mod_lesson\event\group_override_updated', $event);
$this->assertEquals(context_module::instance($this->lesson->properties()->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($this->lesson->properties()->cmid), $event->get_context());
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
} }
@ -557,7 +561,7 @@ class mod_lesson_events_testcase extends advanced_testcase {
global $DB; global $DB;
// Create an override. // Create an override.
$override = new stdClass(); $override = new \stdClass();
$override->lesson = $this->lesson->id; $override->lesson = $this->lesson->id;
$override->userid = 2; $override->userid = 2;
$override->id = $DB->insert_record('lesson_overrides', $override); $override->id = $DB->insert_record('lesson_overrides', $override);
@ -570,7 +574,7 @@ class mod_lesson_events_testcase extends advanced_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\mod_lesson\event\user_override_deleted', $event); $this->assertInstanceOf('\mod_lesson\event\user_override_deleted', $event);
$this->assertEquals(context_module::instance($this->lesson->properties()->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($this->lesson->properties()->cmid), $event->get_context());
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
} }
@ -581,7 +585,7 @@ class mod_lesson_events_testcase extends advanced_testcase {
global $DB; global $DB;
// Create an override. // Create an override.
$override = new stdClass(); $override = new \stdClass();
$override->lesson = $this->lesson->id; $override->lesson = $this->lesson->id;
$override->groupid = 2; $override->groupid = 2;
$override->id = $DB->insert_record('lesson_overrides', $override); $override->id = $DB->insert_record('lesson_overrides', $override);
@ -594,7 +598,7 @@ class mod_lesson_events_testcase extends advanced_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\mod_lesson\event\group_override_deleted', $event); $this->assertInstanceOf('\mod_lesson\event\group_override_deleted', $event);
$this->assertEquals(context_module::instance($this->lesson->properties()->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($this->lesson->properties()->cmid), $event->get_context());
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
} }
} }

View file

@ -24,6 +24,12 @@
* @since Moodle 3.3 * @since Moodle 3.3
*/ */
namespace mod_lesson\external;
use externallib_advanced_testcase;
use mod_lesson_external;
use lesson;
defined('MOODLE_INTERNAL') || die(); defined('MOODLE_INTERNAL') || die();
global $CFG; global $CFG;
@ -64,7 +70,7 @@ class testable_mod_lesson_external extends mod_lesson_external {
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since Moodle 3.3 * @since Moodle 3.3
*/ */
class mod_lesson_external_testcase extends externallib_advanced_testcase { class external_test extends externallib_advanced_testcase {
/** /**
* Set up for every test * Set up for every test
@ -80,7 +86,7 @@ class mod_lesson_external_testcase extends externallib_advanced_testcase {
$lessongenerator = $this->getDataGenerator()->get_plugin_generator('mod_lesson'); $lessongenerator = $this->getDataGenerator()->get_plugin_generator('mod_lesson');
$this->page1 = $lessongenerator->create_content($this->lesson); $this->page1 = $lessongenerator->create_content($this->lesson);
$this->page2 = $lessongenerator->create_question_truefalse($this->lesson); $this->page2 = $lessongenerator->create_question_truefalse($this->lesson);
$this->context = context_module::instance($this->lesson->cmid); $this->context = \context_module::instance($this->lesson->cmid);
$this->cm = get_coursemodule_from_instance('lesson', $this->lesson->id); $this->cm = get_coursemodule_from_instance('lesson', $this->lesson->id);
// Create users. // Create users.
@ -106,7 +112,7 @@ class mod_lesson_external_testcase extends externallib_advanced_testcase {
$course2 = self::getDataGenerator()->create_course(); $course2 = self::getDataGenerator()->create_course();
// Second lesson. // Second lesson.
$record = new stdClass(); $record = new \stdClass();
$record->course = $course2->id; $record->course = $course2->id;
$record->name = '<span lang="en" class="multilang">English</span><span lang="es" class="multilang">Español</span>'; $record->name = '<span lang="en" class="multilang">English</span><span lang="es" class="multilang">Español</span>';
$lesson2 = self::getDataGenerator()->create_module('lesson', $record); $lesson2 = self::getDataGenerator()->create_module('lesson', $record);
@ -125,11 +131,11 @@ class mod_lesson_external_testcase extends externallib_advanced_testcase {
self::setUser($this->student); self::setUser($this->student);
// Enable multilang filter to on content and heading. // 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_global_state('multilang', TEXTFILTER_ON);
filter_set_applies_to_strings('multilang', true); filter_set_applies_to_strings('multilang', true);
// Set WS filtering. // Set WS filtering.
$wssettings = external_settings::get_instance(); $wssettings = \external_settings::get_instance();
$wssettings->set_filter(true); $wssettings->set_filter(true);
$returndescription = mod_lesson_external::get_lessons_by_courses_returns(); $returndescription = mod_lesson_external::get_lessons_by_courses_returns();
@ -172,14 +178,14 @@ class mod_lesson_external_testcase extends externallib_advanced_testcase {
// Call the external function passing course ids. // Call the external function passing course ids.
$result = mod_lesson_external::get_lessons_by_courses(array($course2->id, $this->course->id)); $result = mod_lesson_external::get_lessons_by_courses(array($course2->id, $this->course->id));
$result = external_api::clean_returnvalue($returndescription, $result); $result = \external_api::clean_returnvalue($returndescription, $result);
$this->assertEquals($expectedlessons, $result['lessons']); $this->assertEquals($expectedlessons, $result['lessons']);
$this->assertCount(0, $result['warnings']); $this->assertCount(0, $result['warnings']);
// Call the external function without passing course id. // Call the external function without passing course id.
$result = mod_lesson_external::get_lessons_by_courses(); $result = mod_lesson_external::get_lessons_by_courses();
$result = external_api::clean_returnvalue($returndescription, $result); $result = \external_api::clean_returnvalue($returndescription, $result);
$this->assertEquals($expectedlessons, $result['lessons']); $this->assertEquals($expectedlessons, $result['lessons']);
$this->assertCount(0, $result['warnings']); $this->assertCount(0, $result['warnings']);
@ -189,7 +195,7 @@ class mod_lesson_external_testcase extends externallib_advanced_testcase {
// Call the external function without passing course id. // Call the external function without passing course id.
$result = mod_lesson_external::get_lessons_by_courses(); $result = mod_lesson_external::get_lessons_by_courses();
$result = external_api::clean_returnvalue($returndescription, $result); $result = \external_api::clean_returnvalue($returndescription, $result);
$this->assertEquals($expectedlessons, $result['lessons']); $this->assertEquals($expectedlessons, $result['lessons']);
// Call for the second course we unenrolled the user from, expected warning. // Call for the second course we unenrolled the user from, expected warning.
@ -209,14 +215,14 @@ class mod_lesson_external_testcase extends externallib_advanced_testcase {
} }
$result = mod_lesson_external::get_lessons_by_courses(); $result = mod_lesson_external::get_lessons_by_courses();
$result = external_api::clean_returnvalue($returndescription, $result); $result = \external_api::clean_returnvalue($returndescription, $result);
$this->assertEquals($expectedlessons, $result['lessons']); $this->assertEquals($expectedlessons, $result['lessons']);
// Admin also should get all the information. // Admin also should get all the information.
self::setAdminUser(); self::setAdminUser();
$result = mod_lesson_external::get_lessons_by_courses(array($this->course->id)); $result = mod_lesson_external::get_lessons_by_courses(array($this->course->id));
$result = external_api::clean_returnvalue($returndescription, $result); $result = \external_api::clean_returnvalue($returndescription, $result);
$this->assertEquals($expectedlessons, $result['lessons']); $this->assertEquals($expectedlessons, $result['lessons']);
// Now, add a restriction. // Now, add a restriction.
@ -225,7 +231,7 @@ class mod_lesson_external_testcase extends externallib_advanced_testcase {
$DB->set_field('lesson', 'password', 'abc', array('id' => $lesson1->id)); $DB->set_field('lesson', 'password', 'abc', array('id' => $lesson1->id));
$lessons = mod_lesson_external::get_lessons_by_courses(array($this->course->id)); $lessons = mod_lesson_external::get_lessons_by_courses(array($this->course->id));
$lessons = external_api::clean_returnvalue(mod_lesson_external::get_lessons_by_courses_returns(), $lessons); $lessons = \external_api::clean_returnvalue(mod_lesson_external::get_lessons_by_courses_returns(), $lessons);
$this->assertFalse(isset($lessons['lessons'][0]['intro'])); $this->assertFalse(isset($lessons['lessons'][0]['intro']));
} }
@ -271,7 +277,7 @@ class mod_lesson_external_testcase extends externallib_advanced_testcase {
$this->assertCount(0, $validation); $this->assertCount(0, $validation);
// Dependencies. // Dependencies.
$record = new stdClass(); $record = new \stdClass();
$record->course = $this->course->id; $record->course = $this->course->id;
$lesson2 = self::getDataGenerator()->create_module('lesson', $record); $lesson2 = self::getDataGenerator()->create_module('lesson', $record);
$DB->set_field('lesson', 'usepassword', 0, array('id' => $this->lesson->id)); $DB->set_field('lesson', 'usepassword', 0, array('id' => $this->lesson->id));
@ -309,7 +315,7 @@ class mod_lesson_external_testcase extends externallib_advanced_testcase {
// Test time limit restriction. // Test time limit restriction.
$timenow = time(); $timenow = time();
// Create a timer for the current user. // Create a timer for the current user.
$timer1 = new stdClass; $timer1 = new \stdClass;
$timer1->lessonid = $this->lesson->id; $timer1->lessonid = $this->lesson->id;
$timer1->userid = $this->student->id; $timer1->userid = $this->student->id;
$timer1->completed = 0; $timer1->completed = 0;
@ -343,7 +349,7 @@ class mod_lesson_external_testcase extends externallib_advanced_testcase {
$DB->insert_record('lesson_grades', (object) $record); $DB->insert_record('lesson_grades', (object) $record);
$result = mod_lesson_external::get_lesson_access_information($this->lesson->id); $result = mod_lesson_external::get_lesson_access_information($this->lesson->id);
$result = external_api::clean_returnvalue(mod_lesson_external::get_lesson_access_information_returns(), $result); $result = \external_api::clean_returnvalue(mod_lesson_external::get_lesson_access_information_returns(), $result);
$this->assertFalse($result['canmanage']); $this->assertFalse($result['canmanage']);
$this->assertFalse($result['cangrade']); $this->assertFalse($result['cangrade']);
$this->assertFalse($result['canviewreports']); $this->assertFalse($result['canviewreports']);
@ -361,7 +367,7 @@ class mod_lesson_external_testcase extends externallib_advanced_testcase {
// Now check permissions as admin. // Now check permissions as admin.
$this->setAdminUser(); $this->setAdminUser();
$result = mod_lesson_external::get_lesson_access_information($this->lesson->id); $result = mod_lesson_external::get_lesson_access_information($this->lesson->id);
$result = external_api::clean_returnvalue(mod_lesson_external::get_lesson_access_information_returns(), $result); $result = \external_api::clean_returnvalue(mod_lesson_external::get_lesson_access_information_returns(), $result);
$this->assertTrue($result['canmanage']); $this->assertTrue($result['canmanage']);
$this->assertTrue($result['cangrade']); $this->assertTrue($result['cangrade']);
$this->assertTrue($result['canviewreports']); $this->assertTrue($result['canviewreports']);
@ -397,7 +403,7 @@ class mod_lesson_external_testcase extends externallib_advanced_testcase {
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();
$result = mod_lesson_external::view_lesson($this->lesson->id); $result = mod_lesson_external::view_lesson($this->lesson->id);
$result = external_api::clean_returnvalue(mod_lesson_external::view_lesson_returns(), $result); $result = \external_api::clean_returnvalue(mod_lesson_external::view_lesson_returns(), $result);
$this->assertTrue($result['status']); $this->assertTrue($result['status']);
$events = $sink->get_events(); $events = $sink->get_events();
@ -422,7 +428,7 @@ class mod_lesson_external_testcase extends externallib_advanced_testcase {
assign_capability('mod/lesson:view', CAP_PROHIBIT, $this->studentrole->id, $this->context->id); assign_capability('mod/lesson:view', CAP_PROHIBIT, $this->studentrole->id, $this->context->id);
// Empty all the caches that may be affected by this change. // Empty all the caches that may be affected by this change.
accesslib_clear_all_caches_for_unit_testing(); accesslib_clear_all_caches_for_unit_testing();
course_modinfo::clear_instance_cache(); \course_modinfo::clear_instance_cache();
$this->setUser($this->student); $this->setUser($this->student);
$this->expectException('moodle_exception'); $this->expectException('moodle_exception');
@ -440,7 +446,7 @@ class mod_lesson_external_testcase extends externallib_advanced_testcase {
// Test lesson without page attempts. // Test lesson without page attempts.
$result = mod_lesson_external::get_questions_attempts($this->lesson->id, $attemptnumber); $result = mod_lesson_external::get_questions_attempts($this->lesson->id, $attemptnumber);
$result = external_api::clean_returnvalue(mod_lesson_external::get_questions_attempts_returns(), $result); $result = \external_api::clean_returnvalue(mod_lesson_external::get_questions_attempts_returns(), $result);
$this->assertCount(0, $result['warnings']); $this->assertCount(0, $result['warnings']);
$this->assertCount(0, $result['attempts']); $this->assertCount(0, $result['attempts']);
@ -461,7 +467,7 @@ class mod_lesson_external_testcase extends externallib_advanced_testcase {
$DB->insert_record('lesson_attempts', (object) $newpageattempt); $DB->insert_record('lesson_attempts', (object) $newpageattempt);
$result = mod_lesson_external::get_questions_attempts($this->lesson->id, $attemptnumber); $result = mod_lesson_external::get_questions_attempts($this->lesson->id, $attemptnumber);
$result = external_api::clean_returnvalue(mod_lesson_external::get_questions_attempts_returns(), $result); $result = \external_api::clean_returnvalue(mod_lesson_external::get_questions_attempts_returns(), $result);
$this->assertCount(0, $result['warnings']); $this->assertCount(0, $result['warnings']);
$this->assertCount(1, $result['attempts']); $this->assertCount(1, $result['attempts']);
@ -470,20 +476,20 @@ class mod_lesson_external_testcase extends externallib_advanced_testcase {
// Test filtering. Only correct. // Test filtering. Only correct.
$result = mod_lesson_external::get_questions_attempts($this->lesson->id, $attemptnumber, true); $result = mod_lesson_external::get_questions_attempts($this->lesson->id, $attemptnumber, true);
$result = external_api::clean_returnvalue(mod_lesson_external::get_questions_attempts_returns(), $result); $result = \external_api::clean_returnvalue(mod_lesson_external::get_questions_attempts_returns(), $result);
$this->assertCount(0, $result['warnings']); $this->assertCount(0, $result['warnings']);
$this->assertCount(1, $result['attempts']); $this->assertCount(1, $result['attempts']);
// Test filtering. Only correct only for page 2. // Test filtering. Only correct only for page 2.
$result = mod_lesson_external::get_questions_attempts($this->lesson->id, $attemptnumber, true, $this->page2->id); $result = mod_lesson_external::get_questions_attempts($this->lesson->id, $attemptnumber, true, $this->page2->id);
$result = external_api::clean_returnvalue(mod_lesson_external::get_questions_attempts_returns(), $result); $result = \external_api::clean_returnvalue(mod_lesson_external::get_questions_attempts_returns(), $result);
$this->assertCount(0, $result['warnings']); $this->assertCount(0, $result['warnings']);
$this->assertCount(1, $result['attempts']); $this->assertCount(1, $result['attempts']);
// Teacher retrieve student page attempts. // Teacher retrieve student page attempts.
$this->setUser($this->teacher); $this->setUser($this->teacher);
$result = mod_lesson_external::get_questions_attempts($this->lesson->id, $attemptnumber, false, null, $this->student->id); $result = mod_lesson_external::get_questions_attempts($this->lesson->id, $attemptnumber, false, null, $this->student->id);
$result = external_api::clean_returnvalue(mod_lesson_external::get_questions_attempts_returns(), $result); $result = \external_api::clean_returnvalue(mod_lesson_external::get_questions_attempts_returns(), $result);
$this->assertCount(0, $result['warnings']); $this->assertCount(0, $result['warnings']);
$this->assertCount(1, $result['attempts']); $this->assertCount(1, $result['attempts']);
@ -522,7 +528,7 @@ class mod_lesson_external_testcase extends externallib_advanced_testcase {
// Test lesson without multiple attemps. The first result must be returned. // Test lesson without multiple attemps. The first result must be returned.
$result = mod_lesson_external::get_user_grade($this->lesson->id); $result = mod_lesson_external::get_user_grade($this->lesson->id);
$result = external_api::clean_returnvalue(mod_lesson_external::get_user_grade_returns(), $result); $result = \external_api::clean_returnvalue(mod_lesson_external::get_user_grade_returns(), $result);
$this->assertCount(0, $result['warnings']); $this->assertCount(0, $result['warnings']);
$this->assertEquals(50, $result['grade']); $this->assertEquals(50, $result['grade']);
$this->assertEquals('50.00', $result['formattedgrade']); $this->assertEquals('50.00', $result['formattedgrade']);
@ -530,7 +536,7 @@ class mod_lesson_external_testcase extends externallib_advanced_testcase {
// With retakes. By default average. // With retakes. By default average.
$DB->set_field('lesson', 'retake', 1, array('id' => $this->lesson->id)); $DB->set_field('lesson', 'retake', 1, array('id' => $this->lesson->id));
$result = mod_lesson_external::get_user_grade($this->lesson->id, $this->student->id); $result = mod_lesson_external::get_user_grade($this->lesson->id, $this->student->id);
$result = external_api::clean_returnvalue(mod_lesson_external::get_user_grade_returns(), $result); $result = \external_api::clean_returnvalue(mod_lesson_external::get_user_grade_returns(), $result);
$this->assertCount(0, $result['warnings']); $this->assertCount(0, $result['warnings']);
$this->assertEquals(75, $result['grade']); $this->assertEquals(75, $result['grade']);
$this->assertEquals('75.00', $result['formattedgrade']); $this->assertEquals('75.00', $result['formattedgrade']);
@ -538,7 +544,7 @@ class mod_lesson_external_testcase extends externallib_advanced_testcase {
// With retakes. With max grade setting. // With retakes. With max grade setting.
$DB->set_field('lesson', 'usemaxgrade', 1, array('id' => $this->lesson->id)); $DB->set_field('lesson', 'usemaxgrade', 1, array('id' => $this->lesson->id));
$result = mod_lesson_external::get_user_grade($this->lesson->id, $this->student->id); $result = mod_lesson_external::get_user_grade($this->lesson->id, $this->student->id);
$result = external_api::clean_returnvalue(mod_lesson_external::get_user_grade_returns(), $result); $result = \external_api::clean_returnvalue(mod_lesson_external::get_user_grade_returns(), $result);
$this->assertCount(0, $result['warnings']); $this->assertCount(0, $result['warnings']);
$this->assertEquals(100, $result['grade']); $this->assertEquals(100, $result['grade']);
$this->assertEquals('100.00', $result['formattedgrade']); $this->assertEquals('100.00', $result['formattedgrade']);
@ -546,7 +552,7 @@ class mod_lesson_external_testcase extends externallib_advanced_testcase {
// Test as teacher we get the same result. // Test as teacher we get the same result.
$this->setUser($this->teacher); $this->setUser($this->teacher);
$result = mod_lesson_external::get_user_grade($this->lesson->id, $this->student->id); $result = mod_lesson_external::get_user_grade($this->lesson->id, $this->student->id);
$result = external_api::clean_returnvalue(mod_lesson_external::get_user_grade_returns(), $result); $result = \external_api::clean_returnvalue(mod_lesson_external::get_user_grade_returns(), $result);
$this->assertCount(0, $result['warnings']); $this->assertCount(0, $result['warnings']);
$this->assertEquals(100, $result['grade']); $this->assertEquals(100, $result['grade']);
$this->assertEquals('100.00', $result['formattedgrade']); $this->assertEquals('100.00', $result['formattedgrade']);
@ -584,7 +590,7 @@ class mod_lesson_external_testcase extends externallib_advanced_testcase {
$DB->set_field('lesson', 'custom', 0, array('id' => $this->lesson->id)); $DB->set_field('lesson', 'custom', 0, array('id' => $this->lesson->id));
$this->setUser($this->student); $this->setUser($this->student);
$result = mod_lesson_external::get_user_attempt_grade($this->lesson->id, $attemptnumber, $this->student->id); $result = mod_lesson_external::get_user_attempt_grade($this->lesson->id, $attemptnumber, $this->student->id);
$result = external_api::clean_returnvalue(mod_lesson_external::get_user_attempt_grade_returns(), $result); $result = \external_api::clean_returnvalue(mod_lesson_external::get_user_attempt_grade_returns(), $result);
$this->assertCount(0, $result['warnings']); $this->assertCount(0, $result['warnings']);
$this->assertEquals(1, $result['grade']['nquestions']); $this->assertEquals(1, $result['grade']['nquestions']);
$this->assertEquals(1, $result['grade']['attempts']); $this->assertEquals(1, $result['grade']['attempts']);
@ -597,7 +603,7 @@ class mod_lesson_external_testcase extends externallib_advanced_testcase {
// With custom scoring, in this case, we don't retrieve any values since we are using questions without particular score. // With custom scoring, in this case, we don't retrieve any values since we are using questions without particular score.
$DB->set_field('lesson', 'custom', 1, array('id' => $this->lesson->id)); $DB->set_field('lesson', 'custom', 1, array('id' => $this->lesson->id));
$result = mod_lesson_external::get_user_attempt_grade($this->lesson->id, $attemptnumber, $this->student->id); $result = mod_lesson_external::get_user_attempt_grade($this->lesson->id, $attemptnumber, $this->student->id);
$result = external_api::clean_returnvalue(mod_lesson_external::get_user_attempt_grade_returns(), $result); $result = \external_api::clean_returnvalue(mod_lesson_external::get_user_attempt_grade_returns(), $result);
$this->assertCount(0, $result['warnings']); $this->assertCount(0, $result['warnings']);
$this->assertEquals(1, $result['grade']['nquestions']); $this->assertEquals(1, $result['grade']['nquestions']);
$this->assertEquals(1, $result['grade']['attempts']); $this->assertEquals(1, $result['grade']['attempts']);
@ -618,7 +624,7 @@ class mod_lesson_external_testcase extends externallib_advanced_testcase {
$lessongenerator = $this->getDataGenerator()->get_plugin_generator('mod_lesson'); $lessongenerator = $this->getDataGenerator()->get_plugin_generator('mod_lesson');
$page3 = $lessongenerator->create_content($this->lesson); $page3 = $lessongenerator->create_content($this->lesson);
$branch1 = new stdClass; $branch1 = new \stdClass;
$branch1->lessonid = $this->lesson->id; $branch1->lessonid = $this->lesson->id;
$branch1->userid = $this->student->id; $branch1->userid = $this->student->id;
$branch1->pageid = $this->page1->id; $branch1->pageid = $this->page1->id;
@ -628,7 +634,7 @@ class mod_lesson_external_testcase extends externallib_advanced_testcase {
$branch1->nextpageid = $page3->id; $branch1->nextpageid = $page3->id;
$branch1->id = $DB->insert_record("lesson_branch", $branch1); $branch1->id = $DB->insert_record("lesson_branch", $branch1);
$branch2 = new stdClass; $branch2 = new \stdClass;
$branch2->lessonid = $this->lesson->id; $branch2->lessonid = $this->lesson->id;
$branch2->userid = $this->student->id; $branch2->userid = $this->student->id;
$branch2->pageid = $page3->id; $branch2->pageid = $page3->id;
@ -640,7 +646,7 @@ class mod_lesson_external_testcase extends externallib_advanced_testcase {
// Test first attempt. // Test first attempt.
$result = mod_lesson_external::get_content_pages_viewed($this->lesson->id, 1, $this->student->id); $result = mod_lesson_external::get_content_pages_viewed($this->lesson->id, 1, $this->student->id);
$result = external_api::clean_returnvalue(mod_lesson_external::get_content_pages_viewed_returns(), $result); $result = \external_api::clean_returnvalue(mod_lesson_external::get_content_pages_viewed_returns(), $result);
$this->assertCount(0, $result['warnings']); $this->assertCount(0, $result['warnings']);
$this->assertCount(2, $result['pages']); $this->assertCount(2, $result['pages']);
foreach ($result['pages'] as $page) { foreach ($result['pages'] as $page) {
@ -653,7 +659,7 @@ class mod_lesson_external_testcase extends externallib_advanced_testcase {
// Attempt without pages viewed. // Attempt without pages viewed.
$result = mod_lesson_external::get_content_pages_viewed($this->lesson->id, 3, $this->student->id); $result = mod_lesson_external::get_content_pages_viewed($this->lesson->id, 3, $this->student->id);
$result = external_api::clean_returnvalue(mod_lesson_external::get_content_pages_viewed_returns(), $result); $result = \external_api::clean_returnvalue(mod_lesson_external::get_content_pages_viewed_returns(), $result);
$this->assertCount(0, $result['warnings']); $this->assertCount(0, $result['warnings']);
$this->assertCount(0, $result['pages']); $this->assertCount(0, $result['pages']);
} }
@ -665,7 +671,7 @@ class mod_lesson_external_testcase extends externallib_advanced_testcase {
global $DB; global $DB;
// Create a couple of timers for the current user. // Create a couple of timers for the current user.
$timer1 = new stdClass; $timer1 = new \stdClass;
$timer1->lessonid = $this->lesson->id; $timer1->lessonid = $this->lesson->id;
$timer1->userid = $this->student->id; $timer1->userid = $this->student->id;
$timer1->completed = 1; $timer1->completed = 1;
@ -674,7 +680,7 @@ class mod_lesson_external_testcase extends externallib_advanced_testcase {
$timer1->timemodifiedoffline = time(); $timer1->timemodifiedoffline = time();
$timer1->id = $DB->insert_record("lesson_timer", $timer1); $timer1->id = $DB->insert_record("lesson_timer", $timer1);
$timer2 = new stdClass; $timer2 = new \stdClass;
$timer2->lessonid = $this->lesson->id; $timer2->lessonid = $this->lesson->id;
$timer2->userid = $this->student->id; $timer2->userid = $this->student->id;
$timer2->completed = 0; $timer2->completed = 0;
@ -685,7 +691,7 @@ class mod_lesson_external_testcase extends externallib_advanced_testcase {
// Test retrieve timers. // Test retrieve timers.
$result = mod_lesson_external::get_user_timers($this->lesson->id, $this->student->id); $result = mod_lesson_external::get_user_timers($this->lesson->id, $this->student->id);
$result = external_api::clean_returnvalue(mod_lesson_external::get_user_timers_returns(), $result); $result = \external_api::clean_returnvalue(mod_lesson_external::get_user_timers_returns(), $result);
$this->assertCount(0, $result['warnings']); $this->assertCount(0, $result['warnings']);
$this->assertCount(2, $result['timers']); $this->assertCount(2, $result['timers']);
foreach ($result['timers'] as $timer) { foreach ($result['timers'] as $timer) {
@ -737,7 +743,7 @@ class mod_lesson_external_testcase extends externallib_advanced_testcase {
} }
$result = mod_lesson_external::get_pages($this->lesson->id); $result = mod_lesson_external::get_pages($this->lesson->id);
$result = external_api::clean_returnvalue(mod_lesson_external::get_pages_returns(), $result); $result = \external_api::clean_returnvalue(mod_lesson_external::get_pages_returns(), $result);
$this->assertCount(0, $result['warnings']); $this->assertCount(0, $result['warnings']);
$this->assertCount(3, $result['pages']); $this->assertCount(3, $result['pages']);
@ -757,7 +763,7 @@ class mod_lesson_external_testcase extends externallib_advanced_testcase {
$this->setUser($this->student); $this->setUser($this->student);
$DB->set_field('lesson', 'displayleft', 0, array('id' => $this->lesson->id)); $DB->set_field('lesson', 'displayleft', 0, array('id' => $this->lesson->id));
$result = mod_lesson_external::get_pages($this->lesson->id); $result = mod_lesson_external::get_pages($this->lesson->id);
$result = external_api::clean_returnvalue(mod_lesson_external::get_pages_returns(), $result); $result = \external_api::clean_returnvalue(mod_lesson_external::get_pages_returns(), $result);
$this->assertCount(0, $result['warnings']); $this->assertCount(0, $result['warnings']);
$this->assertCount(3, $result['pages']); $this->assertCount(3, $result['pages']);
@ -775,7 +781,7 @@ class mod_lesson_external_testcase extends externallib_advanced_testcase {
// Test time limit restriction. // Test time limit restriction.
$timenow = time(); $timenow = time();
// Create a timer for the current user. // Create a timer for the current user.
$timer1 = new stdClass; $timer1 = new \stdClass;
$timer1->lessonid = $this->lesson->id; $timer1->lessonid = $this->lesson->id;
$timer1->userid = $this->student->id; $timer1->userid = $this->student->id;
$timer1->completed = 0; $timer1->completed = 0;
@ -787,7 +793,7 @@ class mod_lesson_external_testcase extends externallib_advanced_testcase {
unset($SESSION->lesson_messages); unset($SESSION->lesson_messages);
$result = mod_lesson_external::launch_attempt($this->lesson->id, '', 1); $result = mod_lesson_external::launch_attempt($this->lesson->id, '', 1);
$result = external_api::clean_returnvalue(mod_lesson_external::launch_attempt_returns(), $result); $result = \external_api::clean_returnvalue(mod_lesson_external::launch_attempt_returns(), $result);
$this->assertCount(0, $result['warnings']); $this->assertCount(0, $result['warnings']);
$this->assertCount(2, $result['messages']); $this->assertCount(2, $result['messages']);
@ -807,7 +813,7 @@ class mod_lesson_external_testcase extends externallib_advanced_testcase {
// Create a timer for the current user. // Create a timer for the current user.
$timenow = time(); $timenow = time();
$timer1 = new stdClass; $timer1 = new \stdClass;
$timer1->lessonid = $this->lesson->id; $timer1->lessonid = $this->lesson->id;
$timer1->userid = $this->student->id; $timer1->userid = $this->student->id;
$timer1->completed = 0; $timer1->completed = 0;
@ -818,7 +824,7 @@ class mod_lesson_external_testcase extends externallib_advanced_testcase {
unset($SESSION->lesson_messages); unset($SESSION->lesson_messages);
$this->setUser($this->teacher); $this->setUser($this->teacher);
$result = mod_lesson_external::launch_attempt($this->lesson->id, '', 1, true); $result = mod_lesson_external::launch_attempt($this->lesson->id, '', 1, true);
$result = external_api::clean_returnvalue(mod_lesson_external::launch_attempt_returns(), $result); $result = \external_api::clean_returnvalue(mod_lesson_external::launch_attempt_returns(), $result);
// Everything ok as teacher. // Everything ok as teacher.
$this->assertCount(0, $result['warnings']); $this->assertCount(0, $result['warnings']);
$this->assertCount(0, $result['messages']); $this->assertCount(0, $result['messages']);
@ -837,7 +843,7 @@ class mod_lesson_external_testcase extends externallib_advanced_testcase {
// Create a timer for the current user. // Create a timer for the current user.
$timenow = time(); $timenow = time();
$timer1 = new stdClass; $timer1 = new \stdClass;
$timer1->lessonid = $this->lesson->id; $timer1->lessonid = $this->lesson->id;
$timer1->userid = $this->student->id; $timer1->userid = $this->student->id;
$timer1->completed = 1; $timer1->completed = 1;
@ -871,7 +877,7 @@ class mod_lesson_external_testcase extends externallib_advanced_testcase {
$this->setUser($this->student); $this->setUser($this->student);
$result = mod_lesson_external::launch_attempt($this->lesson->id, '', $this->page2->id, true); $result = mod_lesson_external::launch_attempt($this->lesson->id, '', $this->page2->id, true);
$result = external_api::clean_returnvalue(mod_lesson_external::launch_attempt_returns(), $result); $result = \external_api::clean_returnvalue(mod_lesson_external::launch_attempt_returns(), $result);
// Everything ok as student. // Everything ok as student.
$this->assertCount(0, $result['warnings']); $this->assertCount(0, $result['warnings']);
$this->assertCount(0, $result['messages']); $this->assertCount(0, $result['messages']);
@ -885,7 +891,7 @@ class mod_lesson_external_testcase extends externallib_advanced_testcase {
// Create a timer for the current user. // Create a timer for the current user.
$timenow = time(); $timenow = time();
$timer1 = new stdClass; $timer1 = new \stdClass;
$timer1->lessonid = $this->lesson->id; $timer1->lessonid = $this->lesson->id;
$timer1->userid = $this->student->id; $timer1->userid = $this->student->id;
$timer1->completed = 1; $timer1->completed = 1;
@ -898,7 +904,7 @@ class mod_lesson_external_testcase extends externallib_advanced_testcase {
// Everything ok as teacher. // Everything ok as teacher.
$this->setUser($this->teacher); $this->setUser($this->teacher);
$result = mod_lesson_external::launch_attempt($this->lesson->id, '', 1, true); $result = mod_lesson_external::launch_attempt($this->lesson->id, '', 1, true);
$result = external_api::clean_returnvalue(mod_lesson_external::launch_attempt_returns(), $result); $result = \external_api::clean_returnvalue(mod_lesson_external::launch_attempt_returns(), $result);
$this->assertCount(0, $result['warnings']); $this->assertCount(0, $result['warnings']);
$this->assertCount(0, $result['messages']); $this->assertCount(0, $result['messages']);
@ -916,7 +922,7 @@ class mod_lesson_external_testcase extends externallib_advanced_testcase {
// Test a content page first (page1). // Test a content page first (page1).
$result = mod_lesson_external::get_page_data($this->lesson->id, $this->page1->id, '', false, true); $result = mod_lesson_external::get_page_data($this->lesson->id, $this->page1->id, '', false, true);
$result = external_api::clean_returnvalue(mod_lesson_external::get_page_data_returns(), $result); $result = \external_api::clean_returnvalue(mod_lesson_external::get_page_data_returns(), $result);
$this->assertCount(0, $result['warnings']); $this->assertCount(0, $result['warnings']);
$this->assertCount(0, $result['answers']); // No answers, auto-generated content page. $this->assertCount(0, $result['answers']); // No answers, auto-generated content page.
@ -936,7 +942,7 @@ class mod_lesson_external_testcase extends externallib_advanced_testcase {
// Check now a page with answers (true / false) and with menu available. // Check now a page with answers (true / false) and with menu available.
$DB->set_field('lesson', 'displayleft', 1, array('id' => $this->lesson->id)); $DB->set_field('lesson', 'displayleft', 1, array('id' => $this->lesson->id));
$result = mod_lesson_external::get_page_data($this->lesson->id, $this->page2->id, '', false, true); $result = mod_lesson_external::get_page_data($this->lesson->id, $this->page2->id, '', false, true);
$result = external_api::clean_returnvalue(mod_lesson_external::get_page_data_returns(), $result); $result = \external_api::clean_returnvalue(mod_lesson_external::get_page_data_returns(), $result);
$this->assertCount(0, $result['warnings']); $this->assertCount(0, $result['warnings']);
$this->assertCount(2, $result['answers']); // One for true, one for false. $this->assertCount(2, $result['answers']); // One for true, one for false.
// Check menu availability. // Check menu availability.
@ -958,7 +964,7 @@ class mod_lesson_external_testcase extends externallib_advanced_testcase {
// First we need to launch the lesson so the timer is on. // First we need to launch the lesson so the timer is on.
mod_lesson_external::launch_attempt($this->lesson->id); mod_lesson_external::launch_attempt($this->lesson->id);
$result = mod_lesson_external::get_page_data($this->lesson->id, $this->page2->id, '', false, true); $result = mod_lesson_external::get_page_data($this->lesson->id, $this->page2->id, '', false, true);
$result = external_api::clean_returnvalue(mod_lesson_external::get_page_data_returns(), $result); $result = \external_api::clean_returnvalue(mod_lesson_external::get_page_data_returns(), $result);
$this->assertCount(0, $result['warnings']); $this->assertCount(0, $result['warnings']);
$this->assertCount(2, $result['answers']); // One for true, one for false. $this->assertCount(2, $result['answers']); // One for true, one for false.
// Check contents. // Check contents.
@ -984,7 +990,7 @@ class mod_lesson_external_testcase extends externallib_advanced_testcase {
/** /**
* Creates an attempt for the given userwith a correct or incorrect answer and optionally finishes it. * Creates an attempt for the given userwith a correct or incorrect answer and optionally finishes it.
* *
* @param stdClass $user Create an attempt for this user * @param \stdClass $user Create an attempt for this user
* @param boolean $correct If the answer should be correct * @param boolean $correct If the answer should be correct
* @param boolean $finished If we should finish the attempt * @param boolean $finished If we should finish the attempt
* @return array the result of the attempt creation or finalisation * @return array the result of the attempt creation or finalisation
@ -1024,11 +1030,11 @@ class mod_lesson_external_testcase extends externallib_advanced_testcase {
) )
); );
$result = mod_lesson_external::process_page($this->lesson->id, $this->page2->id, $data); $result = mod_lesson_external::process_page($this->lesson->id, $this->page2->id, $data);
$result = external_api::clean_returnvalue(mod_lesson_external::process_page_returns(), $result); $result = \external_api::clean_returnvalue(mod_lesson_external::process_page_returns(), $result);
if ($finished) { if ($finished) {
$result = mod_lesson_external::finish_attempt($this->lesson->id); $result = mod_lesson_external::finish_attempt($this->lesson->id);
$result = external_api::clean_returnvalue(mod_lesson_external::finish_attempt_returns(), $result); $result = \external_api::clean_returnvalue(mod_lesson_external::finish_attempt_returns(), $result);
} }
return $result; return $result;
} }
@ -1065,7 +1071,7 @@ class mod_lesson_external_testcase extends externallib_advanced_testcase {
mod_lesson_external::launch_attempt($this->lesson->id); mod_lesson_external::launch_attempt($this->lesson->id);
$result = mod_lesson_external::finish_attempt($this->lesson->id); $result = mod_lesson_external::finish_attempt($this->lesson->id);
$result = external_api::clean_returnvalue(mod_lesson_external::finish_attempt_returns(), $result); $result = \external_api::clean_returnvalue(mod_lesson_external::finish_attempt_returns(), $result);
$this->assertCount(0, $result['warnings']); $this->assertCount(0, $result['warnings']);
$returneddata = []; $returneddata = [];
@ -1125,7 +1131,7 @@ class mod_lesson_external_testcase extends externallib_advanced_testcase {
$this->setAdminUser(); $this->setAdminUser();
$result = mod_lesson_external::get_attempts_overview($this->lesson->id); $result = mod_lesson_external::get_attempts_overview($this->lesson->id);
$result = external_api::clean_returnvalue(mod_lesson_external::get_attempts_overview_returns(), $result); $result = \external_api::clean_returnvalue(mod_lesson_external::get_attempts_overview_returns(), $result);
// One attempt, 0 for grade (incorrect response) in overal statistics. // One attempt, 0 for grade (incorrect response) in overal statistics.
$this->assertEquals(1, $result['data']['numofattempts']); $this->assertEquals(1, $result['data']['numofattempts']);
@ -1152,7 +1158,7 @@ class mod_lesson_external_testcase extends externallib_advanced_testcase {
$this->setAdminUser(); $this->setAdminUser();
$result = mod_lesson_external::get_attempts_overview($this->lesson->id); $result = mod_lesson_external::get_attempts_overview($this->lesson->id);
$result = external_api::clean_returnvalue(mod_lesson_external::get_attempts_overview_returns(), $result); $result = \external_api::clean_returnvalue(mod_lesson_external::get_attempts_overview_returns(), $result);
// Two attempts with maximum grade. // Two attempts with maximum grade.
$this->assertEquals(2, $result['data']['numofattempts']); $this->assertEquals(2, $result['data']['numofattempts']);
@ -1181,7 +1187,7 @@ class mod_lesson_external_testcase extends externallib_advanced_testcase {
// Now check we have two students and the statistics changed. // Now check we have two students and the statistics changed.
$this->setAdminUser(); $this->setAdminUser();
$result = mod_lesson_external::get_attempts_overview($this->lesson->id); $result = mod_lesson_external::get_attempts_overview($this->lesson->id);
$result = external_api::clean_returnvalue(mod_lesson_external::get_attempts_overview_returns(), $result); $result = \external_api::clean_returnvalue(mod_lesson_external::get_attempts_overview_returns(), $result);
// Total of 3 attempts with maximum grade. // Total of 3 attempts with maximum grade.
$this->assertEquals(3, $result['data']['numofattempts']); $this->assertEquals(3, $result['data']['numofattempts']);
@ -1198,7 +1204,7 @@ class mod_lesson_external_testcase extends externallib_advanced_testcase {
public function test_get_attempts_overview_no_attempts() { public function test_get_attempts_overview_no_attempts() {
$this->setAdminUser(); $this->setAdminUser();
$result = mod_lesson_external::get_attempts_overview($this->lesson->id); $result = mod_lesson_external::get_attempts_overview($this->lesson->id);
$result = external_api::clean_returnvalue(mod_lesson_external::get_attempts_overview_returns(), $result); $result = \external_api::clean_returnvalue(mod_lesson_external::get_attempts_overview_returns(), $result);
$this->assertCount(0, $result['warnings']); $this->assertCount(0, $result['warnings']);
$this->assertArrayNotHasKey('data', $result); $this->assertArrayNotHasKey('data', $result);
} }
@ -1220,7 +1226,7 @@ class mod_lesson_external_testcase extends externallib_advanced_testcase {
$this->setAdminUser(); $this->setAdminUser();
// Test first attempt finished. // Test first attempt finished.
$result = mod_lesson_external::get_user_attempt($this->lesson->id, $this->student->id, 0); $result = mod_lesson_external::get_user_attempt($this->lesson->id, $this->student->id, 0);
$result = external_api::clean_returnvalue(mod_lesson_external::get_user_attempt_returns(), $result); $result = \external_api::clean_returnvalue(mod_lesson_external::get_user_attempt_returns(), $result);
$this->assertCount(2, $result['answerpages']); // 2 pages in the lesson. $this->assertCount(2, $result['answerpages']); // 2 pages in the lesson.
$this->assertCount(2, $result['answerpages'][0]['answerdata']['answers']); // 2 possible answers in true/false. $this->assertCount(2, $result['answerpages'][0]['answerdata']['answers']); // 2 possible answers in true/false.
@ -1238,7 +1244,7 @@ class mod_lesson_external_testcase extends externallib_advanced_testcase {
// Test second attempt unfinished. // Test second attempt unfinished.
$result = mod_lesson_external::get_user_attempt($this->lesson->id, $this->student->id, 1); $result = mod_lesson_external::get_user_attempt($this->lesson->id, $this->student->id, 1);
$result = external_api::clean_returnvalue(mod_lesson_external::get_user_attempt_returns(), $result); $result = \external_api::clean_returnvalue(mod_lesson_external::get_user_attempt_returns(), $result);
$this->assertCount(2, $result['answerpages']); // 2 pages in the lesson. $this->assertCount(2, $result['answerpages']); // 2 pages in the lesson.
$this->assertCount(2, $result['answerpages'][0]['answerdata']['answers']); // 2 possible answers in true/false. $this->assertCount(2, $result['answerpages'][0]['answerdata']['answers']); // 2 possible answers in true/false.
@ -1248,7 +1254,7 @@ class mod_lesson_external_testcase extends externallib_advanced_testcase {
$this->setUser($this->student); $this->setUser($this->student);
// Test first attempt finished. // Test first attempt finished.
$result = mod_lesson_external::get_user_attempt($this->lesson->id, $this->student->id, 0); $result = mod_lesson_external::get_user_attempt($this->lesson->id, $this->student->id, 0);
$result = external_api::clean_returnvalue(mod_lesson_external::get_user_attempt_returns(), $result); $result = \external_api::clean_returnvalue(mod_lesson_external::get_user_attempt_returns(), $result);
$this->assertCount(2, $result['answerpages']); // 2 pages in the lesson. $this->assertCount(2, $result['answerpages']); // 2 pages in the lesson.
$this->assertCount(2, $result['answerpages'][0]['answerdata']['answers']); // 2 possible answers in true/false. $this->assertCount(2, $result['answerpages'][0]['answerdata']['answers']); // 2 possible answers in true/false.
@ -1266,7 +1272,7 @@ class mod_lesson_external_testcase extends externallib_advanced_testcase {
public function test_get_pages_possible_jumps() { public function test_get_pages_possible_jumps() {
$this->setAdminUser(); $this->setAdminUser();
$result = mod_lesson_external::get_pages_possible_jumps($this->lesson->id); $result = mod_lesson_external::get_pages_possible_jumps($this->lesson->id);
$result = external_api::clean_returnvalue(mod_lesson_external::get_pages_possible_jumps_returns(), $result); $result = \external_api::clean_returnvalue(mod_lesson_external::get_pages_possible_jumps_returns(), $result);
$this->assertCount(0, $result['warnings']); $this->assertCount(0, $result['warnings']);
$this->assertCount(3, $result['jumps']); // 3 jumps, 2 from the question page and 1 from the content. $this->assertCount(3, $result['jumps']); // 3 jumps, 2 from the question page and 1 from the content.
@ -1289,7 +1295,7 @@ class mod_lesson_external_testcase extends externallib_advanced_testcase {
public function test_get_pages_possible_jumps_with_offlineattemps_disabled() { public function test_get_pages_possible_jumps_with_offlineattemps_disabled() {
$this->setUser($this->student->id); $this->setUser($this->student->id);
$result = mod_lesson_external::get_pages_possible_jumps($this->lesson->id); $result = mod_lesson_external::get_pages_possible_jumps($this->lesson->id);
$result = external_api::clean_returnvalue(mod_lesson_external::get_pages_possible_jumps_returns(), $result); $result = \external_api::clean_returnvalue(mod_lesson_external::get_pages_possible_jumps_returns(), $result);
$this->assertCount(0, $result['jumps']); $this->assertCount(0, $result['jumps']);
} }
@ -1302,7 +1308,7 @@ class mod_lesson_external_testcase extends externallib_advanced_testcase {
$DB->set_field('lesson', 'allowofflineattempts', 1, array('id' => $this->lesson->id)); $DB->set_field('lesson', 'allowofflineattempts', 1, array('id' => $this->lesson->id));
$this->setUser($this->student->id); $this->setUser($this->student->id);
$result = mod_lesson_external::get_pages_possible_jumps($this->lesson->id); $result = mod_lesson_external::get_pages_possible_jumps($this->lesson->id);
$result = external_api::clean_returnvalue(mod_lesson_external::get_pages_possible_jumps_returns(), $result); $result = \external_api::clean_returnvalue(mod_lesson_external::get_pages_possible_jumps_returns(), $result);
$this->assertCount(3, $result['jumps']); $this->assertCount(3, $result['jumps']);
} }
@ -1315,7 +1321,7 @@ class mod_lesson_external_testcase extends externallib_advanced_testcase {
// Lesson not using password. // Lesson not using password.
$result = mod_lesson_external::get_lesson($this->lesson->id); $result = mod_lesson_external::get_lesson($this->lesson->id);
$result = external_api::clean_returnvalue(mod_lesson_external::get_lesson_returns(), $result); $result = \external_api::clean_returnvalue(mod_lesson_external::get_lesson_returns(), $result);
$this->assertCount(36, $result['lesson']); // Expect most of the fields. $this->assertCount(36, $result['lesson']); // Expect most of the fields.
$this->assertFalse(isset($result['password'])); $this->assertFalse(isset($result['password']));
} }
@ -1333,7 +1339,7 @@ class mod_lesson_external_testcase extends externallib_advanced_testcase {
// Lesson not using password. // Lesson not using password.
$result = mod_lesson_external::get_lesson($this->lesson->id); $result = mod_lesson_external::get_lesson($this->lesson->id);
$result = external_api::clean_returnvalue(mod_lesson_external::get_lesson_returns(), $result); $result = \external_api::clean_returnvalue(mod_lesson_external::get_lesson_returns(), $result);
$this->assertCount(6, $result['lesson']); // Expect just this few fields. $this->assertCount(6, $result['lesson']); // Expect just this few fields.
$this->assertFalse(isset($result['intro'])); $this->assertFalse(isset($result['intro']));
} }
@ -1351,7 +1357,7 @@ class mod_lesson_external_testcase extends externallib_advanced_testcase {
// Lesson not using password. // Lesson not using password.
$result = mod_lesson_external::get_lesson($this->lesson->id, $password); $result = mod_lesson_external::get_lesson($this->lesson->id, $password);
$result = external_api::clean_returnvalue(mod_lesson_external::get_lesson_returns(), $result); $result = \external_api::clean_returnvalue(mod_lesson_external::get_lesson_returns(), $result);
$this->assertCount(36, $result['lesson']); $this->assertCount(36, $result['lesson']);
$this->assertFalse(isset($result['intro'])); $this->assertFalse(isset($result['intro']));
} }
@ -1369,7 +1375,7 @@ class mod_lesson_external_testcase extends externallib_advanced_testcase {
// Lesson not passing a valid password (but we are teachers, we should see all the info). // Lesson not passing a valid password (but we are teachers, we should see all the info).
$result = mod_lesson_external::get_lesson($this->lesson->id); $result = mod_lesson_external::get_lesson($this->lesson->id);
$result = external_api::clean_returnvalue(mod_lesson_external::get_lesson_returns(), $result); $result = \external_api::clean_returnvalue(mod_lesson_external::get_lesson_returns(), $result);
$this->assertCount(45, $result['lesson']); // Expect all the fields. $this->assertCount(45, $result['lesson']); // Expect all the fields.
$this->assertEquals($result['lesson']['password'], $password); $this->assertEquals($result['lesson']['password'], $password);
} }

View file

@ -23,6 +23,11 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
namespace mod_quiz\event;
use quiz;
use quiz_attempt;
defined('MOODLE_INTERNAL') || die(); defined('MOODLE_INTERNAL') || die();
global $CFG; global $CFG;
@ -36,7 +41,7 @@ require_once($CFG->dirroot . '/mod/quiz/attemptlib.php');
* @copyright 2013 Adrian Greeve * @copyright 2013 Adrian Greeve
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
class mod_quiz_events_testcase extends advanced_testcase { class events_test extends \advanced_testcase {
/** /**
* Setup a quiz. * Setup a quiz.
@ -85,7 +90,7 @@ class mod_quiz_events_testcase extends advanced_testcase {
*/ */
protected function prepare_quiz_attempt($quizobj, $ispreview = false) { protected function prepare_quiz_attempt($quizobj, $ispreview = false) {
// Start the attempt. // Start the attempt.
$quba = question_engine::make_questions_usage_by_activity('mod_quiz', $quizobj->get_context()); $quba = \question_engine::make_questions_usage_by_activity('mod_quiz', $quizobj->get_context());
$quba->set_preferred_behaviour($quizobj->get_quiz()->preferredbehaviour); $quba->set_preferred_behaviour($quizobj->get_quiz()->preferredbehaviour);
$timenow = time(); $timenow = time();
@ -129,7 +134,7 @@ class mod_quiz_events_testcase extends advanced_testcase {
$this->assertEquals($attempt->userid, $event->relateduserid); $this->assertEquals($attempt->userid, $event->relateduserid);
$this->assertEquals(null, $event->other['submitterid']); // Should be the user, but PHP Unit complains... $this->assertEquals(null, $event->other['submitterid']); // Should be the user, but PHP Unit complains...
$this->assertEquals('quiz_attempt_submitted', $event->get_legacy_eventname()); $this->assertEquals('quiz_attempt_submitted', $event->get_legacy_eventname());
$legacydata = new stdClass(); $legacydata = new \stdClass();
$legacydata->component = 'mod_quiz'; $legacydata->component = 'mod_quiz';
$legacydata->attemptid = (string) $attempt->id; $legacydata->attemptid = (string) $attempt->id;
$legacydata->timestamp = $timefinish; $legacydata->timestamp = $timefinish;
@ -166,7 +171,7 @@ class mod_quiz_events_testcase extends advanced_testcase {
// Submitterid should be the user, but as we are in PHP Unit, CLI_SCRIPT is set to true which sets null in submitterid. // Submitterid should be the user, but as we are in PHP Unit, CLI_SCRIPT is set to true which sets null in submitterid.
$this->assertEquals(null, $event->other['submitterid']); $this->assertEquals(null, $event->other['submitterid']);
$this->assertEquals('quiz_attempt_overdue', $event->get_legacy_eventname()); $this->assertEquals('quiz_attempt_overdue', $event->get_legacy_eventname());
$legacydata = new stdClass(); $legacydata = new \stdClass();
$legacydata->component = 'mod_quiz'; $legacydata->component = 'mod_quiz';
$legacydata->attemptid = (string) $attempt->id; $legacydata->attemptid = (string) $attempt->id;
$legacydata->timestamp = $timefinish; $legacydata->timestamp = $timefinish;
@ -200,7 +205,7 @@ class mod_quiz_events_testcase extends advanced_testcase {
// Submitterid should be the user, but as we are in PHP Unit, CLI_SCRIPT is set to true which sets null in submitterid. // Submitterid should be the user, but as we are in PHP Unit, CLI_SCRIPT is set to true which sets null in submitterid.
$this->assertEquals(null, $event->other['submitterid']); $this->assertEquals(null, $event->other['submitterid']);
$this->assertEquals('quiz_attempt_abandoned', $event->get_legacy_eventname()); $this->assertEquals('quiz_attempt_abandoned', $event->get_legacy_eventname());
$legacydata = new stdClass(); $legacydata = new \stdClass();
$legacydata->component = 'mod_quiz'; $legacydata->component = 'mod_quiz';
$legacydata->attemptid = (string) $attempt->id; $legacydata->attemptid = (string) $attempt->id;
$legacydata->timestamp = $timefinish; $legacydata->timestamp = $timefinish;
@ -216,7 +221,7 @@ class mod_quiz_events_testcase extends advanced_testcase {
public function test_attempt_started() { public function test_attempt_started() {
$quizobj = $this->prepare_quiz(); $quizobj = $this->prepare_quiz();
$quba = question_engine::make_questions_usage_by_activity('mod_quiz', $quizobj->get_context()); $quba = \question_engine::make_questions_usage_by_activity('mod_quiz', $quizobj->get_context());
$quba->set_preferred_behaviour($quizobj->get_quiz()->preferredbehaviour); $quba->set_preferred_behaviour($quizobj->get_quiz()->preferredbehaviour);
$timenow = time(); $timenow = time();
@ -236,13 +241,13 @@ class mod_quiz_events_testcase extends advanced_testcase {
$this->assertEquals($attempt->userid, $event->relateduserid); $this->assertEquals($attempt->userid, $event->relateduserid);
$this->assertEquals($quizobj->get_context(), $event->get_context()); $this->assertEquals($quizobj->get_context(), $event->get_context());
$this->assertEquals('quiz_attempt_started', $event->get_legacy_eventname()); $this->assertEquals('quiz_attempt_started', $event->get_legacy_eventname());
$this->assertEquals(context_module::instance($quizobj->get_cmid()), $event->get_context()); $this->assertEquals(\context_module::instance($quizobj->get_cmid()), $event->get_context());
// Check legacy log data. // Check legacy log data.
$expected = array($quizobj->get_courseid(), 'quiz', 'attempt', 'review.php?attempt=' . $attempt->id, $expected = array($quizobj->get_courseid(), 'quiz', 'attempt', 'review.php?attempt=' . $attempt->id,
$quizobj->get_quizid(), $quizobj->get_cmid()); $quizobj->get_quizid(), $quizobj->get_cmid());
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
// Check legacy event data. // Check legacy event data.
$legacydata = new stdClass(); $legacydata = new \stdClass();
$legacydata->component = 'mod_quiz'; $legacydata->component = 'mod_quiz';
$legacydata->attemptid = $attempt->id; $legacydata->attemptid = $attempt->id;
$legacydata->timestart = $attempt->timestart; $legacydata->timestart = $attempt->timestart;
@ -270,7 +275,7 @@ class mod_quiz_events_testcase extends advanced_testcase {
$params = array( $params = array(
'courseid' => $course->id, 'courseid' => $course->id,
'context' => context_module::instance($quiz->cmid), 'context' => \context_module::instance($quiz->cmid),
'other' => array( 'other' => array(
'quizid' => $quiz->id 'quizid' => $quiz->id
) )
@ -285,7 +290,7 @@ class mod_quiz_events_testcase extends advanced_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\mod_quiz\event\edit_page_viewed', $event); $this->assertInstanceOf('\mod_quiz\event\edit_page_viewed', $event);
$this->assertEquals(context_module::instance($quiz->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($quiz->cmid), $event->get_context());
$expected = array($course->id, 'quiz', 'editquestions', 'view.php?id=' . $quiz->cmid, $quiz->id, $quiz->cmid); $expected = array($course->id, 'quiz', 'editquestions', 'view.php?id=' . $quiz->cmid, $quiz->id, $quiz->cmid);
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
@ -305,7 +310,7 @@ class mod_quiz_events_testcase extends advanced_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\mod_quiz\event\attempt_deleted', $event); $this->assertInstanceOf('\mod_quiz\event\attempt_deleted', $event);
$this->assertEquals(context_module::instance($quizobj->get_cmid()), $event->get_context()); $this->assertEquals(\context_module::instance($quizobj->get_cmid()), $event->get_context());
$expected = array($quizobj->get_courseid(), 'quiz', 'delete attempt', 'report.php?id=' . $quizobj->get_cmid(), $expected = array($quizobj->get_courseid(), 'quiz', 'delete attempt', 'report.php?id=' . $quizobj->get_cmid(),
$attempt->id, $quizobj->get_cmid()); $attempt->id, $quizobj->get_cmid());
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
@ -341,7 +346,7 @@ class mod_quiz_events_testcase extends advanced_testcase {
$quiz = $this->getDataGenerator()->create_module('quiz', array('course' => $course->id)); $quiz = $this->getDataGenerator()->create_module('quiz', array('course' => $course->id));
$params = array( $params = array(
'context' => $context = context_module::instance($quiz->cmid), 'context' => $context = \context_module::instance($quiz->cmid),
'other' => array( 'other' => array(
'quizid' => $quiz->id, 'quizid' => $quiz->id,
'reportname' => 'overview' 'reportname' => 'overview'
@ -357,7 +362,7 @@ class mod_quiz_events_testcase extends advanced_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\mod_quiz\event\report_viewed', $event); $this->assertInstanceOf('\mod_quiz\event\report_viewed', $event);
$this->assertEquals(context_module::instance($quiz->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($quiz->cmid), $event->get_context());
$expected = array($course->id, 'quiz', 'report', 'report.php?id=' . $quiz->cmid . '&mode=overview', $expected = array($course->id, 'quiz', 'report', 'report.php?id=' . $quiz->cmid . '&mode=overview',
$quiz->id, $quiz->cmid); $quiz->id, $quiz->cmid);
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
@ -381,7 +386,7 @@ class mod_quiz_events_testcase extends advanced_testcase {
'objectid' => 1, 'objectid' => 1,
'relateduserid' => 2, 'relateduserid' => 2,
'courseid' => $course->id, 'courseid' => $course->id,
'context' => context_module::instance($quiz->cmid), 'context' => \context_module::instance($quiz->cmid),
'other' => array( 'other' => array(
'quizid' => $quiz->id 'quizid' => $quiz->id
) )
@ -396,7 +401,7 @@ class mod_quiz_events_testcase extends advanced_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\mod_quiz\event\attempt_reviewed', $event); $this->assertInstanceOf('\mod_quiz\event\attempt_reviewed', $event);
$this->assertEquals(context_module::instance($quiz->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($quiz->cmid), $event->get_context());
$expected = array($course->id, 'quiz', 'review', 'review.php?attempt=1', $quiz->id, $quiz->cmid); $expected = array($course->id, 'quiz', 'review', 'review.php?attempt=1', $quiz->id, $quiz->cmid);
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
@ -419,7 +424,7 @@ class mod_quiz_events_testcase extends advanced_testcase {
'objectid' => 1, 'objectid' => 1,
'relateduserid' => 2, 'relateduserid' => 2,
'courseid' => $course->id, 'courseid' => $course->id,
'context' => context_module::instance($quiz->cmid), 'context' => \context_module::instance($quiz->cmid),
'other' => array( 'other' => array(
'quizid' => $quiz->id 'quizid' => $quiz->id
) )
@ -434,7 +439,7 @@ class mod_quiz_events_testcase extends advanced_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\mod_quiz\event\attempt_summary_viewed', $event); $this->assertInstanceOf('\mod_quiz\event\attempt_summary_viewed', $event);
$this->assertEquals(context_module::instance($quiz->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($quiz->cmid), $event->get_context());
$expected = array($course->id, 'quiz', 'view summary', 'summary.php?attempt=1', $quiz->id, $quiz->cmid); $expected = array($course->id, 'quiz', 'view summary', 'summary.php?attempt=1', $quiz->id, $quiz->cmid);
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
@ -456,7 +461,7 @@ class mod_quiz_events_testcase extends advanced_testcase {
$params = array( $params = array(
'objectid' => 1, 'objectid' => 1,
'relateduserid' => 2, 'relateduserid' => 2,
'context' => context_module::instance($quiz->cmid), 'context' => \context_module::instance($quiz->cmid),
'other' => array( 'other' => array(
'quizid' => $quiz->id 'quizid' => $quiz->id
) )
@ -471,7 +476,7 @@ class mod_quiz_events_testcase extends advanced_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\mod_quiz\event\user_override_created', $event); $this->assertInstanceOf('\mod_quiz\event\user_override_created', $event);
$this->assertEquals(context_module::instance($quiz->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($quiz->cmid), $event->get_context());
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
} }
@ -490,7 +495,7 @@ class mod_quiz_events_testcase extends advanced_testcase {
$params = array( $params = array(
'objectid' => 1, 'objectid' => 1,
'context' => context_module::instance($quiz->cmid), 'context' => \context_module::instance($quiz->cmid),
'other' => array( 'other' => array(
'quizid' => $quiz->id, 'quizid' => $quiz->id,
'groupid' => 2 'groupid' => 2
@ -506,7 +511,7 @@ class mod_quiz_events_testcase extends advanced_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\mod_quiz\event\group_override_created', $event); $this->assertInstanceOf('\mod_quiz\event\group_override_created', $event);
$this->assertEquals(context_module::instance($quiz->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($quiz->cmid), $event->get_context());
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
} }
@ -526,7 +531,7 @@ class mod_quiz_events_testcase extends advanced_testcase {
$params = array( $params = array(
'objectid' => 1, 'objectid' => 1,
'relateduserid' => 2, 'relateduserid' => 2,
'context' => context_module::instance($quiz->cmid), 'context' => \context_module::instance($quiz->cmid),
'other' => array( 'other' => array(
'quizid' => $quiz->id 'quizid' => $quiz->id
) )
@ -541,7 +546,7 @@ class mod_quiz_events_testcase extends advanced_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\mod_quiz\event\user_override_updated', $event); $this->assertInstanceOf('\mod_quiz\event\user_override_updated', $event);
$this->assertEquals(context_module::instance($quiz->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($quiz->cmid), $event->get_context());
$expected = array($course->id, 'quiz', 'edit override', 'overrideedit.php?id=1', $quiz->id, $quiz->cmid); $expected = array($course->id, 'quiz', 'edit override', 'overrideedit.php?id=1', $quiz->id, $quiz->cmid);
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
@ -562,7 +567,7 @@ class mod_quiz_events_testcase extends advanced_testcase {
$params = array( $params = array(
'objectid' => 1, 'objectid' => 1,
'context' => context_module::instance($quiz->cmid), 'context' => \context_module::instance($quiz->cmid),
'other' => array( 'other' => array(
'quizid' => $quiz->id, 'quizid' => $quiz->id,
'groupid' => 2 'groupid' => 2
@ -578,7 +583,7 @@ class mod_quiz_events_testcase extends advanced_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\mod_quiz\event\group_override_updated', $event); $this->assertInstanceOf('\mod_quiz\event\group_override_updated', $event);
$this->assertEquals(context_module::instance($quiz->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($quiz->cmid), $event->get_context());
$expected = array($course->id, 'quiz', 'edit override', 'overrideedit.php?id=1', $quiz->id, $quiz->cmid); $expected = array($course->id, 'quiz', 'edit override', 'overrideedit.php?id=1', $quiz->id, $quiz->cmid);
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
@ -597,7 +602,7 @@ class mod_quiz_events_testcase extends advanced_testcase {
$quiz = $this->getDataGenerator()->create_module('quiz', array('course' => $course->id)); $quiz = $this->getDataGenerator()->create_module('quiz', array('course' => $course->id));
// Create an override. // Create an override.
$override = new stdClass(); $override = new \stdClass();
$override->quiz = $quiz->id; $override->quiz = $quiz->id;
$override->userid = 2; $override->userid = 2;
$override->id = $DB->insert_record('quiz_overrides', $override); $override->id = $DB->insert_record('quiz_overrides', $override);
@ -610,7 +615,7 @@ class mod_quiz_events_testcase extends advanced_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\mod_quiz\event\user_override_deleted', $event); $this->assertInstanceOf('\mod_quiz\event\user_override_deleted', $event);
$this->assertEquals(context_module::instance($quiz->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($quiz->cmid), $event->get_context());
$expected = array($course->id, 'quiz', 'delete override', 'overrides.php?cmid=' . $quiz->cmid, $quiz->id, $quiz->cmid); $expected = array($course->id, 'quiz', 'delete override', 'overrides.php?cmid=' . $quiz->cmid, $quiz->id, $quiz->cmid);
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
@ -629,7 +634,7 @@ class mod_quiz_events_testcase extends advanced_testcase {
$quiz = $this->getDataGenerator()->create_module('quiz', array('course' => $course->id)); $quiz = $this->getDataGenerator()->create_module('quiz', array('course' => $course->id));
// Create an override. // Create an override.
$override = new stdClass(); $override = new \stdClass();
$override->quiz = $quiz->id; $override->quiz = $quiz->id;
$override->groupid = 2; $override->groupid = 2;
$override->id = $DB->insert_record('quiz_overrides', $override); $override->id = $DB->insert_record('quiz_overrides', $override);
@ -642,7 +647,7 @@ class mod_quiz_events_testcase extends advanced_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\mod_quiz\event\group_override_deleted', $event); $this->assertInstanceOf('\mod_quiz\event\group_override_deleted', $event);
$this->assertEquals(context_module::instance($quiz->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($quiz->cmid), $event->get_context());
$expected = array($course->id, 'quiz', 'delete override', 'overrides.php?cmid=' . $quiz->cmid, $quiz->id, $quiz->cmid); $expected = array($course->id, 'quiz', 'delete override', 'overrides.php?cmid=' . $quiz->cmid, $quiz->id, $quiz->cmid);
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
@ -665,7 +670,7 @@ class mod_quiz_events_testcase extends advanced_testcase {
'objectid' => 1, 'objectid' => 1,
'relateduserid' => 2, 'relateduserid' => 2,
'courseid' => $course->id, 'courseid' => $course->id,
'context' => context_module::instance($quiz->cmid), 'context' => \context_module::instance($quiz->cmid),
'other' => array( 'other' => array(
'quizid' => $quiz->id 'quizid' => $quiz->id
) )
@ -680,7 +685,7 @@ class mod_quiz_events_testcase extends advanced_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\mod_quiz\event\attempt_viewed', $event); $this->assertInstanceOf('\mod_quiz\event\attempt_viewed', $event);
$this->assertEquals(context_module::instance($quiz->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($quiz->cmid), $event->get_context());
$expected = array($course->id, 'quiz', 'continue attempt', 'review.php?attempt=1', $quiz->id, $quiz->cmid); $expected = array($course->id, 'quiz', 'continue attempt', 'review.php?attempt=1', $quiz->id, $quiz->cmid);
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
@ -692,7 +697,7 @@ class mod_quiz_events_testcase extends advanced_testcase {
public function test_attempt_preview_started() { public function test_attempt_preview_started() {
$quizobj = $this->prepare_quiz(); $quizobj = $this->prepare_quiz();
$quba = question_engine::make_questions_usage_by_activity('mod_quiz', $quizobj->get_context()); $quba = \question_engine::make_questions_usage_by_activity('mod_quiz', $quizobj->get_context());
$quba->set_preferred_behaviour($quizobj->get_quiz()->preferredbehaviour); $quba->set_preferred_behaviour($quizobj->get_quiz()->preferredbehaviour);
$timenow = time(); $timenow = time();
@ -707,7 +712,7 @@ class mod_quiz_events_testcase extends advanced_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\mod_quiz\event\attempt_preview_started', $event); $this->assertInstanceOf('\mod_quiz\event\attempt_preview_started', $event);
$this->assertEquals(context_module::instance($quizobj->get_cmid()), $event->get_context()); $this->assertEquals(\context_module::instance($quizobj->get_cmid()), $event->get_context());
$expected = array($quizobj->get_courseid(), 'quiz', 'preview', 'view.php?id=' . $quizobj->get_cmid(), $expected = array($quizobj->get_courseid(), 'quiz', 'preview', 'view.php?id=' . $quizobj->get_cmid(),
$quizobj->get_quizid(), $quizobj->get_cmid()); $quizobj->get_quizid(), $quizobj->get_cmid());
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
@ -726,7 +731,7 @@ class mod_quiz_events_testcase extends advanced_testcase {
$params = array( $params = array(
'objectid' => 1, 'objectid' => 1,
'courseid' => $quizobj->get_courseid(), 'courseid' => $quizobj->get_courseid(),
'context' => context_module::instance($quizobj->get_cmid()), 'context' => \context_module::instance($quizobj->get_cmid()),
'other' => array( 'other' => array(
'quizid' => $quizobj->get_quizid(), 'quizid' => $quizobj->get_quizid(),
'attemptid' => 2, 'attemptid' => 2,
@ -743,7 +748,7 @@ class mod_quiz_events_testcase extends advanced_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\mod_quiz\event\question_manually_graded', $event); $this->assertInstanceOf('\mod_quiz\event\question_manually_graded', $event);
$this->assertEquals(context_module::instance($quizobj->get_cmid()), $event->get_context()); $this->assertEquals(\context_module::instance($quizobj->get_cmid()), $event->get_context());
$expected = array($quizobj->get_courseid(), 'quiz', 'manualgrade', 'comment.php?attempt=2&slot=3', $expected = array($quizobj->get_courseid(), 'quiz', 'manualgrade', 'comment.php?attempt=2&slot=3',
$quizobj->get_quizid(), $quizobj->get_cmid()); $quizobj->get_quizid(), $quizobj->get_cmid());
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
@ -767,7 +772,7 @@ class mod_quiz_events_testcase extends advanced_testcase {
'objectid' => 1, 'objectid' => 1,
'relateduserid' => 2, 'relateduserid' => 2,
'courseid' => $course->id, 'courseid' => $course->id,
'context' => context_module::instance($quiz->cmid), 'context' => \context_module::instance($quiz->cmid),
'other' => array( 'other' => array(
'quizid' => $quiz->id 'quizid' => $quiz->id
) )
@ -782,7 +787,7 @@ class mod_quiz_events_testcase extends advanced_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\mod_quiz\event\attempt_regraded', $event); $this->assertInstanceOf('\mod_quiz\event\attempt_regraded', $event);
$this->assertEquals(context_module::instance($quiz->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($quiz->cmid), $event->get_context());
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
} }
} }

View file

@ -24,6 +24,14 @@
* @since Moodle 3.1 * @since Moodle 3.1
*/ */
namespace mod_quiz\external;
use externallib_advanced_testcase;
use mod_quiz_external;
use mod_quiz_display_options;
use quiz;
use quiz_attempt;
defined('MOODLE_INTERNAL') || die(); defined('MOODLE_INTERNAL') || die();
global $CFG; global $CFG;
@ -72,7 +80,7 @@ class testable_mod_quiz_external extends mod_quiz_external {
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since Moodle 3.1 * @since Moodle 3.1
*/ */
class mod_quiz_external_testcase extends externallib_advanced_testcase { class external_test extends externallib_advanced_testcase {
/** /**
* Set up for every test * Set up for every test
@ -85,7 +93,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
// Setup test data. // Setup test data.
$this->course = $this->getDataGenerator()->create_course(); $this->course = $this->getDataGenerator()->create_course();
$this->quiz = $this->getDataGenerator()->create_module('quiz', array('course' => $this->course->id)); $this->quiz = $this->getDataGenerator()->create_module('quiz', array('course' => $this->course->id));
$this->context = context_module::instance($this->quiz->cmid); $this->context = \context_module::instance($this->quiz->cmid);
$this->cm = get_coursemodule_from_instance('quiz', $this->quiz->id); $this->cm = get_coursemodule_from_instance('quiz', $this->quiz->id);
// Create users. // Create users.
@ -96,7 +104,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
$this->studentrole = $DB->get_record('role', array('shortname' => 'student')); $this->studentrole = $DB->get_record('role', array('shortname' => 'student'));
$this->teacherrole = $DB->get_record('role', array('shortname' => 'editingteacher')); $this->teacherrole = $DB->get_record('role', array('shortname' => 'editingteacher'));
// Allow student to receive messages. // Allow student to receive messages.
$coursecontext = context_course::instance($this->course->id); $coursecontext = \context_course::instance($this->course->id);
assign_capability('mod/quiz:emailnotifysubmission', CAP_ALLOW, $this->teacherrole->id, $coursecontext, true); assign_capability('mod/quiz:emailnotifysubmission', CAP_ALLOW, $this->teacherrole->id, $coursecontext, true);
$this->getDataGenerator()->enrol_user($this->student->id, $this->course->id, $this->studentrole->id, 'manual'); $this->getDataGenerator()->enrol_user($this->student->id, $this->course->id, $this->studentrole->id, 'manual');
@ -123,7 +131,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
'preferredbehaviour' => $behaviour); 'preferredbehaviour' => $behaviour);
$data = array_merge($data, $extraoptions); $data = array_merge($data, $extraoptions);
$quiz = $quizgenerator->create_instance($data); $quiz = $quizgenerator->create_instance($data);
$context = context_module::instance($quiz->cmid); $context = \context_module::instance($quiz->cmid);
// Create a couple of questions. // Create a couple of questions.
$questiongenerator = $this->getDataGenerator()->get_plugin_generator('core_question'); $questiongenerator = $this->getDataGenerator()->get_plugin_generator('core_question');
@ -143,14 +151,14 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
$quizobj = quiz::create($quiz->id, $this->student->id); $quizobj = quiz::create($quiz->id, $this->student->id);
// Set grade to pass. // Set grade to pass.
$item = grade_item::fetch(array('courseid' => $this->course->id, 'itemtype' => 'mod', $item = \grade_item::fetch(array('courseid' => $this->course->id, 'itemtype' => 'mod',
'itemmodule' => 'quiz', 'iteminstance' => $quiz->id, 'outcomeid' => null)); 'itemmodule' => 'quiz', 'iteminstance' => $quiz->id, 'outcomeid' => null));
$item->gradepass = 80; $item->gradepass = 80;
$item->update(); $item->update();
if ($startattempt or $finishattempt) { if ($startattempt or $finishattempt) {
// Now, do one attempt. // Now, do one attempt.
$quba = question_engine::make_questions_usage_by_activity('mod_quiz', $quizobj->get_context()); $quba = \question_engine::make_questions_usage_by_activity('mod_quiz', $quizobj->get_context());
$quba->set_preferred_behaviour($quizobj->get_quiz()->preferredbehaviour); $quba->set_preferred_behaviour($quizobj->get_quiz()->preferredbehaviour);
$timenow = time(); $timenow = time();
@ -184,7 +192,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
$course2 = self::getDataGenerator()->create_course(); $course2 = self::getDataGenerator()->create_course();
// Second quiz. // Second quiz.
$record = new stdClass(); $record = new \stdClass();
$record->course = $course2->id; $record->course = $course2->id;
$record->intro = '<button>Test with HTML allowed.</button>'; $record->intro = '<button>Test with HTML allowed.</button>';
$quiz2 = self::getDataGenerator()->create_module('quiz', $record); $quiz2 = self::getDataGenerator()->create_module('quiz', $record);
@ -251,14 +259,14 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
// Call the external function passing course ids. // Call the external function passing course ids.
$result = mod_quiz_external::get_quizzes_by_courses(array($course2->id, $this->course->id)); $result = mod_quiz_external::get_quizzes_by_courses(array($course2->id, $this->course->id));
$result = external_api::clean_returnvalue($returndescription, $result); $result = \external_api::clean_returnvalue($returndescription, $result);
$this->assertEquals($expectedquizzes, $result['quizzes']); $this->assertEquals($expectedquizzes, $result['quizzes']);
$this->assertCount(0, $result['warnings']); $this->assertCount(0, $result['warnings']);
// Call the external function without passing course id. // Call the external function without passing course id.
$result = mod_quiz_external::get_quizzes_by_courses(); $result = mod_quiz_external::get_quizzes_by_courses();
$result = external_api::clean_returnvalue($returndescription, $result); $result = \external_api::clean_returnvalue($returndescription, $result);
$this->assertEquals($expectedquizzes, $result['quizzes']); $this->assertEquals($expectedquizzes, $result['quizzes']);
$this->assertCount(0, $result['warnings']); $this->assertCount(0, $result['warnings']);
@ -268,7 +276,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
// Call the external function without passing course id. // Call the external function without passing course id.
$result = mod_quiz_external::get_quizzes_by_courses(); $result = mod_quiz_external::get_quizzes_by_courses();
$result = external_api::clean_returnvalue($returndescription, $result); $result = \external_api::clean_returnvalue($returndescription, $result);
$this->assertEquals($expectedquizzes, $result['quizzes']); $this->assertEquals($expectedquizzes, $result['quizzes']);
// Call for the second course we unenrolled the user from, expected warning. // Call for the second course we unenrolled the user from, expected warning.
@ -285,14 +293,14 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
} }
$result = mod_quiz_external::get_quizzes_by_courses(); $result = mod_quiz_external::get_quizzes_by_courses();
$result = external_api::clean_returnvalue($returndescription, $result); $result = \external_api::clean_returnvalue($returndescription, $result);
$this->assertEquals($expectedquizzes, $result['quizzes']); $this->assertEquals($expectedquizzes, $result['quizzes']);
// Admin also should get all the information. // Admin also should get all the information.
self::setAdminUser(); self::setAdminUser();
$result = mod_quiz_external::get_quizzes_by_courses(array($this->course->id)); $result = mod_quiz_external::get_quizzes_by_courses(array($this->course->id));
$result = external_api::clean_returnvalue($returndescription, $result); $result = \external_api::clean_returnvalue($returndescription, $result);
$this->assertEquals($expectedquizzes, $result['quizzes']); $this->assertEquals($expectedquizzes, $result['quizzes']);
// Now, prevent access. // Now, prevent access.
@ -304,7 +312,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
$DB->update_record('quiz', $quiz2); $DB->update_record('quiz', $quiz2);
$result = mod_quiz_external::get_quizzes_by_courses(); $result = mod_quiz_external::get_quizzes_by_courses();
$result = external_api::clean_returnvalue($returndescription, $result); $result = \external_api::clean_returnvalue($returndescription, $result);
$this->assertCount(2, $result['quizzes']); $this->assertCount(2, $result['quizzes']);
// We only see a limited set of fields. // We only see a limited set of fields.
$this->assertCount(4, $result['quizzes'][0]); $this->assertCount(4, $result['quizzes'][0]);
@ -328,7 +336,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
try { try {
mod_quiz_external::view_quiz(0); mod_quiz_external::view_quiz(0);
$this->fail('Exception expected due to invalid mod_quiz instance id.'); $this->fail('Exception expected due to invalid mod_quiz instance id.');
} catch (moodle_exception $e) { } catch (\moodle_exception $e) {
$this->assertEquals('invalidrecord', $e->errorcode); $this->assertEquals('invalidrecord', $e->errorcode);
} }
@ -338,7 +346,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
try { try {
mod_quiz_external::view_quiz($this->quiz->id); mod_quiz_external::view_quiz($this->quiz->id);
$this->fail('Exception expected due to not enrolled user.'); $this->fail('Exception expected due to not enrolled user.');
} catch (moodle_exception $e) { } catch (\moodle_exception $e) {
$this->assertEquals('requireloginerror', $e->errorcode); $this->assertEquals('requireloginerror', $e->errorcode);
} }
@ -349,7 +357,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();
$result = mod_quiz_external::view_quiz($this->quiz->id); $result = mod_quiz_external::view_quiz($this->quiz->id);
$result = external_api::clean_returnvalue(mod_quiz_external::view_quiz_returns(), $result); $result = \external_api::clean_returnvalue(mod_quiz_external::view_quiz_returns(), $result);
$this->assertTrue($result['status']); $this->assertTrue($result['status']);
$events = $sink->get_events(); $events = $sink->get_events();
@ -369,12 +377,12 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
assign_capability('mod/quiz:view', CAP_PROHIBIT, $this->studentrole->id, $this->context->id); assign_capability('mod/quiz:view', CAP_PROHIBIT, $this->studentrole->id, $this->context->id);
// Empty all the caches that may be affected by this change. // Empty all the caches that may be affected by this change.
accesslib_clear_all_caches_for_unit_testing(); accesslib_clear_all_caches_for_unit_testing();
course_modinfo::clear_instance_cache(); \course_modinfo::clear_instance_cache();
try { try {
mod_quiz_external::view_quiz($this->quiz->id); mod_quiz_external::view_quiz($this->quiz->id);
$this->fail('Exception expected due to missing capability.'); $this->fail('Exception expected due to missing capability.');
} catch (moodle_exception $e) { } catch (\moodle_exception $e) {
$this->assertEquals('requireloginerror', $e->errorcode); $this->assertEquals('requireloginerror', $e->errorcode);
} }
@ -390,7 +398,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
$this->setUser($this->student); $this->setUser($this->student);
$result = mod_quiz_external::get_user_attempts($quiz->id); $result = mod_quiz_external::get_user_attempts($quiz->id);
$result = external_api::clean_returnvalue(mod_quiz_external::get_user_attempts_returns(), $result); $result = \external_api::clean_returnvalue(mod_quiz_external::get_user_attempts_returns(), $result);
$this->assertCount(1, $result['attempts']); $this->assertCount(1, $result['attempts']);
$this->assertEquals($attempt->id, $result['attempts'][0]['id']); $this->assertEquals($attempt->id, $result['attempts'][0]['id']);
@ -402,28 +410,28 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
// Test filters. Only finished. // Test filters. Only finished.
$result = mod_quiz_external::get_user_attempts($quiz->id, 0, 'finished', false); $result = mod_quiz_external::get_user_attempts($quiz->id, 0, 'finished', false);
$result = external_api::clean_returnvalue(mod_quiz_external::get_user_attempts_returns(), $result); $result = \external_api::clean_returnvalue(mod_quiz_external::get_user_attempts_returns(), $result);
$this->assertCount(1, $result['attempts']); $this->assertCount(1, $result['attempts']);
$this->assertEquals($attempt->id, $result['attempts'][0]['id']); $this->assertEquals($attempt->id, $result['attempts'][0]['id']);
// Test filters. All attempts. // Test filters. All attempts.
$result = mod_quiz_external::get_user_attempts($quiz->id, 0, 'all', false); $result = mod_quiz_external::get_user_attempts($quiz->id, 0, 'all', false);
$result = external_api::clean_returnvalue(mod_quiz_external::get_user_attempts_returns(), $result); $result = \external_api::clean_returnvalue(mod_quiz_external::get_user_attempts_returns(), $result);
$this->assertCount(1, $result['attempts']); $this->assertCount(1, $result['attempts']);
$this->assertEquals($attempt->id, $result['attempts'][0]['id']); $this->assertEquals($attempt->id, $result['attempts'][0]['id']);
// Test filters. Unfinished. // Test filters. Unfinished.
$result = mod_quiz_external::get_user_attempts($quiz->id, 0, 'unfinished', false); $result = mod_quiz_external::get_user_attempts($quiz->id, 0, 'unfinished', false);
$result = external_api::clean_returnvalue(mod_quiz_external::get_user_attempts_returns(), $result); $result = \external_api::clean_returnvalue(mod_quiz_external::get_user_attempts_returns(), $result);
$this->assertCount(0, $result['attempts']); $this->assertCount(0, $result['attempts']);
// Start a new attempt, but not finish it. // Start a new attempt, but not finish it.
$timenow = time(); $timenow = time();
$attempt = quiz_create_attempt($quizobj, 2, false, $timenow, false, $this->student->id); $attempt = quiz_create_attempt($quizobj, 2, false, $timenow, false, $this->student->id);
$quba = question_engine::make_questions_usage_by_activity('mod_quiz', $quizobj->get_context()); $quba = \question_engine::make_questions_usage_by_activity('mod_quiz', $quizobj->get_context());
$quba->set_preferred_behaviour($quizobj->get_quiz()->preferredbehaviour); $quba->set_preferred_behaviour($quizobj->get_quiz()->preferredbehaviour);
quiz_start_new_attempt($quizobj, $quba, $attempt, 1, $timenow); quiz_start_new_attempt($quizobj, $quba, $attempt, 1, $timenow);
@ -431,26 +439,26 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
// Test filters. All attempts. // Test filters. All attempts.
$result = mod_quiz_external::get_user_attempts($quiz->id, 0, 'all', false); $result = mod_quiz_external::get_user_attempts($quiz->id, 0, 'all', false);
$result = external_api::clean_returnvalue(mod_quiz_external::get_user_attempts_returns(), $result); $result = \external_api::clean_returnvalue(mod_quiz_external::get_user_attempts_returns(), $result);
$this->assertCount(2, $result['attempts']); $this->assertCount(2, $result['attempts']);
// Test filters. Unfinished. // Test filters. Unfinished.
$result = mod_quiz_external::get_user_attempts($quiz->id, 0, 'unfinished', false); $result = mod_quiz_external::get_user_attempts($quiz->id, 0, 'unfinished', false);
$result = external_api::clean_returnvalue(mod_quiz_external::get_user_attempts_returns(), $result); $result = \external_api::clean_returnvalue(mod_quiz_external::get_user_attempts_returns(), $result);
$this->assertCount(1, $result['attempts']); $this->assertCount(1, $result['attempts']);
// Test manager can see user attempts. // Test manager can see user attempts.
$this->setUser($this->teacher); $this->setUser($this->teacher);
$result = mod_quiz_external::get_user_attempts($quiz->id, $this->student->id); $result = mod_quiz_external::get_user_attempts($quiz->id, $this->student->id);
$result = external_api::clean_returnvalue(mod_quiz_external::get_user_attempts_returns(), $result); $result = \external_api::clean_returnvalue(mod_quiz_external::get_user_attempts_returns(), $result);
$this->assertCount(1, $result['attempts']); $this->assertCount(1, $result['attempts']);
$this->assertEquals($this->student->id, $result['attempts'][0]['userid']); $this->assertEquals($this->student->id, $result['attempts'][0]['userid']);
$result = mod_quiz_external::get_user_attempts($quiz->id, $this->student->id, 'all'); $result = mod_quiz_external::get_user_attempts($quiz->id, $this->student->id, 'all');
$result = external_api::clean_returnvalue(mod_quiz_external::get_user_attempts_returns(), $result); $result = \external_api::clean_returnvalue(mod_quiz_external::get_user_attempts_returns(), $result);
$this->assertCount(2, $result['attempts']); $this->assertCount(2, $result['attempts']);
$this->assertEquals($this->student->id, $result['attempts'][0]['userid']); $this->assertEquals($this->student->id, $result['attempts'][0]['userid']);
@ -459,7 +467,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
try { try {
mod_quiz_external::get_user_attempts($quiz->id, $this->student->id, 'INVALID_PARAMETER'); mod_quiz_external::get_user_attempts($quiz->id, $this->student->id, 'INVALID_PARAMETER');
$this->fail('Exception expected due to missing capability.'); $this->fail('Exception expected due to missing capability.');
} catch (invalid_parameter_exception $e) { } catch (\invalid_parameter_exception $e) {
$this->assertEquals('invalidparameter', $e->errorcode); $this->assertEquals('invalidparameter', $e->errorcode);
} }
} }
@ -476,7 +484,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
// Student cannot see the grades. // Student cannot see the grades.
$this->setUser($this->student); $this->setUser($this->student);
$result = mod_quiz_external::get_user_attempts($quiz->id); $result = mod_quiz_external::get_user_attempts($quiz->id);
$result = external_api::clean_returnvalue(mod_quiz_external::get_user_attempts_returns(), $result); $result = \external_api::clean_returnvalue(mod_quiz_external::get_user_attempts_returns(), $result);
$this->assertCount(1, $result['attempts']); $this->assertCount(1, $result['attempts']);
$this->assertEquals($attempt->id, $result['attempts'][0]['id']); $this->assertEquals($attempt->id, $result['attempts'][0]['id']);
@ -489,7 +497,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
// Test manager can see user grades. // Test manager can see user grades.
$this->setUser($this->teacher); $this->setUser($this->teacher);
$result = mod_quiz_external::get_user_attempts($quiz->id, $this->student->id); $result = mod_quiz_external::get_user_attempts($quiz->id, $this->student->id);
$result = external_api::clean_returnvalue(mod_quiz_external::get_user_attempts_returns(), $result); $result = \external_api::clean_returnvalue(mod_quiz_external::get_user_attempts_returns(), $result);
$this->assertCount(1, $result['attempts']); $this->assertCount(1, $result['attempts']);
$this->assertEquals($attempt->id, $result['attempts'][0]['id']); $this->assertEquals($attempt->id, $result['attempts'][0]['id']);
@ -536,7 +544,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
$quizapiobj2 = quiz::create($quizapi2->id, $this->student->id); $quizapiobj2 = quiz::create($quizapi2->id, $this->student->id);
// Set grade to pass. // Set grade to pass.
$item = grade_item::fetch([ $item = \grade_item::fetch([
'courseid' => $this->course->id, 'courseid' => $this->course->id,
'itemtype' => 'mod', 'itemtype' => 'mod',
'itemmodule' => 'quiz', 'itemmodule' => 'quiz',
@ -546,7 +554,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
$item->gradepass = 80; $item->gradepass = 80;
$item->update(); $item->update();
$item = grade_item::fetch([ $item = \grade_item::fetch([
'courseid' => $this->course->id, 'courseid' => $this->course->id,
'itemtype' => 'mod', 'itemtype' => 'mod',
'itemmodule' => 'quiz', 'itemmodule' => 'quiz',
@ -557,17 +565,17 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
$item->update(); $item->update();
// Start the passing attempt. // Start the passing attempt.
$quba1 = question_engine::make_questions_usage_by_activity('mod_quiz', $quizapiobj1->get_context()); $quba1 = \question_engine::make_questions_usage_by_activity('mod_quiz', $quizapiobj1->get_context());
$quba1->set_preferred_behaviour($quizapiobj1->get_quiz()->preferredbehaviour); $quba1->set_preferred_behaviour($quizapiobj1->get_quiz()->preferredbehaviour);
$quba2 = question_engine::make_questions_usage_by_activity('mod_quiz', $quizapiobj2->get_context()); $quba2 = \question_engine::make_questions_usage_by_activity('mod_quiz', $quizapiobj2->get_context());
$quba2->set_preferred_behaviour($quizapiobj2->get_quiz()->preferredbehaviour); $quba2->set_preferred_behaviour($quizapiobj2->get_quiz()->preferredbehaviour);
// Start the testing for quizapi1 that allow the student to view the grade. // Start the testing for quizapi1 that allow the student to view the grade.
$this->setUser($this->student); $this->setUser($this->student);
$result = mod_quiz_external::get_user_best_grade($quizapi1->id); $result = mod_quiz_external::get_user_best_grade($quizapi1->id);
$result = external_api::clean_returnvalue(mod_quiz_external::get_user_best_grade_returns(), $result); $result = \external_api::clean_returnvalue(mod_quiz_external::get_user_best_grade_returns(), $result);
// No grades yet. // No grades yet.
$this->assertFalse($result['hasgrade']); $this->assertFalse($result['hasgrade']);
@ -587,7 +595,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
$attemptobj->process_finish($timenow, false); $attemptobj->process_finish($timenow, false);
$result = mod_quiz_external::get_user_best_grade($quizapi1->id); $result = mod_quiz_external::get_user_best_grade($quizapi1->id);
$result = external_api::clean_returnvalue(mod_quiz_external::get_user_best_grade_returns(), $result); $result = \external_api::clean_returnvalue(mod_quiz_external::get_user_best_grade_returns(), $result);
// Now I have grades. // Now I have grades.
$this->assertTrue($result['hasgrade']); $this->assertTrue($result['hasgrade']);
@ -601,7 +609,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
try { try {
mod_quiz_external::get_user_best_grade($quizapi1->id, $anotherstudent->id); mod_quiz_external::get_user_best_grade($quizapi1->id, $anotherstudent->id);
$this->fail('Exception expected due to missing capability.'); $this->fail('Exception expected due to missing capability.');
} catch (required_capability_exception $e) { } catch (\required_capability_exception $e) {
$this->assertEquals('nopermissions', $e->errorcode); $this->assertEquals('nopermissions', $e->errorcode);
} }
@ -609,7 +617,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
$this->setUser($this->teacher); $this->setUser($this->teacher);
$result = mod_quiz_external::get_user_best_grade($quizapi1->id, $this->student->id); $result = mod_quiz_external::get_user_best_grade($quizapi1->id, $this->student->id);
$result = external_api::clean_returnvalue(mod_quiz_external::get_user_best_grade_returns(), $result); $result = \external_api::clean_returnvalue(mod_quiz_external::get_user_best_grade_returns(), $result);
$this->assertTrue($result['hasgrade']); $this->assertTrue($result['hasgrade']);
$this->assertEquals(100.0, $result['grade']); $this->assertEquals(100.0, $result['grade']);
@ -619,7 +627,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
try { try {
mod_quiz_external::get_user_best_grade($this->quiz->id, -1); mod_quiz_external::get_user_best_grade($this->quiz->id, -1);
$this->fail('Exception expected due to missing capability.'); $this->fail('Exception expected due to missing capability.');
} catch (dml_missing_record_exception $e) { } catch (\dml_missing_record_exception $e) {
$this->assertEquals('invaliduser', $e->errorcode); $this->assertEquals('invaliduser', $e->errorcode);
} }
@ -629,7 +637,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
$this->setUser($this->student); $this->setUser($this->student);
$result = mod_quiz_external::get_user_best_grade($quizapi2->id); $result = mod_quiz_external::get_user_best_grade($quizapi2->id);
$result = external_api::clean_returnvalue(mod_quiz_external::get_user_best_grade_returns(), $result); $result = \external_api::clean_returnvalue(mod_quiz_external::get_user_best_grade_returns(), $result);
// No grades yet. // No grades yet.
$this->assertFalse($result['hasgrade']); $this->assertFalse($result['hasgrade']);
@ -649,7 +657,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
$attemptobj->process_finish($timenow, false); $attemptobj->process_finish($timenow, false);
$result = mod_quiz_external::get_user_best_grade($quizapi2->id); $result = mod_quiz_external::get_user_best_grade($quizapi2->id);
$result = external_api::clean_returnvalue(mod_quiz_external::get_user_best_grade_returns(), $result); $result = \external_api::clean_returnvalue(mod_quiz_external::get_user_best_grade_returns(), $result);
// Now I have grades but I will not be allowed to see it. // Now I have grades but I will not be allowed to see it.
$this->assertFalse($result['hasgrade']); $this->assertFalse($result['hasgrade']);
@ -659,7 +667,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
$this->setUser($this->teacher); $this->setUser($this->teacher);
$result = mod_quiz_external::get_user_best_grade($quizapi2->id, $this->student->id); $result = mod_quiz_external::get_user_best_grade($quizapi2->id, $this->student->id);
$result = external_api::clean_returnvalue(mod_quiz_external::get_user_best_grade_returns(), $result); $result = \external_api::clean_returnvalue(mod_quiz_external::get_user_best_grade_returns(), $result);
$this->assertTrue($result['hasgrade']); $this->assertTrue($result['hasgrade']);
$this->assertEquals(100.0, $result['grade']); $this->assertEquals(100.0, $result['grade']);
@ -690,13 +698,13 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
$quizobj = quiz::create($quiz->id, $this->student->id); $quizobj = quiz::create($quiz->id, $this->student->id);
// Set grade to pass. // Set grade to pass.
$item = grade_item::fetch(array('courseid' => $this->course->id, 'itemtype' => 'mod', $item = \grade_item::fetch(array('courseid' => $this->course->id, 'itemtype' => 'mod',
'itemmodule' => 'quiz', 'iteminstance' => $quiz->id, 'outcomeid' => null)); 'itemmodule' => 'quiz', 'iteminstance' => $quiz->id, 'outcomeid' => null));
$item->gradepass = 80; $item->gradepass = 80;
$item->update(); $item->update();
// Start the passing attempt. // Start the passing attempt.
$quba = question_engine::make_questions_usage_by_activity('mod_quiz', $quizobj->get_context()); $quba = \question_engine::make_questions_usage_by_activity('mod_quiz', $quizobj->get_context());
$quba->set_preferred_behaviour($quizobj->get_quiz()->preferredbehaviour); $quba->set_preferred_behaviour($quizobj->get_quiz()->preferredbehaviour);
$timenow = time(); $timenow = time();
@ -707,7 +715,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
$this->setUser($this->student); $this->setUser($this->student);
$result = mod_quiz_external::get_combined_review_options($quiz->id); $result = mod_quiz_external::get_combined_review_options($quiz->id);
$result = external_api::clean_returnvalue(mod_quiz_external::get_combined_review_options_returns(), $result); $result = \external_api::clean_returnvalue(mod_quiz_external::get_combined_review_options_returns(), $result);
// Expected values. // Expected values.
$expected = array( $expected = array(
@ -754,13 +762,13 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
// We should see now the overall feedback. // We should see now the overall feedback.
$result = mod_quiz_external::get_combined_review_options($quiz->id); $result = mod_quiz_external::get_combined_review_options($quiz->id);
$result = external_api::clean_returnvalue(mod_quiz_external::get_combined_review_options_returns(), $result); $result = \external_api::clean_returnvalue(mod_quiz_external::get_combined_review_options_returns(), $result);
$this->assertEquals($expected, $result); $this->assertEquals($expected, $result);
// Start a new attempt, but not finish it. // Start a new attempt, but not finish it.
$timenow = time(); $timenow = time();
$attempt = quiz_create_attempt($quizobj, 2, false, $timenow, false, $this->student->id); $attempt = quiz_create_attempt($quizobj, 2, false, $timenow, false, $this->student->id);
$quba = question_engine::make_questions_usage_by_activity('mod_quiz', $quizobj->get_context()); $quba = \question_engine::make_questions_usage_by_activity('mod_quiz', $quizobj->get_context());
$quba->set_preferred_behaviour($quizobj->get_quiz()->preferredbehaviour); $quba->set_preferred_behaviour($quizobj->get_quiz()->preferredbehaviour);
quiz_start_new_attempt($quizobj, $quba, $attempt, 1, $timenow); quiz_start_new_attempt($quizobj, $quba, $attempt, 1, $timenow);
quiz_attempt_save_started($quizobj, $quba, $attempt); quiz_attempt_save_started($quizobj, $quba, $attempt);
@ -784,14 +792,14 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
); );
$result = mod_quiz_external::get_combined_review_options($quiz->id); $result = mod_quiz_external::get_combined_review_options($quiz->id);
$result = external_api::clean_returnvalue(mod_quiz_external::get_combined_review_options_returns(), $result); $result = \external_api::clean_returnvalue(mod_quiz_external::get_combined_review_options_returns(), $result);
$this->assertEquals($expected, $result); $this->assertEquals($expected, $result);
// Teacher, for see student options. // Teacher, for see student options.
$this->setUser($this->teacher); $this->setUser($this->teacher);
$result = mod_quiz_external::get_combined_review_options($quiz->id, $this->student->id); $result = mod_quiz_external::get_combined_review_options($quiz->id, $this->student->id);
$result = external_api::clean_returnvalue(mod_quiz_external::get_combined_review_options_returns(), $result); $result = \external_api::clean_returnvalue(mod_quiz_external::get_combined_review_options_returns(), $result);
$this->assertEquals($expected, $result); $this->assertEquals($expected, $result);
@ -799,7 +807,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
try { try {
mod_quiz_external::get_combined_review_options($quiz->id, -1); mod_quiz_external::get_combined_review_options($quiz->id, -1);
$this->fail('Exception expected due to missing capability.'); $this->fail('Exception expected due to missing capability.');
} catch (dml_missing_record_exception $e) { } catch (\dml_missing_record_exception $e) {
$this->assertEquals('invaliduser', $e->errorcode); $this->assertEquals('invaliduser', $e->errorcode);
} }
} }
@ -820,7 +828,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
$quiz->timeclose = time() - DAYSECS; $quiz->timeclose = time() - DAYSECS;
$DB->update_record('quiz', $quiz); $DB->update_record('quiz', $quiz);
$result = mod_quiz_external::start_attempt($quiz->id); $result = mod_quiz_external::start_attempt($quiz->id);
$result = external_api::clean_returnvalue(mod_quiz_external::start_attempt_returns(), $result); $result = \external_api::clean_returnvalue(mod_quiz_external::start_attempt_returns(), $result);
$this->assertEquals([], $result['attempt']); $this->assertEquals([], $result['attempt']);
$this->assertCount(1, $result['warnings']); $this->assertCount(1, $result['warnings']);
@ -834,13 +842,13 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
try { try {
mod_quiz_external::start_attempt($quiz->id, array(array("name" => "quizpassword", "value" => 'bad'))); mod_quiz_external::start_attempt($quiz->id, array(array("name" => "quizpassword", "value" => 'bad')));
$this->fail('Exception expected due to invalid passwod.'); $this->fail('Exception expected due to invalid passwod.');
} catch (moodle_exception $e) { } catch (\moodle_exception $e) {
$this->assertEquals(get_string('passworderror', 'quizaccess_password'), $e->errorcode); $this->assertEquals(get_string('passworderror', 'quizaccess_password'), $e->errorcode);
} }
// Now, try everything correct. // Now, try everything correct.
$result = mod_quiz_external::start_attempt($quiz->id, array(array("name" => "quizpassword", "value" => 'abc'))); $result = mod_quiz_external::start_attempt($quiz->id, array(array("name" => "quizpassword", "value" => 'abc')));
$result = external_api::clean_returnvalue(mod_quiz_external::start_attempt_returns(), $result); $result = \external_api::clean_returnvalue(mod_quiz_external::start_attempt_returns(), $result);
$this->assertEquals(1, $result['attempt']['attempt']); $this->assertEquals(1, $result['attempt']['attempt']);
$this->assertEquals($this->student->id, $result['attempt']['userid']); $this->assertEquals($this->student->id, $result['attempt']['userid']);
@ -853,7 +861,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
try { try {
mod_quiz_external::start_attempt($quiz->id, array(array("name" => "quizpassword", "value" => 'abc'))); mod_quiz_external::start_attempt($quiz->id, array(array("name" => "quizpassword", "value" => 'abc')));
$this->fail('Exception expected due to attempt not finished.'); $this->fail('Exception expected due to attempt not finished.');
} catch (moodle_quiz_exception $e) { } catch (\moodle_quiz_exception $e) {
$this->assertEquals('attemptstillinprogress', $e->errorcode); $this->assertEquals('attemptstillinprogress', $e->errorcode);
} }
@ -872,7 +880,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
// We should be able to start a new attempt. // We should be able to start a new attempt.
$result = mod_quiz_external::start_attempt($quiz->id, array(array("name" => "quizpassword", "value" => 'abc'))); $result = mod_quiz_external::start_attempt($quiz->id, array(array("name" => "quizpassword", "value" => 'abc')));
$result = external_api::clean_returnvalue(mod_quiz_external::start_attempt_returns(), $result); $result = \external_api::clean_returnvalue(mod_quiz_external::start_attempt_returns(), $result);
$this->assertEquals(2, $result['attempt']['attempt']); $this->assertEquals(2, $result['attempt']['attempt']);
$this->assertEquals($this->student->id, $result['attempt']['userid']); $this->assertEquals($this->student->id, $result['attempt']['userid']);
@ -884,12 +892,12 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
assign_capability('mod/quiz:attempt', CAP_PROHIBIT, $this->studentrole->id, $context->id); assign_capability('mod/quiz:attempt', CAP_PROHIBIT, $this->studentrole->id, $context->id);
// Empty all the caches that may be affected by this change. // Empty all the caches that may be affected by this change.
accesslib_clear_all_caches_for_unit_testing(); accesslib_clear_all_caches_for_unit_testing();
course_modinfo::clear_instance_cache(); \course_modinfo::clear_instance_cache();
try { try {
mod_quiz_external::start_attempt($quiz->id); mod_quiz_external::start_attempt($quiz->id);
$this->fail('Exception expected due to missing capability.'); $this->fail('Exception expected due to missing capability.');
} catch (required_capability_exception $e) { } catch (\required_capability_exception $e) {
$this->assertEquals('nopermissions', $e->errorcode); $this->assertEquals('nopermissions', $e->errorcode);
} }
@ -911,7 +919,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
$params = array('attemptid' => -1, 'page' => 0); $params = array('attemptid' => -1, 'page' => 0);
testable_mod_quiz_external::validate_attempt($params); testable_mod_quiz_external::validate_attempt($params);
$this->fail('Exception expected due to invalid attempt id.'); $this->fail('Exception expected due to invalid attempt id.');
} catch (dml_missing_record_exception $e) { } catch (\dml_missing_record_exception $e) {
$this->assertEquals('invalidrecord', $e->errorcode); $this->assertEquals('invalidrecord', $e->errorcode);
} }
@ -930,7 +938,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
'preflightdata' => array(array("name" => "quizpassword", "value" => 'bad'))); 'preflightdata' => array(array("name" => "quizpassword", "value" => 'bad')));
testable_mod_quiz_external::validate_attempt($params); testable_mod_quiz_external::validate_attempt($params);
$this->fail('Exception expected due to invalid passwod.'); $this->fail('Exception expected due to invalid passwod.');
} catch (moodle_exception $e) { } catch (\moodle_exception $e) {
$this->assertEquals(get_string('passworderror', 'quizaccess_password'), $e->errorcode); $this->assertEquals(get_string('passworderror', 'quizaccess_password'), $e->errorcode);
} }
@ -946,7 +954,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
try { try {
testable_mod_quiz_external::validate_attempt($params); testable_mod_quiz_external::validate_attempt($params);
$this->fail('Exception expected due to page out of range.'); $this->fail('Exception expected due to page out of range.');
} catch (moodle_quiz_exception $e) { } catch (\moodle_quiz_exception $e) {
$this->assertEquals('Invalid page number', $e->errorcode); $this->assertEquals('Invalid page number', $e->errorcode);
} }
@ -963,7 +971,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
try { try {
testable_mod_quiz_external::validate_attempt($params); testable_mod_quiz_external::validate_attempt($params);
$this->fail('Exception expected due to passed dates.'); $this->fail('Exception expected due to passed dates.');
} catch (moodle_quiz_exception $e) { } catch (\moodle_quiz_exception $e) {
$this->assertEquals('attempterror', $e->errorcode); $this->assertEquals('attempterror', $e->errorcode);
} }
@ -974,7 +982,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
try { try {
testable_mod_quiz_external::validate_attempt($params, false); testable_mod_quiz_external::validate_attempt($params, false);
$this->fail('Exception expected due to attempt finished.'); $this->fail('Exception expected due to attempt finished.');
} catch (moodle_quiz_exception $e) { } catch (\moodle_quiz_exception $e) {
$this->assertEquals('attemptalreadyclosed', $e->errorcode); $this->assertEquals('attemptalreadyclosed', $e->errorcode);
} }
@ -983,12 +991,12 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
assign_capability('mod/quiz:attempt', CAP_PROHIBIT, $this->studentrole->id, $context->id); assign_capability('mod/quiz:attempt', CAP_PROHIBIT, $this->studentrole->id, $context->id);
// Empty all the caches that may be affected by this change. // Empty all the caches that may be affected by this change.
accesslib_clear_all_caches_for_unit_testing(); accesslib_clear_all_caches_for_unit_testing();
course_modinfo::clear_instance_cache(); \course_modinfo::clear_instance_cache();
try { try {
testable_mod_quiz_external::validate_attempt($params); testable_mod_quiz_external::validate_attempt($params);
$this->fail('Exception expected due to missing permissions.'); $this->fail('Exception expected due to missing permissions.');
} catch (required_capability_exception $e) { } catch (\required_capability_exception $e) {
$this->assertEquals('nopermissions', $e->errorcode); $this->assertEquals('nopermissions', $e->errorcode);
} }
@ -999,7 +1007,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
try { try {
testable_mod_quiz_external::validate_attempt($params); testable_mod_quiz_external::validate_attempt($params);
$this->fail('Exception expected due to not your attempt.'); $this->fail('Exception expected due to not your attempt.');
} catch (moodle_quiz_exception $e) { } catch (\moodle_quiz_exception $e) {
$this->assertEquals('notyourattempt', $e->errorcode); $this->assertEquals('notyourattempt', $e->errorcode);
} }
} }
@ -1026,7 +1034,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
// We receive one question per page. // We receive one question per page.
$result = mod_quiz_external::get_attempt_data($attempt->id, 0); $result = mod_quiz_external::get_attempt_data($attempt->id, 0);
$result = external_api::clean_returnvalue(mod_quiz_external::get_attempt_data_returns(), $result); $result = \external_api::clean_returnvalue(mod_quiz_external::get_attempt_data_returns(), $result);
$this->assertEquals($attempt, (object) $result['attempt']); $this->assertEquals($attempt, (object) $result['attempt']);
$this->assertEquals(1, $result['nextpage']); $this->assertEquals(1, $result['nextpage']);
@ -1047,7 +1055,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
// Now try the last page. // Now try the last page.
$result = mod_quiz_external::get_attempt_data($attempt->id, 1); $result = mod_quiz_external::get_attempt_data($attempt->id, 1);
$result = external_api::clean_returnvalue(mod_quiz_external::get_attempt_data_returns(), $result); $result = \external_api::clean_returnvalue(mod_quiz_external::get_attempt_data_returns(), $result);
$this->assertEquals($attempt, (object) $result['attempt']); $this->assertEquals($attempt, (object) $result['attempt']);
$this->assertEquals(-1, $result['nextpage']); $this->assertEquals(-1, $result['nextpage']);
@ -1069,7 +1077,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
// Now we should receive the question state. // Now we should receive the question state.
$result = mod_quiz_external::get_attempt_review($attempt->id, 1); $result = mod_quiz_external::get_attempt_review($attempt->id, 1);
$result = external_api::clean_returnvalue(mod_quiz_external::get_attempt_review_returns(), $result); $result = \external_api::clean_returnvalue(mod_quiz_external::get_attempt_review_returns(), $result);
$this->assertEquals('gaveup', $result['questions'][0]['state']); $this->assertEquals('gaveup', $result['questions'][0]['state']);
// Change setting and expect two pages. // Change setting and expect two pages.
@ -1078,7 +1086,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
quiz_repaginate_questions($quiz->id, $quiz->questionsperpage); quiz_repaginate_questions($quiz->id, $quiz->questionsperpage);
// Start with new attempt with the new layout. // Start with new attempt with the new layout.
$quba = question_engine::make_questions_usage_by_activity('mod_quiz', $quizobj->get_context()); $quba = \question_engine::make_questions_usage_by_activity('mod_quiz', $quizobj->get_context());
$quba->set_preferred_behaviour($quizobj->get_quiz()->preferredbehaviour); $quba->set_preferred_behaviour($quizobj->get_quiz()->preferredbehaviour);
$timenow = time(); $timenow = time();
@ -1088,7 +1096,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
// We receive two questions per page. // We receive two questions per page.
$result = mod_quiz_external::get_attempt_data($attempt->id, 0); $result = mod_quiz_external::get_attempt_data($attempt->id, 0);
$result = external_api::clean_returnvalue(mod_quiz_external::get_attempt_data_returns(), $result); $result = \external_api::clean_returnvalue(mod_quiz_external::get_attempt_data_returns(), $result);
$this->assertCount(2, $result['questions']); $this->assertCount(2, $result['questions']);
$this->assertEquals(-1, $result['nextpage']); $this->assertEquals(-1, $result['nextpage']);
@ -1132,7 +1140,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
// We receive one question per page. // We receive one question per page.
$result = mod_quiz_external::get_attempt_data($attempt->id, 0); $result = mod_quiz_external::get_attempt_data($attempt->id, 0);
$result = external_api::clean_returnvalue(mod_quiz_external::get_attempt_data_returns(), $result); $result = \external_api::clean_returnvalue(mod_quiz_external::get_attempt_data_returns(), $result);
$this->assertEquals($attempt, (object) $result['attempt']); $this->assertEquals($attempt, (object) $result['attempt']);
$this->assertCount(1, $result['questions']); $this->assertCount(1, $result['questions']);
@ -1142,7 +1150,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
// Now try the last page. // Now try the last page.
$result = mod_quiz_external::get_attempt_data($attempt->id, 1); $result = mod_quiz_external::get_attempt_data($attempt->id, 1);
$result = external_api::clean_returnvalue(mod_quiz_external::get_attempt_data_returns(), $result); $result = \external_api::clean_returnvalue(mod_quiz_external::get_attempt_data_returns(), $result);
$this->assertEquals($attempt, (object) $result['attempt']); $this->assertEquals($attempt, (object) $result['attempt']);
$this->assertCount(1, $result['questions']); $this->assertCount(1, $result['questions']);
@ -1162,7 +1170,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
$this->setUser($this->student); $this->setUser($this->student);
$result = mod_quiz_external::get_attempt_summary($attempt->id); $result = mod_quiz_external::get_attempt_summary($attempt->id);
$result = external_api::clean_returnvalue(mod_quiz_external::get_attempt_summary_returns(), $result); $result = \external_api::clean_returnvalue(mod_quiz_external::get_attempt_summary_returns(), $result);
// Check the state, flagged and mark data is correct. // Check the state, flagged and mark data is correct.
$this->assertEquals('todo', $result['questions'][0]['state']); $this->assertEquals('todo', $result['questions'][0]['state']);
@ -1189,7 +1197,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
$tosubmit = array(1 => array('answer' => '3.14')); $tosubmit = array(1 => array('answer' => '3.14'));
$attemptobj->process_submitted_actions(time(), false, $tosubmit); $attemptobj->process_submitted_actions(time(), false, $tosubmit);
$result = mod_quiz_external::get_attempt_summary($attempt->id); $result = mod_quiz_external::get_attempt_summary($attempt->id);
$result = external_api::clean_returnvalue(mod_quiz_external::get_attempt_summary_returns(), $result); $result = \external_api::clean_returnvalue(mod_quiz_external::get_attempt_summary_returns(), $result);
// Check it's marked as completed only the first one. // Check it's marked as completed only the first one.
$this->assertEquals('complete', $result['questions'][0]['state']); $this->assertEquals('complete', $result['questions'][0]['state']);
@ -1230,12 +1238,12 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
$this->setUser($this->student); $this->setUser($this->student);
$result = mod_quiz_external::save_attempt($attempt->id, $data); $result = mod_quiz_external::save_attempt($attempt->id, $data);
$result = external_api::clean_returnvalue(mod_quiz_external::save_attempt_returns(), $result); $result = \external_api::clean_returnvalue(mod_quiz_external::save_attempt_returns(), $result);
$this->assertTrue($result['status']); $this->assertTrue($result['status']);
// Now, get the summary. // Now, get the summary.
$result = mod_quiz_external::get_attempt_summary($attempt->id); $result = mod_quiz_external::get_attempt_summary($attempt->id);
$result = external_api::clean_returnvalue(mod_quiz_external::get_attempt_summary_returns(), $result); $result = \external_api::clean_returnvalue(mod_quiz_external::get_attempt_summary_returns(), $result);
// Check it's marked as completed only the first one. // Check it's marked as completed only the first one.
$this->assertEquals('complete', $result['questions'][0]['state']); $this->assertEquals('complete', $result['questions'][0]['state']);
@ -1263,12 +1271,12 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
); );
$result = mod_quiz_external::save_attempt($attempt->id, $data); $result = mod_quiz_external::save_attempt($attempt->id, $data);
$result = external_api::clean_returnvalue(mod_quiz_external::save_attempt_returns(), $result); $result = \external_api::clean_returnvalue(mod_quiz_external::save_attempt_returns(), $result);
$this->assertTrue($result['status']); $this->assertTrue($result['status']);
// Now, get the summary. // Now, get the summary.
$result = mod_quiz_external::get_attempt_summary($attempt->id); $result = mod_quiz_external::get_attempt_summary($attempt->id);
$result = external_api::clean_returnvalue(mod_quiz_external::get_attempt_summary_returns(), $result); $result = \external_api::clean_returnvalue(mod_quiz_external::get_attempt_summary_returns(), $result);
// Check it's marked as completed only the first one. // Check it's marked as completed only the first one.
$this->assertEquals('complete', $result['questions'][0]['state']); $this->assertEquals('complete', $result['questions'][0]['state']);
@ -1301,14 +1309,14 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
$this->setUser($this->student); $this->setUser($this->student);
$result = mod_quiz_external::process_attempt($attempt->id, $data); $result = mod_quiz_external::process_attempt($attempt->id, $data);
$result = external_api::clean_returnvalue(mod_quiz_external::process_attempt_returns(), $result); $result = \external_api::clean_returnvalue(mod_quiz_external::process_attempt_returns(), $result);
$this->assertEquals(quiz_attempt::IN_PROGRESS, $result['state']); $this->assertEquals(quiz_attempt::IN_PROGRESS, $result['state']);
$result = mod_quiz_external::get_attempt_data($attempt->id, 2); $result = mod_quiz_external::get_attempt_data($attempt->id, 2);
// Now, get the summary. // Now, get the summary.
$result = mod_quiz_external::get_attempt_summary($attempt->id); $result = mod_quiz_external::get_attempt_summary($attempt->id);
$result = external_api::clean_returnvalue(mod_quiz_external::get_attempt_summary_returns(), $result); $result = \external_api::clean_returnvalue(mod_quiz_external::get_attempt_summary_returns(), $result);
$this->assertDebuggingCalled(); // Expect $PAGE->set_url debugging. $this->assertDebuggingCalled(); // Expect $PAGE->set_url debugging.
// Check it's marked as completed only the first one. // Check it's marked as completed only the first one.
@ -1338,12 +1346,12 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
); );
$result = mod_quiz_external::process_attempt($attempt->id, $data); $result = mod_quiz_external::process_attempt($attempt->id, $data);
$result = external_api::clean_returnvalue(mod_quiz_external::process_attempt_returns(), $result); $result = \external_api::clean_returnvalue(mod_quiz_external::process_attempt_returns(), $result);
$this->assertEquals(quiz_attempt::IN_PROGRESS, $result['state']); $this->assertEquals(quiz_attempt::IN_PROGRESS, $result['state']);
// Now, get the summary. // Now, get the summary.
$result = mod_quiz_external::get_attempt_summary($attempt->id); $result = mod_quiz_external::get_attempt_summary($attempt->id);
$result = external_api::clean_returnvalue(mod_quiz_external::get_attempt_summary_returns(), $result); $result = \external_api::clean_returnvalue(mod_quiz_external::get_attempt_summary_returns(), $result);
// Check it's marked as completed the two first questions. // Check it's marked as completed the two first questions.
$this->assertEquals('complete', $result['questions'][0]['state']); $this->assertEquals('complete', $result['questions'][0]['state']);
@ -1354,7 +1362,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
// Add files in the attachment response. // Add files in the attachment response.
$draftitemid = file_get_unused_draft_itemid(); $draftitemid = file_get_unused_draft_itemid();
$filerecordinline = array( $filerecordinline = array(
'contextid' => context_user::instance($this->student->id)->id, 'contextid' => \context_user::instance($this->student->id)->id,
'component' => 'user', 'component' => 'user',
'filearea' => 'draft', 'filearea' => 'draft',
'itemid' => $draftitemid, 'itemid' => $draftitemid,
@ -1376,12 +1384,12 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
); );
$result = mod_quiz_external::process_attempt($attempt->id, $data); $result = mod_quiz_external::process_attempt($attempt->id, $data);
$result = external_api::clean_returnvalue(mod_quiz_external::process_attempt_returns(), $result); $result = \external_api::clean_returnvalue(mod_quiz_external::process_attempt_returns(), $result);
$this->assertEquals(quiz_attempt::IN_PROGRESS, $result['state']); $this->assertEquals(quiz_attempt::IN_PROGRESS, $result['state']);
// Now, get the summary. // Now, get the summary.
$result = mod_quiz_external::get_attempt_summary($attempt->id); $result = mod_quiz_external::get_attempt_summary($attempt->id);
$result = external_api::clean_returnvalue(mod_quiz_external::get_attempt_summary_returns(), $result); $result = \external_api::clean_returnvalue(mod_quiz_external::get_attempt_summary_returns(), $result);
$this->assertEquals('complete', $result['questions'][0]['state']); $this->assertEquals('complete', $result['questions'][0]['state']);
$this->assertEquals('complete', $result['questions'][1]['state']); $this->assertEquals('complete', $result['questions'][1]['state']);
@ -1399,7 +1407,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
// Finish the attempt. // Finish the attempt.
$sink = $this->redirectMessages(); $sink = $this->redirectMessages();
$result = mod_quiz_external::process_attempt($attempt->id, array(), true); $result = mod_quiz_external::process_attempt($attempt->id, array(), true);
$result = external_api::clean_returnvalue(mod_quiz_external::process_attempt_returns(), $result); $result = \external_api::clean_returnvalue(mod_quiz_external::process_attempt_returns(), $result);
$this->assertEquals(quiz_attempt::FINISHED, $result['state']); $this->assertEquals(quiz_attempt::FINISHED, $result['state']);
$messages = $sink->get_messages(); $messages = $sink->get_messages();
$message = reset($messages); $message = reset($messages);
@ -1414,7 +1422,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
} }
// Start new attempt. // Start new attempt.
$quba = question_engine::make_questions_usage_by_activity('mod_quiz', $quizobj->get_context()); $quba = \question_engine::make_questions_usage_by_activity('mod_quiz', $quizobj->get_context());
$quba->set_preferred_behaviour($quizobj->get_quiz()->preferredbehaviour); $quba->set_preferred_behaviour($quizobj->get_quiz()->preferredbehaviour);
$timenow = time(); $timenow = time();
@ -1429,7 +1437,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
$DB->update_record('quiz', $quiz); $DB->update_record('quiz', $quiz);
$result = mod_quiz_external::process_attempt($attempt->id, array()); $result = mod_quiz_external::process_attempt($attempt->id, array());
$result = external_api::clean_returnvalue(mod_quiz_external::process_attempt_returns(), $result); $result = \external_api::clean_returnvalue(mod_quiz_external::process_attempt_returns(), $result);
$this->assertEquals(quiz_attempt::OVERDUE, $result['state']); $this->assertEquals(quiz_attempt::OVERDUE, $result['state']);
// Force grace period for time limit. // Force grace period for time limit.
@ -1440,19 +1448,19 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
$DB->update_record('quiz', $quiz); $DB->update_record('quiz', $quiz);
$timenow = time(); $timenow = time();
$quba = question_engine::make_questions_usage_by_activity('mod_quiz', $quizobj->get_context()); $quba = \question_engine::make_questions_usage_by_activity('mod_quiz', $quizobj->get_context());
$quba->set_preferred_behaviour($quizobj->get_quiz()->preferredbehaviour); $quba->set_preferred_behaviour($quizobj->get_quiz()->preferredbehaviour);
$attempt = quiz_create_attempt($quizobj, 3, 2, $timenow - 10, false, $this->student->id); $attempt = quiz_create_attempt($quizobj, 3, 2, $timenow - 10, false, $this->student->id);
quiz_start_new_attempt($quizobj, $quba, $attempt, 2, $timenow - 10); quiz_start_new_attempt($quizobj, $quba, $attempt, 2, $timenow - 10);
quiz_attempt_save_started($quizobj, $quba, $attempt); quiz_attempt_save_started($quizobj, $quba, $attempt);
$result = mod_quiz_external::process_attempt($attempt->id, array()); $result = mod_quiz_external::process_attempt($attempt->id, array());
$result = external_api::clean_returnvalue(mod_quiz_external::process_attempt_returns(), $result); $result = \external_api::clean_returnvalue(mod_quiz_external::process_attempt_returns(), $result);
$this->assertEquals(quiz_attempt::OVERDUE, $result['state']); $this->assertEquals(quiz_attempt::OVERDUE, $result['state']);
// New attempt. // New attempt.
$timenow = time(); $timenow = time();
$quba = question_engine::make_questions_usage_by_activity('mod_quiz', $quizobj->get_context()); $quba = \question_engine::make_questions_usage_by_activity('mod_quiz', $quizobj->get_context());
$quba->set_preferred_behaviour($quizobj->get_quiz()->preferredbehaviour); $quba->set_preferred_behaviour($quizobj->get_quiz()->preferredbehaviour);
$attempt = quiz_create_attempt($quizobj, 4, 3, $timenow, false, $this->student->id); $attempt = quiz_create_attempt($quizobj, 4, 3, $timenow, false, $this->student->id);
quiz_start_new_attempt($quizobj, $quba, $attempt, 3, $timenow); quiz_start_new_attempt($quizobj, $quba, $attempt, 3, $timenow);
@ -1463,7 +1471,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
$DB->update_record('quiz', $quiz); $DB->update_record('quiz', $quiz);
$result = mod_quiz_external::process_attempt($attempt->id, array()); $result = mod_quiz_external::process_attempt($attempt->id, array());
$result = external_api::clean_returnvalue(mod_quiz_external::process_attempt_returns(), $result); $result = \external_api::clean_returnvalue(mod_quiz_external::process_attempt_returns(), $result);
$this->assertEquals(quiz_attempt::ABANDONED, $result['state']); $this->assertEquals(quiz_attempt::ABANDONED, $result['state']);
} }
@ -1484,7 +1492,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
$params = array('attemptid' => -1); $params = array('attemptid' => -1);
testable_mod_quiz_external::validate_attempt_review($params); testable_mod_quiz_external::validate_attempt_review($params);
$this->fail('Exception expected due invalid id.'); $this->fail('Exception expected due invalid id.');
} catch (dml_missing_record_exception $e) { } catch (\dml_missing_record_exception $e) {
$this->assertEquals('invalidrecord', $e->errorcode); $this->assertEquals('invalidrecord', $e->errorcode);
} }
@ -1493,7 +1501,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
$params = array('attemptid' => $attempt->id); $params = array('attemptid' => $attempt->id);
testable_mod_quiz_external::validate_attempt_review($params); testable_mod_quiz_external::validate_attempt_review($params);
$this->fail('Exception expected due not closed attempt.'); $this->fail('Exception expected due not closed attempt.');
} catch (moodle_quiz_exception $e) { } catch (\moodle_quiz_exception $e) {
$this->assertEquals('attemptclosed', $e->errorcode); $this->assertEquals('attemptclosed', $e->errorcode);
} }
@ -1516,7 +1524,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
$params = array('attemptid' => $attempt->id); $params = array('attemptid' => $attempt->id);
testable_mod_quiz_external::validate_attempt_review($params); testable_mod_quiz_external::validate_attempt_review($params);
$this->fail('Exception expected due missing permissions.'); $this->fail('Exception expected due missing permissions.');
} catch (moodle_quiz_exception $e) { } catch (\moodle_quiz_exception $e) {
$this->assertEquals('noreviewattempt', $e->errorcode); $this->assertEquals('noreviewattempt', $e->errorcode);
} }
} }
@ -1532,7 +1540,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
list($quiz, $context, $quizobj, $attempt, $attemptobj, $quba) = $this->create_quiz_with_questions(true, true); list($quiz, $context, $quizobj, $attempt, $attemptobj, $quba) = $this->create_quiz_with_questions(true, true);
// Add feedback to the quiz. // Add feedback to the quiz.
$feedback = new stdClass(); $feedback = new \stdClass();
$feedback->quizid = $quiz->id; $feedback->quizid = $quiz->id;
$feedback->feedbacktext = 'Feedback text 1'; $feedback->feedbacktext = 'Feedback text 1';
$feedback->feedbacktextformat = 1; $feedback->feedbacktextformat = 1;
@ -1547,7 +1555,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
$feedback->id = $DB->insert_record('quiz_feedback', $feedback); $feedback->id = $DB->insert_record('quiz_feedback', $feedback);
$result = mod_quiz_external::get_attempt_review($attempt->id); $result = mod_quiz_external::get_attempt_review($attempt->id);
$result = external_api::clean_returnvalue(mod_quiz_external::get_attempt_review_returns(), $result); $result = \external_api::clean_returnvalue(mod_quiz_external::get_attempt_review_returns(), $result);
// Two questions, one completed and correct, the other gave up. // Two questions, one completed and correct, the other gave up.
$this->assertEquals(50, $result['grade']); $this->assertEquals(50, $result['grade']);
@ -1567,7 +1575,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
// Only first page. // Only first page.
$result = mod_quiz_external::get_attempt_review($attempt->id, 0); $result = mod_quiz_external::get_attempt_review($attempt->id, 0);
$result = external_api::clean_returnvalue(mod_quiz_external::get_attempt_review_returns(), $result); $result = \external_api::clean_returnvalue(mod_quiz_external::get_attempt_review_returns(), $result);
$this->assertEquals(50, $result['grade']); $this->assertEquals(50, $result['grade']);
$this->assertEquals(1, $result['attempt']['attempt']); $this->assertEquals(1, $result['attempt']['attempt']);
@ -1600,7 +1608,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();
$result = mod_quiz_external::view_attempt($attempt->id, 0); $result = mod_quiz_external::view_attempt($attempt->id, 0);
$result = external_api::clean_returnvalue(mod_quiz_external::view_attempt_returns(), $result); $result = \external_api::clean_returnvalue(mod_quiz_external::view_attempt_returns(), $result);
$this->assertTrue($result['status']); $this->assertTrue($result['status']);
$events = $sink->get_events(); $events = $sink->get_events();
@ -1621,7 +1629,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
// See next page. // See next page.
$result = mod_quiz_external::view_attempt($attempt->id, 1, $preflightdata); $result = mod_quiz_external::view_attempt($attempt->id, 1, $preflightdata);
$result = external_api::clean_returnvalue(mod_quiz_external::view_attempt_returns(), $result); $result = \external_api::clean_returnvalue(mod_quiz_external::view_attempt_returns(), $result);
$this->assertTrue($result['status']); $this->assertTrue($result['status']);
$events = $sink->get_events(); $events = $sink->get_events();
@ -1631,7 +1639,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
try { try {
mod_quiz_external::view_attempt($attempt->id, 0); mod_quiz_external::view_attempt($attempt->id, 0);
$this->fail('Exception expected due to try to see a previous page.'); $this->fail('Exception expected due to try to see a previous page.');
} catch (moodle_quiz_exception $e) { } catch (\moodle_quiz_exception $e) {
$this->assertEquals('Out of sequence access', $e->errorcode); $this->assertEquals('Out of sequence access', $e->errorcode);
} }
@ -1653,7 +1661,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();
$result = mod_quiz_external::view_attempt_summary($attempt->id); $result = mod_quiz_external::view_attempt_summary($attempt->id);
$result = external_api::clean_returnvalue(mod_quiz_external::view_attempt_summary_returns(), $result); $result = \external_api::clean_returnvalue(mod_quiz_external::view_attempt_summary_returns(), $result);
$this->assertTrue($result['status']); $this->assertTrue($result['status']);
$events = $sink->get_events(); $events = $sink->get_events();
@ -1673,7 +1681,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
$preflightdata = array(array("name" => "quizpassword", "value" => 'abcdef')); $preflightdata = array(array("name" => "quizpassword", "value" => 'abcdef'));
$result = mod_quiz_external::view_attempt_summary($attempt->id, $preflightdata); $result = mod_quiz_external::view_attempt_summary($attempt->id, $preflightdata);
$result = external_api::clean_returnvalue(mod_quiz_external::view_attempt_summary_returns(), $result); $result = \external_api::clean_returnvalue(mod_quiz_external::view_attempt_summary_returns(), $result);
$this->assertTrue($result['status']); $this->assertTrue($result['status']);
} }
@ -1694,7 +1702,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();
$result = mod_quiz_external::view_attempt_review($attempt->id, 0); $result = mod_quiz_external::view_attempt_review($attempt->id, 0);
$result = external_api::clean_returnvalue(mod_quiz_external::view_attempt_review_returns(), $result); $result = \external_api::clean_returnvalue(mod_quiz_external::view_attempt_review_returns(), $result);
$this->assertTrue($result['status']); $this->assertTrue($result['status']);
$events = $sink->get_events(); $events = $sink->get_events();
@ -1718,7 +1726,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
global $DB; global $DB;
// Add feedback to the quiz. // Add feedback to the quiz.
$feedback = new stdClass(); $feedback = new \stdClass();
$feedback->quizid = $this->quiz->id; $feedback->quizid = $this->quiz->id;
$feedback->feedbacktext = 'Feedback text 1'; $feedback->feedbacktext = 'Feedback text 1';
$feedback->feedbacktextformat = 1; $feedback->feedbacktextformat = 1;
@ -1745,18 +1753,18 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
$feedback->id = $DB->insert_record('quiz_feedback', $feedback); $feedback->id = $DB->insert_record('quiz_feedback', $feedback);
$result = mod_quiz_external::get_quiz_feedback_for_grade($this->quiz->id, 50); $result = mod_quiz_external::get_quiz_feedback_for_grade($this->quiz->id, 50);
$result = external_api::clean_returnvalue(mod_quiz_external::get_quiz_feedback_for_grade_returns(), $result); $result = \external_api::clean_returnvalue(mod_quiz_external::get_quiz_feedback_for_grade_returns(), $result);
$this->assertEquals('Feedback text 1', $result['feedbacktext']); $this->assertEquals('Feedback text 1', $result['feedbacktext']);
$this->assertEquals($filename, $result['feedbackinlinefiles'][0]['filename']); $this->assertEquals($filename, $result['feedbackinlinefiles'][0]['filename']);
$this->assertEquals(FORMAT_HTML, $result['feedbacktextformat']); $this->assertEquals(FORMAT_HTML, $result['feedbacktextformat']);
$result = mod_quiz_external::get_quiz_feedback_for_grade($this->quiz->id, 30); $result = mod_quiz_external::get_quiz_feedback_for_grade($this->quiz->id, 30);
$result = external_api::clean_returnvalue(mod_quiz_external::get_quiz_feedback_for_grade_returns(), $result); $result = \external_api::clean_returnvalue(mod_quiz_external::get_quiz_feedback_for_grade_returns(), $result);
$this->assertEquals('Feedback text 2', $result['feedbacktext']); $this->assertEquals('Feedback text 2', $result['feedbacktext']);
$this->assertEquals(FORMAT_HTML, $result['feedbacktextformat']); $this->assertEquals(FORMAT_HTML, $result['feedbacktextformat']);
$result = mod_quiz_external::get_quiz_feedback_for_grade($this->quiz->id, 10); $result = mod_quiz_external::get_quiz_feedback_for_grade($this->quiz->id, 10);
$result = external_api::clean_returnvalue(mod_quiz_external::get_quiz_feedback_for_grade_returns(), $result); $result = \external_api::clean_returnvalue(mod_quiz_external::get_quiz_feedback_for_grade_returns(), $result);
$this->assertEquals('', $result['feedbacktext']); $this->assertEquals('', $result['feedbacktext']);
$this->assertEquals(FORMAT_MOODLE, $result['feedbacktextformat']); $this->assertEquals(FORMAT_MOODLE, $result['feedbacktextformat']);
} }
@ -1776,7 +1784,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
// Default restrictions (none). // Default restrictions (none).
$result = mod_quiz_external::get_quiz_access_information($quiz->id); $result = mod_quiz_external::get_quiz_access_information($quiz->id);
$result = external_api::clean_returnvalue(mod_quiz_external::get_quiz_access_information_returns(), $result); $result = \external_api::clean_returnvalue(mod_quiz_external::get_quiz_access_information_returns(), $result);
$expected = array( $expected = array(
'canattempt' => true, 'canattempt' => true,
@ -1796,7 +1804,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
// Now teacher, different privileges. // Now teacher, different privileges.
$this->setUser($this->teacher); $this->setUser($this->teacher);
$result = mod_quiz_external::get_quiz_access_information($quiz->id); $result = mod_quiz_external::get_quiz_access_information($quiz->id);
$result = external_api::clean_returnvalue(mod_quiz_external::get_quiz_access_information_returns(), $result); $result = \external_api::clean_returnvalue(mod_quiz_external::get_quiz_access_information_returns(), $result);
$expected['canmanage'] = true; $expected['canmanage'] = true;
$expected['canpreview'] = true; $expected['canpreview'] = true;
@ -1814,7 +1822,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
$DB->update_record('quiz', $quiz); $DB->update_record('quiz', $quiz);
$result = mod_quiz_external::get_quiz_access_information($quiz->id); $result = mod_quiz_external::get_quiz_access_information($quiz->id);
$result = external_api::clean_returnvalue(mod_quiz_external::get_quiz_access_information_returns(), $result); $result = \external_api::clean_returnvalue(mod_quiz_external::get_quiz_access_information_returns(), $result);
// Access is limited by time and password, but only the password limit has a description. // Access is limited by time and password, but only the password limit has a description.
$this->assertCount(1, $result['accessrules']); $this->assertCount(1, $result['accessrules']);
@ -1857,7 +1865,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
$quizobj = quiz::create($quiz->id, $this->student->id); $quizobj = quiz::create($quiz->id, $this->student->id);
// Set grade to pass. // Set grade to pass.
$item = grade_item::fetch(array('courseid' => $this->course->id, 'itemtype' => 'mod', $item = \grade_item::fetch(array('courseid' => $this->course->id, 'itemtype' => 'mod',
'itemmodule' => 'quiz', 'iteminstance' => $quiz->id, 'outcomeid' => null)); 'itemmodule' => 'quiz', 'iteminstance' => $quiz->id, 'outcomeid' => null));
$item->gradepass = 80; $item->gradepass = 80;
$item->update(); $item->update();
@ -1866,7 +1874,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
// Default restrictions (none). // Default restrictions (none).
$result = mod_quiz_external::get_attempt_access_information($quiz->id); $result = mod_quiz_external::get_attempt_access_information($quiz->id);
$result = external_api::clean_returnvalue(mod_quiz_external::get_attempt_access_information_returns(), $result); $result = \external_api::clean_returnvalue(mod_quiz_external::get_attempt_access_information_returns(), $result);
$expected = array( $expected = array(
'isfinished' => false, 'isfinished' => false,
@ -1881,7 +1889,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
$DB->update_record('quiz', $quiz); $DB->update_record('quiz', $quiz);
// Now, do one attempt. // Now, do one attempt.
$quba = question_engine::make_questions_usage_by_activity('mod_quiz', $quizobj->get_context()); $quba = \question_engine::make_questions_usage_by_activity('mod_quiz', $quizobj->get_context());
$quba->set_preferred_behaviour($quizobj->get_quiz()->preferredbehaviour); $quba->set_preferred_behaviour($quizobj->get_quiz()->preferredbehaviour);
$timenow = time(); $timenow = time();
@ -1901,7 +1909,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
// Can we start a new attempt? We shall not! // Can we start a new attempt? We shall not!
$result = mod_quiz_external::get_attempt_access_information($quiz->id, $attempt->id); $result = mod_quiz_external::get_attempt_access_information($quiz->id, $attempt->id);
$result = external_api::clean_returnvalue(mod_quiz_external::get_attempt_access_information_returns(), $result); $result = \external_api::clean_returnvalue(mod_quiz_external::get_attempt_access_information_returns(), $result);
// Now new attemps allowed. // Now new attemps allowed.
$this->assertCount(1, $result['preventnewattemptreasons']); $this->assertCount(1, $result['preventnewattemptreasons']);
@ -1940,7 +1948,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
$this->setUser($this->student); $this->setUser($this->student);
$result = mod_quiz_external::get_quiz_required_qtypes($quiz->id); $result = mod_quiz_external::get_quiz_required_qtypes($quiz->id);
$result = external_api::clean_returnvalue(mod_quiz_external::get_quiz_required_qtypes_returns(), $result); $result = \external_api::clean_returnvalue(mod_quiz_external::get_quiz_required_qtypes_returns(), $result);
$expected = array( $expected = array(
'questiontypes' => ['essay', 'numerical', 'random', 'shortanswer', 'truefalse'], 'questiontypes' => ['essay', 'numerical', 'random', 'shortanswer', 'truefalse'],

View file

@ -22,7 +22,7 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
defined('MOODLE_INTERNAL') || die(); namespace mod_resource\event;
/** /**
* Resource events test cases. * Resource events test cases.
@ -31,7 +31,7 @@ defined('MOODLE_INTERNAL') || die();
* @copyright 2014 Rajesh Taneja <rajesh@moodle.com> * @copyright 2014 Rajesh Taneja <rajesh@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
class mod_resource_events_testcase extends advanced_testcase { class events_test extends \advanced_testcase {
/** /**
* Setup is called before calling test case. * Setup is called before calling test case.
@ -52,7 +52,7 @@ class mod_resource_events_testcase extends advanced_testcase {
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
$params = array( $params = array(
'context' => context_course::instance($course->id) 'context' => \context_course::instance($course->id)
); );
$event = \mod_resource\event\course_module_instance_list_viewed::create($params); $event = \mod_resource\event\course_module_instance_list_viewed::create($params);
@ -65,7 +65,7 @@ class mod_resource_events_testcase extends advanced_testcase {
// Checking that the event contains the expected values. // Checking that the event contains the expected values.
$this->assertInstanceOf('\mod_resource\event\course_module_instance_list_viewed', $event); $this->assertInstanceOf('\mod_resource\event\course_module_instance_list_viewed', $event);
$this->assertEquals(context_course::instance($course->id), $event->get_context()); $this->assertEquals(\context_course::instance($course->id), $event->get_context());
$expected = array($course->id, 'resource', 'view all', 'index.php?id='.$course->id, ''); $expected = array($course->id, 'resource', 'view all', 'index.php?id='.$course->id, '');
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
@ -82,7 +82,7 @@ class mod_resource_events_testcase extends advanced_testcase {
$resource = $this->getDataGenerator()->create_module('resource', array('course' => $course->id)); $resource = $this->getDataGenerator()->create_module('resource', array('course' => $course->id));
$params = array( $params = array(
'context' => context_module::instance($resource->cmid), 'context' => \context_module::instance($resource->cmid),
'objectid' => $resource->id 'objectid' => $resource->id
); );
$event = \mod_resource\event\course_module_viewed::create($params); $event = \mod_resource\event\course_module_viewed::create($params);
@ -96,7 +96,7 @@ class mod_resource_events_testcase extends advanced_testcase {
// Checking that the event contains the expected values. // Checking that the event contains the expected values.
$this->assertInstanceOf('\mod_resource\event\course_module_viewed', $event); $this->assertInstanceOf('\mod_resource\event\course_module_viewed', $event);
$this->assertEquals(context_module::instance($resource->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($resource->cmid), $event->get_context());
$this->assertEquals($resource->id, $event->objectid); $this->assertEquals($resource->id, $event->objectid);
$expected = array($course->id, 'resource', 'view', 'view.php?id=' . $resource->cmid, $resource->id, $resource->cmid); $expected = array($course->id, 'resource', 'view', 'view.php?id=' . $resource->cmid, $resource->id, $resource->cmid);
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);

View file

@ -23,6 +23,8 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
namespace mod_resource\search;
defined('MOODLE_INTERNAL') || die(); defined('MOODLE_INTERNAL') || die();
global $CFG; global $CFG;
@ -36,7 +38,7 @@ require_once($CFG->dirroot . '/search/tests/fixtures/testable_core_search.php');
* @copyright 2016 Eric Merrill {@link http://www.merrilldigital.com} * @copyright 2016 Eric Merrill {@link http://www.merrilldigital.com}
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
class mod_resource_search_testcase extends advanced_testcase { class search_test extends \advanced_testcase {
/** /**
* @var string Area id * @var string Area id
@ -50,7 +52,7 @@ class mod_resource_search_testcase extends advanced_testcase {
$this->resourceareaid = \core_search\manager::generate_areaid('mod_resource', 'activity'); $this->resourceareaid = \core_search\manager::generate_areaid('mod_resource', 'activity');
// Set \core_search::instance to the mock_search_engine as we don't require the search engine to be working to test this. // Set \core_search::instance to the mock_search_engine as we don't require the search engine to be working to test this.
$search = testable_core_search::instance(); $search = \testable_core_search::instance();
} }
/** /**
@ -66,9 +68,9 @@ class mod_resource_search_testcase extends advanced_testcase {
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
$fs = get_file_storage(); $fs = get_file_storage();
$usercontext = context_user::instance($USER->id); $usercontext = \context_user::instance($USER->id);
$record = new stdClass(); $record = new \stdClass();
$record->course = $course->id; $record->course = $course->id;
$record->files = file_get_unused_draft_itemid(); $record->files = file_get_unused_draft_itemid();

View file

@ -22,6 +22,10 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
namespace mod_scorm\event;
defined('MOODLE_INTERNAL') || die();
global $CFG; global $CFG;
require_once($CFG->dirroot . '/mod/scorm/locallib.php'); require_once($CFG->dirroot . '/mod/scorm/locallib.php');
require_once($CFG->dirroot . '/mod/scorm/lib.php'); require_once($CFG->dirroot . '/mod/scorm/lib.php');
@ -33,7 +37,7 @@ require_once($CFG->dirroot . '/mod/scorm/lib.php');
* @copyright 2013 onwards Ankit Agarwal * @copyright 2013 onwards Ankit Agarwal
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
class mod_scorm_event_testcase extends advanced_testcase { class events_test extends \advanced_testcase {
/** @var stdClass store course object */ /** @var stdClass store course object */
protected $eventcourse; protected $eventcourse;
@ -51,7 +55,7 @@ class mod_scorm_event_testcase extends advanced_testcase {
$this->setAdminUser(); $this->setAdminUser();
$this->eventcourse = $this->getDataGenerator()->create_course(); $this->eventcourse = $this->getDataGenerator()->create_course();
$this->eventuser = $this->getDataGenerator()->create_user(); $this->eventuser = $this->getDataGenerator()->create_user();
$record = new stdClass(); $record = new \stdClass();
$record->course = $this->eventcourse->id; $record->course = $this->eventcourse->id;
$this->eventscorm = $this->getDataGenerator()->create_module('scorm', $record); $this->eventscorm = $this->getDataGenerator()->create_module('scorm', $record);
$this->eventcm = get_coursemodule_from_instance('scorm', $this->eventscorm->id); $this->eventcm = get_coursemodule_from_instance('scorm', $this->eventscorm->id);
@ -76,7 +80,7 @@ class mod_scorm_event_testcase extends advanced_testcase {
$this->assertCount(3, $events); $this->assertCount(3, $events);
$this->assertInstanceOf('\mod_scorm\event\attempt_deleted', $event); $this->assertInstanceOf('\mod_scorm\event\attempt_deleted', $event);
$this->assertEquals($USER->id, $event->userid); $this->assertEquals($USER->id, $event->userid);
$this->assertEquals(context_module::instance($this->eventcm->id), $event->get_context()); $this->assertEquals(\context_module::instance($this->eventcm->id), $event->get_context());
$this->assertEquals(4, $event->other['attemptid']); $this->assertEquals(4, $event->other['attemptid']);
$this->assertEquals(2, $event->relateduserid); $this->assertEquals(2, $event->relateduserid);
$expected = array($this->eventcourse->id, 'scorm', 'delete attempts', 'report.php?id=' . $this->eventcm->id, $expected = array($this->eventcourse->id, 'scorm', 'delete attempts', 'report.php?id=' . $this->eventcm->id,
@ -85,7 +89,7 @@ class mod_scorm_event_testcase extends advanced_testcase {
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
// Test event validations. // Test event validations.
$this->expectException(coding_exception::class); $this->expectException(\coding_exception::class);
\mod_scorm\event\attempt_deleted::create(array( \mod_scorm\event\attempt_deleted::create(array(
'contextid' => 5, 'contextid' => 5,
'relateduserid' => 2 'relateduserid' => 2
@ -101,7 +105,7 @@ class mod_scorm_event_testcase extends advanced_testcase {
$this->resetAfterTest(); $this->resetAfterTest();
$event = \mod_scorm\event\course_module_viewed::create(array( $event = \mod_scorm\event\course_module_viewed::create(array(
'objectid' => $this->eventscorm->id, 'objectid' => $this->eventscorm->id,
'context' => context_module::instance($this->eventcm->id), 'context' => \context_module::instance($this->eventcm->id),
'courseid' => $this->eventcourse->id 'courseid' => $this->eventcourse->id
)); ));
@ -126,7 +130,7 @@ class mod_scorm_event_testcase extends advanced_testcase {
public function test_course_module_instance_list_viewed_event() { public function test_course_module_instance_list_viewed_event() {
$this->resetAfterTest(); $this->resetAfterTest();
$event = \mod_scorm\event\course_module_instance_list_viewed::create(array( $event = \mod_scorm\event\course_module_instance_list_viewed::create(array(
'context' => context_course::instance($this->eventcourse->id), 'context' => \context_course::instance($this->eventcourse->id),
'courseid' => $this->eventcourse->id 'courseid' => $this->eventcourse->id
)); ));
@ -151,7 +155,7 @@ class mod_scorm_event_testcase extends advanced_testcase {
$this->resetAfterTest(); $this->resetAfterTest();
$event = \mod_scorm\event\interactions_viewed::create(array( $event = \mod_scorm\event\interactions_viewed::create(array(
'relateduserid' => 5, 'relateduserid' => 5,
'context' => context_module::instance($this->eventcm->id), 'context' => \context_module::instance($this->eventcm->id),
'courseid' => $this->eventcourse->id, 'courseid' => $this->eventcourse->id,
'other' => array('attemptid' => 2, 'instanceid' => $this->eventscorm->id) 'other' => array('attemptid' => 2, 'instanceid' => $this->eventscorm->id)
)); ));
@ -176,24 +180,24 @@ class mod_scorm_event_testcase extends advanced_testcase {
$this->resetAfterTest(); $this->resetAfterTest();
try { try {
\mod_scorm\event\interactions_viewed::create(array( \mod_scorm\event\interactions_viewed::create(array(
'context' => context_module::instance($this->eventcm->id), 'context' => \context_module::instance($this->eventcm->id),
'courseid' => $this->eventcourse->id, 'courseid' => $this->eventcourse->id,
'other' => array('attemptid' => 2) 'other' => array('attemptid' => 2)
)); ));
$this->fail("Event validation should not allow \\mod_scorm\\event\\interactions_viewed to be triggered without $this->fail("Event validation should not allow \\mod_scorm\\event\\interactions_viewed to be triggered without
other['instanceid']"); other['instanceid']");
} catch (Exception $e) { } catch (\Exception $e) {
$this->assertInstanceOf('coding_exception', $e); $this->assertInstanceOf('coding_exception', $e);
} }
try { try {
\mod_scorm\event\interactions_viewed::create(array( \mod_scorm\event\interactions_viewed::create(array(
'context' => context_module::instance($this->eventcm->id), 'context' => \context_module::instance($this->eventcm->id),
'courseid' => $this->eventcourse->id, 'courseid' => $this->eventcourse->id,
'other' => array('instanceid' => 2) 'other' => array('instanceid' => 2)
)); ));
$this->fail("Event validation should not allow \\mod_scorm\\event\\interactions_viewed to be triggered without $this->fail("Event validation should not allow \\mod_scorm\\event\\interactions_viewed to be triggered without
other['attemptid']"); other['attemptid']");
} catch (Exception $e) { } catch (\Exception $e) {
$this->assertInstanceOf('coding_exception', $e); $this->assertInstanceOf('coding_exception', $e);
} }
} }
@ -205,7 +209,7 @@ class mod_scorm_event_testcase extends advanced_testcase {
public function test_report_viewed_event() { public function test_report_viewed_event() {
$this->resetAfterTest(); $this->resetAfterTest();
$event = \mod_scorm\event\report_viewed::create(array( $event = \mod_scorm\event\report_viewed::create(array(
'context' => context_module::instance($this->eventcm->id), 'context' => \context_module::instance($this->eventcm->id),
'courseid' => $this->eventcourse->id, 'courseid' => $this->eventcourse->id,
'other' => array( 'other' => array(
'scormid' => $this->eventscorm->id, 'scormid' => $this->eventscorm->id,
@ -234,7 +238,7 @@ class mod_scorm_event_testcase extends advanced_testcase {
$this->resetAfterTest(); $this->resetAfterTest();
$event = \mod_scorm\event\sco_launched::create(array( $event = \mod_scorm\event\sco_launched::create(array(
'objectid' => 2, 'objectid' => 2,
'context' => context_module::instance($this->eventcm->id), 'context' => \context_module::instance($this->eventcm->id),
'courseid' => $this->eventcourse->id, 'courseid' => $this->eventcourse->id,
'other' => array('loadedcontent' => 'url_to_content_that_was_laoded.php') 'other' => array('loadedcontent' => 'url_to_content_that_was_laoded.php')
)); ));
@ -252,10 +256,10 @@ class mod_scorm_event_testcase extends advanced_testcase {
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
// Test validations. // Test validations.
$this->expectException(coding_exception::class); $this->expectException(\coding_exception::class);
\mod_scorm\event\sco_launched::create(array( \mod_scorm\event\sco_launched::create(array(
'objectid' => $this->eventscorm->id, 'objectid' => $this->eventscorm->id,
'context' => context_module::instance($this->eventcm->id), 'context' => \context_module::instance($this->eventcm->id),
'courseid' => $this->eventcourse->id, 'courseid' => $this->eventcourse->id,
)); ));
} }
@ -269,7 +273,7 @@ class mod_scorm_event_testcase extends advanced_testcase {
$this->resetAfterTest(); $this->resetAfterTest();
$event = \mod_scorm\event\tracks_viewed::create(array( $event = \mod_scorm\event\tracks_viewed::create(array(
'relateduserid' => 5, 'relateduserid' => 5,
'context' => context_module::instance($this->eventcm->id), 'context' => \context_module::instance($this->eventcm->id),
'courseid' => $this->eventcourse->id, 'courseid' => $this->eventcourse->id,
'other' => array('attemptid' => 2, 'instanceid' => $this->eventscorm->id, 'scoid' => 3) 'other' => array('attemptid' => 2, 'instanceid' => $this->eventscorm->id, 'scoid' => 3)
)); ));
@ -294,36 +298,36 @@ class mod_scorm_event_testcase extends advanced_testcase {
$this->resetAfterTest(); $this->resetAfterTest();
try { try {
\mod_scorm\event\tracks_viewed::create(array( \mod_scorm\event\tracks_viewed::create(array(
'context' => context_module::instance($this->eventcm->id), 'context' => \context_module::instance($this->eventcm->id),
'courseid' => $this->eventcourse->id, 'courseid' => $this->eventcourse->id,
'other' => array('attemptid' => 2, 'scoid' => 2) 'other' => array('attemptid' => 2, 'scoid' => 2)
)); ));
$this->fail("Event validation should not allow \\mod_scorm\\event\\tracks_viewed to be triggered without $this->fail("Event validation should not allow \\mod_scorm\\event\\tracks_viewed to be triggered without
other['instanceid']"); other['instanceid']");
} catch (Exception $e) { } catch (\Exception $e) {
$this->assertInstanceOf('coding_exception', $e); $this->assertInstanceOf('coding_exception', $e);
} }
try { try {
\mod_scorm\event\tracks_viewed::create(array( \mod_scorm\event\tracks_viewed::create(array(
'context' => context_module::instance($this->eventcm->id), 'context' => \context_module::instance($this->eventcm->id),
'courseid' => $this->eventcourse->id, 'courseid' => $this->eventcourse->id,
'other' => array('instanceid' => 2, 'scoid' => 2) 'other' => array('instanceid' => 2, 'scoid' => 2)
)); ));
$this->fail("Event validation should not allow \\mod_scorm\\event\\tracks_viewed to be triggered without $this->fail("Event validation should not allow \\mod_scorm\\event\\tracks_viewed to be triggered without
other['attemptid']"); other['attemptid']");
} catch (Exception $e) { } catch (\Exception $e) {
$this->assertInstanceOf('coding_exception', $e); $this->assertInstanceOf('coding_exception', $e);
} }
try { try {
\mod_scorm\event\tracks_viewed::create(array( \mod_scorm\event\tracks_viewed::create(array(
'context' => context_module::instance($this->eventcm->id), 'context' => \context_module::instance($this->eventcm->id),
'courseid' => $this->eventcourse->id, 'courseid' => $this->eventcourse->id,
'other' => array('attemptid' => 2, 'instanceid' => 2) 'other' => array('attemptid' => 2, 'instanceid' => 2)
)); ));
$this->fail("Event validation should not allow \\mod_scorm\\event\\tracks_viewed to be triggered without $this->fail("Event validation should not allow \\mod_scorm\\event\\tracks_viewed to be triggered without
other['scoid']"); other['scoid']");
} catch (Exception $e) { } catch (\Exception $e) {
$this->assertInstanceOf('coding_exception', $e); $this->assertInstanceOf('coding_exception', $e);
} }
} }
@ -337,7 +341,7 @@ class mod_scorm_event_testcase extends advanced_testcase {
$this->resetAfterTest(); $this->resetAfterTest();
$event = \mod_scorm\event\user_report_viewed::create(array( $event = \mod_scorm\event\user_report_viewed::create(array(
'relateduserid' => 5, 'relateduserid' => 5,
'context' => context_module::instance($this->eventcm->id), 'context' => \context_module::instance($this->eventcm->id),
'courseid' => $this->eventcourse->id, 'courseid' => $this->eventcourse->id,
'other' => array('attemptid' => 2, 'instanceid' => $this->eventscorm->id) 'other' => array('attemptid' => 2, 'instanceid' => $this->eventscorm->id)
)); ));
@ -362,24 +366,24 @@ class mod_scorm_event_testcase extends advanced_testcase {
$this->resetAfterTest(); $this->resetAfterTest();
try { try {
\mod_scorm\event\user_report_viewed::create(array( \mod_scorm\event\user_report_viewed::create(array(
'context' => context_module::instance($this->eventcm->id), 'context' => \context_module::instance($this->eventcm->id),
'courseid' => $this->eventcourse->id, 'courseid' => $this->eventcourse->id,
'other' => array('attemptid' => 2) 'other' => array('attemptid' => 2)
)); ));
$this->fail("Event validation should not allow \\mod_scorm\\event\\user_report_viewed to be triggered without $this->fail("Event validation should not allow \\mod_scorm\\event\\user_report_viewed to be triggered without
other['instanceid']"); other['instanceid']");
} catch (Exception $e) { } catch (\Exception $e) {
$this->assertInstanceOf('coding_exception', $e); $this->assertInstanceOf('coding_exception', $e);
} }
try { try {
\mod_scorm\event\user_report_viewed::create(array( \mod_scorm\event\user_report_viewed::create(array(
'context' => context_module::instance($this->eventcm->id), 'context' => \context_module::instance($this->eventcm->id),
'courseid' => $this->eventcourse->id, 'courseid' => $this->eventcourse->id,
'other' => array('instanceid' => 2) 'other' => array('instanceid' => 2)
)); ));
$this->fail("Event validation should not allow \\mod_scorm\\event\\user_report_viewed to be triggered without $this->fail("Event validation should not allow \\mod_scorm\\event\\user_report_viewed to be triggered without
other['attemptid']"); other['attemptid']");
} catch (Exception $e) { } catch (\Exception $e) {
$this->assertInstanceOf('coding_exception', $e); $this->assertInstanceOf('coding_exception', $e);
} }
} }
@ -423,7 +427,7 @@ class mod_scorm_event_testcase extends advanced_testcase {
$event = \mod_scorm\event\scoreraw_submitted::create(array( $event = \mod_scorm\event\scoreraw_submitted::create(array(
'other' => array('attemptid' => '2', 'cmielement' => $cmielement, 'cmivalue' => $cmivalue), 'other' => array('attemptid' => '2', 'cmielement' => $cmielement, 'cmivalue' => $cmivalue),
'objectid' => $this->eventscorm->id, 'objectid' => $this->eventscorm->id,
'context' => context_module::instance($this->eventcm->id), 'context' => \context_module::instance($this->eventcm->id),
'relateduserid' => $this->eventuser->id 'relateduserid' => $this->eventuser->id
)); ));
@ -485,7 +489,7 @@ class mod_scorm_event_testcase extends advanced_testcase {
$this->resetAfterTest(); $this->resetAfterTest();
try { try {
$data = array( $data = array(
'context' => context_module::instance($this->eventcm->id), 'context' => \context_module::instance($this->eventcm->id),
'courseid' => $this->eventcourse->id, 'courseid' => $this->eventcourse->id,
'other' => array('attemptid' => 2) 'other' => array('attemptid' => 2)
); );
@ -497,7 +501,7 @@ class mod_scorm_event_testcase extends advanced_testcase {
} }
\mod_scorm\event\scoreraw_submitted::create($data); \mod_scorm\event\scoreraw_submitted::create($data);
$this->fail($failmessage); $this->fail($failmessage);
} catch (Exception $e) { } catch (\Exception $e) {
$this->assertInstanceOf('coding_exception', $e); $this->assertInstanceOf('coding_exception', $e);
$this->assertEquals($excmessage, $e->getMessage()); $this->assertEquals($excmessage, $e->getMessage());
} }
@ -544,7 +548,7 @@ class mod_scorm_event_testcase extends advanced_testcase {
$event = \mod_scorm\event\status_submitted::create(array( $event = \mod_scorm\event\status_submitted::create(array(
'other' => array('attemptid' => '2', 'cmielement' => $cmielement, 'cmivalue' => $cmivalue), 'other' => array('attemptid' => '2', 'cmielement' => $cmielement, 'cmivalue' => $cmivalue),
'objectid' => $this->eventscorm->id, 'objectid' => $this->eventscorm->id,
'context' => context_module::instance($this->eventcm->id), 'context' => \context_module::instance($this->eventcm->id),
'relateduserid' => $this->eventuser->id 'relateduserid' => $this->eventuser->id
)); ));
@ -613,7 +617,7 @@ class mod_scorm_event_testcase extends advanced_testcase {
$this->resetAfterTest(); $this->resetAfterTest();
try { try {
$data = array( $data = array(
'context' => context_module::instance($this->eventcm->id), 'context' => \context_module::instance($this->eventcm->id),
'courseid' => $this->eventcourse->id, 'courseid' => $this->eventcourse->id,
'other' => array('attemptid' => 2) 'other' => array('attemptid' => 2)
); );
@ -625,7 +629,7 @@ class mod_scorm_event_testcase extends advanced_testcase {
} }
\mod_scorm\event\status_submitted::create($data); \mod_scorm\event\status_submitted::create($data);
$this->fail($failmessage); $this->fail($failmessage);
} catch (Exception $e) { } catch (\Exception $e) {
$this->assertInstanceOf('coding_exception', $e); $this->assertInstanceOf('coding_exception', $e);
$this->assertEquals($excmessage, $e->getMessage()); $this->assertEquals($excmessage, $e->getMessage());
} }

View file

@ -22,7 +22,7 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
defined('MOODLE_INTERNAL') || die(); namespace mod_survey\event;
/** /**
* Events tests class. * Events tests class.
@ -31,7 +31,7 @@ defined('MOODLE_INTERNAL') || die();
* @copyright 2014 Rajesh Taneja <rajesh@moodle.com> * @copyright 2014 Rajesh Taneja <rajesh@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
class mod_survey_events_testcase extends advanced_testcase { class events_test extends \advanced_testcase {
/** /**
* Setup. * Setup.
@ -52,7 +52,7 @@ class mod_survey_events_testcase extends advanced_testcase {
$params = array( $params = array(
'objectid' => $survey->id, 'objectid' => $survey->id,
'context' => context_module::instance($survey->cmid), 'context' => \context_module::instance($survey->cmid),
'courseid' => $course->id, 'courseid' => $course->id,
'other' => array('type' => 'xls') 'other' => array('type' => 'xls')
); );
@ -67,9 +67,9 @@ class mod_survey_events_testcase extends advanced_testcase {
// Checking that the event contains the expected values. // Checking that the event contains the expected values.
$this->assertInstanceOf('\mod_survey\event\report_downloaded', $event); $this->assertInstanceOf('\mod_survey\event\report_downloaded', $event);
$this->assertEquals(context_module::instance($survey->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($survey->cmid), $event->get_context());
$this->assertEquals($survey->id, $event->objectid); $this->assertEquals($survey->id, $event->objectid);
$url = new moodle_url('/mod/survey/download.php', array('id' => $survey->cmid, 'type' => 'xls')); $url = new \moodle_url('/mod/survey/download.php', array('id' => $survey->cmid, 'type' => 'xls'));
$expected = array($course->id, "survey", "download", $url->out(), $survey->id, $survey->cmid); $expected = array($course->id, "survey", "download", $url->out(), $survey->id, $survey->cmid);
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
@ -87,7 +87,7 @@ class mod_survey_events_testcase extends advanced_testcase {
$params = array( $params = array(
'objectid' => $survey->id, 'objectid' => $survey->id,
'context' => context_module::instance($survey->cmid), 'context' => \context_module::instance($survey->cmid),
'courseid' => $course->id 'courseid' => $course->id
); );
$event = \mod_survey\event\report_viewed::create($params); $event = \mod_survey\event\report_viewed::create($params);
@ -101,7 +101,7 @@ class mod_survey_events_testcase extends advanced_testcase {
// Checking that the event contains the expected values. // Checking that the event contains the expected values.
$this->assertInstanceOf('\mod_survey\event\report_viewed', $event); $this->assertInstanceOf('\mod_survey\event\report_viewed', $event);
$this->assertEquals(context_module::instance($survey->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($survey->cmid), $event->get_context());
$this->assertEquals($survey->id, $event->objectid); $this->assertEquals($survey->id, $event->objectid);
$expected = array($course->id, "survey", "view report", 'report.php?id=' . $survey->cmid, $survey->id, $survey->cmid); $expected = array($course->id, "survey", "view report", 'report.php?id=' . $survey->cmid, $survey->id, $survey->cmid);
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
@ -119,7 +119,7 @@ class mod_survey_events_testcase extends advanced_testcase {
$survey = $this->getDataGenerator()->create_module('survey', array('course' => $course->id)); $survey = $this->getDataGenerator()->create_module('survey', array('course' => $course->id));
$params = array( $params = array(
'context' => context_module::instance($survey->cmid), 'context' => \context_module::instance($survey->cmid),
'courseid' => $course->id, 'courseid' => $course->id,
'other' => array('surveyid' => $survey->id) 'other' => array('surveyid' => $survey->id)
); );
@ -134,7 +134,7 @@ class mod_survey_events_testcase extends advanced_testcase {
// Checking that the event contains the expected values. // Checking that the event contains the expected values.
$this->assertInstanceOf('\mod_survey\event\response_submitted', $event); $this->assertInstanceOf('\mod_survey\event\response_submitted', $event);
$this->assertEquals(context_module::instance($survey->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($survey->cmid), $event->get_context());
$this->assertEquals($survey->id, $event->other['surveyid']); $this->assertEquals($survey->id, $event->other['surveyid']);
$expected = array($course->id, "survey", "submit", 'view.php?id=' . $survey->cmid, $survey->id, $survey->cmid); $expected = array($course->id, "survey", "submit", 'view.php?id=' . $survey->cmid, $survey->id, $survey->cmid);
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);

View file

@ -25,7 +25,7 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
defined('MOODLE_INTERNAL') || die(); namespace mod_survey\search;
/** /**
* Unit test for mod_survey searching. * Unit test for mod_survey searching.
@ -37,7 +37,7 @@ defined('MOODLE_INTERNAL') || die();
* @copyright 2017 The Open University * @copyright 2017 The Open University
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
class mod_survey_search_testcase extends advanced_testcase { class search_test extends \advanced_testcase {
/** /**
* Test survey_view * Test survey_view
@ -49,7 +49,7 @@ class mod_survey_search_testcase extends advanced_testcase {
$this->resetAfterTest(); $this->resetAfterTest();
require_once($CFG->dirroot . '/search/tests/fixtures/testable_core_search.php'); require_once($CFG->dirroot . '/search/tests/fixtures/testable_core_search.php');
testable_core_search::instance(); \testable_core_search::instance();
$area = \core_search\manager::get_search_area('mod_survey-activity'); $area = \core_search\manager::get_search_area('mod_survey-activity');
// Setup test data. // Setup test data.
@ -65,10 +65,10 @@ class mod_survey_search_testcase extends advanced_testcase {
$rs->close(); $rs->close();
// Test specific context and course context. // Test specific context and course context.
$rs = $area->get_document_recordset(0, context_module::instance($survey1->cmid)); $rs = $area->get_document_recordset(0, \context_module::instance($survey1->cmid));
$this->assertEquals(1, iterator_count($rs)); $this->assertEquals(1, iterator_count($rs));
$rs->close(); $rs->close();
$rs = $area->get_document_recordset(0, context_course::instance($course->id)); $rs = $area->get_document_recordset(0, \context_course::instance($course->id));
$this->assertEquals(2, iterator_count($rs)); $this->assertEquals(2, iterator_count($rs));
$rs->close(); $rs->close();
} }

View file

@ -23,6 +23,8 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
namespace mod_wiki\event;
defined('MOODLE_INTERNAL') || die(); defined('MOODLE_INTERNAL') || die();
global $CFG; global $CFG;
require_once($CFG->dirroot.'/mod/wiki/locallib.php'); require_once($CFG->dirroot.'/mod/wiki/locallib.php');
@ -34,7 +36,7 @@ require_once($CFG->dirroot.'/mod/wiki/locallib.php');
* @copyright 2013 Rajesh Taneja <rajesh@moodle.com> * @copyright 2013 Rajesh Taneja <rajesh@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
class mod_wiki_events_testcase extends advanced_testcase { class events_test extends \advanced_testcase {
private $course; private $course;
private $wiki; private $wiki;
private $wikigenerator; private $wikigenerator;
@ -70,7 +72,7 @@ class mod_wiki_events_testcase extends advanced_testcase {
$this->setUp(); $this->setUp();
$page = $this->wikigenerator->create_first_page($this->wiki); $page = $this->wikigenerator->create_first_page($this->wiki);
$context = context_module::instance($this->wiki->cmid); $context = \context_module::instance($this->wiki->cmid);
// Triggering and capturing the event. // Triggering and capturing the event.
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();
@ -93,7 +95,7 @@ class mod_wiki_events_testcase extends advanced_testcase {
$this->setUp(); $this->setUp();
$page = $this->wikigenerator->create_first_page($this->wiki); $page = $this->wikigenerator->create_first_page($this->wiki);
$context = context_module::instance($this->wiki->cmid); $context = \context_module::instance($this->wiki->cmid);
// Add comment so we can delete it later. // Add comment so we can delete it later.
wiki_add_comment($context, $page->id, 'Test comment', 'html'); wiki_add_comment($context, $page->id, 'Test comment', 'html');
@ -124,7 +126,7 @@ class mod_wiki_events_testcase extends advanced_testcase {
$this->setUp(); $this->setUp();
$page = $this->wikigenerator->create_first_page($this->wiki); $page = $this->wikigenerator->create_first_page($this->wiki);
$context = context_module::instance($this->wiki->cmid); $context = \context_module::instance($this->wiki->cmid);
$params = array( $params = array(
'context' => $context, 'context' => $context,
@ -155,7 +157,7 @@ class mod_wiki_events_testcase extends advanced_testcase {
// to check if event returns the right information. // to check if event returns the right information.
$this->setUp(); $this->setUp();
$context = context_course::instance($this->course->id); $context = \context_course::instance($this->course->id);
$params = array('context' => $context); $params = array('context' => $context);
$event = \mod_wiki\event\course_module_instance_list_viewed::create($params); $event = \mod_wiki\event\course_module_instance_list_viewed::create($params);
@ -183,7 +185,7 @@ class mod_wiki_events_testcase extends advanced_testcase {
// to check if event returns the right information. // to check if event returns the right information.
$this->setUp(); $this->setUp();
$context = context_module::instance($this->wiki->cmid); $context = \context_module::instance($this->wiki->cmid);
$params = array( $params = array(
'context' => $context, 'context' => $context,
@ -218,7 +220,7 @@ class mod_wiki_events_testcase extends advanced_testcase {
$this->setUp(); $this->setUp();
$page = $this->wikigenerator->create_first_page($this->wiki); $page = $this->wikigenerator->create_first_page($this->wiki);
$context = context_module::instance($this->wiki->cmid); $context = \context_module::instance($this->wiki->cmid);
$params = array( $params = array(
'context' => $context, 'context' => $context,
@ -252,7 +254,7 @@ class mod_wiki_events_testcase extends advanced_testcase {
$this->setUp(); $this->setUp();
$page = $this->wikigenerator->create_first_page($this->wiki); $page = $this->wikigenerator->create_first_page($this->wiki);
$context = context_module::instance($this->wiki->cmid); $context = \context_module::instance($this->wiki->cmid);
$params = array( $params = array(
'context' => $context, 'context' => $context,
@ -285,7 +287,7 @@ class mod_wiki_events_testcase extends advanced_testcase {
$this->setUp(); $this->setUp();
$context = context_module::instance($this->wiki->cmid); $context = \context_module::instance($this->wiki->cmid);
// Triggering and capturing the event. // Triggering and capturing the event.
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();
@ -313,7 +315,7 @@ class mod_wiki_events_testcase extends advanced_testcase {
$this->setUp(); $this->setUp();
$page = $this->wikigenerator->create_first_page($this->wiki); $page = $this->wikigenerator->create_first_page($this->wiki);
$context = context_module::instance($this->wiki->cmid); $context = \context_module::instance($this->wiki->cmid);
$oldversions = $DB->get_records('wiki_versions', array('pageid' => $page->id)); $oldversions = $DB->get_records('wiki_versions', array('pageid' => $page->id));
$oldversion = array_shift($oldversions); $oldversion = array_shift($oldversions);
@ -378,7 +380,7 @@ class mod_wiki_events_testcase extends advanced_testcase {
$this->setUp(); $this->setUp();
$page = $this->wikigenerator->create_first_page($this->wiki); $page = $this->wikigenerator->create_first_page($this->wiki);
$context = context_module::instance($this->wiki->cmid); $context = \context_module::instance($this->wiki->cmid);
// Triggering and capturing the event. // Triggering and capturing the event.
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();
@ -407,7 +409,7 @@ class mod_wiki_events_testcase extends advanced_testcase {
$this->setUp(); $this->setUp();
$page = $this->wikigenerator->create_first_page($this->wiki); $page = $this->wikigenerator->create_first_page($this->wiki);
$context = context_module::instance($this->wiki->cmid); $context = \context_module::instance($this->wiki->cmid);
$params = array( $params = array(
'context' => $context, 'context' => $context,
@ -446,7 +448,7 @@ class mod_wiki_events_testcase extends advanced_testcase {
$this->setUp(); $this->setUp();
$page = $this->wikigenerator->create_first_page($this->wiki); $page = $this->wikigenerator->create_first_page($this->wiki);
$context = context_module::instance($this->wiki->cmid); $context = \context_module::instance($this->wiki->cmid);
$params = array( $params = array(
'context' => $context, 'context' => $context,
@ -480,7 +482,7 @@ class mod_wiki_events_testcase extends advanced_testcase {
$this->setUp(); $this->setUp();
$page = $this->wikigenerator->create_first_page($this->wiki); $page = $this->wikigenerator->create_first_page($this->wiki);
$context = context_module::instance($this->wiki->cmid); $context = \context_module::instance($this->wiki->cmid);
$params = array( $params = array(
'context' => $context, 'context' => $context,
@ -518,7 +520,7 @@ class mod_wiki_events_testcase extends advanced_testcase {
$this->setUp(); $this->setUp();
$page = $this->wikigenerator->create_first_page($this->wiki); $page = $this->wikigenerator->create_first_page($this->wiki);
$context = context_module::instance($this->wiki->cmid); $context = \context_module::instance($this->wiki->cmid);
$params = array( $params = array(
'context' => $context, 'context' => $context,
@ -554,7 +556,7 @@ class mod_wiki_events_testcase extends advanced_testcase {
$this->setUp(); $this->setUp();
$page = $this->wikigenerator->create_first_page($this->wiki); $page = $this->wikigenerator->create_first_page($this->wiki);
$context = context_module::instance($this->wiki->cmid); $context = \context_module::instance($this->wiki->cmid);
$version = wiki_get_current_version($page->id); $version = wiki_get_current_version($page->id);
// Triggering and capturing the event. // Triggering and capturing the event.

View file

@ -22,6 +22,7 @@
* @copyright 2016 Eric Merrill {@link http://www.merrilldigital.com} * @copyright 2016 Eric Merrill {@link http://www.merrilldigital.com}
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
namespace mod_wiki\search;
defined('MOODLE_INTERNAL') || die(); defined('MOODLE_INTERNAL') || die();
@ -36,7 +37,7 @@ require_once($CFG->dirroot . '/search/tests/fixtures/testable_core_search.php');
* @copyright 2016 Eric Merrill {@link http://www.merrilldigital.com} * @copyright 2016 Eric Merrill {@link http://www.merrilldigital.com}
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
class mod_wiki_search_testcase extends advanced_testcase { class search_test extends \advanced_testcase {
/** /**
* @var string Area id * @var string Area id
@ -51,7 +52,7 @@ class mod_wiki_search_testcase extends advanced_testcase {
$this->wikicollabpageareaid = \core_search\manager::generate_areaid('mod_wiki', 'collaborative_page'); $this->wikicollabpageareaid = \core_search\manager::generate_areaid('mod_wiki', 'collaborative_page');
// Set \core_search::instance to the mock_search_engine as we don't require the search engine to be working to test this. // Set \core_search::instance to the mock_search_engine as we don't require the search engine to be working to test this.
$search = testable_core_search::instance(); $search = \testable_core_search::instance();
} }
/** /**
@ -132,13 +133,13 @@ class mod_wiki_search_testcase extends advanced_testcase {
$wikigenerator->create_first_page($collabwiki2); $wikigenerator->create_first_page($collabwiki2);
// Test indexing contexts. // Test indexing contexts.
$rs = $searcharea->get_document_recordset(0, context_module::instance($collabwiki->cmid)); $rs = $searcharea->get_document_recordset(0, \context_module::instance($collabwiki->cmid));
$this->assertEquals(3, iterator_count($rs)); $this->assertEquals(3, iterator_count($rs));
$rs->close(); $rs->close();
$rs = $searcharea->get_document_recordset(0, context_module::instance($collabwiki2->cmid)); $rs = $searcharea->get_document_recordset(0, \context_module::instance($collabwiki2->cmid));
$this->assertEquals(1, iterator_count($rs)); $this->assertEquals(1, iterator_count($rs));
$rs->close(); $rs->close();
$rs = $searcharea->get_document_recordset(0, context_course::instance($course1->id)); $rs = $searcharea->get_document_recordset(0, \context_course::instance($course1->id));
$this->assertEquals(4, iterator_count($rs)); $this->assertEquals(4, iterator_count($rs));
$rs->close(); $rs->close();
} }

View file

@ -23,23 +23,27 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
namespace mod_workshop\event;
use testable_workshop;
defined('MOODLE_INTERNAL') || die(); defined('MOODLE_INTERNAL') || die();
global $CFG; global $CFG;
require_once($CFG->dirroot . '/mod/workshop/lib.php'); // Include the code to test. require_once($CFG->dirroot . '/mod/workshop/lib.php'); // Include the code to test.
require_once($CFG->dirroot . '/mod/workshop/locallib.php'); // Include the code to test. require_once($CFG->dirroot . '/mod/workshop/locallib.php'); // Include the code to test.
require_once($CFG->dirroot . '/lib/cronlib.php'); // Include the code to test. require_once($CFG->dirroot . '/lib/cronlib.php'); // Include the code to test.
require_once(__DIR__ . '/fixtures/testable.php'); require_once(__DIR__ . '/../fixtures/testable.php');
/** /**
* Test cases for the internal workshop api * Test cases for the internal workshop api
*/ */
class mod_workshop_events_testcase extends advanced_testcase { class events_test extends \advanced_testcase {
/** @var stdClass $workshop Basic workshop data stored in an object. */ /** @var \stdClass $workshop Basic workshop data stored in an object. */
protected $workshop; protected $workshop;
/** @var stdClass $course Generated Random Course. */ /** @var \stdClass $course Generated Random Course. */
protected $course; protected $course;
/** @var stdClass mod info */ /** @var stdClass mod info */
protected $cm; protected $cm;
@ -57,7 +61,7 @@ class mod_workshop_events_testcase extends advanced_testcase {
$this->course = $this->getDataGenerator()->create_course(); $this->course = $this->getDataGenerator()->create_course();
$this->workshop = $this->getDataGenerator()->create_module('workshop', array('course' => $this->course)); $this->workshop = $this->getDataGenerator()->create_module('workshop', array('course' => $this->course));
$this->cm = get_coursemodule_from_instance('workshop', $this->workshop->id); $this->cm = get_coursemodule_from_instance('workshop', $this->workshop->id);
$this->context = context_module::instance($this->cm->id); $this->context = \context_module::instance($this->cm->id);
} }
protected function tearDown(): void { protected function tearDown(): void {
@ -120,7 +124,7 @@ class mod_workshop_events_testcase extends advanced_testcase {
$this->assertInstanceOf('\mod_workshop\event\assessment_evaluated', $event); $this->assertInstanceOf('\mod_workshop\event\assessment_evaluated', $event);
$this->assertEquals('workshop_aggregations', $event->objecttable); $this->assertEquals('workshop_aggregations', $event->objecttable);
$this->assertEquals(context_module::instance($cm->id), $event->get_context()); $this->assertEquals(\context_module::instance($cm->id), $event->get_context());
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
$sink->close(); $sink->close();
@ -146,7 +150,7 @@ class mod_workshop_events_testcase extends advanced_testcase {
$this->assertInstanceOf('\mod_workshop\event\assessment_reevaluated', $event); $this->assertInstanceOf('\mod_workshop\event\assessment_reevaluated', $event);
$this->assertEquals('workshop_aggregations', $event->objecttable); $this->assertEquals('workshop_aggregations', $event->objecttable);
$this->assertEquals(context_module::instance($cm->id), $event->get_context()); $this->assertEquals(\context_module::instance($cm->id), $event->get_context());
$expected = array($this->course->id, 'workshop', 'update aggregate grade', $expected = array($this->course->id, 'workshop', 'update aggregate grade',
'view.php?id=' . $event->get_context()->instanceid, $event->objectid, $event->get_context()->instanceid); 'view.php?id=' . $event->get_context()->instanceid, $event->objectid, $event->get_context()->instanceid);
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
@ -189,7 +193,7 @@ class mod_workshop_events_testcase extends advanced_testcase {
$this->resetAfterTest(); $this->resetAfterTest();
$this->setAdminUser(); $this->setAdminUser();
$context = context_course::instance($this->course->id); $context = \context_course::instance($this->course->id);
$event = \mod_workshop\event\course_module_instance_list_viewed::create(array('context' => $context)); $event = \mod_workshop\event\course_module_instance_list_viewed::create(array('context' => $context));

View file

@ -24,6 +24,14 @@
* @since Moodle 3.4 * @since Moodle 3.4
*/ */
namespace mod_workshop\external;
use externallib_advanced_testcase;
use workshop;
use mod_workshop_external;
use mod_workshop\external\workshop_summary_exporter;
use mod_workshop\external\submission_exporter;
defined('MOODLE_INTERNAL') || die(); defined('MOODLE_INTERNAL') || die();
global $CFG; global $CFG;
@ -31,9 +39,6 @@ global $CFG;
require_once($CFG->dirroot . '/webservice/tests/helpers.php'); require_once($CFG->dirroot . '/webservice/tests/helpers.php');
require_once($CFG->dirroot . '/mod/workshop/lib.php'); require_once($CFG->dirroot . '/mod/workshop/lib.php');
use mod_workshop\external\workshop_summary_exporter;
use mod_workshop\external\submission_exporter;
/** /**
* Workshop module external functions tests * Workshop module external functions tests
* *
@ -43,7 +48,7 @@ use mod_workshop\external\submission_exporter;
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since Moodle 3.4 * @since Moodle 3.4
*/ */
class mod_workshop_external_testcase extends externallib_advanced_testcase { class external_test extends externallib_advanced_testcase {
/** @var stdClass course object */ /** @var stdClass course object */
private $course; private $course;
@ -71,7 +76,7 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
$this->setAdminUser(); $this->setAdminUser();
// Setup test data. // Setup test data.
$course = new stdClass(); $course = new \stdClass();
$course->groupmode = SEPARATEGROUPS; $course->groupmode = SEPARATEGROUPS;
$course->groupmodeforce = true; $course->groupmodeforce = true;
$this->course = $this->getDataGenerator()->create_course($course); $this->course = $this->getDataGenerator()->create_course($course);
@ -81,7 +86,7 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
'overallfeedbackfiles' => 1, 'overallfeedbackfiles' => 1,
) )
); );
$this->context = context_module::instance($this->workshop->cmid); $this->context = \context_module::instance($this->workshop->cmid);
$this->cm = get_coursemodule_from_instance('workshop', $this->workshop->id); $this->cm = get_coursemodule_from_instance('workshop', $this->workshop->id);
// Add grading strategy data (accumulative is the default). // Add grading strategy data (accumulative is the default).
@ -128,7 +133,7 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
$course2 = self::getDataGenerator()->create_course(); $course2 = self::getDataGenerator()->create_course();
// Second workshop. // Second workshop.
$record = new stdClass(); $record = new \stdClass();
$record->course = $course2->id; $record->course = $course2->id;
$workshop2 = self::getDataGenerator()->create_module('workshop', $record); $workshop2 = self::getDataGenerator()->create_module('workshop', $record);
@ -190,14 +195,14 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
// Call the external function passing course ids. // Call the external function passing course ids.
$result = mod_workshop_external::get_workshops_by_courses(array($course2->id, $this->course->id)); $result = mod_workshop_external::get_workshops_by_courses(array($course2->id, $this->course->id));
$result = external_api::clean_returnvalue($returndescription, $result); $result = \external_api::clean_returnvalue($returndescription, $result);
$this->assertEquals($expectedworkshops, $result['workshops']); $this->assertEquals($expectedworkshops, $result['workshops']);
$this->assertCount(0, $result['warnings']); $this->assertCount(0, $result['warnings']);
// Call the external function without passing course id. // Call the external function without passing course id.
$result = mod_workshop_external::get_workshops_by_courses(); $result = mod_workshop_external::get_workshops_by_courses();
$result = external_api::clean_returnvalue($returndescription, $result); $result = \external_api::clean_returnvalue($returndescription, $result);
$this->assertEquals($expectedworkshops, $result['workshops']); $this->assertEquals($expectedworkshops, $result['workshops']);
$this->assertCount(0, $result['warnings']); $this->assertCount(0, $result['warnings']);
@ -207,7 +212,7 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
// Call the external function without passing course id. // Call the external function without passing course id.
$result = mod_workshop_external::get_workshops_by_courses(); $result = mod_workshop_external::get_workshops_by_courses();
$result = external_api::clean_returnvalue($returndescription, $result); $result = \external_api::clean_returnvalue($returndescription, $result);
$this->assertEquals($expectedworkshops, $result['workshops']); $this->assertEquals($expectedworkshops, $result['workshops']);
// Call for the second course we unenrolled the user from, expected warning. // Call for the second course we unenrolled the user from, expected warning.
@ -224,7 +229,7 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
self::setUser($this->student); self::setUser($this->student);
$result = mod_workshop_external::get_workshop_access_information($this->workshop->id); $result = mod_workshop_external::get_workshop_access_information($this->workshop->id);
$result = external_api::clean_returnvalue(mod_workshop_external::get_workshop_access_information_returns(), $result); $result = \external_api::clean_returnvalue(mod_workshop_external::get_workshop_access_information_returns(), $result);
// Check default values for capabilities. // Check default values for capabilities.
$enabledcaps = array('canpeerassess', 'cansubmit', 'canview', 'canviewauthornames', 'canviewauthorpublished', $enabledcaps = array('canpeerassess', 'cansubmit', 'canview', 'canviewauthornames', 'canviewauthorpublished',
'canviewpublishedsubmissions', 'canexportsubmissions'); 'canviewpublishedsubmissions', 'canexportsubmissions');
@ -247,7 +252,7 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
accesslib_clear_all_caches_for_unit_testing(); accesslib_clear_all_caches_for_unit_testing();
$result = mod_workshop_external::get_workshop_access_information($this->workshop->id); $result = mod_workshop_external::get_workshop_access_information($this->workshop->id);
$result = external_api::clean_returnvalue(mod_workshop_external::get_workshop_access_information_returns(), $result); $result = \external_api::clean_returnvalue(mod_workshop_external::get_workshop_access_information_returns(), $result);
foreach ($result as $capname => $capvalue) { foreach ($result as $capname => $capvalue) {
if (strpos($capname, 'can') !== 0) { if (strpos($capname, 'can') !== 0) {
continue; continue;
@ -271,7 +276,7 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
$workshop = new workshop($this->workshop, $this->cm, $this->course); $workshop = new workshop($this->workshop, $this->cm, $this->course);
$workshop->switch_phase(workshop::PHASE_SUBMISSION); $workshop->switch_phase(workshop::PHASE_SUBMISSION);
$result = mod_workshop_external::get_workshop_access_information($this->workshop->id); $result = mod_workshop_external::get_workshop_access_information($this->workshop->id);
$result = external_api::clean_returnvalue(mod_workshop_external::get_workshop_access_information_returns(), $result); $result = \external_api::clean_returnvalue(mod_workshop_external::get_workshop_access_information_returns(), $result);
$this->assertTrue($result['creatingsubmissionallowed']); $this->assertTrue($result['creatingsubmissionallowed']);
$this->assertTrue($result['modifyingsubmissionallowed']); $this->assertTrue($result['modifyingsubmissionallowed']);
@ -283,7 +288,7 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
// Switch to next (to assessment). // Switch to next (to assessment).
$workshop->switch_phase(workshop::PHASE_ASSESSMENT); $workshop->switch_phase(workshop::PHASE_ASSESSMENT);
$result = mod_workshop_external::get_workshop_access_information($this->workshop->id); $result = mod_workshop_external::get_workshop_access_information($this->workshop->id);
$result = external_api::clean_returnvalue(mod_workshop_external::get_workshop_access_information_returns(), $result); $result = \external_api::clean_returnvalue(mod_workshop_external::get_workshop_access_information_returns(), $result);
$this->assertFalse($result['creatingsubmissionallowed']); $this->assertFalse($result['creatingsubmissionallowed']);
$this->assertFalse($result['modifyingsubmissionallowed']); $this->assertFalse($result['modifyingsubmissionallowed']);
@ -300,7 +305,7 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
self::setUser($this->teacher); self::setUser($this->teacher);
$result = mod_workshop_external::get_workshop_access_information($this->workshop->id); $result = mod_workshop_external::get_workshop_access_information($this->workshop->id);
$result = external_api::clean_returnvalue(mod_workshop_external::get_workshop_access_information_returns(), $result); $result = \external_api::clean_returnvalue(mod_workshop_external::get_workshop_access_information_returns(), $result);
// Check default values. // Check default values.
$disabledcaps = array('canpeerassess', 'cansubmit'); $disabledcaps = array('canpeerassess', 'cansubmit');
@ -329,7 +334,7 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
self::setUser($this->student); self::setUser($this->student);
$result = mod_workshop_external::get_user_plan($this->workshop->id); $result = mod_workshop_external::get_user_plan($this->workshop->id);
$result = external_api::clean_returnvalue(mod_workshop_external::get_user_plan_returns(), $result); $result = \external_api::clean_returnvalue(mod_workshop_external::get_user_plan_returns(), $result);
$this->assertCount(0, $result['userplan']['examples']); // No examples given. $this->assertCount(0, $result['userplan']['examples']); // No examples given.
$this->assertCount(5, $result['userplan']['phases']); // Always 5 phases. $this->assertCount(5, $result['userplan']['phases']); // Always 5 phases.
@ -341,7 +346,7 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
$workshop->switch_phase(workshop::PHASE_SUBMISSION); $workshop->switch_phase(workshop::PHASE_SUBMISSION);
$result = mod_workshop_external::get_user_plan($this->workshop->id); $result = mod_workshop_external::get_user_plan($this->workshop->id);
$result = external_api::clean_returnvalue(mod_workshop_external::get_user_plan_returns(), $result); $result = \external_api::clean_returnvalue(mod_workshop_external::get_user_plan_returns(), $result);
$this->assertEquals(workshop::PHASE_SUBMISSION, $result['userplan']['phases'][1]['code']); $this->assertEquals(workshop::PHASE_SUBMISSION, $result['userplan']['phases'][1]['code']);
$this->assertTrue($result['userplan']['phases'][1]['active']); // We are now in submission phase. $this->assertTrue($result['userplan']['phases'][1]['active']); // We are now in submission phase.
@ -354,7 +359,7 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
self::setUser($this->teacher); self::setUser($this->teacher);
$result = mod_workshop_external::get_user_plan($this->workshop->id); $result = mod_workshop_external::get_user_plan($this->workshop->id);
$result = external_api::clean_returnvalue(mod_workshop_external::get_user_plan_returns(), $result); $result = \external_api::clean_returnvalue(mod_workshop_external::get_user_plan_returns(), $result);
$this->assertCount(0, $result['userplan']['examples']); // No examples given. $this->assertCount(0, $result['userplan']['examples']); // No examples given.
$this->assertCount(5, $result['userplan']['phases']); // Always 5 phases. $this->assertCount(5, $result['userplan']['phases']); // Always 5 phases.
@ -375,7 +380,7 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
$workshop->switch_phase(workshop::PHASE_SUBMISSION); $workshop->switch_phase(workshop::PHASE_SUBMISSION);
$result = mod_workshop_external::get_user_plan($this->workshop->id); $result = mod_workshop_external::get_user_plan($this->workshop->id);
$result = external_api::clean_returnvalue(mod_workshop_external::get_user_plan_returns(), $result); $result = \external_api::clean_returnvalue(mod_workshop_external::get_user_plan_returns(), $result);
foreach ($result['userplan']['phases'][0]['tasks'] as $task) { foreach ($result['userplan']['phases'][0]['tasks'] as $task) {
if ($task['code'] == 'intro' || $task['code'] == 'instructauthors' || $task['code'] == 'editform' || if ($task['code'] == 'intro' || $task['code'] == 'instructauthors' || $task['code'] == 'editform' ||
$task['code'] == 'switchtonextphase') { $task['code'] == 'switchtonextphase') {
@ -386,7 +391,7 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
} }
$result = mod_workshop_external::get_user_plan($this->workshop->id); $result = mod_workshop_external::get_user_plan($this->workshop->id);
$result = external_api::clean_returnvalue(mod_workshop_external::get_user_plan_returns(), $result); $result = \external_api::clean_returnvalue(mod_workshop_external::get_user_plan_returns(), $result);
$this->assertEquals(workshop::PHASE_SUBMISSION, $result['userplan']['phases'][1]['code']); $this->assertEquals(workshop::PHASE_SUBMISSION, $result['userplan']['phases'][1]['code']);
$this->assertTrue($result['userplan']['phases'][1]['active']); // We are now in submission phase. $this->assertTrue($result['userplan']['phases'][1]['active']); // We are now in submission phase.
@ -422,7 +427,7 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();
$result = mod_workshop_external::view_workshop($this->workshop->id); $result = mod_workshop_external::view_workshop($this->workshop->id);
$result = external_api::clean_returnvalue(mod_workshop_external::view_workshop_returns(), $result); $result = \external_api::clean_returnvalue(mod_workshop_external::view_workshop_returns(), $result);
$this->assertTrue($result['status']); $this->assertTrue($result['status']);
$events = $sink->get_events(); $events = $sink->get_events();
@ -447,7 +452,7 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
assign_capability('mod/workshop:view', CAP_PROHIBIT, $this->studentrole->id, $this->context->id); assign_capability('mod/workshop:view', CAP_PROHIBIT, $this->studentrole->id, $this->context->id);
// Empty all the caches that may be affected by this change. // Empty all the caches that may be affected by this change.
accesslib_clear_all_caches_for_unit_testing(); accesslib_clear_all_caches_for_unit_testing();
course_modinfo::clear_instance_cache(); \course_modinfo::clear_instance_cache();
$this->setUser($this->student); $this->setUser($this->student);
$this->expectException('moodle_exception'); $this->expectException('moodle_exception');
@ -468,7 +473,7 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
// Create a file in a draft area for inline attachments. // Create a file in a draft area for inline attachments.
$draftidinlineattach = file_get_unused_draft_itemid(); $draftidinlineattach = file_get_unused_draft_itemid();
$usercontext = context_user::instance($this->student->id); $usercontext = \context_user::instance($this->student->id);
$filenameimg = 'shouldbeanimage.txt'; $filenameimg = 'shouldbeanimage.txt';
$filerecordinline = array( $filerecordinline = array(
'contextid' => $usercontext->id, 'contextid' => $usercontext->id,
@ -494,7 +499,7 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
$result = mod_workshop_external::add_submission($this->workshop->id, $title, $content, FORMAT_MOODLE, $draftidinlineattach, $result = mod_workshop_external::add_submission($this->workshop->id, $title, $content, FORMAT_MOODLE, $draftidinlineattach,
$draftidattach); $draftidattach);
$result = external_api::clean_returnvalue(mod_workshop_external::add_submission_returns(), $result); $result = \external_api::clean_returnvalue(mod_workshop_external::add_submission_returns(), $result);
$this->assertEmpty($result['warnings']); $this->assertEmpty($result['warnings']);
// Check submission created. // Check submission created.
@ -555,7 +560,7 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
public function test_add_submission_already_added() { public function test_add_submission_already_added() {
$this->setUser($this->student); $this->setUser($this->student);
$usercontext = context_user::instance($this->student->id); $usercontext = \context_user::instance($this->student->id);
$fs = get_file_storage(); $fs = get_file_storage();
$draftidattach = file_get_unused_draft_itemid(); $draftidattach = file_get_unused_draft_itemid();
$filerecordattach = [ $filerecordattach = [
@ -574,11 +579,11 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
// Create the submission. // Create the submission.
$result = mod_workshop_external::add_submission($this->workshop->id, 'My submission', '', FORMAT_MOODLE, 0, $draftidattach); $result = mod_workshop_external::add_submission($this->workshop->id, 'My submission', '', FORMAT_MOODLE, 0, $draftidattach);
$result = external_api::clean_returnvalue(mod_workshop_external::add_submission_returns(), $result); $result = \external_api::clean_returnvalue(mod_workshop_external::add_submission_returns(), $result);
// Try to create it again. // Try to create it again.
$result = mod_workshop_external::add_submission($this->workshop->id, 'My submission', '', FORMAT_MOODLE, 0, $draftidattach); $result = mod_workshop_external::add_submission($this->workshop->id, 'My submission', '', FORMAT_MOODLE, 0, $draftidattach);
$result = external_api::clean_returnvalue(mod_workshop_external::add_submission_returns(), $result); $result = \external_api::clean_returnvalue(mod_workshop_external::add_submission_returns(), $result);
$this->assertFalse($result['status']); $this->assertFalse($result['status']);
$this->assertArrayNotHasKey('submissionid', $result); $this->assertArrayNotHasKey('submissionid', $result);
$this->assertCount(1, $result['warnings']); $this->assertCount(1, $result['warnings']);
@ -602,7 +607,7 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
// Create a file in a draft area for inline attachments. // Create a file in a draft area for inline attachments.
$fs = get_file_storage(); $fs = get_file_storage();
$draftidinlineattach = file_get_unused_draft_itemid(); $draftidinlineattach = file_get_unused_draft_itemid();
$usercontext = context_user::instance($user->id); $usercontext = \context_user::instance($user->id);
$filenameimg = 'shouldbeanimage.txt'; $filenameimg = 'shouldbeanimage.txt';
$filerecordinline = array( $filerecordinline = array(
'contextid' => $usercontext->id, 'contextid' => $usercontext->id,
@ -648,7 +653,7 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
// Create a different file in a draft area for inline attachments. // Create a different file in a draft area for inline attachments.
$fs = get_file_storage(); $fs = get_file_storage();
$draftidinlineattach = file_get_unused_draft_itemid(); $draftidinlineattach = file_get_unused_draft_itemid();
$usercontext = context_user::instance($this->student->id); $usercontext = \context_user::instance($this->student->id);
$filenameimg = 'shouldbeanimage_new.txt'; $filenameimg = 'shouldbeanimage_new.txt';
$filerecordinline = array( $filerecordinline = array(
'contextid' => $usercontext->id, 'contextid' => $usercontext->id,
@ -670,7 +675,7 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
$result = mod_workshop_external::update_submission($submissionid, $title, $content, FORMAT_MOODLE, $draftidinlineattach, $result = mod_workshop_external::update_submission($submissionid, $title, $content, FORMAT_MOODLE, $draftidinlineattach,
$draftidattach); $draftidattach);
$result = external_api::clean_returnvalue(mod_workshop_external::update_submission_returns(), $result); $result = \external_api::clean_returnvalue(mod_workshop_external::update_submission_returns(), $result);
$this->assertEmpty($result['warnings']); $this->assertEmpty($result['warnings']);
// Check submission updated. // Check submission updated.
@ -758,7 +763,7 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();
$result = mod_workshop_external::delete_submission($submissionid); $result = mod_workshop_external::delete_submission($submissionid);
$result = external_api::clean_returnvalue(mod_workshop_external::delete_submission_returns(), $result); $result = \external_api::clean_returnvalue(mod_workshop_external::delete_submission_returns(), $result);
$this->assertEmpty($result['warnings']); $this->assertEmpty($result['warnings']);
$this->assertTrue($result['status']); $this->assertTrue($result['status']);
$workshop = new workshop($this->workshop, $this->cm, $this->course); $workshop = new workshop($this->workshop, $this->cm, $this->course);
@ -820,7 +825,7 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
$this->setUser($this->teacher); $this->setUser($this->teacher);
$result = mod_workshop_external::delete_submission($submissionid); $result = mod_workshop_external::delete_submission($submissionid);
$result = external_api::clean_returnvalue(mod_workshop_external::delete_submission_returns(), $result); $result = \external_api::clean_returnvalue(mod_workshop_external::delete_submission_returns(), $result);
$this->assertEmpty($result['warnings']); $this->assertEmpty($result['warnings']);
$this->assertTrue($result['status']); $this->assertTrue($result['status']);
} }
@ -851,7 +856,7 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
$this->setUser($this->student); $this->setUser($this->student);
$result = mod_workshop_external::get_submissions($this->workshop->id); $result = mod_workshop_external::get_submissions($this->workshop->id);
$result = external_api::clean_returnvalue(mod_workshop_external::get_submissions_returns(), $result); $result = \external_api::clean_returnvalue(mod_workshop_external::get_submissions_returns(), $result);
// We should get just our submission. // We should get just our submission.
$this->assertCount(1, $result['submissions']); $this->assertCount(1, $result['submissions']);
$this->assertEquals(1, $result['totalcount']); $this->assertEquals(1, $result['totalcount']);
@ -884,7 +889,7 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
$this->setUser($this->student); $this->setUser($this->student);
$result = mod_workshop_external::get_submissions($this->workshop->id); $result = mod_workshop_external::get_submissions($this->workshop->id);
$result = external_api::clean_returnvalue(mod_workshop_external::get_submissions_returns(), $result); $result = \external_api::clean_returnvalue(mod_workshop_external::get_submissions_returns(), $result);
// We should get just our submission. // We should get just our submission.
$this->assertCount(1, $result['submissions']); $this->assertCount(1, $result['submissions']);
$this->assertEquals(1, $result['totalcount']); $this->assertEquals(1, $result['totalcount']);
@ -893,7 +898,7 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
// Check with group restrictions. // Check with group restrictions.
$this->setUser($this->anotherstudentg2); $this->setUser($this->anotherstudentg2);
$result = mod_workshop_external::get_submissions($this->workshop->id); $result = mod_workshop_external::get_submissions($this->workshop->id);
$result = external_api::clean_returnvalue(mod_workshop_external::get_submissions_returns(), $result); $result = \external_api::clean_returnvalue(mod_workshop_external::get_submissions_returns(), $result);
$this->assertCount(0, $result['submissions']); // I can't see other users in separated groups. $this->assertCount(0, $result['submissions']); // I can't see other users in separated groups.
$this->assertEquals(0, $result['totalcount']); $this->assertEquals(0, $result['totalcount']);
} }
@ -908,7 +913,7 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
$workshopgenerator = $this->getDataGenerator()->get_plugin_generator('mod_workshop'); $workshopgenerator = $this->getDataGenerator()->get_plugin_generator('mod_workshop');
$submissionid = $workshopgenerator->create_submission($this->workshop->id, $this->student->id); $submissionid = $workshopgenerator->create_submission($this->workshop->id, $this->student->id);
// Create teacher feedback for submission. // Create teacher feedback for submission.
$record = new stdclass(); $record = new \stdClass();
$record->id = $submissionid; $record->id = $submissionid;
$record->gradeover = 9; $record->gradeover = 9;
$record->gradeoverby = $this->teacher->id; $record->gradeoverby = $this->teacher->id;
@ -921,11 +926,11 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
assign_capability('mod/workshop:viewallsubmissions', CAP_PROHIBIT, $this->teacher->id, $this->context->id); assign_capability('mod/workshop:viewallsubmissions', CAP_PROHIBIT, $this->teacher->id, $this->context->id);
// Empty all the caches that may be affected by this change. // Empty all the caches that may be affected by this change.
accesslib_clear_all_caches_for_unit_testing(); accesslib_clear_all_caches_for_unit_testing();
course_modinfo::clear_instance_cache(); \course_modinfo::clear_instance_cache();
$this->setUser($this->teacher); $this->setUser($this->teacher);
$result = mod_workshop_external::get_submissions($this->workshop->id, $this->student->id); $result = mod_workshop_external::get_submissions($this->workshop->id, $this->student->id);
$result = external_api::clean_returnvalue(mod_workshop_external::get_submissions_returns(), $result); $result = \external_api::clean_returnvalue(mod_workshop_external::get_submissions_returns(), $result);
// We should get just our submission. // We should get just our submission.
$this->assertEquals(1, $result['totalcount']); $this->assertEquals(1, $result['totalcount']);
$this->assertEquals($submissionid, $result['submissions'][0]['id']); $this->assertEquals($submissionid, $result['submissions'][0]['id']);
@ -944,23 +949,23 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
$this->setUser($this->teacher); $this->setUser($this->teacher);
$result = mod_workshop_external::get_submissions($this->workshop->id); // Get all. $result = mod_workshop_external::get_submissions($this->workshop->id); // Get all.
$result = external_api::clean_returnvalue(mod_workshop_external::get_submissions_returns(), $result); $result = \external_api::clean_returnvalue(mod_workshop_external::get_submissions_returns(), $result);
$this->assertEquals(3, $result['totalcount']); $this->assertEquals(3, $result['totalcount']);
$this->assertCount(3, $result['submissions']); $this->assertCount(3, $result['submissions']);
$result = mod_workshop_external::get_submissions($this->workshop->id, 0, 0, 0, 2); // Check pagination. $result = mod_workshop_external::get_submissions($this->workshop->id, 0, 0, 0, 2); // Check pagination.
$result = external_api::clean_returnvalue(mod_workshop_external::get_submissions_returns(), $result); $result = \external_api::clean_returnvalue(mod_workshop_external::get_submissions_returns(), $result);
$this->assertEquals(3, $result['totalcount']); $this->assertEquals(3, $result['totalcount']);
$this->assertCount(2, $result['submissions']); $this->assertCount(2, $result['submissions']);
$result = mod_workshop_external::get_submissions($this->workshop->id, 0, $this->group2->id); // Get group 2. $result = mod_workshop_external::get_submissions($this->workshop->id, 0, $this->group2->id); // Get group 2.
$result = external_api::clean_returnvalue(mod_workshop_external::get_submissions_returns(), $result); $result = \external_api::clean_returnvalue(mod_workshop_external::get_submissions_returns(), $result);
$this->assertEquals(1, $result['totalcount']); $this->assertEquals(1, $result['totalcount']);
$this->assertCount(1, $result['submissions']); $this->assertCount(1, $result['submissions']);
$this->assertEquals($submissionid3, $result['submissions'][0]['id']); $this->assertEquals($submissionid3, $result['submissions'][0]['id']);
$result = mod_workshop_external::get_submissions($this->workshop->id, $this->anotherstudentg1->id); // Get one. $result = mod_workshop_external::get_submissions($this->workshop->id, $this->anotherstudentg1->id); // Get one.
$result = external_api::clean_returnvalue(mod_workshop_external::get_submissions_returns(), $result); $result = \external_api::clean_returnvalue(mod_workshop_external::get_submissions_returns(), $result);
$this->assertEquals(1, $result['totalcount']); $this->assertEquals(1, $result['totalcount']);
$this->assertEquals($submissionid2, $result['submissions'][0]['id']); $this->assertEquals($submissionid2, $result['submissions'][0]['id']);
} }
@ -977,7 +982,7 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
$workshop->switch_phase(workshop::PHASE_CLOSED); $workshop->switch_phase(workshop::PHASE_CLOSED);
$this->setUser($this->student); $this->setUser($this->student);
$result = mod_workshop_external::get_submission($firstsubmissionid); $result = mod_workshop_external::get_submission($firstsubmissionid);
$result = external_api::clean_returnvalue(mod_workshop_external::get_submission_returns(), $result); $result = \external_api::clean_returnvalue(mod_workshop_external::get_submission_returns(), $result);
$this->assertEquals($firstsubmissionid, $result['submission']['id']); $this->assertEquals($firstsubmissionid, $result['submission']['id']);
$this->assertCount(1, $result['submission']['contentfiles']); // Check we retrieve submission text files. $this->assertCount(1, $result['submission']['contentfiles']); // Check we retrieve submission text files.
$this->assertCount(1, $result['submission']['attachmentfiles']); // Check we retrieve attachment files. $this->assertCount(1, $result['submission']['attachmentfiles']); // Check we retrieve attachment files.
@ -990,7 +995,7 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
// Switch to a different phase (where feedback won't be available). // Switch to a different phase (where feedback won't be available).
$workshop->switch_phase(workshop::PHASE_EVALUATION); $workshop->switch_phase(workshop::PHASE_EVALUATION);
$result = mod_workshop_external::get_submission($firstsubmissionid); $result = mod_workshop_external::get_submission($firstsubmissionid);
$result = external_api::clean_returnvalue(mod_workshop_external::get_submission_returns(), $result); $result = \external_api::clean_returnvalue(mod_workshop_external::get_submission_returns(), $result);
$this->assertEquals($firstsubmissionid, $result['submission']['id']); $this->assertEquals($firstsubmissionid, $result['submission']['id']);
$this->assertCount(1, $result['submission']['contentfiles']); // Check we retrieve submission text files. $this->assertCount(1, $result['submission']['contentfiles']); // Check we retrieve submission text files.
$this->assertCount(1, $result['submission']['attachmentfiles']); // Check we retrieve attachment files. $this->assertCount(1, $result['submission']['attachmentfiles']); // Check we retrieve attachment files.
@ -1016,7 +1021,7 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
// Now try to get the submission I just reviewed. // Now try to get the submission I just reviewed.
$this->setUser($this->anotherstudentg1); $this->setUser($this->anotherstudentg1);
$result = mod_workshop_external::get_submission($firstsubmissionid); $result = mod_workshop_external::get_submission($firstsubmissionid);
$result = external_api::clean_returnvalue(mod_workshop_external::get_submission_returns(), $result); $result = \external_api::clean_returnvalue(mod_workshop_external::get_submission_returns(), $result);
$this->assertEquals($firstsubmissionid, $result['submission']['id']); $this->assertEquals($firstsubmissionid, $result['submission']['id']);
$this->assertCount(1, $result['submission']['contentfiles']); // Check we retrieve submission text files. $this->assertCount(1, $result['submission']['contentfiles']); // Check we retrieve submission text files.
$this->assertCount(1, $result['submission']['attachmentfiles']); // Check we retrieve attachment files. $this->assertCount(1, $result['submission']['attachmentfiles']); // Check we retrieve attachment files.
@ -1054,7 +1059,7 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
$this->setUser($this->student); $this->setUser($this->student);
$result = mod_workshop_external::get_submission($submissionid); $result = mod_workshop_external::get_submission($submissionid);
$result = external_api::clean_returnvalue(mod_workshop_external::get_submission_returns(), $result); $result = \external_api::clean_returnvalue(mod_workshop_external::get_submission_returns(), $result);
$this->assertEquals($submissionid, $result['submission']['id']); $this->assertEquals($submissionid, $result['submission']['id']);
// Check that the student don't see the other student grade/feedback data even if is published. // Check that the student don't see the other student grade/feedback data even if is published.
// We should not see the grade or feedback information. // We should not see the grade or feedback information.
@ -1083,7 +1088,7 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
$workshop = new workshop($this->workshop, $this->cm, $this->course); $workshop = new workshop($this->workshop, $this->cm, $this->course);
$workshop->switch_phase(workshop::PHASE_CLOSED); $workshop->switch_phase(workshop::PHASE_CLOSED);
// Create teacher feedback for submission. // Create teacher feedback for submission.
$record = new stdclass(); $record = new \stdClass();
$record->id = $submissionid; $record->id = $submissionid;
$record->gradeover = 9; $record->gradeover = 9;
$record->gradeoverby = $this->teacher->id; $record->gradeoverby = $this->teacher->id;
@ -1095,7 +1100,7 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
$this->setUser($this->teacher); $this->setUser($this->teacher);
$result = mod_workshop_external::get_submission($submissionid); $result = mod_workshop_external::get_submission($submissionid);
$result = external_api::clean_returnvalue(mod_workshop_external::get_submission_returns(), $result); $result = \external_api::clean_returnvalue(mod_workshop_external::get_submission_returns(), $result);
$this->assertEquals($submissionid, $result['submission']['id']); $this->assertEquals($submissionid, $result['submission']['id']);
$this->assertEquals($record->feedbackauthor, $result['submission']['feedbackauthor']); $this->assertEquals($record->feedbackauthor, $result['submission']['feedbackauthor']);
$this->assertEquals($record->gradeover, $result['submission']['gradeover']); $this->assertEquals($record->gradeover, $result['submission']['gradeover']);
@ -1105,7 +1110,7 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
// Go to phase where feedback and grades are not yet available. // Go to phase where feedback and grades are not yet available.
$workshop->switch_phase(workshop::PHASE_SUBMISSION); $workshop->switch_phase(workshop::PHASE_SUBMISSION);
$result = mod_workshop_external::get_submission($submissionid); $result = mod_workshop_external::get_submission($submissionid);
$result = external_api::clean_returnvalue(mod_workshop_external::get_submission_returns(), $result); $result = \external_api::clean_returnvalue(mod_workshop_external::get_submission_returns(), $result);
$this->assertArrayNotHasKey('feedbackauthor', $result['submission']); $this->assertArrayNotHasKey('feedbackauthor', $result['submission']);
$this->assertArrayNotHasKey('grade', $result['submission']); $this->assertArrayNotHasKey('grade', $result['submission']);
$this->assertArrayNotHasKey('gradeover', $result['submission']); $this->assertArrayNotHasKey('gradeover', $result['submission']);
@ -1134,11 +1139,11 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
$this->setUser($this->teacher); $this->setUser($this->teacher);
$result = mod_workshop_external::get_submission($submissionid1); // Get all. $result = mod_workshop_external::get_submission($submissionid1); // Get all.
$result = external_api::clean_returnvalue(mod_workshop_external::get_submission_returns(), $result); $result = \external_api::clean_returnvalue(mod_workshop_external::get_submission_returns(), $result);
$this->assertEquals($submissionid1, $result['submission']['id']); $this->assertEquals($submissionid1, $result['submission']['id']);
$result = mod_workshop_external::get_submission($submissionid3); // Get group 2. $result = mod_workshop_external::get_submission($submissionid3); // Get group 2.
$result = external_api::clean_returnvalue(mod_workshop_external::get_submission_returns(), $result); $result = \external_api::clean_returnvalue(mod_workshop_external::get_submission_returns(), $result);
$this->assertEquals($submissionid3, $result['submission']['id']); $this->assertEquals($submissionid3, $result['submission']['id']);
} }
@ -1165,7 +1170,7 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
$workshop->switch_phase(workshop::PHASE_CLOSED); $workshop->switch_phase(workshop::PHASE_CLOSED);
$this->setUser($this->student); $this->setUser($this->student);
$result = mod_workshop_external::get_submission_assessments($submissionid); $result = mod_workshop_external::get_submission_assessments($submissionid);
$result = external_api::clean_returnvalue(mod_workshop_external::get_submission_assessments_returns(), $result); $result = \external_api::clean_returnvalue(mod_workshop_external::get_submission_assessments_returns(), $result);
$this->assertCount(2, $result['assessments']); // I received my two assessments. $this->assertCount(2, $result['assessments']); // I received my two assessments.
foreach ($result['assessments'] as $assessment) { foreach ($result['assessments'] as $assessment) {
if ($assessment['grade'] == 90) { if ($assessment['grade'] == 90) {
@ -1212,7 +1217,7 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
$this->setUser($this->teacher); $this->setUser($this->teacher);
$result = mod_workshop_external::get_submission_assessments($submissionid); $result = mod_workshop_external::get_submission_assessments($submissionid);
$result = external_api::clean_returnvalue(mod_workshop_external::get_submission_assessments_returns(), $result); $result = \external_api::clean_returnvalue(mod_workshop_external::get_submission_assessments_returns(), $result);
$this->assertCount(1, $result['assessments']); $this->assertCount(1, $result['assessments']);
$this->assertEquals(50, $result['assessments'][0]['grade']); $this->assertEquals(50, $result['assessments'][0]['grade']);
$this->assertEquals($assessmentid, $result['assessments'][0]['id']); $this->assertEquals($assessmentid, $result['assessments'][0]['id']);
@ -1237,7 +1242,7 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
$workshop->switch_phase(workshop::PHASE_CLOSED); $workshop->switch_phase(workshop::PHASE_CLOSED);
$this->setUser($this->anotherstudentg1); $this->setUser($this->anotherstudentg1);
$result = mod_workshop_external::get_assessment($assessmentid); $result = mod_workshop_external::get_assessment($assessmentid);
$result = external_api::clean_returnvalue(mod_workshop_external::get_assessment_returns(), $result); $result = \external_api::clean_returnvalue(mod_workshop_external::get_assessment_returns(), $result);
$this->assertEquals($assessmentid, $result['assessment']['id']); $this->assertEquals($assessmentid, $result['assessment']['id']);
$this->assertEquals(90, $result['assessment']['grade']); $this->assertEquals(90, $result['assessment']['grade']);
// I can't see the reviewer review. // I can't see the reviewer review.
@ -1263,7 +1268,7 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
$workshop->switch_phase(workshop::PHASE_CLOSED); $workshop->switch_phase(workshop::PHASE_CLOSED);
$this->setUser($this->student); $this->setUser($this->student);
$result = mod_workshop_external::get_assessment($assessmentid); $result = mod_workshop_external::get_assessment($assessmentid);
$result = external_api::clean_returnvalue(mod_workshop_external::get_assessment_returns(), $result); $result = \external_api::clean_returnvalue(mod_workshop_external::get_assessment_returns(), $result);
$this->assertEquals($assessmentid, $result['assessment']['id']); $this->assertEquals($assessmentid, $result['assessment']['id']);
$this->assertEquals(90, $result['assessment']['grade']); $this->assertEquals(90, $result['assessment']['grade']);
// I can see the reviewer review. // I can see the reviewer review.
@ -1289,7 +1294,7 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
$workshop->switch_phase(workshop::PHASE_CLOSED); $workshop->switch_phase(workshop::PHASE_CLOSED);
$this->setUser($this->teacher); $this->setUser($this->teacher);
$result = mod_workshop_external::get_assessment($assessmentid); $result = mod_workshop_external::get_assessment($assessmentid);
$result = external_api::clean_returnvalue(mod_workshop_external::get_assessment_returns(), $result); $result = \external_api::clean_returnvalue(mod_workshop_external::get_assessment_returns(), $result);
$this->assertEquals($assessmentid, $result['assessment']['id']); $this->assertEquals($assessmentid, $result['assessment']['id']);
$this->assertEquals(90, $result['assessment']['grade']); $this->assertEquals(90, $result['assessment']['grade']);
} }
@ -1354,7 +1359,7 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
$workshop->switch_phase(workshop::PHASE_ASSESSMENT); $workshop->switch_phase(workshop::PHASE_ASSESSMENT);
$this->setUser($this->student); $this->setUser($this->student);
$result = mod_workshop_external::get_assessment_form_definition($assessmentid); $result = mod_workshop_external::get_assessment_form_definition($assessmentid);
$result = external_api::clean_returnvalue(mod_workshop_external::get_assessment_form_definition_returns(), $result); $result = \external_api::clean_returnvalue(mod_workshop_external::get_assessment_form_definition_returns(), $result);
$this->assertEquals(4, $result['dimenssionscount']); // We receive the expected 4 dimensions. $this->assertEquals(4, $result['dimenssionscount']); // We receive the expected 4 dimensions.
$this->assertEmpty($result['current']); // Assessment not yet done. $this->assertEmpty($result['current']); // Assessment not yet done.
foreach ($result['fields'] as $field) { foreach ($result['fields'] as $field) {
@ -1388,7 +1393,7 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
// Teachers need to be able to view assessments. // Teachers need to be able to view assessments.
$this->setUser($this->teacher); $this->setUser($this->teacher);
$result = mod_workshop_external::get_assessment_form_definition($assessmentid); $result = mod_workshop_external::get_assessment_form_definition($assessmentid);
$result = external_api::clean_returnvalue(mod_workshop_external::get_assessment_form_definition_returns(), $result); $result = \external_api::clean_returnvalue(mod_workshop_external::get_assessment_form_definition_returns(), $result);
$this->assertEquals(4, $result['dimenssionscount']); $this->assertEquals(4, $result['dimenssionscount']);
} }
@ -1436,7 +1441,7 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
$this->setUser($this->student); $this->setUser($this->student);
// Get my assessments. // Get my assessments.
$result = mod_workshop_external::get_reviewer_assessments($this->workshop->id); $result = mod_workshop_external::get_reviewer_assessments($this->workshop->id);
$result = external_api::clean_returnvalue(mod_workshop_external::get_reviewer_assessments_returns(), $result); $result = \external_api::clean_returnvalue(mod_workshop_external::get_reviewer_assessments_returns(), $result);
$this->assertCount(2, $result['assessments']); $this->assertCount(2, $result['assessments']);
foreach ($result['assessments'] as $assessment) { foreach ($result['assessments'] as $assessment) {
if ($assessment['id'] == $assessmentid1) { if ($assessment['id'] == $assessmentid1) {
@ -1449,7 +1454,7 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
// Now, as teacher try to get the same student assessments. // Now, as teacher try to get the same student assessments.
$result = mod_workshop_external::get_reviewer_assessments($this->workshop->id, $this->student->id); $result = mod_workshop_external::get_reviewer_assessments($this->workshop->id, $this->student->id);
$result = external_api::clean_returnvalue(mod_workshop_external::get_reviewer_assessments_returns(), $result); $result = \external_api::clean_returnvalue(mod_workshop_external::get_reviewer_assessments_returns(), $result);
$this->assertCount(2, $result['assessments']); $this->assertCount(2, $result['assessments']);
$this->assertArrayNotHasKey('feedbackreviewer', $result['assessments'][0]); $this->assertArrayNotHasKey('feedbackreviewer', $result['assessments'][0]);
} }
@ -1497,7 +1502,7 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
$this->setUser($this->student); $this->setUser($this->student);
// Get the form definition. // Get the form definition.
$result = mod_workshop_external::get_assessment_form_definition($assessmentid); $result = mod_workshop_external::get_assessment_form_definition($assessmentid);
$result = external_api::clean_returnvalue(mod_workshop_external::get_assessment_form_definition_returns(), $result); $result = \external_api::clean_returnvalue(mod_workshop_external::get_assessment_form_definition_returns(), $result);
// Prepare the data to be sent. // Prepare the data to be sent.
$data = $result['fields']; $data = $result['fields'];
@ -1528,7 +1533,7 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
// Create a file in a draft area for inline attachments. // Create a file in a draft area for inline attachments.
$fs = get_file_storage(); $fs = get_file_storage();
$draftidinlineattach = file_get_unused_draft_itemid(); $draftidinlineattach = file_get_unused_draft_itemid();
$usercontext = context_user::instance($this->student->id); $usercontext = \context_user::instance($this->student->id);
$filenameimg = 'shouldbeanimage.txt'; $filenameimg = 'shouldbeanimage.txt';
$filerecordinline = array( $filerecordinline = array(
'contextid' => $usercontext->id, 'contextid' => $usercontext->id,
@ -1559,13 +1564,13 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
// Update the assessment. // Update the assessment.
$result = mod_workshop_external::update_assessment($assessmentid, $data); $result = mod_workshop_external::update_assessment($assessmentid, $data);
$result = external_api::clean_returnvalue(mod_workshop_external::update_assessment_returns(), $result); $result = \external_api::clean_returnvalue(mod_workshop_external::update_assessment_returns(), $result);
$this->assertEquals(100, $result['rawgrade']); $this->assertEquals(100, $result['rawgrade']);
$this->assertTrue($result['status']); $this->assertTrue($result['status']);
// Get the assessment and check it was updated properly. // Get the assessment and check it was updated properly.
$result = mod_workshop_external::get_assessment($assessmentid); $result = mod_workshop_external::get_assessment($assessmentid);
$result = external_api::clean_returnvalue(mod_workshop_external::get_assessment_returns(), $result); $result = \external_api::clean_returnvalue(mod_workshop_external::get_assessment_returns(), $result);
$this->assertEquals(100, $result['assessment']['grade']); $this->assertEquals(100, $result['assessment']['grade']);
$this->assertEquals($this->student->id, $result['assessment']['reviewerid']); $this->assertEquals($this->student->id, $result['assessment']['reviewerid']);
$this->assertEquals('Feedback for the author', $result['assessment']['feedbackauthor']); $this->assertEquals('Feedback for the author', $result['assessment']['feedbackauthor']);
@ -1574,7 +1579,7 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
// Now, get again the form and check we received the data we already sent. // Now, get again the form and check we received the data we already sent.
$result = mod_workshop_external::get_assessment_form_definition($assessmentid); $result = mod_workshop_external::get_assessment_form_definition($assessmentid);
$result = external_api::clean_returnvalue(mod_workshop_external::get_assessment_form_definition_returns(), $result); $result = \external_api::clean_returnvalue(mod_workshop_external::get_assessment_form_definition_returns(), $result);
foreach ($result['current'] as $currentdata) { foreach ($result['current'] as $currentdata) {
if (strpos($currentdata['name'], 'peercomment__idx_') === 0) { if (strpos($currentdata['name'], 'peercomment__idx_') === 0) {
$this->assertEquals('Some content', $currentdata['value']); $this->assertEquals('Some content', $currentdata['value']);
@ -1612,7 +1617,7 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
// First retrieve my grades. // First retrieve my grades.
$this->setUser($this->student); $this->setUser($this->student);
$result = mod_workshop_external::get_grades($this->workshop->id); $result = mod_workshop_external::get_grades($this->workshop->id);
$result = external_api::clean_returnvalue(mod_workshop_external::get_grades_returns(), $result); $result = \external_api::clean_returnvalue(mod_workshop_external::get_grades_returns(), $result);
$this->assertCount(0, $result['warnings']); $this->assertCount(0, $result['warnings']);
$this->assertEquals($assessmentgrade['rawgrade'], $result['assessmentrawgrade']); $this->assertEquals($assessmentgrade['rawgrade'], $result['assessmentrawgrade']);
$this->assertEquals($submissiongrade['rawgrade'], $result['submissionrawgrade']); $this->assertEquals($submissiongrade['rawgrade'], $result['submissionrawgrade']);
@ -1624,7 +1629,7 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
// Second, teacher retrieve user grades. // Second, teacher retrieve user grades.
$this->setUser($this->teacher); $this->setUser($this->teacher);
$result = mod_workshop_external::get_grades($this->workshop->id, $this->student->id); $result = mod_workshop_external::get_grades($this->workshop->id, $this->student->id);
$result = external_api::clean_returnvalue(mod_workshop_external::get_grades_returns(), $result); $result = \external_api::clean_returnvalue(mod_workshop_external::get_grades_returns(), $result);
$this->assertCount(0, $result['warnings']); $this->assertCount(0, $result['warnings']);
$this->assertEquals($assessmentgrade['rawgrade'], $result['assessmentrawgrade']); $this->assertEquals($assessmentgrade['rawgrade'], $result['assessmentrawgrade']);
$this->assertEquals($submissiongrade['rawgrade'], $result['submissionrawgrade']); $this->assertEquals($submissiongrade['rawgrade'], $result['submissionrawgrade']);
@ -1669,7 +1674,7 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
$gradinggradeover = 10; $gradinggradeover = 10;
$result = mod_workshop_external::evaluate_assessment($assessmentid, $feedbacktext, $feedbackformat, $weight, $result = mod_workshop_external::evaluate_assessment($assessmentid, $feedbacktext, $feedbackformat, $weight,
$gradinggradeover); $gradinggradeover);
$result = external_api::clean_returnvalue(mod_workshop_external::evaluate_assessment_returns(), $result); $result = \external_api::clean_returnvalue(mod_workshop_external::evaluate_assessment_returns(), $result);
$this->assertTrue($result['status']); $this->assertTrue($result['status']);
$assessment = $DB->get_record('workshop_assessments', array('id' => $assessmentid)); $assessment = $DB->get_record('workshop_assessments', array('id' => $assessmentid));
@ -1681,7 +1686,7 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
$gradinggradeover = 100; $gradinggradeover = 100;
$result = mod_workshop_external::evaluate_assessment($assessmentid, $feedbacktext, $feedbackformat, $weight, $result = mod_workshop_external::evaluate_assessment($assessmentid, $feedbacktext, $feedbackformat, $weight,
$gradinggradeover); $gradinggradeover);
$result = external_api::clean_returnvalue(mod_workshop_external::evaluate_assessment_returns(), $result); $result = \external_api::clean_returnvalue(mod_workshop_external::evaluate_assessment_returns(), $result);
$this->assertFalse($result['status']); $this->assertFalse($result['status']);
$this->assertCount(2, $result['warnings']); $this->assertCount(2, $result['warnings']);
$found = 0; $found = 0;
@ -1715,11 +1720,11 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
$gradinggradeover = 19; $gradinggradeover = 19;
$result = mod_workshop_external::evaluate_assessment($assessmentid, $feedbacktext, $feedbackformat, $weight, $result = mod_workshop_external::evaluate_assessment($assessmentid, $feedbacktext, $feedbackformat, $weight,
$gradinggradeover); $gradinggradeover);
$result = external_api::clean_returnvalue(mod_workshop_external::evaluate_assessment_returns(), $result); $result = \external_api::clean_returnvalue(mod_workshop_external::evaluate_assessment_returns(), $result);
$this->assertTrue($result['status']); $this->assertTrue($result['status']);
$result = mod_workshop_external::get_assessment($assessmentid); $result = mod_workshop_external::get_assessment($assessmentid);
$result = external_api::clean_returnvalue(mod_workshop_external::get_assessment_returns(), $result); $result = \external_api::clean_returnvalue(mod_workshop_external::get_assessment_returns(), $result);
$this->assertNotEquals(10, $result['assessment']['weight']); $this->assertNotEquals(10, $result['assessment']['weight']);
} }
@ -1765,7 +1770,7 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
$workshop->switch_phase(workshop::PHASE_CLOSED); $workshop->switch_phase(workshop::PHASE_CLOSED);
$this->setUser($this->teacher); $this->setUser($this->teacher);
$result = mod_workshop_external::get_grades_report($this->workshop->id); $result = mod_workshop_external::get_grades_report($this->workshop->id);
$result = external_api::clean_returnvalue(mod_workshop_external::get_grades_report_returns(), $result); $result = \external_api::clean_returnvalue(mod_workshop_external::get_grades_report_returns(), $result);
$this->assertEquals(3, $result['report']['totalcount']); // Expect 3 potential submissions. $this->assertEquals(3, $result['report']['totalcount']); // Expect 3 potential submissions.
foreach ($result['report']['grades'] as $grade) { foreach ($result['report']['grades'] as $grade) {
@ -1783,13 +1788,13 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
} }
// Now check pagination. // Now check pagination.
$result = mod_workshop_external::get_grades_report($this->workshop->id, 0, 'lastname', 'ASC', 0, 1); $result = mod_workshop_external::get_grades_report($this->workshop->id, 0, 'lastname', 'ASC', 0, 1);
$result = external_api::clean_returnvalue(mod_workshop_external::get_grades_report_returns(), $result); $result = \external_api::clean_returnvalue(mod_workshop_external::get_grades_report_returns(), $result);
$this->assertEquals(3, $result['report']['totalcount']); // Expect the total count. $this->assertEquals(3, $result['report']['totalcount']); // Expect the total count.
$this->assertCount(1, $result['report']['grades']); $this->assertCount(1, $result['report']['grades']);
// Groups filtering. // Groups filtering.
$result = mod_workshop_external::get_grades_report($this->workshop->id, $this->group1->id); $result = mod_workshop_external::get_grades_report($this->workshop->id, $this->group1->id);
$result = external_api::clean_returnvalue(mod_workshop_external::get_grades_report_returns(), $result); $result = \external_api::clean_returnvalue(mod_workshop_external::get_grades_report_returns(), $result);
$this->assertEquals(2, $result['report']['totalcount']); // Expect the group count. $this->assertEquals(2, $result['report']['totalcount']); // Expect the group count.
} }
@ -1825,7 +1830,7 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
$this->setUser($this->student); $this->setUser($this->student);
$result = mod_workshop_external::view_submission($firstsubmissionid); $result = mod_workshop_external::view_submission($firstsubmissionid);
$result = external_api::clean_returnvalue(mod_workshop_external::view_submission_returns(), $result); $result = \external_api::clean_returnvalue(mod_workshop_external::view_submission_returns(), $result);
$events = $sink->get_events(); $events = $sink->get_events();
$this->assertCount(1, $events); $this->assertCount(1, $events);
@ -1861,7 +1866,7 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
$gradeover = 10; $gradeover = 10;
$result = mod_workshop_external::evaluate_submission($submissionid, $feedbacktext, $feedbackformat, $published, $result = mod_workshop_external::evaluate_submission($submissionid, $feedbacktext, $feedbackformat, $published,
$gradeover); $gradeover);
$result = external_api::clean_returnvalue(mod_workshop_external::evaluate_submission_returns(), $result); $result = \external_api::clean_returnvalue(mod_workshop_external::evaluate_submission_returns(), $result);
$this->assertTrue($result['status']); $this->assertTrue($result['status']);
$submission = $DB->get_record('workshop_submissions', array('id' => $submissionid)); $submission = $DB->get_record('workshop_submissions', array('id' => $submissionid));
@ -1886,7 +1891,7 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
$gradeover = 10; $gradeover = 10;
$result = mod_workshop_external::evaluate_submission($submissionid, $feedbacktext, $feedbackformat, $published, $result = mod_workshop_external::evaluate_submission($submissionid, $feedbacktext, $feedbackformat, $published,
$gradeover); $gradeover);
$result = external_api::clean_returnvalue(mod_workshop_external::evaluate_submission_returns(), $result); $result = \external_api::clean_returnvalue(mod_workshop_external::evaluate_submission_returns(), $result);
$this->assertTrue($result['status']); $this->assertTrue($result['status']);
$submission = $DB->get_record('workshop_submissions', array('id' => $submissionid)); $submission = $DB->get_record('workshop_submissions', array('id' => $submissionid));
@ -1930,7 +1935,7 @@ class mod_workshop_external_testcase extends externallib_advanced_testcase {
$published = 1; $published = 1;
$gradeover = 150; $gradeover = 150;
$result = mod_workshop_external::evaluate_submission($submissionid, $feedbacktext, $feedbackformat, $published, $gradeover); $result = mod_workshop_external::evaluate_submission($submissionid, $feedbacktext, $feedbackformat, $published, $gradeover);
$result = external_api::clean_returnvalue(mod_workshop_external::evaluate_submission_returns(), $result); $result = \external_api::clean_returnvalue(mod_workshop_external::evaluate_submission_returns(), $result);
$this->assertCount(1, $result['warnings']); $this->assertCount(1, $result['warnings']);
$this->assertFalse($result['status']); $this->assertFalse($result['status']);
$this->assertEquals('gradeover', $result['warnings'][0]['item']); $this->assertEquals('gradeover', $result['warnings'][0]['item']);

View file

@ -23,16 +23,15 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
defined('MOODLE_INTERNAL') || die(); namespace core_my\event;
global $CFG;
/** /**
* Unit tests for the dashboard events. * Unit tests for the dashboard events.
* *
* @copyright 2016 Stephen Bourget * @copyright 2016 Stephen Bourget
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
class dashboard_events_testcase extends advanced_testcase { class events_test extends \advanced_testcase {
/** @var user cobject */ /** @var user cobject */
protected $user; protected $user;
@ -61,7 +60,7 @@ class dashboard_events_testcase extends advanced_testcase {
$user = $this->user; $user = $this->user;
// Trigger an event: dashboard viewed. // Trigger an event: dashboard viewed.
$eventparams = array( $eventparams = array(
'context' => $context = context_user::instance($user->id) 'context' => $context = \context_user::instance($user->id)
); );
$event = \core\event\dashboard_viewed::create($eventparams); $event = \core\event\dashboard_viewed::create($eventparams);

View file

@ -22,7 +22,7 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later. * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later.
*/ */
defined('MOODLE_INTERNAL') || die(); namespace core_notes\event;
/** /**
* Class core_notes_events_testcase * Class core_notes_events_testcase
@ -33,7 +33,7 @@ defined('MOODLE_INTERNAL') || die();
* @copyright 2013 Ankit Agarwal * @copyright 2013 Ankit Agarwal
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later. * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later.
*/ */
class core_notes_events_testcase extends advanced_testcase { class events_test extends \advanced_testcase {
/** @var stdClass A note object. */ /** @var stdClass A note object. */
private $eventnote; private $eventnote;
@ -155,7 +155,7 @@ class core_notes_events_testcase extends advanced_testcase {
* simply create the event and trigger it. * simply create the event and trigger it.
*/ */
public function test_notes_viewed() { public function test_notes_viewed() {
$coursecontext = context_course::instance($this->eventnote->courseid); $coursecontext = \context_course::instance($this->eventnote->courseid);
// Trigger event for notes viewed. // Trigger event for notes viewed.
$event = \core\event\notes_viewed::create(array( $event = \core\event\notes_viewed::create(array(
'context' => $coursecontext, 'context' => $coursecontext,

View file

@ -22,6 +22,15 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
namespace core_question\event;
use qtype_description;
use qtype_description_edit_form;
use qtype_description_test_helper;
use question_category_object;
use question_edit_contexts;
use test_question_maker;
defined('MOODLE_INTERNAL') || die(); defined('MOODLE_INTERNAL') || die();
global $CFG; global $CFG;
@ -29,7 +38,7 @@ global $CFG;
require_once($CFG->dirroot . '/question/editlib.php'); require_once($CFG->dirroot . '/question/editlib.php');
require_once($CFG->dirroot . '/question/category_class.php'); require_once($CFG->dirroot . '/question/category_class.php');
class core_question_events_testcase extends advanced_testcase { class events_test extends \advanced_testcase {
/** /**
* Tests set up. * Tests set up.
@ -46,14 +55,14 @@ class core_question_events_testcase extends advanced_testcase {
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
$quiz = $this->getDataGenerator()->create_module('quiz', array('course' => $course->id)); $quiz = $this->getDataGenerator()->create_module('quiz', array('course' => $course->id));
$contexts = new question_edit_contexts(context_module::instance($quiz->cmid)); $contexts = new question_edit_contexts(\context_module::instance($quiz->cmid));
$defaultcategoryobj = question_make_default_categories(array($contexts->lowest())); $defaultcategoryobj = question_make_default_categories(array($contexts->lowest()));
$defaultcategory = $defaultcategoryobj->id . ',' . $defaultcategoryobj->contextid; $defaultcategory = $defaultcategoryobj->id . ',' . $defaultcategoryobj->contextid;
$qcobject = new question_category_object( $qcobject = new question_category_object(
1, 1,
new moodle_url('/mod/quiz/edit.php', array('cmid' => $quiz->cmid)), new \moodle_url('/mod/quiz/edit.php', array('cmid' => $quiz->cmid)),
$contexts->having_one_edit_tab_cap('categories'), $contexts->having_one_edit_tab_cap('categories'),
$defaultcategoryobj->id, $defaultcategoryobj->id,
$defaultcategory, $defaultcategory,
@ -68,7 +77,7 @@ class core_question_events_testcase extends advanced_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\core\event\question_category_created', $event); $this->assertInstanceOf('\core\event\question_category_created', $event);
$this->assertEquals(context_module::instance($quiz->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($quiz->cmid), $event->get_context());
$expected = array($course->id, 'quiz', 'addcategory', 'view.php?id=' . $quiz->cmid , $categoryid, $quiz->cmid); $expected = array($course->id, 'quiz', 'addcategory', 'view.php?id=' . $quiz->cmid , $categoryid, $quiz->cmid);
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
@ -82,14 +91,14 @@ class core_question_events_testcase extends advanced_testcase {
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
$quiz = $this->getDataGenerator()->create_module('quiz', ['course' => $course->id]); $quiz = $this->getDataGenerator()->create_module('quiz', ['course' => $course->id]);
$contexts = new question_edit_contexts(context_module::instance($quiz->cmid)); $contexts = new question_edit_contexts(\context_module::instance($quiz->cmid));
$defaultcategoryobj = question_make_default_categories([$contexts->lowest()]); $defaultcategoryobj = question_make_default_categories([$contexts->lowest()]);
$defaultcategory = $defaultcategoryobj->id . ',' . $defaultcategoryobj->contextid; $defaultcategory = $defaultcategoryobj->id . ',' . $defaultcategoryobj->contextid;
$qcobject = new question_category_object( $qcobject = new question_category_object(
1, 1,
new moodle_url('/mod/quiz/edit.php', ['cmid' => $quiz->cmid]), new \moodle_url('/mod/quiz/edit.php', ['cmid' => $quiz->cmid]),
$contexts->having_one_edit_tab_cap('categories'), $contexts->having_one_edit_tab_cap('categories'),
$defaultcategoryobj->id, $defaultcategoryobj->id,
$defaultcategory, $defaultcategory,
@ -107,7 +116,7 @@ class core_question_events_testcase extends advanced_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\core\event\question_category_deleted', $event); $this->assertInstanceOf('\core\event\question_category_deleted', $event);
$this->assertEquals(context_module::instance($quiz->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($quiz->cmid), $event->get_context());
$this->assertEquals($categoryid, $event->objectid); $this->assertEquals($categoryid, $event->objectid);
$this->assertDebuggingNotCalled(); $this->assertDebuggingNotCalled();
} }
@ -120,14 +129,14 @@ class core_question_events_testcase extends advanced_testcase {
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
$quiz = $this->getDataGenerator()->create_module('quiz', ['course' => $course->id]); $quiz = $this->getDataGenerator()->create_module('quiz', ['course' => $course->id]);
$contexts = new question_edit_contexts(context_module::instance($quiz->cmid)); $contexts = new question_edit_contexts(\context_module::instance($quiz->cmid));
$defaultcategoryobj = question_make_default_categories([$contexts->lowest()]); $defaultcategoryobj = question_make_default_categories([$contexts->lowest()]);
$defaultcategory = $defaultcategoryobj->id . ',' . $defaultcategoryobj->contextid; $defaultcategory = $defaultcategoryobj->id . ',' . $defaultcategoryobj->contextid;
$qcobject = new question_category_object( $qcobject = new question_category_object(
1, 1,
new moodle_url('/mod/quiz/edit.php', ['cmid' => $quiz->cmid]), new \moodle_url('/mod/quiz/edit.php', ['cmid' => $quiz->cmid]),
$contexts->having_one_edit_tab_cap('categories'), $contexts->having_one_edit_tab_cap('categories'),
$defaultcategoryobj->id, $defaultcategoryobj->id,
$defaultcategory, $defaultcategory,
@ -145,7 +154,7 @@ class core_question_events_testcase extends advanced_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\core\event\question_category_updated', $event); $this->assertInstanceOf('\core\event\question_category_updated', $event);
$this->assertEquals(context_module::instance($quiz->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($quiz->cmid), $event->get_context());
$this->assertEquals($categoryid, $event->objectid); $this->assertEquals($categoryid, $event->objectid);
$this->assertDebuggingNotCalled(); $this->assertDebuggingNotCalled();
} }
@ -161,14 +170,14 @@ class core_question_events_testcase extends advanced_testcase {
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
$quiz = $this->getDataGenerator()->create_module('quiz', ['course' => $course->id]); $quiz = $this->getDataGenerator()->create_module('quiz', ['course' => $course->id]);
$contexts = new question_edit_contexts(context_module::instance($quiz->cmid)); $contexts = new question_edit_contexts(\context_module::instance($quiz->cmid));
$defaultcategoryobj = question_make_default_categories([$contexts->lowest()]); $defaultcategoryobj = question_make_default_categories([$contexts->lowest()]);
$defaultcategory = $defaultcategoryobj->id . ',' . $defaultcategoryobj->contextid; $defaultcategory = $defaultcategoryobj->id . ',' . $defaultcategoryobj->contextid;
$qcobject = new question_category_object( $qcobject = new question_category_object(
1, 1,
new moodle_url('/mod/quiz/edit.php', ['cmid' => $quiz->cmid]), new \moodle_url('/mod/quiz/edit.php', ['cmid' => $quiz->cmid]),
$contexts->having_one_edit_tab_cap('categories'), $contexts->having_one_edit_tab_cap('categories'),
$defaultcategoryobj->id, $defaultcategoryobj->id,
$defaultcategory, $defaultcategory,
@ -179,9 +188,9 @@ class core_question_events_testcase extends advanced_testcase {
$categoryid = $qcobject->add_category($defaultcategory, 'newcategory', '', true); $categoryid = $qcobject->add_category($defaultcategory, 'newcategory', '', true);
// Log the view of this category. // Log the view of this category.
$category = new stdClass(); $category = new \stdClass();
$category->id = $categoryid; $category->id = $categoryid;
$context = context_module::instance($quiz->cmid); $context = \context_module::instance($quiz->cmid);
$event = \core\event\question_category_viewed::create_from_question_category_instance($category, $context); $event = \core\event\question_category_viewed::create_from_question_category_instance($category, $context);
// Trigger and capture the event. // Trigger and capture the event.
@ -192,7 +201,7 @@ class core_question_events_testcase extends advanced_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\core\event\question_category_viewed', $event); $this->assertInstanceOf('\core\event\question_category_viewed', $event);
$this->assertEquals(context_module::instance($quiz->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($quiz->cmid), $event->get_context());
$this->assertEquals($categoryid, $event->objectid); $this->assertEquals($categoryid, $event->objectid);
$this->assertDebuggingNotCalled(); $this->assertDebuggingNotCalled();
@ -209,14 +218,14 @@ class core_question_events_testcase extends advanced_testcase {
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
$quiz = $this->getDataGenerator()->create_module('quiz', ['course' => $course->id]); $quiz = $this->getDataGenerator()->create_module('quiz', ['course' => $course->id]);
$contexts = new question_edit_contexts(context_module::instance($quiz->cmid)); $contexts = new question_edit_contexts(\context_module::instance($quiz->cmid));
$defaultcategoryobj = question_make_default_categories([$contexts->lowest()]); $defaultcategoryobj = question_make_default_categories([$contexts->lowest()]);
$defaultcategory = $defaultcategoryobj->id . ',' . $defaultcategoryobj->contextid; $defaultcategory = $defaultcategoryobj->id . ',' . $defaultcategoryobj->contextid;
$qcobject = new question_category_object( $qcobject = new question_category_object(
1, 1,
new moodle_url('/mod/quiz/edit.php', ['cmid' => $quiz->cmid]), new \moodle_url('/mod/quiz/edit.php', ['cmid' => $quiz->cmid]),
$contexts->having_one_edit_tab_cap('categories'), $contexts->having_one_edit_tab_cap('categories'),
$defaultcategoryobj->id, $defaultcategoryobj->id,
$defaultcategory, $defaultcategory,
@ -228,7 +237,7 @@ class core_question_events_testcase extends advanced_testcase {
// Log the view of this category. // Log the view of this category.
$params = [ $params = [
'context' => context_module::instance($quiz->cmid), 'context' => \context_module::instance($quiz->cmid),
'other' => ['categoryid' => $categoryid, 'format' => 'testformat'], 'other' => ['categoryid' => $categoryid, 'format' => 'testformat'],
]; ];
@ -242,7 +251,7 @@ class core_question_events_testcase extends advanced_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\core\event\questions_imported', $event); $this->assertInstanceOf('\core\event\questions_imported', $event);
$this->assertEquals(context_module::instance($quiz->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($quiz->cmid), $event->get_context());
$this->assertEquals($categoryid, $event->other['categoryid']); $this->assertEquals($categoryid, $event->other['categoryid']);
$this->assertEquals('testformat', $event->other['format']); $this->assertEquals('testformat', $event->other['format']);
$this->assertDebuggingNotCalled(); $this->assertDebuggingNotCalled();
@ -260,14 +269,14 @@ class core_question_events_testcase extends advanced_testcase {
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
$quiz = $this->getDataGenerator()->create_module('quiz', ['course' => $course->id]); $quiz = $this->getDataGenerator()->create_module('quiz', ['course' => $course->id]);
$contexts = new question_edit_contexts(context_module::instance($quiz->cmid)); $contexts = new question_edit_contexts(\context_module::instance($quiz->cmid));
$defaultcategoryobj = question_make_default_categories([$contexts->lowest()]); $defaultcategoryobj = question_make_default_categories([$contexts->lowest()]);
$defaultcategory = $defaultcategoryobj->id . ',' . $defaultcategoryobj->contextid; $defaultcategory = $defaultcategoryobj->id . ',' . $defaultcategoryobj->contextid;
$qcobject = new question_category_object( $qcobject = new question_category_object(
1, 1,
new moodle_url('/mod/quiz/edit.php', ['cmid' => $quiz->cmid]), new \moodle_url('/mod/quiz/edit.php', ['cmid' => $quiz->cmid]),
$contexts->having_one_edit_tab_cap('categories'), $contexts->having_one_edit_tab_cap('categories'),
$defaultcategoryobj->id, $defaultcategoryobj->id,
$defaultcategory, $defaultcategory,
@ -279,7 +288,7 @@ class core_question_events_testcase extends advanced_testcase {
// Log the view of this category. // Log the view of this category.
$params = [ $params = [
'context' => context_module::instance($quiz->cmid), 'context' => \context_module::instance($quiz->cmid),
'other' => ['categoryid' => $categoryid, 'format' => 'testformat'], 'other' => ['categoryid' => $categoryid, 'format' => 'testformat'],
]; ];
@ -293,7 +302,7 @@ class core_question_events_testcase extends advanced_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\core\event\questions_exported', $event); $this->assertInstanceOf('\core\event\questions_exported', $event);
$this->assertEquals(context_module::instance($quiz->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($quiz->cmid), $event->get_context());
$this->assertEquals($categoryid, $event->other['categoryid']); $this->assertEquals($categoryid, $event->other['categoryid']);
$this->assertEquals('testformat', $event->other['format']); $this->assertEquals('testformat', $event->other['format']);
$this->assertDebuggingNotCalled(); $this->assertDebuggingNotCalled();
@ -313,7 +322,7 @@ class core_question_events_testcase extends advanced_testcase {
// Trigger and capture the event. // Trigger and capture the event.
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();
$questiondata = $generator->create_question('description', null, ['category' => $cat->id]); $questiondata = $generator->create_question('description', null, ['category' => $cat->id]);
$question = question_bank::load_question($questiondata->id); $question = \question_bank::load_question($questiondata->id);
$events = $sink->get_events(); $events = $sink->get_events();
$event = reset($events); $event = reset($events);
@ -337,7 +346,7 @@ class core_question_events_testcase extends advanced_testcase {
$cat = $generator->create_question_category(['name' => 'My category', 'sortorder' => 1]); $cat = $generator->create_question_category(['name' => 'My category', 'sortorder' => 1]);
$questiondata = $generator->create_question('description', null, ['category' => $cat->id]); $questiondata = $generator->create_question('description', null, ['category' => $cat->id]);
$question = question_bank::load_question($questiondata->id); $question = \question_bank::load_question($questiondata->id);
// Trigger and capture the event. // Trigger and capture the event.
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();
@ -369,7 +378,7 @@ class core_question_events_testcase extends advanced_testcase {
$cat = $generator->create_question_category(['name' => 'My category', 'sortorder' => 1]); $cat = $generator->create_question_category(['name' => 'My category', 'sortorder' => 1]);
$questiondata = $generator->create_question('description', null, ['category' => $cat->id]); $questiondata = $generator->create_question('description', null, ['category' => $cat->id]);
$question = question_bank::load_question($questiondata->id); $question = \question_bank::load_question($questiondata->id);
$qtype = new qtype_description(); $qtype = new qtype_description();
$formdata = test_question_maker::get_question_form_data('description'); $formdata = test_question_maker::get_question_form_data('description');
@ -408,7 +417,7 @@ class core_question_events_testcase extends advanced_testcase {
'name' => 'My category 2', 'sortorder' => 2]); 'name' => 'My category 2', 'sortorder' => 2]);
$questiondata = $generator->create_question('description', null, ['category' => $cat1->id]); $questiondata = $generator->create_question('description', null, ['category' => $cat1->id]);
$question = question_bank::load_question($questiondata->id); $question = \question_bank::load_question($questiondata->id);
// Trigger and capture the event. // Trigger and capture the event.
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();
@ -438,9 +447,9 @@ class core_question_events_testcase extends advanced_testcase {
$cat = $generator->create_question_category(['name' => 'My category', 'sortorder' => 1]); $cat = $generator->create_question_category(['name' => 'My category', 'sortorder' => 1]);
$questiondata = $generator->create_question('description', null, ['category' => $cat->id]); $questiondata = $generator->create_question('description', null, ['category' => $cat->id]);
$question = question_bank::load_question($questiondata->id); $question = \question_bank::load_question($questiondata->id);
$event = \core\event\question_viewed::create_from_question_instance($question, context::instance_by_id($cat->contextid)); $event = \core\event\question_viewed::create_from_question_instance($question, \context::instance_by_id($cat->contextid));
// Trigger and capture the event. // Trigger and capture the event.
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();

View file

@ -22,7 +22,7 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later. * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later.
*/ */
defined('MOODLE_INTERNAL') || die(); namespace report_completion\event;
/** /**
* Class report_completion_events_testcase * Class report_completion_events_testcase
@ -33,7 +33,7 @@ defined('MOODLE_INTERNAL') || die();
* @copyright 2014 onwards Ankit Agarwal<ankit.agrr@gmail.com> * @copyright 2014 onwards Ankit Agarwal<ankit.agrr@gmail.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later. * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later.
*/ */
class report_completion_events_testcase extends advanced_testcase { class events_test extends \advanced_testcase {
/** /**
* Setup testcase. * Setup testcase.
@ -51,7 +51,7 @@ class report_completion_events_testcase extends advanced_testcase {
*/ */
public function test_report_viewed() { public function test_report_viewed() {
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
$context = context_course::instance($course->id); $context = \context_course::instance($course->id);
// Trigger event for completion report viewed. // Trigger event for completion report viewed.
$event = \report_completion\event\report_viewed::create(array('context' => $context)); $event = \report_completion\event\report_viewed::create(array('context' => $context));
@ -63,7 +63,7 @@ class report_completion_events_testcase extends advanced_testcase {
$this->assertInstanceOf('\report_completion\event\report_viewed', $event); $this->assertInstanceOf('\report_completion\event\report_viewed', $event);
$this->assertEquals($context, $event->get_context()); $this->assertEquals($context, $event->get_context());
$url = new moodle_url('/report/completion/index.php', array('course' => $course->id)); $url = new \moodle_url('/report/completion/index.php', array('course' => $course->id));
$this->assertEquals($url, $event->get_url()); $this->assertEquals($url, $event->get_url());
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
} }
@ -76,7 +76,7 @@ class report_completion_events_testcase extends advanced_testcase {
*/ */
public function test_user_report_viewed() { public function test_user_report_viewed() {
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
$context = context_course::instance($course->id); $context = \context_course::instance($course->id);
// Trigger event for completion report viewed. // Trigger event for completion report viewed.
$event = \report_completion\event\user_report_viewed::create(array('context' => $context, 'relateduserid' => 3)); $event = \report_completion\event\user_report_viewed::create(array('context' => $context, 'relateduserid' => 3));
@ -89,7 +89,7 @@ class report_completion_events_testcase extends advanced_testcase {
$this->assertInstanceOf('\report_completion\event\user_report_viewed', $event); $this->assertInstanceOf('\report_completion\event\user_report_viewed', $event);
$this->assertEquals($context, $event->get_context()); $this->assertEquals($context, $event->get_context());
$this->assertEquals(3, $event->relateduserid); $this->assertEquals(3, $event->relateduserid);
$this->assertEquals(new moodle_url('/report/completion/user.php', array('id' => 3, 'course' => $course->id)), $this->assertEquals(new \moodle_url('/report/completion/user.php', array('id' => 3, 'course' => $course->id)),
$event->get_url()); $event->get_url());
$expected = array($course->id, 'course', 'report completion', "report/completion/user.php?id=3&course=$course->id", $expected = array($course->id, 'course', 'report completion', "report/completion/user.php?id=3&course=$course->id",
$course->id); $course->id);

View file

@ -22,7 +22,7 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later. * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later.
*/ */
defined('MOODLE_INTERNAL') || die(); namespace report_log\event;
/** /**
* Class report_log_events_testcase * Class report_log_events_testcase
@ -33,7 +33,7 @@ defined('MOODLE_INTERNAL') || die();
* @copyright 2014 Rajesh Taneja <rajesh@moodle.com> * @copyright 2014 Rajesh Taneja <rajesh@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later. * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later.
*/ */
class report_log_events_testcase extends advanced_testcase { class events_test extends \advanced_testcase {
/** /**
* Setup testcase. * Setup testcase.
@ -51,7 +51,7 @@ class report_log_events_testcase extends advanced_testcase {
*/ */
public function test_report_viewed() { public function test_report_viewed() {
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
$context = context_course::instance($course->id); $context = \context_course::instance($course->id);
// Trigger event for log report viewed. // Trigger event for log report viewed.
$event = \report_log\event\report_viewed::create(array('context' => $context, $event = \report_log\event\report_viewed::create(array('context' => $context,
@ -69,7 +69,7 @@ class report_log_events_testcase extends advanced_testcase {
$expected = array($course->id, "course", "report log", "report/log/index.php?id=$course->id", $course->id); $expected = array($course->id, "course", "report log", "report/log/index.php?id=$course->id", $course->id);
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
$url = new moodle_url('/report/log/index.php', array('id' => $event->courseid)); $url = new \moodle_url('/report/log/index.php', array('id' => $event->courseid));
$this->assertEquals($url, $event->get_url()); $this->assertEquals($url, $event->get_url());
} }
@ -82,7 +82,7 @@ class report_log_events_testcase extends advanced_testcase {
public function test_user_report_viewed() { public function test_user_report_viewed() {
$user = $this->getDataGenerator()->create_user(); $user = $this->getDataGenerator()->create_user();
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
$context = context_course::instance($course->id); $context = \context_course::instance($course->id);
// Trigger event for user report viewed. // Trigger event for user report viewed.
$event = \report_log\event\user_report_viewed::create(array('context' => $context, $event = \report_log\event\user_report_viewed::create(array('context' => $context,
@ -100,7 +100,7 @@ class report_log_events_testcase extends advanced_testcase {
$expected = array($course->id, "course", "report log", $url, $course->id); $expected = array($course->id, "course", "report log", $url, $course->id);
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
$url = new moodle_url('/report/log/user.php', array('course' => $course->id, 'id' => $user->id, 'mode' => 'today')); $url = new \moodle_url('/report/log/user.php', array('course' => $course->id, 'id' => $user->id, 'mode' => 'today'));
$this->assertEquals($url, $event->get_url()); $this->assertEquals($url, $event->get_url());
} }
} }

View file

@ -22,7 +22,7 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later. * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later.
*/ */
defined('MOODLE_INTERNAL') || die(); namespace report_loglive\event;
/** /**
* Class report_loglive_events_testcase * Class report_loglive_events_testcase
@ -33,7 +33,7 @@ defined('MOODLE_INTERNAL') || die();
* @copyright 2014 Rajesh Taneja <rajesh@moodle.com> * @copyright 2014 Rajesh Taneja <rajesh@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later. * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later.
*/ */
class report_loglive_events_testcase extends advanced_testcase { class events_test extends \advanced_testcase {
/** /**
* Setup testcase. * Setup testcase.
@ -51,7 +51,7 @@ class report_loglive_events_testcase extends advanced_testcase {
*/ */
public function test_report_viewed() { public function test_report_viewed() {
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
$context = context_course::instance($course->id); $context = \context_course::instance($course->id);
// Trigger event for loglive report viewed. // Trigger event for loglive report viewed.
$event = \report_loglive\event\report_viewed::create(array('context' => $context)); $event = \report_loglive\event\report_viewed::create(array('context' => $context));
@ -66,7 +66,7 @@ class report_loglive_events_testcase extends advanced_testcase {
$expected = array($course->id, 'course', 'report live', "report/loglive/index.php?id=$course->id", $course->id); $expected = array($course->id, 'course', 'report live', "report/loglive/index.php?id=$course->id", $course->id);
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
$url = new moodle_url('/report/loglive/index.php', array('id' => $course->id)); $url = new \moodle_url('/report/loglive/index.php', array('id' => $course->id));
$this->assertEquals($url, $event->get_url()); $this->assertEquals($url, $event->get_url());
} }
} }

View file

@ -22,7 +22,7 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later. * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later.
*/ */
defined('MOODLE_INTERNAL') || die(); namespace report_questioninstances\event;
/** /**
* Class for question instances events. * Class for question instances events.
@ -31,7 +31,7 @@ defined('MOODLE_INTERNAL') || die();
* @copyright 2014 Petr Skoda * @copyright 2014 Petr Skoda
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later. * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later.
*/ */
class report_questioninstances_events_testcase extends advanced_testcase { class events_test extends \advanced_testcase {
/** /**
* Setup testcase. * Setup testcase.
@ -55,11 +55,11 @@ class report_questioninstances_events_testcase extends advanced_testcase {
$event = reset($events); $event = reset($events);
$this->assertInstanceOf('\report_questioninstances\event\report_viewed', $event); $this->assertInstanceOf('\report_questioninstances\event\report_viewed', $event);
$this->assertEquals(context_system::instance(), $event->get_context()); $this->assertEquals(\context_system::instance(), $event->get_context());
$expected = array(SITEID, "admin", "report questioninstances", "report/questioninstances/index.php?qtype=$requestedqtype", $requestedqtype); $expected = array(SITEID, "admin", "report questioninstances", "report/questioninstances/index.php?qtype=$requestedqtype", $requestedqtype);
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
$url = new moodle_url('/report/questioninstances/index.php', array('qtype' => $requestedqtype)); $url = new \moodle_url('/report/questioninstances/index.php', array('qtype' => $requestedqtype));
$this->assertEquals($url, $event->get_url()); $this->assertEquals($url, $event->get_url());
$event->get_name(); $event->get_name();
} }

View file

@ -22,7 +22,7 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later. * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later.
*/ */
defined('MOODLE_INTERNAL') || die(); namespace report_stats\event;
/** /**
* Class report_stats_events_testcase * Class report_stats_events_testcase
@ -33,7 +33,7 @@ defined('MOODLE_INTERNAL') || die();
* @copyright 2014 Rajesh Taneja <rajesh@moodle.com> * @copyright 2014 Rajesh Taneja <rajesh@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later. * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later.
*/ */
class report_stats_events_testcase extends advanced_testcase { class events_test extends \advanced_testcase {
/** /**
* Setup testcase. * Setup testcase.
@ -52,7 +52,7 @@ class report_stats_events_testcase extends advanced_testcase {
public function test_report_viewed() { public function test_report_viewed() {
$user = $this->getDataGenerator()->create_user(); $user = $this->getDataGenerator()->create_user();
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
$context = context_course::instance($course->id); $context = \context_course::instance($course->id);
// Trigger event for stats report viewed. // Trigger event for stats report viewed.
$event = \report_stats\event\report_viewed::create(array('context' => $context, 'relateduserid' => $user->id, $event = \report_stats\event\report_viewed::create(array('context' => $context, 'relateduserid' => $user->id,
@ -80,7 +80,7 @@ class report_stats_events_testcase extends advanced_testcase {
public function test_user_report_viewed() { public function test_user_report_viewed() {
$user = $this->getDataGenerator()->create_user(); $user = $this->getDataGenerator()->create_user();
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
$context = context_course::instance($course->id); $context = \context_course::instance($course->id);
// Trigger event for user stats report viewed. // Trigger event for user stats report viewed.
$event = \report_stats\event\user_report_viewed::create(array('context' => $context, 'relateduserid' => $user->id)); $event = \report_stats\event\user_report_viewed::create(array('context' => $context, 'relateduserid' => $user->id));

View file

@ -22,6 +22,8 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
namespace repository_contentbank\search;
defined('MOODLE_INTERNAL') || die(); defined('MOODLE_INTERNAL') || die();
global $CFG; global $CFG;
@ -35,7 +37,7 @@ require_once("$CFG->dirroot/repository/lib.php");
* @copyright 2020 Mihail Geshoski <mihail@moodle.com> * @copyright 2020 Mihail Geshoski <mihail@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
class repository_contentbank_search_testcase extends advanced_testcase { class search_test extends \advanced_testcase {
/** /**
* Test get_search_contents() by searching through some existing content using different search terms. * Test get_search_contents() by searching through some existing content using different search terms.

View file

@ -23,7 +23,7 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
defined('MOODLE_INTERNAL') || die(); namespace core_search\event;
/** /**
* Unit tests for search events. * Unit tests for search events.
@ -33,7 +33,7 @@ defined('MOODLE_INTERNAL') || die();
* @copyright 2016 David Monllao {@link http://www.davidmonllao.com} * @copyright 2016 David Monllao {@link http://www.davidmonllao.com}
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
class core_search_events_testcase extends advanced_testcase { class events_test extends \advanced_testcase {
/** /**
* test_search_results_viewed * test_search_results_viewed
@ -59,7 +59,7 @@ class core_search_events_testcase extends advanced_testcase {
$event = reset($events); $event = reset($events);
$sink->clear(); $sink->clear();
$this->assertEquals(context_system::instance(), $event->get_context()); $this->assertEquals(\context_system::instance(), $event->get_context());
$urlparams = ['q' => 'I am a query', 'page' => 0]; $urlparams = ['q' => 'I am a query', 'page' => 0];
$this->assertEquals($urlparams, $event->get_url()->params()); $this->assertEquals($urlparams, $event->get_url()->params());
@ -76,7 +76,7 @@ class core_search_events_testcase extends advanced_testcase {
$events = $sink->get_events(); $events = $sink->get_events();
$event = reset($events); $event = reset($events);
$this->assertEquals(context_system::instance(), $event->get_context()); $this->assertEquals(\context_system::instance(), $event->get_context());
$urlparams = ['q' => 'I am a query', 'page' => 2, 'title' => 'I am the title', 'timestart' => 1445644800, 'timeend' => 1477267200]; $urlparams = ['q' => 'I am a query', 'page' => 2, 'title' => 'I am the title', 'timestart' => 1445644800, 'timeend' => 1477267200];
$this->assertEquals($urlparams, $event->get_url()->params()); $this->assertEquals($urlparams, $event->get_url()->params());

View file

@ -23,15 +23,16 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
namespace core_tag\event;
defined('MOODLE_INTERNAL') || die(); defined('MOODLE_INTERNAL') || die();
global $CFG; global $CFG;
// Used to create a wiki page to tag. // Used to create a wiki page to tag.
require_once($CFG->dirroot . '/mod/wiki/locallib.php'); require_once($CFG->dirroot . '/mod/wiki/locallib.php');
class core_tag_events_testcase extends advanced_testcase { class events_test extends \advanced_testcase {
/** /**
* Test set up. * Test set up.
@ -49,7 +50,7 @@ class core_tag_events_testcase extends advanced_testcase {
$this->setAdminUser(); $this->setAdminUser();
// Save the system context. // Save the system context.
$systemcontext = context_system::instance(); $systemcontext = \context_system::instance();
// Create a tag we are going to update. // Create a tag we are going to update.
$tag = $this->getDataGenerator()->create_tag(); $tag = $this->getDataGenerator()->create_tag();
@ -59,7 +60,7 @@ class core_tag_events_testcase extends advanced_testcase {
// Trigger and capture the event when renaming a tag. // Trigger and capture the event when renaming a tag.
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();
core_tag_tag::get($tag->id, '*')->update(array('rawname' => 'newname')); \core_tag_tag::get($tag->id, '*')->update(array('rawname' => 'newname'));
// Update the tag's name since we have renamed it. // Update the tag's name since we have renamed it.
$tag->name = 'newname'; $tag->name = 'newname';
$events = $sink->get_events(); $events = $sink->get_events();
@ -73,7 +74,7 @@ class core_tag_events_testcase extends advanced_testcase {
// Trigger and capture the event when setting the type of a tag. // Trigger and capture the event when setting the type of a tag.
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();
core_tag_tag::get($tag->id, '*')->update(array('isstandard' => 1)); \core_tag_tag::get($tag->id, '*')->update(array('isstandard' => 1));
$events = $sink->get_events(); $events = $sink->get_events();
$event = reset($events); $event = reset($events);
@ -85,7 +86,7 @@ class core_tag_events_testcase extends advanced_testcase {
// Trigger and capture the event for setting the description of a tag. // Trigger and capture the event for setting the description of a tag.
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();
core_tag_tag::get($tag->id, '*')->update( \core_tag_tag::get($tag->id, '*')->update(
array('description' => 'description', 'descriptionformat' => FORMAT_MOODLE)); array('description' => 'description', 'descriptionformat' => FORMAT_MOODLE));
$events = $sink->get_events(); $events = $sink->get_events();
$event = reset($events); $event = reset($events);
@ -108,14 +109,14 @@ class core_tag_events_testcase extends advanced_testcase {
// Trigger and capture the event for tagging a course. // Trigger and capture the event for tagging a course.
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();
core_tag_tag::set_item_tags('core', 'course', $course->id, context_course::instance($course->id), array('A tag')); \core_tag_tag::set_item_tags('core', 'course', $course->id, \context_course::instance($course->id), array('A tag'));
$events = $sink->get_events(); $events = $sink->get_events();
$event = $events[1]; $event = $events[1];
// Check that the tag was added to the course and that the event data is valid. // Check that the tag was added to the course and that the event data is valid.
$this->assertEquals(1, $DB->count_records('tag_instance', array('component' => 'core'))); $this->assertEquals(1, $DB->count_records('tag_instance', array('component' => 'core')));
$this->assertInstanceOf('\core\event\tag_added', $event); $this->assertInstanceOf('\core\event\tag_added', $event);
$this->assertEquals(context_course::instance($course->id), $event->get_context()); $this->assertEquals(\context_course::instance($course->id), $event->get_context());
$expected = array($course->id, 'coursetags', 'add', 'tag/search.php?query=A+tag', 'Course tagged'); $expected = array($course->id, 'coursetags', 'add', 'tag/search.php?query=A+tag', 'Course tagged');
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
@ -127,15 +128,15 @@ class core_tag_events_testcase extends advanced_testcase {
// Trigger and capture the event for tagging a question. // Trigger and capture the event for tagging a question.
$this->assertEquals(1, $DB->count_records('tag_instance')); $this->assertEquals(1, $DB->count_records('tag_instance'));
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();
core_tag_tag::set_item_tags('core_question', 'question', $question->id, \core_tag_tag::set_item_tags('core_question', 'question', $question->id,
context::instance_by_id($cat->contextid), array('A tag')); \context::instance_by_id($cat->contextid), array('A tag'));
$events = $sink->get_events(); $events = $sink->get_events();
$event = reset($events); $event = reset($events);
// Check that the tag was added to the question and the event data is valid. // Check that the tag was added to the question and the event data is valid.
$this->assertEquals(1, $DB->count_records('tag_instance', array('component' => 'core'))); $this->assertEquals(1, $DB->count_records('tag_instance', array('component' => 'core')));
$this->assertInstanceOf('\core\event\tag_added', $event); $this->assertInstanceOf('\core\event\tag_added', $event);
$this->assertEquals(context_system::instance(), $event->get_context()); $this->assertEquals(\context_system::instance(), $event->get_context());
$expected = null; $expected = null;
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
} }
@ -161,70 +162,70 @@ class core_tag_events_testcase extends advanced_testcase {
$tag = $this->getDataGenerator()->create_tag(); $tag = $this->getDataGenerator()->create_tag();
// Assign a tag to a course. // Assign a tag to a course.
core_tag_tag::add_item_tag('core', 'course', $course->id, context_course::instance($course->id), $tag->rawname); \core_tag_tag::add_item_tag('core', 'course', $course->id, \context_course::instance($course->id), $tag->rawname);
// Trigger and capture the event for untagging a course. // Trigger and capture the event for untagging a course.
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();
core_tag_tag::remove_item_tag('core', 'course', $course->id, $tag->rawname); \core_tag_tag::remove_item_tag('core', 'course', $course->id, $tag->rawname);
$events = $sink->get_events(); $events = $sink->get_events();
$event = reset($events); $event = reset($events);
// Check that the tag was removed from the course and the event data is valid. // Check that the tag was removed from the course and the event data is valid.
$this->assertEquals(0, $DB->count_records('tag_instance')); $this->assertEquals(0, $DB->count_records('tag_instance'));
$this->assertInstanceOf('\core\event\tag_removed', $event); $this->assertInstanceOf('\core\event\tag_removed', $event);
$this->assertEquals(context_course::instance($course->id), $event->get_context()); $this->assertEquals(\context_course::instance($course->id), $event->get_context());
// Create the tag. // Create the tag.
$tag = $this->getDataGenerator()->create_tag(); $tag = $this->getDataGenerator()->create_tag();
// Assign a tag to a wiki this time. // Assign a tag to a wiki this time.
core_tag_tag::add_item_tag('mod_wiki', 'wiki_pages', $wikipageid, context_module::instance($wiki->cmid), $tag->rawname); \core_tag_tag::add_item_tag('mod_wiki', 'wiki_pages', $wikipageid, \context_module::instance($wiki->cmid), $tag->rawname);
// Trigger and capture the event for deleting this tag instance. // Trigger and capture the event for deleting this tag instance.
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();
core_tag_tag::remove_item_tag('mod_wiki', 'wiki_pages', $wikipageid, $tag->rawname); \core_tag_tag::remove_item_tag('mod_wiki', 'wiki_pages', $wikipageid, $tag->rawname);
$events = $sink->get_events(); $events = $sink->get_events();
$event = reset($events); $event = reset($events);
// Check that tag was removed from the wiki page and the event data is valid. // Check that tag was removed from the wiki page and the event data is valid.
$this->assertEquals(0, $DB->count_records('tag_instance')); $this->assertEquals(0, $DB->count_records('tag_instance'));
$this->assertInstanceOf('\core\event\tag_removed', $event); $this->assertInstanceOf('\core\event\tag_removed', $event);
$this->assertEquals(context_module::instance($wiki->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($wiki->cmid), $event->get_context());
// Create a tag again - the other would have been deleted since there were no more instances associated with it. // Create a tag again - the other would have been deleted since there were no more instances associated with it.
$tag = $this->getDataGenerator()->create_tag(); $tag = $this->getDataGenerator()->create_tag();
// Assign a tag to the wiki again. // Assign a tag to the wiki again.
core_tag_tag::add_item_tag('mod_wiki', 'wiki_pages', $wikipageid, context_module::instance($wiki->cmid), $tag->rawname); \core_tag_tag::add_item_tag('mod_wiki', 'wiki_pages', $wikipageid, \context_module::instance($wiki->cmid), $tag->rawname);
// Now we want to delete this tag, and because there is only one tag instance // Now we want to delete this tag, and because there is only one tag instance
// associated with it, it should get deleted as well. // associated with it, it should get deleted as well.
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();
core_tag_tag::delete_tags($tag->id); \core_tag_tag::delete_tags($tag->id);
$events = $sink->get_events(); $events = $sink->get_events();
$event = reset($events); $event = reset($events);
// Check that tag was removed from the wiki page and the event data is valid. // Check that tag was removed from the wiki page and the event data is valid.
$this->assertEquals(0, $DB->count_records('tag_instance')); $this->assertEquals(0, $DB->count_records('tag_instance'));
$this->assertInstanceOf('\core\event\tag_removed', $event); $this->assertInstanceOf('\core\event\tag_removed', $event);
$this->assertEquals(context_module::instance($wiki->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($wiki->cmid), $event->get_context());
// Create a tag again - the other would have been deleted since there were no more instances associated with it. // Create a tag again - the other would have been deleted since there were no more instances associated with it.
$tag = $this->getDataGenerator()->create_tag(); $tag = $this->getDataGenerator()->create_tag();
// Assign a tag to the wiki again. // Assign a tag to the wiki again.
core_tag_tag::add_item_tag('mod_wiki', 'wiki_pages', $wikipageid, context_module::instance($wiki->cmid), $tag->rawname); \core_tag_tag::add_item_tag('mod_wiki', 'wiki_pages', $wikipageid, \context_module::instance($wiki->cmid), $tag->rawname);
// Delete all tag instances for this wiki instance. // Delete all tag instances for this wiki instance.
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();
core_tag_tag::delete_instances('mod_wiki', 'wiki_pages', context_module::instance($wiki->cmid)->id); \core_tag_tag::delete_instances('mod_wiki', 'wiki_pages', \context_module::instance($wiki->cmid)->id);
$events = $sink->get_events(); $events = $sink->get_events();
$event = reset($events); $event = reset($events);
// Check that tag was removed from the wiki page and the event data is valid. // Check that tag was removed from the wiki page and the event data is valid.
$this->assertEquals(0, $DB->count_records('tag_instance')); $this->assertEquals(0, $DB->count_records('tag_instance'));
$this->assertInstanceOf('\core\event\tag_removed', $event); $this->assertInstanceOf('\core\event\tag_removed', $event);
$this->assertEquals(context_module::instance($wiki->cmid), $event->get_context()); $this->assertEquals(\context_module::instance($wiki->cmid), $event->get_context());
// Create another wiki. // Create another wiki.
$wiki2 = $wikigenerator->create_instance(array('course' => $course->id)); $wiki2 = $wikigenerator->create_instance(array('course' => $course->id));
@ -232,17 +233,17 @@ class core_tag_events_testcase extends advanced_testcase {
$wikipageid2 = wiki_create_page($subwikiid2, 'Title', FORMAT_HTML, '2'); $wikipageid2 = wiki_create_page($subwikiid2, 'Title', FORMAT_HTML, '2');
// Assign a tag to both wiki pages. // Assign a tag to both wiki pages.
core_tag_tag::add_item_tag('mod_wiki', 'wiki_pages', $wikipageid, context_module::instance($wiki->cmid), $tag->rawname); \core_tag_tag::add_item_tag('mod_wiki', 'wiki_pages', $wikipageid, \context_module::instance($wiki->cmid), $tag->rawname);
core_tag_tag::add_item_tag('mod_wiki', 'wiki_pages', $wikipageid2, context_module::instance($wiki2->cmid), $tag->rawname); \core_tag_tag::add_item_tag('mod_wiki', 'wiki_pages', $wikipageid2, \context_module::instance($wiki2->cmid), $tag->rawname);
// Now remove all tag_instances associated with all wikis. // Now remove all tag_instances associated with all wikis.
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();
core_tag_tag::delete_instances('mod_wiki'); \core_tag_tag::delete_instances('mod_wiki');
$events = $sink->get_events(); $events = $sink->get_events();
// There will be two events - one for each wiki instance removed. // There will be two events - one for each wiki instance removed.
$this->assertCount(2, $events); $this->assertCount(2, $events);
$contexts = [context_module::instance($wiki->cmid), context_module::instance($wiki2->cmid)]; $contexts = [\context_module::instance($wiki->cmid), \context_module::instance($wiki2->cmid)];
$this->assertNotEquals($events[0]->contextid, $events[1]->contextid); $this->assertNotEquals($events[0]->contextid, $events[1]->contextid);
// Check that the tags were removed from the wiki pages. // Check that the tags were removed from the wiki pages.
@ -272,7 +273,7 @@ class core_tag_events_testcase extends advanced_testcase {
// Trigger and capture the event for setting the flag of a tag. // Trigger and capture the event for setting the flag of a tag.
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();
core_tag_tag::get($tag->id, '*')->flag(); \core_tag_tag::get($tag->id, '*')->flag();
$events = $sink->get_events(); $events = $sink->get_events();
$event = reset($events); $event = reset($events);
@ -282,19 +283,19 @@ class core_tag_events_testcase extends advanced_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\core\event\tag_flagged', $event); $this->assertInstanceOf('\core\event\tag_flagged', $event);
$this->assertEquals(context_system::instance(), $event->get_context()); $this->assertEquals(\context_system::instance(), $event->get_context());
$expected = array(SITEID, 'tag', 'flag', 'index.php?id=' . $tag->id, $tag->id, '', '2'); $expected = array(SITEID, 'tag', 'flag', 'index.php?id=' . $tag->id, $tag->id, '', '2');
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
// Unset the flag for both (though by default tag2 should have been created with 0 already). // Unset the flag for both (though by default tag2 should have been created with 0 already).
foreach ($tags as $t) { foreach ($tags as $t) {
core_tag_tag::get($t->id, '*')->reset_flag(); \core_tag_tag::get($t->id, '*')->reset_flag();
} }
// Trigger and capture the event for setting the flag for multiple tags. // Trigger and capture the event for setting the flag for multiple tags.
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();
foreach ($tags as $t) { foreach ($tags as $t) {
core_tag_tag::get($t->id, '*')->flag(); \core_tag_tag::get($t->id, '*')->flag();
} }
$events = $sink->get_events(); $events = $sink->get_events();
@ -307,13 +308,13 @@ class core_tag_events_testcase extends advanced_testcase {
// Confirm the events. // Confirm the events.
$event = $events[0]; $event = $events[0];
$this->assertInstanceOf('\core\event\tag_flagged', $event); $this->assertInstanceOf('\core\event\tag_flagged', $event);
$this->assertEquals(context_system::instance(), $event->get_context()); $this->assertEquals(\context_system::instance(), $event->get_context());
$expected = array(SITEID, 'tag', 'flag', 'index.php?id=' . $tag->id, $tag->id, '', '2'); $expected = array(SITEID, 'tag', 'flag', 'index.php?id=' . $tag->id, $tag->id, '', '2');
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
$event = $events[1]; $event = $events[1];
$this->assertInstanceOf('\core\event\tag_flagged', $event); $this->assertInstanceOf('\core\event\tag_flagged', $event);
$this->assertEquals(context_system::instance(), $event->get_context()); $this->assertEquals(\context_system::instance(), $event->get_context());
$expected = array(SITEID, 'tag', 'flag', 'index.php?id=' . $tag2->id, $tag2->id, '', '2'); $expected = array(SITEID, 'tag', 'flag', 'index.php?id=' . $tag2->id, $tag2->id, '', '2');
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);
} }
@ -332,11 +333,11 @@ class core_tag_events_testcase extends advanced_testcase {
$tags = array($tag, $tag2); $tags = array($tag, $tag2);
// Flag it. // Flag it.
core_tag_tag::get($tag->id, '*')->flag(); \core_tag_tag::get($tag->id, '*')->flag();
// Trigger and capture the event for unsetting the flag of a tag. // Trigger and capture the event for unsetting the flag of a tag.
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();
core_tag_tag::get($tag->id, '*')->reset_flag(); \core_tag_tag::get($tag->id, '*')->reset_flag();
$events = $sink->get_events(); $events = $sink->get_events();
$event = reset($events); $event = reset($events);
@ -346,17 +347,17 @@ class core_tag_events_testcase extends advanced_testcase {
// Check that the event data is valid. // Check that the event data is valid.
$this->assertInstanceOf('\core\event\tag_unflagged', $event); $this->assertInstanceOf('\core\event\tag_unflagged', $event);
$this->assertEquals(context_system::instance(), $event->get_context()); $this->assertEquals(\context_system::instance(), $event->get_context());
// Set the flag back for both. // Set the flag back for both.
foreach ($tags as $t) { foreach ($tags as $t) {
core_tag_tag::get($t->id, '*')->flag(); \core_tag_tag::get($t->id, '*')->flag();
} }
// Trigger and capture the event for unsetting the flag for multiple tags. // Trigger and capture the event for unsetting the flag for multiple tags.
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();
foreach ($tags as $t) { foreach ($tags as $t) {
core_tag_tag::get($t->id, '*')->reset_flag(); \core_tag_tag::get($t->id, '*')->reset_flag();
} }
$events = $sink->get_events(); $events = $sink->get_events();
@ -369,11 +370,11 @@ class core_tag_events_testcase extends advanced_testcase {
// Confirm the events. // Confirm the events.
$event = $events[0]; $event = $events[0];
$this->assertInstanceOf('\core\event\tag_unflagged', $event); $this->assertInstanceOf('\core\event\tag_unflagged', $event);
$this->assertEquals(context_system::instance(), $event->get_context()); $this->assertEquals(\context_system::instance(), $event->get_context());
$event = $events[1]; $event = $events[1];
$this->assertInstanceOf('\core\event\tag_unflagged', $event); $this->assertInstanceOf('\core\event\tag_unflagged', $event);
$this->assertEquals(context_system::instance(), $event->get_context()); $this->assertEquals(\context_system::instance(), $event->get_context());
} }
/** /**
@ -393,14 +394,14 @@ class core_tag_events_testcase extends advanced_testcase {
// Trigger and capture the event for deleting a tag. // Trigger and capture the event for deleting a tag.
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();
core_tag_tag::delete_tags($tag->id); \core_tag_tag::delete_tags($tag->id);
$events = $sink->get_events(); $events = $sink->get_events();
$event = reset($events); $event = reset($events);
// Check that the tag was deleted and the event data is valid. // Check that the tag was deleted and the event data is valid.
$this->assertEquals(0, $DB->count_records('tag')); $this->assertEquals(0, $DB->count_records('tag'));
$this->assertInstanceOf('\core\event\tag_deleted', $event); $this->assertInstanceOf('\core\event\tag_deleted', $event);
$this->assertEquals(context_system::instance(), $event->get_context()); $this->assertEquals(\context_system::instance(), $event->get_context());
// Create two tags we are going to delete to ensure passing multiple tags work. // Create two tags we are going to delete to ensure passing multiple tags work.
$tag = $this->getDataGenerator()->create_tag(); $tag = $this->getDataGenerator()->create_tag();
@ -408,51 +409,51 @@ class core_tag_events_testcase extends advanced_testcase {
// Trigger and capture the events for deleting multiple tags. // Trigger and capture the events for deleting multiple tags.
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();
core_tag_tag::delete_tags(array($tag->id, $tag2->id)); \core_tag_tag::delete_tags(array($tag->id, $tag2->id));
$events = $sink->get_events(); $events = $sink->get_events();
// Check that the tags were deleted and the events data is valid. // Check that the tags were deleted and the events data is valid.
$this->assertEquals(0, $DB->count_records('tag')); $this->assertEquals(0, $DB->count_records('tag'));
foreach ($events as $event) { foreach ($events as $event) {
$this->assertInstanceOf('\core\event\tag_deleted', $event); $this->assertInstanceOf('\core\event\tag_deleted', $event);
$this->assertEquals(context_system::instance(), $event->get_context()); $this->assertEquals(\context_system::instance(), $event->get_context());
} }
// Add a tag instance to a course. // Add a tag instance to a course.
core_tag_tag::add_item_tag('core', 'course', $course->id, context_course::instance($course->id), 'cat', $user->id); \core_tag_tag::add_item_tag('core', 'course', $course->id, \context_course::instance($course->id), 'cat', $user->id);
// Trigger and capture the event for deleting a personal tag for a user for a course. // Trigger and capture the event for deleting a personal tag for a user for a course.
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();
core_tag_tag::remove_item_tag('core', 'course', $course->id, 'cat', $user->id); \core_tag_tag::remove_item_tag('core', 'course', $course->id, 'cat', $user->id);
$events = $sink->get_events(); $events = $sink->get_events();
$event = $events[1]; $event = $events[1];
// Check that the tag was deleted and the event data is valid. // Check that the tag was deleted and the event data is valid.
$this->assertEquals(0, $DB->count_records('tag')); $this->assertEquals(0, $DB->count_records('tag'));
$this->assertInstanceOf('\core\event\tag_deleted', $event); $this->assertInstanceOf('\core\event\tag_deleted', $event);
$this->assertEquals(context_system::instance(), $event->get_context()); $this->assertEquals(\context_system::instance(), $event->get_context());
// Add the tag instance to the course again as it was deleted. // Add the tag instance to the course again as it was deleted.
core_tag_tag::add_item_tag('core', 'course', $course->id, context_course::instance($course->id), 'dog', $user->id); \core_tag_tag::add_item_tag('core', 'course', $course->id, \context_course::instance($course->id), 'dog', $user->id);
// Trigger and capture the event for deleting all tags in a course. // Trigger and capture the event for deleting all tags in a course.
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();
core_tag_tag::remove_all_item_tags('core', 'course', $course->id); \core_tag_tag::remove_all_item_tags('core', 'course', $course->id);
$events = $sink->get_events(); $events = $sink->get_events();
$event = $events[1]; $event = $events[1];
// Check that the tag was deleted and the event data is valid. // Check that the tag was deleted and the event data is valid.
$this->assertEquals(0, $DB->count_records('tag')); $this->assertEquals(0, $DB->count_records('tag'));
$this->assertInstanceOf('\core\event\tag_deleted', $event); $this->assertInstanceOf('\core\event\tag_deleted', $event);
$this->assertEquals(context_system::instance(), $event->get_context()); $this->assertEquals(\context_system::instance(), $event->get_context());
// Add multiple tag instances now and check that it still works. // Add multiple tag instances now and check that it still works.
core_tag_tag::set_item_tags('core', 'course', $course->id, context_course::instance($course->id), \core_tag_tag::set_item_tags('core', 'course', $course->id, \context_course::instance($course->id),
array('fish', 'hamster'), $user->id); array('fish', 'hamster'), $user->id);
// Trigger and capture the event for deleting all tags in a course. // Trigger and capture the event for deleting all tags in a course.
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();
core_tag_tag::remove_all_item_tags('core', 'course', $course->id); \core_tag_tag::remove_all_item_tags('core', 'course', $course->id);
$events = $sink->get_events(); $events = $sink->get_events();
$events = array($events[1], $events[3]); $events = array($events[1], $events[3]);
@ -460,7 +461,7 @@ class core_tag_events_testcase extends advanced_testcase {
$this->assertEquals(0, $DB->count_records('tag')); $this->assertEquals(0, $DB->count_records('tag'));
foreach ($events as $event) { foreach ($events as $event) {
$this->assertInstanceOf('\core\event\tag_deleted', $event); $this->assertInstanceOf('\core\event\tag_deleted', $event);
$this->assertEquals(context_system::instance(), $event->get_context()); $this->assertEquals(\context_system::instance(), $event->get_context());
} }
} }
@ -472,7 +473,7 @@ class core_tag_events_testcase extends advanced_testcase {
// Trigger and capture the event for creating a tag. // Trigger and capture the event for creating a tag.
$sink = $this->redirectEvents(); $sink = $this->redirectEvents();
core_tag_tag::create_if_missing(core_tag_area::get_collection('core', 'course'), \core_tag_tag::create_if_missing(\core_tag_area::get_collection('core', 'course'),
array('A really awesome tag!')); array('A really awesome tag!'));
$events = $sink->get_events(); $events = $sink->get_events();
$event = reset($events); $event = reset($events);
@ -480,6 +481,6 @@ class core_tag_events_testcase extends advanced_testcase {
// Check that the tag was created and the event data is valid. // Check that the tag was created and the event data is valid.
$this->assertEquals(1, $DB->count_records('tag')); $this->assertEquals(1, $DB->count_records('tag'));
$this->assertInstanceOf('\core\event\tag_created', $event); $this->assertInstanceOf('\core\event\tag_created', $event);
$this->assertEquals(context_system::instance(), $event->get_context()); $this->assertEquals(\context_system::instance(), $event->get_context());
} }
} }

View file

@ -23,6 +23,10 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
namespace core_tag\external;
use externallib_advanced_testcase;
defined('MOODLE_INTERNAL') || die(); defined('MOODLE_INTERNAL') || die();
global $CFG; global $CFG;
@ -30,14 +34,14 @@ global $CFG;
require_once($CFG->libdir . '/externallib.php'); require_once($CFG->libdir . '/externallib.php');
require_once($CFG->dirroot . '/webservice/tests/helpers.php'); require_once($CFG->dirroot . '/webservice/tests/helpers.php');
class core_tag_external_testcase extends externallib_advanced_testcase { class external_test extends externallib_advanced_testcase {
/** /**
* Test update_categories * Test update_categories
*/ */
public function test_update_tags() { public function test_update_tags() {
global $DB; global $DB;
$this->resetAfterTest(); $this->resetAfterTest();
$context = context_system::instance(); $context = \context_system::instance();
$originaltag = array( $originaltag = array(
'isstandard' => 0, 'isstandard' => 0,
@ -60,8 +64,8 @@ class core_tag_external_testcase extends externallib_advanced_testcase {
// User without any caps can not change anything about a tag but can request [partial] tag data. // User without any caps can not change anything about a tag but can request [partial] tag data.
$this->setUser($this->getDataGenerator()->create_user()); $this->setUser($this->getDataGenerator()->create_user());
$result = core_tag_external::update_tags(array($updatetag)); $result = \core_tag_external::update_tags(array($updatetag));
$result = external_api::clean_returnvalue(core_tag_external::update_tags_returns(), $result); $result = \external_api::clean_returnvalue(\core_tag_external::update_tags_returns(), $result);
$this->assertEquals($tag->id, $result['warnings'][0]['item']); $this->assertEquals($tag->id, $result['warnings'][0]['item']);
$this->assertEquals('nothingtoupdate', $result['warnings'][0]['warningcode']); $this->assertEquals('nothingtoupdate', $result['warnings'][0]['warningcode']);
$this->assertEquals($originaltag['rawname'], $DB->get_field('tag', 'rawname', $this->assertEquals($originaltag['rawname'], $DB->get_field('tag', 'rawname',
@ -69,8 +73,8 @@ class core_tag_external_testcase extends externallib_advanced_testcase {
$this->assertEquals($originaltag['description'], $DB->get_field('tag', 'description', $this->assertEquals($originaltag['description'], $DB->get_field('tag', 'description',
array('id' => $tag->id))); array('id' => $tag->id)));
$result = core_tag_external::get_tags(array($gettag)); $result = \core_tag_external::get_tags(array($gettag));
$result = external_api::clean_returnvalue(core_tag_external::get_tags_returns(), $result); $result = \external_api::clean_returnvalue(\core_tag_external::get_tags_returns(), $result);
$this->assertEquals($originaltag['rawname'], $result['tags'][0]['rawname']); $this->assertEquals($originaltag['rawname'], $result['tags'][0]['rawname']);
$this->assertEquals($originaltag['description'], $result['tags'][0]['description']); $this->assertEquals($originaltag['description'], $result['tags'][0]['description']);
$this->assertNotEmpty($result['tags'][0]['viewurl']); $this->assertNotEmpty($result['tags'][0]['viewurl']);
@ -82,12 +86,12 @@ class core_tag_external_testcase extends externallib_advanced_testcase {
// User with editing only capability can change description but not the tag name. // User with editing only capability can change description but not the tag name.
$roleid = $this->assignUserCapability('moodle/tag:edit', $context->id); $roleid = $this->assignUserCapability('moodle/tag:edit', $context->id);
$result = core_tag_external::update_tags(array($updatetag)); $result = \core_tag_external::update_tags(array($updatetag));
$result = external_api::clean_returnvalue(core_tag_external::update_tags_returns(), $result); $result = \external_api::clean_returnvalue(\core_tag_external::update_tags_returns(), $result);
$this->assertEmpty($result['warnings']); $this->assertEmpty($result['warnings']);
$result = core_tag_external::get_tags(array($gettag)); $result = \core_tag_external::get_tags(array($gettag));
$result = external_api::clean_returnvalue(core_tag_external::get_tags_returns(), $result); $result = \external_api::clean_returnvalue(\core_tag_external::get_tags_returns(), $result);
$this->assertEquals($updatetag['id'], $result['tags'][0]['id']); $this->assertEquals($updatetag['id'], $result['tags'][0]['id']);
$this->assertEquals($updatetag['description'], $result['tags'][0]['description']); $this->assertEquals($updatetag['description'], $result['tags'][0]['description']);
$this->assertEquals($originaltag['rawname'], $result['tags'][0]['rawname']); $this->assertEquals($originaltag['rawname'], $result['tags'][0]['rawname']);
@ -103,15 +107,15 @@ class core_tag_external_testcase extends externallib_advanced_testcase {
// make it standard and reset flag. // make it standard and reset flag.
assign_capability('moodle/tag:manage', CAP_ALLOW, $roleid, $context->id); assign_capability('moodle/tag:manage', CAP_ALLOW, $roleid, $context->id);
$this->assertTrue(has_capability('moodle/tag:manage', $context)); $this->assertTrue(has_capability('moodle/tag:manage', $context));
$result = core_tag_external::update_tags(array($updatetag)); $result = \core_tag_external::update_tags(array($updatetag));
$result = external_api::clean_returnvalue(core_tag_external::update_tags_returns(), $result); $result = \external_api::clean_returnvalue(\core_tag_external::update_tags_returns(), $result);
$this->assertEmpty($result['warnings']); $this->assertEmpty($result['warnings']);
$result = core_tag_external::get_tags(array($gettag)); $result = \core_tag_external::get_tags(array($gettag));
$result = external_api::clean_returnvalue(core_tag_external::get_tags_returns(), $result); $result = \external_api::clean_returnvalue(\core_tag_external::get_tags_returns(), $result);
$this->assertEquals($updatetag['id'], $result['tags'][0]['id']); $this->assertEquals($updatetag['id'], $result['tags'][0]['id']);
$this->assertEquals($updatetag['rawname'], $result['tags'][0]['rawname']); $this->assertEquals($updatetag['rawname'], $result['tags'][0]['rawname']);
$this->assertEquals(core_text::strtolower($updatetag['rawname']), $result['tags'][0]['name']); $this->assertEquals(\core_text::strtolower($updatetag['rawname']), $result['tags'][0]['name']);
$this->assertEquals($updatetag['flag'], $result['tags'][0]['flag']); $this->assertEquals($updatetag['flag'], $result['tags'][0]['flag']);
$this->assertEquals($updatetag['isstandard'], $result['tags'][0]['official']); $this->assertEquals($updatetag['isstandard'], $result['tags'][0]['official']);
$this->assertEquals($updatetag['isstandard'], $result['tags'][0]['isstandard']); $this->assertEquals($updatetag['isstandard'], $result['tags'][0]['isstandard']);
@ -127,13 +131,13 @@ class core_tag_external_testcase extends externallib_advanced_testcase {
$getnonexistingtag = array( $getnonexistingtag = array(
'id' => 123, 'id' => 123,
); );
$result = core_tag_external::update_tags(array($nonexistingtag)); $result = \core_tag_external::update_tags(array($nonexistingtag));
$result = external_api::clean_returnvalue(core_tag_external::update_tags_returns(), $result); $result = \external_api::clean_returnvalue(\core_tag_external::update_tags_returns(), $result);
$this->assertEquals(123, $result['warnings'][0]['item']); $this->assertEquals(123, $result['warnings'][0]['item']);
$this->assertEquals('tagnotfound', $result['warnings'][0]['warningcode']); $this->assertEquals('tagnotfound', $result['warnings'][0]['warningcode']);
$result = core_tag_external::get_tags(array($getnonexistingtag)); $result = \core_tag_external::get_tags(array($getnonexistingtag));
$result = external_api::clean_returnvalue(core_tag_external::get_tags_returns(), $result); $result = \external_api::clean_returnvalue(\core_tag_external::get_tags_returns(), $result);
$this->assertEmpty($result['tags']); $this->assertEmpty($result['tags']);
$this->assertEquals(123, $result['warnings'][0]['item']); $this->assertEquals(123, $result['warnings'][0]['item']);
$this->assertEquals('tagnotfound', $result['warnings'][0]['warningcode']); $this->assertEquals('tagnotfound', $result['warnings'][0]['warningcode']);
@ -141,8 +145,8 @@ class core_tag_external_testcase extends externallib_advanced_testcase {
// Attempt to update a tag to the name that is reserved. // Attempt to update a tag to the name that is reserved.
$anothertag = $this->getDataGenerator()->create_tag(array('rawname' => 'Mytag')); $anothertag = $this->getDataGenerator()->create_tag(array('rawname' => 'Mytag'));
$updatetag2 = array('id' => $tag->id, 'rawname' => 'MYTAG'); $updatetag2 = array('id' => $tag->id, 'rawname' => 'MYTAG');
$result = core_tag_external::update_tags(array($updatetag2)); $result = \core_tag_external::update_tags(array($updatetag2));
$result = external_api::clean_returnvalue(core_tag_external::update_tags_returns(), $result); $result = \external_api::clean_returnvalue(\core_tag_external::update_tags_returns(), $result);
$this->assertEquals($tag->id, $result['warnings'][0]['item']); $this->assertEquals($tag->id, $result['warnings'][0]['item']);
$this->assertEquals('namesalreadybeeingused', $result['warnings'][0]['warningcode']); $this->assertEquals('namesalreadybeeingused', $result['warnings'][0]['warningcode']);
} }
@ -160,17 +164,17 @@ class core_tag_external_testcase extends externallib_advanced_testcase {
// Call service for core_tag component without necessary permissions. // Call service for core_tag component without necessary permissions.
try { try {
core_external::update_inplace_editable('core_tag', 'tagname', $tag->id, 'new tag name'); \core_external::update_inplace_editable('core_tag', 'tagname', $tag->id, 'new tag name');
$this->fail('Exception expected'); $this->fail('Exception expected');
} catch (moodle_exception $e) { } catch (\moodle_exception $e) {
$this->assertEquals('Sorry, but you do not currently have permissions to do that (Manage all tags).', $this->assertEquals('Sorry, but you do not currently have permissions to do that (Manage all tags).',
$e->getMessage()); $e->getMessage());
} }
// Change to admin user and make sure that tag name can be updated using web service update_inplace_editable(). // Change to admin user and make sure that tag name can be updated using web service update_inplace_editable().
$this->setAdminUser(); $this->setAdminUser();
$res = core_external::update_inplace_editable('core_tag', 'tagname', $tag->id, 'New tag name'); $res = \core_external::update_inplace_editable('core_tag', 'tagname', $tag->id, 'New tag name');
$res = external_api::clean_returnvalue(core_external::update_inplace_editable_returns(), $res); $res = \external_api::clean_returnvalue(\core_external::update_inplace_editable_returns(), $res);
$this->assertEquals('New tag name', $res['value']); $this->assertEquals('New tag name', $res['value']);
$this->assertEquals('New tag name', $DB->get_field('tag', 'rawname', array('id' => $tag->id))); $this->assertEquals('New tag name', $DB->get_field('tag', 'rawname', array('id' => $tag->id)));
@ -191,22 +195,22 @@ class core_tag_external_testcase extends externallib_advanced_testcase {
// Create tags for two user profiles and one course. // Create tags for two user profiles and one course.
$this->setAdminUser(); $this->setAdminUser();
$context = context_user::instance($USER->id); $context = \context_user::instance($USER->id);
core_tag_tag::set_item_tags('core', 'user', $USER->id, $context, array('test')); \core_tag_tag::set_item_tags('core', 'user', $USER->id, $context, array('test'));
$this->setUser($this->getDataGenerator()->create_user()); $this->setUser($this->getDataGenerator()->create_user());
$context = context_user::instance($USER->id); $context = \context_user::instance($USER->id);
core_tag_tag::set_item_tags('core', 'user', $USER->id, $context, array('test')); \core_tag_tag::set_item_tags('core', 'user', $USER->id, $context, array('test'));
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
$context = context_course::instance($course->id); $context = \context_course::instance($course->id);
core_tag_tag::set_item_tags('core', 'course', $course->id, $context, array('test')); \core_tag_tag::set_item_tags('core', 'course', $course->id, $context, array('test'));
$tag = core_tag_tag::get_by_name(0, 'test'); $tag = \core_tag_tag::get_by_name(0, 'test');
// First, search by id. // First, search by id.
$result = core_tag_external::get_tagindex_per_area(array('id' => $tag->id)); $result = \core_tag_external::get_tagindex_per_area(array('id' => $tag->id));
$result = external_api::clean_returnvalue(core_tag_external::get_tagindex_per_area_returns(), $result); $result = \external_api::clean_returnvalue(\core_tag_external::get_tagindex_per_area_returns(), $result);
$this->assertCount(2, $result); // Two different areas: course and user. $this->assertCount(2, $result); // Two different areas: course and user.
$this->assertEquals($tag->id, $result[0]['tagid']); $this->assertEquals($tag->id, $result[0]['tagid']);
$this->assertEquals('course', $result[0]['itemtype']); $this->assertEquals('course', $result[0]['itemtype']);
@ -214,8 +218,8 @@ class core_tag_external_testcase extends externallib_advanced_testcase {
$this->assertEquals('user', $result[1]['itemtype']); $this->assertEquals('user', $result[1]['itemtype']);
// Now, search by name. // Now, search by name.
$result = core_tag_external::get_tagindex_per_area(array('tag' => 'test')); $result = \core_tag_external::get_tagindex_per_area(array('tag' => 'test'));
$result = external_api::clean_returnvalue(core_tag_external::get_tagindex_per_area_returns(), $result); $result = \external_api::clean_returnvalue(\core_tag_external::get_tagindex_per_area_returns(), $result);
$this->assertCount(2, $result); // Two different areas: course and user. $this->assertCount(2, $result); // Two different areas: course and user.
$this->assertEquals($tag->id, $result[0]['tagid']); $this->assertEquals($tag->id, $result[0]['tagid']);
$this->assertEquals('course', $result[0]['itemtype']); $this->assertEquals('course', $result[0]['itemtype']);
@ -223,15 +227,15 @@ class core_tag_external_testcase extends externallib_advanced_testcase {
$this->assertEquals('user', $result[1]['itemtype']); $this->assertEquals('user', $result[1]['itemtype']);
// Filter by tag area. // Filter by tag area.
$result = core_tag_external::get_tagindex_per_area(array('tag' => 'test', 'ta' => $result[0]['ta'])); $result = \core_tag_external::get_tagindex_per_area(array('tag' => 'test', 'ta' => $result[0]['ta']));
$result = external_api::clean_returnvalue(core_tag_external::get_tagindex_per_area_returns(), $result); $result = \external_api::clean_returnvalue(\core_tag_external::get_tagindex_per_area_returns(), $result);
$this->assertCount(1, $result); // Just the given area. $this->assertCount(1, $result); // Just the given area.
$this->assertEquals($tag->id, $result[0]['tagid']); $this->assertEquals($tag->id, $result[0]['tagid']);
$this->assertEquals('course', $result[0]['itemtype']); $this->assertEquals('course', $result[0]['itemtype']);
// Now, search by tag collection (use default). // Now, search by tag collection (use default).
$result = core_tag_external::get_tagindex_per_area(array('id' => $tag->id, 'tc' => 1)); $result = \core_tag_external::get_tagindex_per_area(array('id' => $tag->id, 'tc' => 1));
$result = external_api::clean_returnvalue(core_tag_external::get_tagindex_per_area_returns(), $result); $result = \external_api::clean_returnvalue(\core_tag_external::get_tagindex_per_area_returns(), $result);
$this->assertCount(2, $result); // Two different areas: course and user. $this->assertCount(2, $result); // Two different areas: course and user.
} }
@ -243,8 +247,8 @@ class core_tag_external_testcase extends externallib_advanced_testcase {
$this->resetAfterTest(true); $this->resetAfterTest(true);
$this->setAdminUser(); $this->setAdminUser();
$result = core_tag_external::get_tag_areas(); $result = \core_tag_external::get_tag_areas();
$result = external_api::clean_returnvalue(core_tag_external::get_tag_areas_returns(), $result); $result = \external_api::clean_returnvalue(\core_tag_external::get_tag_areas_returns(), $result);
$areas = $DB->get_records('tag_area'); $areas = $DB->get_records('tag_area');
$this->assertCount(count($areas), $result['areas']); $this->assertCount(count($areas), $result['areas']);
foreach ($result['areas'] as $area) { foreach ($result['areas'] as $area) {
@ -262,11 +266,11 @@ class core_tag_external_testcase extends externallib_advanced_testcase {
// Create new tag collection. // Create new tag collection.
$data = (object) array('name' => 'new tag coll'); $data = (object) array('name' => 'new tag coll');
core_tag_collection::create($data); \core_tag_collection::create($data);
$this->setAdminUser(); $this->setAdminUser();
$result = core_tag_external::get_tag_collections(); $result = \core_tag_external::get_tag_collections();
$result = external_api::clean_returnvalue(core_tag_external::get_tag_collections_returns(), $result); $result = \external_api::clean_returnvalue(\core_tag_external::get_tag_collections_returns(), $result);
$collections = $DB->get_records('tag_coll'); $collections = $DB->get_records('tag_coll');
$this->assertCount(count($collections), $result['collections']); $this->assertCount(count($collections), $result['collections']);
@ -285,27 +289,27 @@ class core_tag_external_testcase extends externallib_advanced_testcase {
// Create tags for two user profiles, a post and one course. // Create tags for two user profiles, a post and one course.
$this->setAdminUser(); $this->setAdminUser();
$context = context_user::instance($USER->id); $context = \context_user::instance($USER->id);
core_tag_tag::set_item_tags('core', 'user', $USER->id, $context, array('Cats', 'Dogs')); \core_tag_tag::set_item_tags('core', 'user', $USER->id, $context, array('Cats', 'Dogs'));
$this->setUser($this->getDataGenerator()->create_user()); $this->setUser($this->getDataGenerator()->create_user());
$context = context_user::instance($USER->id); $context = \context_user::instance($USER->id);
core_tag_tag::set_item_tags('core', 'user', $USER->id, $context, array('Mice')); \core_tag_tag::set_item_tags('core', 'user', $USER->id, $context, array('Mice'));
$course = $this->getDataGenerator()->create_course(); $course = $this->getDataGenerator()->create_course();
$coursecontext = context_course::instance($course->id); $coursecontext = \context_course::instance($course->id);
core_tag_tag::set_item_tags('core', 'course', $course->id, $coursecontext, array('Cats')); \core_tag_tag::set_item_tags('core', 'course', $course->id, $coursecontext, array('Cats'));
$post = new stdClass(); $post = new \stdClass();
$post->userid = $USER->id; $post->userid = $USER->id;
$post->content = 'test post content text'; $post->content = 'test post content text';
$post->id = $DB->insert_record('post', $post); $post->id = $DB->insert_record('post', $post);
$context = context_system::instance(); $context = \context_system::instance();
core_tag_tag::set_item_tags('core', 'post', $post->id, $context, array('Horses', 'Cats')); \core_tag_tag::set_item_tags('core', 'post', $post->id, $context, array('Horses', 'Cats'));
// First, retrieve complete cloud. // First, retrieve complete cloud.
$result = core_tag_external::get_tag_cloud(); $result = \core_tag_external::get_tag_cloud();
$result = external_api::clean_returnvalue(core_tag_external::get_tag_cloud_returns(), $result); $result = \external_api::clean_returnvalue(\core_tag_external::get_tag_cloud_returns(), $result);
$this->assertCount(4, $result['tags']); // Four different tags: Cats, Dogs, Mice, Horses. $this->assertCount(4, $result['tags']); // Four different tags: Cats, Dogs, Mice, Horses.
$this->assertEquals(4, $result['tagscount']); $this->assertEquals(4, $result['tagscount']);
$this->assertEquals(4, $result['totalcount']); $this->assertEquals(4, $result['totalcount']);
@ -319,56 +323,56 @@ class core_tag_external_testcase extends externallib_advanced_testcase {
} }
// Test filter by collection, pagination and sorting. // Test filter by collection, pagination and sorting.
$defaultcoll = core_tag_collection::get_default(); $defaultcoll = \core_tag_collection::get_default();
$result = core_tag_external::get_tag_cloud($defaultcoll, false, 2, 'count'); $result = \core_tag_external::get_tag_cloud($defaultcoll, false, 2, 'count');
$result = external_api::clean_returnvalue(core_tag_external::get_tag_cloud_returns(), $result); $result = \external_api::clean_returnvalue(\core_tag_external::get_tag_cloud_returns(), $result);
$this->assertCount(2, $result['tags']); // Only two tags. $this->assertCount(2, $result['tags']); // Only two tags.
$this->assertEquals(2, $result['tagscount']); $this->assertEquals(2, $result['tagscount']);
$this->assertEquals(4, $result['totalcount']); $this->assertEquals(4, $result['totalcount']);
$this->assertEquals('Dogs', $result['tags'][0]['name']); // Lower count first. $this->assertEquals('Dogs', $result['tags'][0]['name']); // Lower count first.
// Test search. // Test search.
$result = core_tag_external::get_tag_cloud(0, false, 150, 'name', 'Mice'); $result = \core_tag_external::get_tag_cloud(0, false, 150, 'name', 'Mice');
$result = external_api::clean_returnvalue(core_tag_external::get_tag_cloud_returns(), $result); $result = \external_api::clean_returnvalue(\core_tag_external::get_tag_cloud_returns(), $result);
$this->assertCount(1, $result['tags']); // Only the searched tags. $this->assertCount(1, $result['tags']); // Only the searched tags.
$this->assertEquals(1, $result['tagscount']); $this->assertEquals(1, $result['tagscount']);
$this->assertEquals(1, $result['totalcount']); // When searching, the total is always for the search. $this->assertEquals(1, $result['totalcount']); // When searching, the total is always for the search.
$this->assertEquals('Mice', $result['tags'][0]['name']); $this->assertEquals('Mice', $result['tags'][0]['name']);
$result = core_tag_external::get_tag_cloud(0, false, 150, 'name', 'Conejo'); $result = \core_tag_external::get_tag_cloud(0, false, 150, 'name', 'Conejo');
$result = external_api::clean_returnvalue(core_tag_external::get_tag_cloud_returns(), $result); $result = \external_api::clean_returnvalue(\core_tag_external::get_tag_cloud_returns(), $result);
$this->assertCount(0, $result['tags']); // Nothing found. $this->assertCount(0, $result['tags']); // Nothing found.
$this->assertEquals(0, $result['tagscount']); $this->assertEquals(0, $result['tagscount']);
$this->assertEquals(0, $result['totalcount']); // When searching, the total is always for the search. $this->assertEquals(0, $result['totalcount']); // When searching, the total is always for the search.
// Test standard filtering. // Test standard filtering.
$micetag = core_tag_tag::get_by_name($defaultcoll, 'Mice', '*'); $micetag = \core_tag_tag::get_by_name($defaultcoll, 'Mice', '*');
$micetag->update(array('isstandard' => 1)); $micetag->update(array('isstandard' => 1));
$result = core_tag_external::get_tag_cloud(0, true); $result = \core_tag_external::get_tag_cloud(0, true);
$result = external_api::clean_returnvalue(core_tag_external::get_tag_cloud_returns(), $result); $result = \external_api::clean_returnvalue(\core_tag_external::get_tag_cloud_returns(), $result);
$this->assertCount(1, $result['tags']); $this->assertCount(1, $result['tags']);
$this->assertEquals(1, $result['tagscount']); $this->assertEquals(1, $result['tagscount']);
$this->assertEquals(1, $result['totalcount']); // When searching, the total is always for the search. $this->assertEquals(1, $result['totalcount']); // When searching, the total is always for the search.
$this->assertEquals('Mice', $result['tags'][0]['name']); $this->assertEquals('Mice', $result['tags'][0]['name']);
// Test course context filtering. // Test course context filtering.
$result = core_tag_external::get_tag_cloud(0, false, 150, 'name', '', 0, $coursecontext->id); $result = \core_tag_external::get_tag_cloud(0, false, 150, 'name', '', 0, $coursecontext->id);
$result = external_api::clean_returnvalue(core_tag_external::get_tag_cloud_returns(), $result); $result = \external_api::clean_returnvalue(\core_tag_external::get_tag_cloud_returns(), $result);
$this->assertCount(1, $result['tags']); $this->assertCount(1, $result['tags']);
$this->assertEquals(1, $result['tagscount']); $this->assertEquals(1, $result['tagscount']);
$this->assertEquals(1, $result['totalcount']); // When searching, the total is always for the search. $this->assertEquals(1, $result['totalcount']); // When searching, the total is always for the search.
$this->assertEquals('Cats', $result['tags'][0]['name']); $this->assertEquals('Cats', $result['tags'][0]['name']);
// Complete system context. // Complete system context.
$result = core_tag_external::get_tag_cloud(0, false, 150, 'name', '', 0, context_system::instance()->id); $result = \core_tag_external::get_tag_cloud(0, false, 150, 'name', '', 0, \context_system::instance()->id);
$result = external_api::clean_returnvalue(core_tag_external::get_tag_cloud_returns(), $result); $result = \external_api::clean_returnvalue(\core_tag_external::get_tag_cloud_returns(), $result);
$this->assertCount(4, $result['tags']); $this->assertCount(4, $result['tags']);
$this->assertEquals(4, $result['tagscount']); $this->assertEquals(4, $result['tagscount']);
// Just system context - avoid children. // Just system context - avoid children.
$result = core_tag_external::get_tag_cloud(0, false, 150, 'name', '', 0, context_system::instance()->id, 0); $result = \core_tag_external::get_tag_cloud(0, false, 150, 'name', '', 0, \context_system::instance()->id, 0);
$result = external_api::clean_returnvalue(core_tag_external::get_tag_cloud_returns(), $result); $result = \external_api::clean_returnvalue(\core_tag_external::get_tag_cloud_returns(), $result);
$this->assertCount(2, $result['tags']); $this->assertCount(2, $result['tags']);
$this->assertEquals(2, $result['tagscount']); // Horses and Cats. $this->assertEquals(2, $result['tagscount']); // Horses and Cats.
$this->assertEquals('Cats', $result['tags'][0]['name']); $this->assertEquals('Cats', $result['tags'][0]['name']);

View file

@ -17,11 +17,13 @@
/** /**
* Course global search unit tests. * Course global search unit tests.
* *
* @package core * @package core_user
* @copyright 2016 Devang Gaur {@link http://www.devanggaur.com} * @copyright 2016 Devang Gaur {@link http://www.devanggaur.com}
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
namespace core_user\search;
defined('MOODLE_INTERNAL') || die(); defined('MOODLE_INTERNAL') || die();
global $CFG; global $CFG;
@ -34,7 +36,7 @@ require_once($CFG->dirroot . '/search/tests/fixtures/testable_core_search.php');
* @copyright 2016 Devang Gaur {@link http://www.davidmonllao.com} * @copyright 2016 Devang Gaur {@link http://www.davidmonllao.com}
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
class user_search_testcase extends advanced_testcase { class search_test extends \advanced_testcase {
/** /**
* @var string Area id * @var string Area id
@ -48,7 +50,7 @@ class user_search_testcase extends advanced_testcase {
$this->userareaid = \core_search\manager::generate_areaid('core_user', 'user'); $this->userareaid = \core_search\manager::generate_areaid('core_user', 'user');
// Set \core_search::instance to the mock_search_engine as we don't require the search engine to be working to test this. // Set \core_search::instance to the mock_search_engine as we don't require the search engine to be working to test this.
$search = testable_core_search::instance(); $search = \testable_core_search::instance();
} }
/** /**
@ -90,11 +92,11 @@ class user_search_testcase extends advanced_testcase {
$recordset->close(); $recordset->close();
// Context support; first, try an unsupported context type. // Context support; first, try an unsupported context type.
$coursecontext = context_course::instance($SITE->id); $coursecontext = \context_course::instance($SITE->id);
$this->assertNull($searcharea->get_document_recordset(0, $coursecontext)); $this->assertNull($searcharea->get_document_recordset(0, $coursecontext));
// Try a specific user, will only return 1 record (that user). // Try a specific user, will only return 1 record (that user).
$rs = $searcharea->get_document_recordset(0, context_user::instance($user1->id)); $rs = $searcharea->get_document_recordset(0, \context_user::instance($user1->id));
$this->assertEquals(1, iterator_count($rs)); $this->assertEquals(1, iterator_count($rs));
$rs->close(); $rs->close();
} }

View file

@ -23,7 +23,7 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
defined('MOODLE_INTERNAL') || die(); namespace core_webservice\event;
/** /**
* Unit tests for Web service events. * Unit tests for Web service events.
@ -33,7 +33,7 @@ defined('MOODLE_INTERNAL') || die();
* @copyright 2013 Frédéric Massart * @copyright 2013 Frédéric Massart
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/ */
class core_webservice_events_testcase extends advanced_testcase { class events_test extends \advanced_testcase {
public function setUp(): void { public function setUp(): void {
$this->resetAfterTest(); $this->resetAfterTest();
@ -60,7 +60,7 @@ class core_webservice_events_testcase extends advanced_testcase {
$this->assertCount(1, $events); $this->assertCount(1, $events);
$event = reset($events); $event = reset($events);
$this->assertEquals(context_system::instance(), $event->get_context()); $this->assertEquals(\context_system::instance(), $event->get_context());
$this->assertEquals('A function', $event->other['function']); $this->assertEquals('A function', $event->other['function']);
$this->assertEventLegacyLogData($fakelogdata, $event); $this->assertEventLegacyLogData($fakelogdata, $event);
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
@ -89,7 +89,7 @@ class core_webservice_events_testcase extends advanced_testcase {
$this->assertCount(1, $events); $this->assertCount(1, $events);
$event = reset($events); $event = reset($events);
$this->assertEquals(context_system::instance(), $event->get_context()); $this->assertEquals(\context_system::instance(), $event->get_context());
$this->assertEquals($params['other']['reason'], $event->other['reason']); $this->assertEquals($params['other']['reason'], $event->other['reason']);
$this->assertEquals($params['other']['method'], $event->other['method']); $this->assertEquals($params['other']['method'], $event->other['method']);
$this->assertEquals($params['other']['tokenid'], $event->other['tokenid']); $this->assertEquals($params['other']['tokenid'], $event->other['tokenid']);
@ -100,7 +100,7 @@ class core_webservice_events_testcase extends advanced_testcase {
try { try {
$event = \core\event\webservice_login_failed::create($params); $event = \core\event\webservice_login_failed::create($params);
$this->fail('The token cannot be allowed in \core\event\webservice_login_failed'); $this->fail('The token cannot be allowed in \core\event\webservice_login_failed');
} catch (coding_exception $e) { } catch (\coding_exception $e) {
} }
$this->assertEventContextNotUsed($event); $this->assertEventContextNotUsed($event);
} }
@ -142,7 +142,7 @@ class core_webservice_events_testcase extends advanced_testcase {
$event = reset($events); $event = reset($events);
// Assert that the event contains the right information. // Assert that the event contains the right information.
$this->assertEquals(context_system::instance(), $event->get_context()); $this->assertEquals(\context_system::instance(), $event->get_context());
$this->assertEquals($service->id, $event->objectid); $this->assertEquals($service->id, $event->objectid);
$returnurl = $CFG->wwwroot . "/" . $CFG->admin . "/settings.php?section=externalservices"; $returnurl = $CFG->wwwroot . "/" . $CFG->admin . "/settings.php?section=externalservices";
$expected = array(SITEID, 'webservice', 'add', $returnurl, get_string('addservice', 'webservice', $service)); $expected = array(SITEID, 'webservice', 'add', $returnurl, get_string('addservice', 'webservice', $service));
@ -187,7 +187,7 @@ class core_webservice_events_testcase extends advanced_testcase {
$event = reset($events); $event = reset($events);
// Assert that the event contains the right information. // Assert that the event contains the right information.
$this->assertEquals(context_system::instance(), $event->get_context()); $this->assertEquals(\context_system::instance(), $event->get_context());
$this->assertEquals($service->id, $event->objectid); $this->assertEquals($service->id, $event->objectid);
$returnurl = $CFG->wwwroot . "/" . $CFG->admin . "/settings.php?section=externalservices"; $returnurl = $CFG->wwwroot . "/" . $CFG->admin . "/settings.php?section=externalservices";
$expected = array(SITEID, 'webservice', 'edit', $returnurl, get_string('editservice', 'webservice', $service)); $expected = array(SITEID, 'webservice', 'edit', $returnurl, get_string('editservice', 'webservice', $service));
@ -232,7 +232,7 @@ class core_webservice_events_testcase extends advanced_testcase {
$event = reset($events); $event = reset($events);
// Assert that the event contains the right information. // Assert that the event contains the right information.
$this->assertEquals(context_system::instance(), $event->get_context()); $this->assertEquals(\context_system::instance(), $event->get_context());
$this->assertEquals($service->id, $event->objectid); $this->assertEquals($service->id, $event->objectid);
$returnurl = $CFG->wwwroot . "/" . $CFG->admin . "/settings.php?section=externalservices"; $returnurl = $CFG->wwwroot . "/" . $CFG->admin . "/settings.php?section=externalservices";
$expected = array(SITEID, 'webservice', 'delete', $returnurl, get_string('deleteservice', 'webservice', $service)); $expected = array(SITEID, 'webservice', 'delete', $returnurl, get_string('deleteservice', 'webservice', $service));
@ -260,7 +260,7 @@ class core_webservice_events_testcase extends advanced_testcase {
$this->assertCount(1, $events); $this->assertCount(1, $events);
$event = reset($events); $event = reset($events);
$this->assertEquals(context_system::instance(), $event->get_context()); $this->assertEquals(\context_system::instance(), $event->get_context());
$this->assertEquals(1, $event->objectid); $this->assertEquals(1, $event->objectid);
$this->assertEquals(2, $event->relateduserid); $this->assertEquals(2, $event->relateduserid);
$expected = array(SITEID, 'core', 'assign', $CFG->admin . '/webservice/service_users.php?id=' . $params['objectid'], $expected = array(SITEID, 'core', 'assign', $CFG->admin . '/webservice/service_users.php?id=' . $params['objectid'],
@ -289,7 +289,7 @@ class core_webservice_events_testcase extends advanced_testcase {
$this->assertCount(1, $events); $this->assertCount(1, $events);
$event = reset($events); $event = reset($events);
$this->assertEquals(context_system::instance(), $event->get_context()); $this->assertEquals(\context_system::instance(), $event->get_context());
$this->assertEquals(1, $event->objectid); $this->assertEquals(1, $event->objectid);
$this->assertEquals(2, $event->relateduserid); $this->assertEquals(2, $event->relateduserid);
$expected = array(SITEID, 'core', 'assign', $CFG->admin . '/webservice/service_users.php?id=' . $params['objectid'], $expected = array(SITEID, 'core', 'assign', $CFG->admin . '/webservice/service_users.php?id=' . $params['objectid'],
@ -319,7 +319,7 @@ class core_webservice_events_testcase extends advanced_testcase {
$this->assertCount(1, $events); $this->assertCount(1, $events);
$event = reset($events); $event = reset($events);
$this->assertEquals(context_system::instance(), $event->get_context()); $this->assertEquals(\context_system::instance(), $event->get_context());
$this->assertEquals(1, $event->objectid); $this->assertEquals(1, $event->objectid);
$this->assertEquals(2, $event->relateduserid); $this->assertEquals(2, $event->relateduserid);
$expected = array(SITEID, 'webservice', 'automatically create user token', '' , 'User ID: ' . 2); $expected = array(SITEID, 'webservice', 'automatically create user token', '' , 'User ID: ' . 2);
@ -350,7 +350,7 @@ class core_webservice_events_testcase extends advanced_testcase {
$this->assertCount(1, $events); $this->assertCount(1, $events);
$event = reset($events); $event = reset($events);
$this->assertEquals(context_system::instance(), $event->get_context()); $this->assertEquals(\context_system::instance(), $event->get_context());
$this->assertEquals(1, $event->objectid); $this->assertEquals(1, $event->objectid);
$expected = array(SITEID, 'webservice', 'sending requested user token', '' , 'User ID: ' . $user->id); $expected = array(SITEID, 'webservice', 'sending requested user token', '' , 'User ID: ' . $user->id);
$this->assertEventLegacyLogData($expected, $event); $this->assertEventLegacyLogData($expected, $event);