Proyectos de Subversion Moodle

Rev

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

Rev 1 Rev 1441
Línea 16... Línea 16...
16
 
16
 
Línea 17... Línea 17...
17
declare(strict_types=1);
17
declare(strict_types=1);
Línea 18... Línea -...
18
 
-
 
19
namespace core_comment\reportbuilder\datasource;
18
 
-
 
19
namespace core_comment\reportbuilder\datasource;
20
 
20
 
21
use context_course;
-
 
22
use core_comment_generator;
21
use core_comment_generator;
23
use core_reportbuilder_generator;
-
 
24
use core_reportbuilder_testcase;
-
 
25
use core_reportbuilder\local\filters\{date, select, text};
-
 
26
 
-
 
27
defined('MOODLE_INTERNAL') || die();
22
use core\context\{block, course};
Línea 28... Línea 23...
28
 
23
use core_reportbuilder_generator;
29
global $CFG;
24
use core_reportbuilder\local\filters\{date, select, text};
30
require_once("{$CFG->dirroot}/reportbuilder/tests/helpers.php");
25
use core_reportbuilder\tests\core_reportbuilder_testcase;
31
 
26
 
32
/**
27
/**
33
 * Unit tests for comments datasource
28
 * Unit tests for comments datasource
34
 *
29
 *
35
 * @package     core_comment
30
 * @package     core_comment
36
 * @covers      \core_comment\reportbuilder\datasource\comments
31
 * @covers      \core_comment\reportbuilder\datasource\comments
Línea 37... Línea 32...
37
 * @copyright   2022 Paul Holden <paulh@moodle.com>
32
 * @copyright   2022 Paul Holden <paulh@moodle.com>
38
 * @license     http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
33
 * @license     http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
39
 */
34
 */
40
class comments_test extends core_reportbuilder_testcase {
35
final class comments_test extends core_reportbuilder_testcase {
41
 
36
 
Línea 42... Línea 37...
42
    /**
37
    /**
43
     * Test default datasource
38
     * Test default datasource
Línea 44... Línea 39...
44
     */
39
     */
45
    public function test_datasource_default(): void {
40
    public function test_datasource_default(): void {
Línea 46... Línea 41...
46
        $this->resetAfterTest();
41
        $this->resetAfterTest();
Línea 76... Línea 71...
76
            'area' => 'page_comments',
71
            'area' => 'page_comments',
77
        ])->add('Awesome');
72
        ])->add('Awesome');
Línea 78... Línea 73...
78
 
73
 
79
        /** @var core_reportbuilder_generator $generator */
74
        /** @var core_reportbuilder_generator $generator */
80
        $generator = $this->getDataGenerator()->get_plugin_generator('core_reportbuilder');
75
        $generator = $this->getDataGenerator()->get_plugin_generator('core_reportbuilder');
Línea 81... Línea 76...
81
        $report = $generator->create_report(['name' => 'Blogs', 'source' => comments::class, 'default' => 1]);
76
        $report = $generator->create_report(['name' => 'Comments', 'source' => comments::class, 'default' => 1]);
Línea 82... Línea 77...
82
 
77
 
83
        $content = $this->get_custom_report_content($report->get('id'));
78
        $content = $this->get_custom_report_content($report->get('id'));
Línea 97... Línea 92...
97
    public function test_datasource_non_default_columns(): void {
92
    public function test_datasource_non_default_columns(): void {
98
        $this->resetAfterTest();
93
        $this->resetAfterTest();
99
        $this->setAdminUser();
94
        $this->setAdminUser();
Línea 100... Línea 95...
100
 
95
 
101
        $course = $this->getDataGenerator()->create_course();
-
 
102
        $courseurl = course_get_url($course);
96
        $course = $this->getDataGenerator()->create_course();
Línea 103... Línea 97...
103
        $coursecontext = context_course::instance($course->id);
97
        $coursecontext = course::instance($course->id);
104
 
98
 
105
        /** @var core_comment_generator $generator */
99
        /** @var core_comment_generator $generator */
106
        $generator = $this->getDataGenerator()->get_plugin_generator('core_comment');
100
        $generator = $this->getDataGenerator()->get_plugin_generator('core_comment');
Línea 111... Línea 105...
111
            'content' => 'Cool',
105
            'content' => 'Cool',
112
        ]);
106
        ]);
Línea 113... Línea 107...
113
 
107
 
114
        /** @var core_reportbuilder_generator $generator */
108
        /** @var core_reportbuilder_generator $generator */
115
        $generator = $this->getDataGenerator()->get_plugin_generator('core_reportbuilder');
109
        $generator = $this->getDataGenerator()->get_plugin_generator('core_reportbuilder');
Línea 116... Línea 110...
116
        $report = $generator->create_report(['name' => 'Blogs', 'source' => comments::class, 'default' => 0]);
110
        $report = $generator->create_report(['name' => 'Comments', 'source' => comments::class, 'default' => 0]);
117
 
111
 
118
        $generator->create_column(['reportid' => $report->get('id'), 'uniqueidentifier' => 'context:link']);
112
        $generator->create_column(['reportid' => $report->get('id'), 'uniqueidentifier' => 'context:name']);
119
        $generator->create_column(['reportid' => $report->get('id'), 'uniqueidentifier' => 'comment:component']);
113
        $generator->create_column(['reportid' => $report->get('id'), 'uniqueidentifier' => 'comment:component']);
Línea 120... Línea 114...
120
        $generator->create_column(['reportid' => $report->get('id'), 'uniqueidentifier' => 'comment:area']);
114
        $generator->create_column(['reportid' => $report->get('id'), 'uniqueidentifier' => 'comment:area']);
121
        $generator->create_column(['reportid' => $report->get('id'), 'uniqueidentifier' => 'comment:itemid']);
115
        $generator->create_column(['reportid' => $report->get('id'), 'uniqueidentifier' => 'comment:itemid']);
Línea 122... Línea 116...
122
 
116
 
123
        $content = $this->get_custom_report_content($report->get('id'));
117
        $content = $this->get_custom_report_content($report->get('id'));
124
        $this->assertCount(1, $content);
118
        $this->assertCount(1, $content);
125
 
119
 
126
        $this->assertEquals([
120
        $this->assertEquals([
127
            "<a href=\"{$courseurl}\">{$coursecontext->get_context_name()}</a>",
121
            $coursecontext->get_context_name(),
128
            'block_comments',
122
            'block_comments',
Línea 134... Línea 128...
134
    /**
128
    /**
135
     * Data provider for {@see test_datasource_filters}
129
     * Data provider for {@see test_datasource_filters}
136
     *
130
     *
137
     * @return array[]
131
     * @return array[]
138
     */
132
     */
139
    public function datasource_filters_provider(): array {
133
    public static function datasource_filters_provider(): array {
140
        return [
134
        return [
141
            // Comment.
135
            // Comment.
142
            'Filter content' => ['comment:content', [
136
            'Filter content' => ['comment:content', [
143
                'comment:content_operator' => text::CONTAINS,
137
                'comment:content_operator' => text::CONTAINS,
144
                'comment:content_value' => 'Cool',
138
                'comment:content_value' => 'Cool',
Línea 157... Línea 151...
157
            ], false],
151
            ], false],
Línea 158... Línea 152...
158
 
152
 
159
            // Context.
153
            // Context.
160
            'Context level' => ['context:level', [
154
            'Context level' => ['context:level', [
161
                'context:level_operator' => select::EQUAL_TO,
155
                'context:level_operator' => select::EQUAL_TO,
162
                'context:level_value' => CONTEXT_COURSE,
156
                'context:level_value' => course::LEVEL,
163
            ], true],
157
            ], true],
164
            'Context level (no match)' => ['context:level', [
158
            'Context level (no match)' => ['context:level', [
165
                'context:level_operator' => select::EQUAL_TO,
159
                'context:level_operator' => select::EQUAL_TO,
166
                'context:level_value' => CONTEXT_BLOCK,
160
                'context:level_value' => block::LEVEL,
Línea 167... Línea 161...
167
            ], false],
161
            ], false],
168
 
162
 
169
            // User.
163
            // User.
Línea 194... Línea 188...
194
    ): void {
188
    ): void {
195
        $this->resetAfterTest();
189
        $this->resetAfterTest();
196
        $this->setAdminUser();
190
        $this->setAdminUser();
Línea 197... Línea 191...
197
 
191
 
198
        $course = $this->getDataGenerator()->create_course();
-
 
Línea 199... Línea 192...
199
        $coursecontext = context_course::instance($course->id);
192
        $course = $this->getDataGenerator()->create_course();
200
 
193
 
201
        /** @var core_comment_generator $generator */
194
        /** @var core_comment_generator $generator */
202
        $generator = $this->getDataGenerator()->get_plugin_generator('core_comment');
195
        $generator = $this->getDataGenerator()->get_plugin_generator('core_comment');
203
        $generator->create_comment([
196
        $generator->create_comment([
204
            'context' => $coursecontext,
197
            'context' => course::instance($course->id),
205
            'component' => 'block_comments',
198
            'component' => 'block_comments',
206
            'area' => 'page_comments',
199
            'area' => 'page_comments',
Línea 207... Línea 200...
207
            'content' => 'Cool',
200
            'content' => 'Cool',
208
        ]);
201
        ]);
Línea 209... Línea 202...
209
 
202
 
210
        /** @var core_reportbuilder_generator $generator */
203
        /** @var core_reportbuilder_generator $generator */
211
        $generator = $this->getDataGenerator()->get_plugin_generator('core_reportbuilder');
204
        $generator = $this->getDataGenerator()->get_plugin_generator('core_reportbuilder');
Línea 212... Línea 205...
212
 
205
 
213
        // Create report containing single column, and given filter.
206
        // Create report containing single column, and given filter.
214
        $report = $generator->create_report(['name' => 'Tasks', 'source' => comments::class, 'default' => 0]);
207
        $report = $generator->create_report(['name' => 'Comments', 'source' => comments::class, 'default' => 0]);
Línea 238... Línea 231...
238
 
231
 
239
        $this->resetAfterTest();
232
        $this->resetAfterTest();
Línea 240... Línea 233...
240
        $this->setAdminUser();
233
        $this->setAdminUser();
241
 
-
 
Línea 242... Línea 234...
242
        $course = $this->getDataGenerator()->create_course();
234
 
243
        $coursecontext = context_course::instance($course->id);
235
        $course = $this->getDataGenerator()->create_course();
244
 
236
 
245
        /** @var core_comment_generator $generator */
237
        /** @var core_comment_generator $generator */
246
        $generator = $this->getDataGenerator()->get_plugin_generator('core_comment');
238
        $generator = $this->getDataGenerator()->get_plugin_generator('core_comment');
247
        $generator->create_comment([
239
        $generator->create_comment([
248
            'context' => $coursecontext,
240
            'context' => course::instance($course->id),
249
            'component' => 'block_comments',
241
            'component' => 'block_comments',