Skip to content

Commit

Permalink
Fixing Moodle Code Checker issues. (#548)
Browse files Browse the repository at this point in the history
  • Loading branch information
lucaboesch authored Mar 12, 2024
1 parent 743b2fb commit a9ca15b
Show file tree
Hide file tree
Showing 9 changed files with 312 additions and 28 deletions.
2 changes: 2 additions & 0 deletions externallib.php
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@

namespace mod_questionnaire;

defined('MOODLE_INTERNAL') || die();

require_once($CFG->libdir . '/externallib.php');

use external_api;
Expand Down
17 changes: 14 additions & 3 deletions tests/csvexport_test.php
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,14 @@
* @copyright Copyright (c) 2015 Moodlerooms Inc. (http://www.moodlerooms.com)
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class mod_questionnaire_csvexport_test extends advanced_testcase {

namespace mod_questionnaire;

/**
* Unit tests for questionnaire_csvexport_test.
* @group mod_questionnaire
*/
class csvexport_test extends \advanced_testcase {

public function setUp(): void {
global $CFG;
Expand Down Expand Up @@ -53,6 +60,8 @@ private function get_csv_text(array $rows) {

/**
* Tests the CSV export.
*
* @covers \questionnaire::generate_csv
*/
public function test_csvexport() {
$this->resetAfterTest();
Expand All @@ -64,7 +73,7 @@ public function test_csvexport() {
$questionnaires = $qdg->questionnaires();
foreach ($questionnaires as $questionnaire) {
list ($course, $cm) = get_course_and_cm_from_instance($questionnaire->id, 'questionnaire', $questionnaire->course);
$questionnaireinst = new questionnaire($course, $cm, 0, $questionnaire);
$questionnaireinst = new \questionnaire($course, $cm, 0, $questionnaire);

// Test for only complete responses.
$newoutput = $this->get_csv_text($questionnaireinst->generate_csv(0, '', '', 0, 0, 0));
Expand All @@ -84,6 +93,8 @@ public function test_csvexport() {

/**
* Tests the CSV export with identity fields and anonymous questionnaires.
*
* @covers \questionnaire::generate_csv
*/
public function test_csvexport_identity_fields() {
global $DB;
Expand Down Expand Up @@ -142,7 +153,7 @@ private function do_test_csvexport_identity_fields($course, $cm, $user, $roleid,
assign_capability('moodle/site:viewuseridentity', CAP_ALLOW, $roleid, $context);

// Generate CSV output.
$questionnaire = new questionnaire($course, $cm, $item->id);
$questionnaire = new \questionnaire($course, $cm, $item->id);
$output = $questionnaire->generate_csv(0, '', '', 0, 0, 1);

$this->assertNotNull($output);
Expand Down
13 changes: 11 additions & 2 deletions tests/custom_completion_test.php
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@

namespace mod_questionnaire;

use advanced_testcase;
use cm_info;
use coding_exception;
use mod_questionnaire\completion\custom_completion;
Expand All @@ -45,7 +44,7 @@
* @copyright 2022 The Open University
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class custom_completion_test extends advanced_testcase {
class custom_completion_test extends \advanced_testcase {

/**
* Data provider for get_state().
Expand Down Expand Up @@ -79,6 +78,8 @@ public function get_state_provider(): array {
* @param int|null $status Expected status.
* @param string|null $exception Expected exception.
* @throws coding_exception
*
* @covers \mod_questionnaire\completion\custom_completion
*/
public function test_get_state(string $rule, int $available, ?bool $submitted, ?int $status, ?string $exception) {
if (!is_null($exception)) {
Expand Down Expand Up @@ -114,6 +115,8 @@ public function test_get_state(string $rule, int $available, ?bool $submitted, ?

/**
* Test for get_defined_custom_rules().
*
* @covers \mod_questionnaire\completion\custom_completion
*/
public function test_get_defined_custom_rules() {
$rules = custom_completion::get_defined_custom_rules();
Expand All @@ -123,6 +126,8 @@ public function test_get_defined_custom_rules() {

/**
* Test for get_defined_custom_rule_descriptions().
*
* @covers \mod_questionnaire\completion\custom_completion
*/
public function test_get_custom_rule_descriptions() {
// Get defined custom rules.
Expand All @@ -149,6 +154,8 @@ public function test_get_custom_rule_descriptions() {

/**
* Test for is_defined().
*
* @covers \mod_questionnaire\completion\custom_completion
*/
public function test_is_defined() {
// Build a mock cm_info instance.
Expand Down Expand Up @@ -187,6 +194,8 @@ public function get_available_custom_rules_provider(): array {
* @dataProvider get_available_custom_rules_provider
* @param int $status
* @param array $expected
*
* @covers \mod_questionnaire\completion\custom_completion
*/
public function test_get_available_custom_rules(int $status, array $expected) {
$customdataval = [
Expand Down
4 changes: 2 additions & 2 deletions tests/generator/lib.php
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ public function create_instance($record = null, array $options = null) {
$instance = parent::create_instance($record, (array)$options);
$cm = get_coursemodule_from_instance('questionnaire', $instance->id);
$course = get_course($cm->course);
$questionnaire = new questionnaire($course, $cm, 0, $instance, false);
$questionnaire = new \questionnaire($course, $cm, 0, $instance, false);

$this->questionnaires[$instance->id] = $questionnaire;

Expand Down Expand Up @@ -220,7 +220,7 @@ public function create_test_questionnaire($course, $qtype = null, $questiondata
$questiondata['content'] = isset($questiondata['content']) ? $questiondata['content'] : 'Test content';
$this->create_question($questionnaire, $questiondata, $choicedata);
}
$questionnaire = new questionnaire($course, $cm, $questionnaire->id, null, true);
$questionnaire = new \questionnaire($course, $cm, $questionnaire->id, null, true);
return $questionnaire;
}

Expand Down
26 changes: 23 additions & 3 deletions tests/generator_test.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,22 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/

namespace mod_questionnaire;

/**
* Unit tests for questionnaire_generator_testcase.
* @group mod_questionnaire
*/
class mod_questionnaire_generator_testcase extends advanced_testcase {
class generator_test extends \advanced_testcase {
/**
* Test generator create_instance function.
*
* @return void
* @throws coding_exception
* @throws dml_exception
*
* @covers \mod_questionnaire\generator\
*/
public function test_create_instance() {
global $DB;

Expand All @@ -49,7 +60,7 @@ public function test_create_instance() {
$this->assertEquals('questionnaire', $cm->modname);
$this->assertEquals($course->id, $cm->course);

$context = context_module::instance($cm->id);
$context = \context_module::instance($cm->id);
$this->assertEquals($questionnaire->cmid, $context->instanceid);

$survey = $DB->get_record('questionnaire_survey', array('id' => $questionnaire->sid));
Expand All @@ -62,6 +73,15 @@ public function test_create_instance() {
// Should test event creation if open dates and close dates are specified?
}

/**
* Test generator create_content function.
*
* @return void
* @throws coding_exception
* @throws dml_exception
*
* @covers \mod_questionnaire\generator\
*/
public function test_create_content() {
global $DB;

Expand All @@ -71,7 +91,7 @@ public function test_create_content() {
$generator = $this->getDataGenerator()->get_plugin_generator('mod_questionnaire');
$questionnaire = $generator->create_instance(array('course' => $course->id));
$cm = get_coursemodule_from_instance('questionnaire', $questionnaire->id);
$questionnaire = new questionnaire($course, $cm, $questionnaire->id, null, false);
$questionnaire = new \questionnaire($course, $cm, $questionnaire->id, null, false);

$newcontent = array(
'title' => 'New title',
Expand Down
98 changes: 94 additions & 4 deletions tests/lib_test.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,12 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/

defined('MOODLE_INTERNAL') || die();
namespace mod_questionnaire;

use mod_questionnaire\question\question;

defined('MOODLE_INTERNAL') || die();

global $CFG;
require_once($CFG->dirroot.'/mod/questionnaire/lib.php');
require_once($CFG->dirroot.'/mod/questionnaire/classes/question/question.php');
Expand All @@ -35,7 +37,15 @@
* Unit tests for questionnaire_lib_testcase.
* @group mod_questionnaire
*/
class mod_questionnaire_lib_testcase extends advanced_testcase {
class lib_test extends \advanced_testcase {

/**
* Test for questionnaire_supports.
*
* @return void
*
* @covers \questionnaire_supports
*/
public function test_questionnaire_supports() {
$this->assertTrue(questionnaire_supports(FEATURE_BACKUP_MOODLE2));
$this->assertFalse(questionnaire_supports(FEATURE_COMPLETION_TRACKS_VIEWS));
Expand All @@ -49,20 +59,35 @@ public function test_questionnaire_supports() {
$this->assertNull(questionnaire_supports('unknown option'));
}

/**
* Test for questionnaire_get_extra_capabilities.
*
* @return void
*
* @covers \questionnaire_get_extra_capabilities
*/
public function test_questionnaire_get_extra_capabilities() {
$caps = questionnaire_get_extra_capabilities();
$this->assertIsArray($caps);
$this->assertEquals(1, count($caps));
$this->assertEquals('moodle/site:accessallgroups', reset($caps));
}

/**
* Test for questionnaire_add_instance.
*
* @return void
* @throws moodle_exception
*
* @covers \questionnaire_add_instance
*/
public function test_add_instance() {
$this->resetAfterTest();
$this->setAdminUser();
$course = $this->getDataGenerator()->create_course();

// Create test data as a record.
$questdata = new stdClass();
$questdata = new \stdClass();
$questdata->course = $course->id;
$questdata->coursemodule = '';
$questdata->name = 'Test questionnaire';
Expand All @@ -86,6 +111,14 @@ public function test_add_instance() {
$this->assertTrue(questionnaire_add_instance($questdata) > 0);
}

/**
* Test for questionnaire_update_instance().
*
* @return void
* @throws dml_exception
*
* @covers \questionnaire_update_instance
*/
public function test_update_instance() {
global $DB;

Expand Down Expand Up @@ -141,9 +174,15 @@ public function test_update_instance() {
$this->assertEquals($qrow->autonum, $questrecord->autonum);
}

/*
/**
* Test for questionnaire_delete_instance().
*
* Need to verify that delete_instance deletes all data associated with a questionnaire.
*
* @return void
* @throws dml_exception
*
* @covers \questionnaire_delete_instance
*/
public function test_delete_instance() {
global $DB;
Expand Down Expand Up @@ -176,6 +215,14 @@ public function test_delete_instance() {
$this->assertEmpty($DB->get_records('event', array("modulename" => 'questionnaire', "instance" => $questionnaire->id)));
}

/**
* Test for questionnaire_user_outline().
*
* @return void
* @throws coding_exception
*
* @covers \questionnaire_user_outline
*/
public function test_questionnaire_user_outline() {
$this->resetAfterTest();
$this->setAdminUser();
Expand All @@ -196,6 +243,14 @@ public function test_questionnaire_user_outline() {
$this->assertEquals('1 '.get_string("response", "questionnaire"), $outline->info);
}

/**
* Test for questionnaire_user_complete().
*
* @return void
* @throws coding_exception
*
* @covers \questionnaire_user_complete
*/
public function test_questionnaire_user_complete() {
$this->resetAfterTest();
$this->setAdminUser();
Expand All @@ -208,18 +263,39 @@ public function test_questionnaire_user_complete() {
$this->expectOutputString(get_string('noresponses', 'questionnaire'));
}

/**
* Test for questionnaire_print_recent_activity().
*
* @return void
*
* @covers \questionnaire_print_recent_activity
*/
public function test_questionnaire_print_recent_activity() {
$this->resetAfterTest();
$this->setAdminUser();
$this->assertFalse(questionnaire_print_recent_activity(null, null, null));
}

/**
* Test for questionnaire_grades().
*
* @return void
*
* @covers \questionnaire_grades
*/
public function test_questionnaire_grades() {
$this->resetAfterTest();
$this->setAdminUser();
$this->assertNull(questionnaire_grades(null));
}

/**
* Test for questionnaire_get_user_grades().
*
* @return void
*
* @covers \questionnaire_get_user_grades
*/
public function test_questionnaire_get_user_grades() {
$this->resetAfterTest();
$this->setAdminUser();
Expand All @@ -238,11 +314,25 @@ public function test_questionnaire_get_user_grades() {
$this->assertIsArray($grades);
}

/**
* Test for questionnaire_update_grades().
*
* @return void
*
* @covers \questionnaire_update_grades
*/
public function test_questionnaire_update_grades() {
// Don't know how to test this yet! It doesn't return anything.
$this->assertNull(questionnaire_update_grades());
}

/**
* Test for questionnaire_grade_item_update().
*
* @return void
*
* @covers \questionnaire_grade_item_update
*/
public function test_questionnaire_grade_item_update() {
$this->resetAfterTest();
$this->setAdminUser();
Expand Down
Loading

0 comments on commit a9ca15b

Please sign in to comment.