AutorÃa | Ultima modificación | Ver Log |
<?php// This file is part of Moodle - http://moodle.org///// Moodle is free software: you can redistribute it and/or modify// it under the terms of the GNU General Public License as published by// the Free Software Foundation, either version 3 of the License, or// (at your option) any later version.//// Moodle is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the// GNU General Public License for more details.//// You should have received a copy of the GNU General Public License// along with Moodle. If not, see <http://www.gnu.org/licenses/>./*** Completion unit tests common base for Completion Progress block.** @package block_completion_progress* @copyright 2020 Jonathon Fowler <fowlerj@usq.edu.au>* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later*/namespace block_completion_progress\tests;defined('MOODLE_INTERNAL') || die();global $CFG;use block_completion_progress\completion_progress;use block_completion_progress\defaults;/*** Completion unit tests common base for Completion Progress block.** @package block_completion_progress* @copyright 2020 Jonathon Fowler <fowlerj@usq.edu.au>* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later*/abstract class completion_testcase extends \advanced_testcase {/*** The test course.* @var object*/protected $course;/*** A completion_progress block instance in the test course.* @var object*/protected $blockinstance;/*** Setup function - we will create a course and add an assign instance to it.*/protected function setUp(): void {$this->resetAfterTest(true);set_config('enablecompletion', 1);$generator = $this->getDataGenerator();$this->course = $generator->create_course(['enablecompletion' => 1,]);// Add a block.$context = \context_course::instance($this->course->id);$blockinfo = ['parentcontextid' => $context->id,'pagetypepattern' => 'course-view-*','showinsubcontexts' => 0,'defaultweight' => 5,'timecreated' => time(),'timemodified' => time(),'defaultregion' => 'side-post','configdata' => base64_encode(serialize((object)['orderby' => defaults::ORDERBY,'longbars' => defaults::LONGBARS,'progressBarIcons' => defaults::PROGRESSBARICONS,'showpercentage' => defaults::SHOWPERCENTAGE,'progressTitle' => "",'activitiesincluded' => defaults::ACTIVITIESINCLUDED,])),];$this->blockinstance = $this->getDataGenerator()->create_block('completion_progress', $blockinfo);}/*** Assert a user's completion status for a course module.* @param object $student* @param object $cm* @param integer|string $status*/protected function assert_progress_completion($student, $cm, $status) {$progress = (new completion_progress($this->course))->for_user($student)->for_block_instance($this->blockinstance);$completions = $progress->get_completions();$this->assertEquals([$cm->id => $status],$completions);}}