MDL-64469 Question bank: Change link questions in category question.
[moodle.git] / question / tests / behat / question_categories_idnumber.feature
1 @core @core_question
2 Feature: A teacher can put questions with idnumbers in categories with idnumbers in the question bank
3   In order to organize my questions
4   As a teacher
5   I create and edit categories and move questions between them (now with idnumbers)
7   Background:
8     Given the following "users" exist:
9       | username | firstname | lastname | email                |
10       | teacher1 | Teacher   | 1        | teacher1@example.com |
11     And the following "courses" exist:
12       | fullname | shortname | format |
13       | Course 1 | C1        | weeks  |
14     And the following "course enrolments" exist:
15       | user     | course | role           |
16       | teacher1 | C1     | editingteacher |
17     And I log in as "teacher1"
18     And I am on "Course 1" course homepage
20   Scenario: A new question category can only be created with a unique idnumber for a context
21     # Note need to create the top category each time.
22     When the following "question categories" exist:
23       | contextlevel | reference | questioncategory | name           | idnumber |
24       | Course       | C1        | Top              | top            |          |
25       | Course       | C1        | top              | Used category  | c1used   |
26     And I navigate to "Question bank > Categories" in current page administration
27     And I set the following fields to these values:
28       | Name            | Sub used category |
29       | Parent category | Used category     |
30       | Category info   | Created as a test |
31       | ID number       | c1used            |
32     And I press "Add category"
33     # Standard warning.
34     Then I should see "This ID number is already in use"
35     # Correction to a unique idnumber for the context.
36     And I set the field "ID number" to "c1unused"
37     And I press "Add category"
38     Then I should see "Sub used category (0)"
39     And I should see "Created as a test" in the "Sub used category" "list_item"
41   Scenario: A question category can be edited and saved without changing the idnumber
42     When the following "question categories" exist:
43       | contextlevel | reference | questioncategory | name           | idnumber |
44       | Course       | C1        | Top              | top            |          |
45       | Course       | C1        | top              | Used category  | c1used   |
46     And I navigate to "Question bank > Categories" in current page administration
47     And I click on "Edit this category" "link" in the "Used category" "list_item"
48     And I press "Save changes"
49     Then I should not see "This ID number is already in use"
51   Scenario: A question can only have a unique idnumber within a category
52     When the following "question categories" exist:
53       | contextlevel | reference | questioncategory | name           | idnumber |
54       | Course       | C1        | Top              | top            |          |
55       | Course       | C1        | top              | Used category  | c1used   |
56     And the following "questions" exist:
57       | questioncategory | qtype | name            | questiontext                  | idnumber |
58       | Used category    | essay | Test question 1 | Write about whatever you want | q1       |
59       | Used category    | essay | Test question 2 | Write about whatever you want | q2       |
60     And I navigate to "Question bank > Questions" in current page administration
61     And I click on "Edit" "link" in the "Test question 2" "table_row"
62     And I set the field "ID number" to "q1"
63     And I press "submitbutton"
64     # This is the standard form warning reminding the user that the idnumber needs to be unique for a category.
65     Then I should see "This ID number is already in use"
67   Scenario: A question can be edited and saved without changing the idnumber
68     When the following "question categories" exist:
69       | contextlevel | reference | questioncategory | name           | idnumber |
70       | Course       | C1        | Top              | top            |          |
71       | Course       | C1        | top              | Used category  | c1used   |
72     And the following "questions" exist:
73       | questioncategory | qtype | name            | questiontext                  | idnumber |
74       | Used category    | essay | Test question 1 | Write about whatever you want | q1       |
75     And I navigate to "Question bank > Questions" in current page administration
76     And I click on "Edit" "link" in the "Test question 1" "table_row"
77     And I press "Save changes"
78     Then I should not see "This ID number is already in use"
80   Scenario: Question idnumber conficts found when saving to a different category.
81     When the following "question categories" exist:
82       | contextlevel | reference | questioncategory | name       |
83       | Course       | C1        | Top              | top        |
84       | Course       | C1        | top              | Category 1 |
85       | Course       | C1        | top              | Category 2 |
86     And the following "questions" exist:
87       | questioncategory | qtype | name             | questiontext                  | idnumber |
88       | Category 1       | essay | Question to edit | Write about whatever you want | q1       |
89       | Category 2       | essay | Other question   | Write about whatever you want | q2       |
90     And I navigate to "Question bank > Questions" in current page administration
91     And I click on "Edit" "link" in the "Question to edit" "table_row"
92     And I set the following fields to these values:
93       | Use this category | 0          |
94       | ID number         | q2         |
95       | Save in category  | Category 2 |
96     And I press "Save changes"
97     Then I should see "This ID number is already in use"
99   @javascript
100   Scenario: Moving a question between categories can force a change to the idnumber
101     And the following "question categories" exist:
102       | contextlevel | reference | questioncategory | name           | idnumber |
103       | Course       | C1        | Top              | top            |          |
104       | Course       | C1        | top              | Subcategory    | c1sub    |
105       | Course       | C1        | top              | Used category  | c1used   |
106     And the following "questions" exist:
107       | questioncategory | qtype | name            | questiontext                  | idnumber |
108       | Used category    | essay | Test question 1 | Write about whatever you want | q1       |
109       | Used category    | essay | Test question 2 | Write about whatever you want | q2       |
110       | Subcategory      | essay | Test question 3 | Write about whatever you want | q3       |
111     When I navigate to "Question bank > Questions" in current page administration
112     And I click on "Edit" "link" in the "Test question 3" "table_row"
113     # The q1 idnumber is allowed for this question while it is in the Subcategory.
114     And I set the field "ID number" to "q1"
115     And I press "submitbutton"
116     # Javascript is required for the next step.
117     And I click on "Test question 3" "checkbox" in the "Test question 3" "table_row"
118     And I set the field "Question category" to "Used category"
119     And I press "Move to >>"
120     And I click on "Edit" "link" in the "Test question 3" "table_row"
121     # The question just moved into this category needs to have a unique idnumber, so a number is appended.
122     Then the field "ID number" matches value "q1_1"