Proyectos de Subversion Moodle

Rev

Rev 1 | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 1 Rev 1441
Línea 18... Línea 18...
18
 
18
 
Línea 19... Línea 19...
19
namespace core_badges\reportbuilder\datasource;
19
namespace core_badges\reportbuilder\datasource;
20
 
20
 
21
use core_badges_generator;
-
 
22
use core_reportbuilder_generator;
21
use core_badges_generator;
-
 
22
use core_reportbuilder_generator;
Línea 23... Línea 23...
23
use core_reportbuilder_testcase;
23
use core_reportbuilder\local\filters\{boolean_select, date, select, tags, text};
Línea 24... Línea 24...
24
use core_reportbuilder\local\filters\{boolean_select, date, select, tags, text};
24
use core_reportbuilder\tests\core_reportbuilder_testcase;
25
 
-
 
26
defined('MOODLE_INTERNAL') || die();
25
 
Línea 27... Línea 26...
27
 
26
defined('MOODLE_INTERNAL') || die();
28
global $CFG;
27
 
29
require_once("{$CFG->dirroot}/reportbuilder/tests/helpers.php");
28
global $CFG;
30
require_once("{$CFG->libdir}/badgeslib.php");
29
require_once("{$CFG->libdir}/badgeslib.php");
31
 
30
 
32
/**
31
/**
33
 * Unit tests for user badges datasource
32
 * Unit tests for user badges datasource
34
 *
33
 *
35
 * @package     core_badges
34
 * @package     core_badges
Línea 36... Línea 35...
36
 * @covers      \core_badges\reportbuilder\datasource\users
35
 * @covers      \core_badges\reportbuilder\datasource\users
37
 * @copyright   2023 Paul Holden <paulh@moodle.com>
36
 * @copyright   2023 Paul Holden <paulh@moodle.com>
38
 * @license     http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
37
 * @license     http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
39
 */
38
 */
Línea 191... Línea 190...
191
        [$fullname, $badgename, $namewithlink, $criteria, $image, $language, $version, $status, $expiry, $tag, $expires,
190
        [$fullname, $badgename, $namewithlink, $criteria, $image, $language, $version, $status, $expiry, $tag, $expires,
192
            $visible, $coursename, $cohortname] = array_values($content[2]);
191
            $visible, $coursename, $cohortname] = array_values($content[2]);
193
        $this->assertEquals(fullname($user), $fullname);
192
        $this->assertEquals(fullname($user), $fullname);
194
        $this->assertEquals($badgecourse->name, $badgename);
193
        $this->assertEquals($badgecourse->name, $badgename);
195
        $this->assertEquals($expectedbadgecourselink, $namewithlink);
194
        $this->assertEquals($expectedbadgecourselink, $namewithlink);
196
        $this->assertEquals('Criteria for this badge have not been set up yet.', $criteria);
195
        $this->assertStringContainsString('no-criteria-set', $criteria);
197
        $this->assertStringContainsString('Image caption', $image);
196
        $this->assertStringContainsString('Image caption', $image);
198
        $this->assertEquals('English', $language);
197
        $this->assertEquals('English', $language);
199
        $this->assertEquals(2, $version);
198
        $this->assertEquals(2, $version);
200
        $this->assertEquals('Available (criteria locked)', $status);
199
        $this->assertEquals('Available (criteria locked)', $status);
201
        $this->assertEquals('Never', $expiry);
200
        $this->assertEquals('Never: this badge does not expire.', $expiry);
202
        $this->assertEmpty($tag);
201
        $this->assertEmpty($tag);
203
        $this->assertEmpty($expires);
202
        $this->assertEmpty($expires);
204
        $this->assertEquals('Yes', $visible);
203
        $this->assertEquals('Yes', $visible);
205
        $this->assertEquals($course->fullname, $coursename);
204
        $this->assertEquals($course->fullname, $coursename);
206
        $this->assertEquals($cohort->name, $cohortname);
205
        $this->assertEquals($cohort->name, $cohortname);
Línea 209... Línea 208...
209
    /**
208
    /**
210
     * Data provider for {@see test_datasource_filters}
209
     * Data provider for {@see test_datasource_filters}
211
     *
210
     *
212
     * @return array[]
211
     * @return array[]
213
     */
212
     */
214
    public function datasource_filters_provider(): array {
213
    public static function datasource_filters_provider(): array {
215
        return [
214
        return [
216
            // User.
215
            // User.
217
            'Filter user fullname' => ['user:fullname', [
216
            'Filter user fullname' => ['user:fullname', [
218
                'user:fullname_operator' => text::IS_EQUAL_TO,
217
                'user:fullname_operator' => text::IS_EQUAL_TO,
219
                'user:fullname_value' => 'Zoe Zebra',
218
                'user:fullname_value' => 'Zoe Zebra',
Línea 335... Línea 334...
335
 
334
 
336
        /** @var core_reportbuilder_generator $generator */
335
        /** @var core_reportbuilder_generator $generator */
Línea 337... Línea 336...
337
        $generator = $this->getDataGenerator()->get_plugin_generator('core_reportbuilder');
336
        $generator = $this->getDataGenerator()->get_plugin_generator('core_reportbuilder');
338
 
337
 
339
        // Create report containing single username column, and given filter.
338
        // Create report containing single username column, and given filter.
Línea 340... Línea 339...
340
        $report = $generator->create_report(['name' => 'My report', 'source' => users::class, 'default' => 0]);
339
        $report = $generator->create_report(['name' => 'Badges', 'source' => users::class, 'default' => 0]);
341
        $generator->create_column(['reportid' => $report->get('id'), 'uniqueidentifier' => 'user:username']);
340
        $generator->create_column(['reportid' => $report->get('id'), 'uniqueidentifier' => 'user:username']);
342
 
341