Línea 28... |
Línea 28... |
28 |
* @copyright 2022 Catalyst IT Australia Pty Ltd
|
28 |
* @copyright 2022 Catalyst IT Australia Pty Ltd
|
29 |
* @author Safat Shahin <safatshahin@catalyst-au.net>
|
29 |
* @author Safat Shahin <safatshahin@catalyst-au.net>
|
30 |
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
30 |
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
31 |
* @coversDefaultClass \qbank_history\question_history_view
|
31 |
* @coversDefaultClass \qbank_history\question_history_view
|
32 |
*/
|
32 |
*/
|
33 |
class question_history_view_test extends \advanced_testcase {
|
33 |
final class question_history_view_test extends \advanced_testcase {
|
Línea 34... |
Línea 34... |
34 |
|
34 |
|
35 |
/**
|
35 |
/**
|
36 |
* Test that the history page shows all the versions of a question.
|
36 |
* Test that the history page shows all the versions of a question.
|
37 |
*
|
37 |
*
|
Línea 43... |
Línea 43... |
43 |
$generator = $this->getDataGenerator();
|
43 |
$generator = $this->getDataGenerator();
|
44 |
$questiongenerator = $this->getDataGenerator()->get_plugin_generator('core_question');
|
44 |
$questiongenerator = $this->getDataGenerator()->get_plugin_generator('core_question');
|
Línea 45... |
Línea 45... |
45 |
|
45 |
|
46 |
// Create a course.
|
46 |
// Create a course.
|
- |
|
47 |
$course = $generator->create_course();
|
- |
|
48 |
$qbank = $generator->create_module('qbank', ['course' => $course->id]);
|
47 |
$course = $generator->create_course();
|
49 |
$cm = get_coursemodule_from_id('qbank', $qbank->cmid);
|
Línea 48... |
Línea 50... |
48 |
$context = \context_course::instance($course->id);
|
50 |
$context = \context_module::instance($qbank->cmid);
|
49 |
|
51 |
|
50 |
// Create a question in the default category.
|
52 |
// Create a question in the default category.
|
51 |
$contexts = new \core_question\local\bank\question_edit_contexts($context);
|
53 |
$contexts = new \core_question\local\bank\question_edit_contexts($context);
|
52 |
$cat = $questiongenerator->create_question_category();
|
54 |
$cat = $questiongenerator->create_question_category(['contextid' => $context->id]);
|
Línea 53... |
Línea 55... |
53 |
$questiondata1 = $questiongenerator->create_question('numerical', null,
|
55 |
$questiondata1 = $questiongenerator->create_question('numerical', null,
|
54 |
['name' => 'Example question', 'category' => $cat->id]);
|
56 |
['name' => 'Example question', 'category' => $cat->id]);
|
Línea 70... |
Línea 72... |
70 |
$extraparams = [
|
72 |
$extraparams = [
|
71 |
'view' => $viewclass,
|
73 |
'view' => $viewclass,
|
72 |
'entryid' => $entry->id,
|
74 |
'entryid' => $entry->id,
|
73 |
'returnurl' => "/",
|
75 |
'returnurl' => "/",
|
74 |
];
|
76 |
];
|
75 |
$view = new $viewclass($contexts, new \moodle_url('/'), $course, null, $pagevars, $extraparams);
|
77 |
$view = new $viewclass($contexts, new \moodle_url('/'), $course, $cm, $pagevars, $extraparams);
|
76 |
ob_start();
|
78 |
ob_start();
|
77 |
$view->display();
|
79 |
$view->display();
|
78 |
$html = ob_get_clean();
|
80 |
$html = ob_get_clean();
|
Línea 79... |
Línea 81... |
79 |
|
81 |
|
Línea 95... |
Línea 97... |
95 |
$generator = $this->getDataGenerator();
|
97 |
$generator = $this->getDataGenerator();
|
96 |
$questiongenerator = $this->getDataGenerator()->get_plugin_generator('core_question');
|
98 |
$questiongenerator = $this->getDataGenerator()->get_plugin_generator('core_question');
|
Línea 97... |
Línea 99... |
97 |
|
99 |
|
98 |
// Create a course.
|
100 |
// Create a course.
|
- |
|
101 |
$course = $generator->create_course();
|
- |
|
102 |
$qbank = $generator->create_module('qbank', ['course' => $course->id]);
|
99 |
$course = $generator->create_course();
|
103 |
$cm = get_coursemodule_from_id('qbank', $qbank->cmid);
|
Línea 100... |
Línea 104... |
100 |
$context = \context_course::instance($course->id);
|
104 |
$context = \context_module::instance($cm->id);
|
101 |
|
105 |
|
102 |
// Create a question in the default category.
|
106 |
// Create a question in the default category.
|
103 |
$contexts = new \core_question\local\bank\question_edit_contexts($context);
|
107 |
$contexts = new \core_question\local\bank\question_edit_contexts($context);
|
Línea 117... |
Línea 121... |
117 |
$extraparams = [
|
121 |
$extraparams = [
|
118 |
'view' => $viewclass,
|
122 |
'view' => $viewclass,
|
119 |
'entryid' => $entry->id,
|
123 |
'entryid' => $entry->id,
|
120 |
'returnurl' => "/",
|
124 |
'returnurl' => "/",
|
121 |
];
|
125 |
];
|
122 |
$view = new $viewclass($contexts, new \moodle_url('/'), $course, null, $pagevars, $extraparams);
|
126 |
$view = new $viewclass($contexts, new \moodle_url('/'), $course, $cm, $pagevars, $extraparams);
|
123 |
ob_start();
|
127 |
ob_start();
|
124 |
$view->display_question_bank_header();
|
128 |
$view->display_question_bank_header();
|
125 |
$headerhtml = ob_get_clean();
|
129 |
$headerhtml = ob_get_clean();
|
126 |
// Verify the output includes the latest version.
|
130 |
// Verify the output includes the latest version.
|
127 |
$this->assertStringContainsString($questiondata1->name, $headerhtml);
|
131 |
$this->assertStringContainsString($questiondata1->name, $headerhtml);
|
Línea 128... |
Línea 132... |
128 |
|
132 |
|
129 |
$questiondata2 = $questiongenerator->update_question($questiondata1, null,
|
133 |
$questiondata2 = $questiongenerator->update_question($questiondata1, null,
|
130 |
['name' => 'Second version']);
|
134 |
['name' => 'Second version']);
|
131 |
$view = new $viewclass($contexts, new \moodle_url('/'), $course, null, $pagevars, $extraparams);
|
135 |
$view = new $viewclass($contexts, new \moodle_url('/'), $course, $cm, $pagevars, $extraparams);
|
132 |
ob_start();
|
136 |
ob_start();
|
133 |
$view->display_question_bank_header();
|
137 |
$view->display_question_bank_header();
|
Línea 134... |
Línea 138... |
134 |
$headerhtml = ob_get_clean();
|
138 |
$headerhtml = ob_get_clean();
|