mirror of
https://github.com/moodle/moodle.git
synced 2025-01-18 05:58:34 +01:00
MDL-68733 quiz editing: behat test for altering random question tags
This commit is contained in:
parent
9024289626
commit
89c8a076b2
@ -149,7 +149,8 @@ if ($mform->is_cancelled()) {
|
||||
// Now, delete the remaining records.
|
||||
if (!empty($recordstokeep)) {
|
||||
list($select, $params) = $DB->get_in_or_equal($recordstokeep, SQL_PARAMS_QM, 'param', false);
|
||||
$DB->delete_records_select('quiz_slot_tags', "slotid = {$slot->id} AND id $select", $params);
|
||||
array_unshift($params, $slot->id);
|
||||
$DB->delete_records_select('quiz_slot_tags', "slotid = ? AND id $select", $params);
|
||||
} else {
|
||||
$DB->delete_records('quiz_slot_tags', array('slotid' => $slot->id));
|
||||
}
|
||||
|
@ -2522,13 +2522,13 @@ function quiz_is_overriden_calendar_event(\calendar_event $event) {
|
||||
* has one tag, and the third has zero tags. The return structure will look like:
|
||||
* [
|
||||
* 1 => [
|
||||
* { ...tag data... },
|
||||
* { ...tag data... },
|
||||
* quiz_slot_tags.id => { ...tag data... },
|
||||
* quiz_slot_tags.id => { ...tag data... },
|
||||
* ],
|
||||
* 2 => [
|
||||
* { ...tag data... }
|
||||
* quiz_slot_tags.id => { ...tag data... },
|
||||
* ],
|
||||
* 3 => []
|
||||
* 3 => [],
|
||||
* ]
|
||||
*
|
||||
* @param int[] $slotids The list of id for the quiz slots.
|
||||
|
55
mod/quiz/tests/behat/editing_edit_random.feature
Normal file
55
mod/quiz/tests/behat/editing_edit_random.feature
Normal file
@ -0,0 +1,55 @@
|
||||
@mod @mod_quiz @javascript
|
||||
Feature: Editing random questions already in a quiz based on category and tags
|
||||
In order to have better assessment
|
||||
As a teacher
|
||||
I want to be able to update how questions are randomly picked from the question bank
|
||||
|
||||
Background:
|
||||
Given the following "users" exist:
|
||||
| username | firstname | lastname | email |
|
||||
| teacher1 | Teacher | 1 | t1@example.com |
|
||||
And the following "courses" exist:
|
||||
| fullname | shortname |
|
||||
| Course 1 | C1 |
|
||||
And the following "course enrolments" exist:
|
||||
| user | course | role |
|
||||
| teacher1 | C1 | editingteacher |
|
||||
And the following "activities" exist:
|
||||
| activity | name | intro | course | idnumber |
|
||||
| quiz | Quiz 1 | Quiz 1 for testing the Add random question form | C1 | quiz1 |
|
||||
And the following "question categories" exist:
|
||||
| contextlevel | reference | name |
|
||||
| Course | C1 | Questions Category 1|
|
||||
| Course | C1 | Questions Category 2|
|
||||
And the following "questions" exist:
|
||||
| questioncategory | qtype | name | user | questiontext |
|
||||
| Questions Category 1 | essay | question 1 name | admin | Question 1 text |
|
||||
| Questions Category 1 | essay | question 2 name | teacher1 | Question 2 text |
|
||||
And the following "core_question > Tags" exist:
|
||||
| question | tag |
|
||||
| question 1 name | easy |
|
||||
| question 1 name | essay |
|
||||
| question 2 name | hard |
|
||||
| question 2 name | essay |
|
||||
|
||||
Scenario: Editing tags on one slot does not delete the rest
|
||||
Given I am on the "Quiz 1" "mod_quiz > Edit" page logged in as "teacher1"
|
||||
And I open the "last" add to quiz menu
|
||||
And I follow "a random question"
|
||||
# To actually reproduce MDL-68733 it would be better to set tags easy,essay here, and then below just delete one tag.
|
||||
# However, the state of Behat for autocomplete fields does not let us actually do that.
|
||||
And I set the field "Tags" to "easy"
|
||||
And I press "Add random question"
|
||||
And I open the "Page 1" add to quiz menu
|
||||
And I follow "a random question"
|
||||
And I set the field "Tags" to "hard"
|
||||
And I press "Add random question"
|
||||
And I follow "Add page break"
|
||||
When I click on "Configure question" "link" in the "Random (Questions Category 1, tags: easy)" "list_item"
|
||||
And I click on "easy" "autocomplete_selection"
|
||||
And I set the field "Tags" to "essay"
|
||||
And I press "Save changes"
|
||||
Then I should see "Random (Questions Category 1, tags: essay)" on quiz page "1"
|
||||
And I should see "Random (Questions Category 1, tags: hard)" on quiz page "2"
|
||||
And I click on "Configure question" "link" in the "Questions Category 1, tags: hard" "list_item"
|
||||
And "hard" "autocomplete_selection" should be visible
|
@ -166,7 +166,7 @@ class qtype_random extends question_type {
|
||||
if ($categoryname) {
|
||||
$a->category = $categoryname;
|
||||
}
|
||||
$a->tags = implode(',', array_map(function($tagname) {
|
||||
$a->tags = implode(', ', array_map(function($tagname) {
|
||||
return explode(',', $tagname)[1];
|
||||
}, $tagnames));
|
||||
} else {
|
||||
|
Loading…
x
Reference in New Issue
Block a user