Merge branch 'MDL-66335' of https://github.com/timhunt/moodle
[moodle.git] / mod / quiz / tests / behat / editing_add_from_question_bank.feature
1 @mod @mod_quiz @javascript
2 Feature: Adding questions to a quiz from the question bank
3   In order to re-use questions
4   As a teacher
5   I want to add questions from the question bank
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 the following "activities" exist:
18       | activity   | name   | intro                           | course | idnumber |
19       | quiz       | Quiz 1 | Quiz 1 for testing the Add menu | C1     | quiz1    |
20     And the following "question categories" exist:
21       | contextlevel | reference | name           |
22       | Course       | C1        | Test questions |
23     And the following "questions" exist:
24       | questioncategory | qtype     | name             | user     | questiontext     | idnumber |
25       | Test questions   | essay     | question 01 name | admin    | Question 01 text |          |
26       | Test questions   | essay     | question 02 name | teacher1 | Question 02 text | qidnum   |
28   Scenario: The questions can be filtered by tag
29     Given I log in as "teacher1"
30     And I am on "Course 1" course homepage
31     When I navigate to "Question bank > Questions" in current page administration
32     And I click on "Edit" "link" in the "question 01 name" "table_row"
33     And I set the following fields to these values:
34       | Tags | foo |
35     And I press "id_submitbutton"
36     And I click on "Edit" "link" in the "question 02 name" "table_row"
37     And I set the following fields to these values:
38       | Tags | bar |
39     And I press "id_submitbutton"
40     And I am on the "Quiz 1" "mod_quiz > Edit" page
41     And I open the "last" add to quiz menu
42     And I follow "from question bank"
43     Then I should see "foo" in the "question 01 name" "table_row"
44     And I should see "bar" in the "question 02 name" "table_row"
45     And I should see "qidnum" in the "question 02 name" "table_row"
46     And I set the field "Filter by tags..." to "foo"
47     And I press key "13" in the field "Filter by tags..."
48     And I should see "question 01 name" in the "categoryquestions" "table"
49     And I should not see "question 02 name" in the "categoryquestions" "table"
51   Scenario: The question modal can be paginated
52     Given the following "questions" exist:
53       | questioncategory | qtype     | name             | user     | questiontext     |
54       | Test questions   | essay     | question 03 name | teacher1 | Question 03 text |
55       | Test questions   | essay     | question 04 name | teacher1 | Question 04 text |
56       | Test questions   | essay     | question 05 name | teacher1 | Question 05 text |
57       | Test questions   | essay     | question 06 name | teacher1 | Question 06 text |
58       | Test questions   | essay     | question 07 name | teacher1 | Question 07 text |
59       | Test questions   | essay     | question 08 name | teacher1 | Question 08 text |
60       | Test questions   | essay     | question 09 name | teacher1 | Question 09 text |
61       | Test questions   | essay     | question 10 name | teacher1 | Question 10 text |
62       | Test questions   | essay     | question 11 name | teacher1 | Question 11 text |
63       | Test questions   | essay     | question 12 name | teacher1 | Question 12 text |
64       | Test questions   | essay     | question 13 name | teacher1 | Question 13 text |
65       | Test questions   | essay     | question 14 name | teacher1 | Question 14 text |
66       | Test questions   | essay     | question 15 name | teacher1 | Question 15 text |
67       | Test questions   | essay     | question 16 name | teacher1 | Question 16 text |
68       | Test questions   | essay     | question 17 name | teacher1 | Question 17 text |
69       | Test questions   | essay     | question 18 name | teacher1 | Question 18 text |
70       | Test questions   | essay     | question 19 name | teacher1 | Question 19 text |
71       | Test questions   | essay     | question 20 name | teacher1 | Question 20 text |
72       | Test questions   | essay     | question 21 name | teacher1 | Question 21 text |
73       | Test questions   | essay     | question 22 name | teacher1 | Question 22 text |
74     And I log in as "teacher1"
75     And I am on the "Quiz 1" "mod_quiz > Edit" page
76     And I open the "last" add to quiz menu
77     And I follow "from question bank"
78     And I click on "2" "link" in the ".pagination" "css_element"
79     Then I should see "question 21 name" in the "categoryquestions" "table"
80     And I should see "question 22 name" in the "categoryquestions" "table"
81     And I should not see "question 01 name" in the "categoryquestions" "table"
83   Scenario: Questions are added in the right place with multiple sections
84     Given the following "questions" exist:
85       | questioncategory | qtype | name             | questiontext     |
86       | Test questions   | essay | question 03 name | question 03 text |
87     And quiz "Quiz 1" contains the following questions:
88       | question         | page |
89       | question 01 name | 1    |
90       | question 02 name | 2    |
91     And quiz "Quiz 1" contains the following sections:
92       | heading   | firstslot | shuffle |
93       | Section 1 | 1         | 0       |
94       | Section 2 | 2         | 0       |
95     And I log in as "teacher1"
96     And I am on the "Quiz 1" "mod_quiz > Edit" page
97     When I open the "Page 1" add to quiz menu
98     And I follow "from question bank"
99     And I set the field with xpath "//tr[contains(normalize-space(.), 'question 03 name')]//input[@type='checkbox']" to "1"
100     And I click on "Add selected questions to the quiz" "button"
101     Then I should see "question 03 name" on quiz page "1"
102     And I should see "question 01 name" before "question 03 name" on the edit quiz page