Merge branch 'MDL-64155-master' of git://github.com/vmdef/moodle
[moodle.git] / question / type / gapselect / tests / behat / basic_test.feature
1 @qtype @qtype_gapselect @_switch_window
2 Feature: Test all the basic functionality of this question type
3   In order to evaluate students responses, As a teacher I need to
4   create and preview gapselect (Select missing words) questions.
6   Background:
7     Given the following "users" exist:
8       | username | firstname | lastname | email               |
9       | teacher1 | T1        | Teacher1 | teacher1@moodle.com |
10     And the following "courses" exist:
11       | fullname | shortname | category |
12       | Course 1 | C1        | 0        |
13     And the following "course enrolments" exist:
14       | user     | course | role           |
15       | teacher1 | C1     | editingteacher |
17   @javascript
18   Scenario: Create, edit then preview a gapselect question.
19     Given I log in as "teacher1"
20     And I am on "Course 1" course homepage
21     And I navigate to "Question bank" in current page administration
23     # Create a new question.
24     And I add a "Select missing words" question filling the form with:
25       | Question name             | Select missing words 001      |
26       | Question text             | The [[1]] [[2]] on the [[3]]. |
27       | General feedback          | The cat sat on the mat.       |
28       | id_choices_0_answer       | cat                           |
29       | id_choices_1_answer       | sat                           |
30       | id_choices_2_answer       | mat                           |
31       | id_choices_3_answer       | dog                           |
32       | id_choices_4_answer       | table                         |
33       | Hint 1                    | First hint                    |
34       | Hint 2                    | Second hint                   |
35     Then I should see "Select missing words 001"
37     # Preview it.
38     When I click on "Preview" "link" in the "Select missing words 001" "table_row"
39     And I switch to "questionpreview" window
41     # Gaps (drop-down menus) do not have labels. ids and names are generated
42     # dynamically and therefore not reliable, i.e. this is an accessibility bug
43     # which need to be fixed at some stage. Meanwhile, I use the ids and increment
44     # them as appropriate (e.g.: q3_1_p1 become q4_1_p1, etc.).
46     # Set display and behaviour options
47     And I set the following fields to these values:
48       | How questions behave | Interactive with multiple tries |
49       | Marked out of        | 3                               |
50       | Marks                | Show mark and max               |
51       | Specific feedback    | Shown |
52       | Right answer         | Shown |
53     And I press "Start again with these options"
55     # Answer question correctly
56     And I set space "1" to "cat" in the select missing words question
57     And I set space "2" to "sat" in the select missing words question
58     And I set space "3" to "mat" in the select missing words question
59     And I press "Check"
60     Then I should see "Your answer is correct"
61     And I should see "The cat sat on the mat"
62     And I should see "The correct answer is: The [cat] [sat] on the [mat]."
63     And I press "Start again"
65     # Answer question partially correct twice and then correct
66     And I set space "1" to "cat" in the select missing words question
67     And I set space "2" to "sat" in the select missing words question
68     And I set space "3" to "dog" in the select missing words question
69     And I press "Check"
70     Then I should see "Your answer is partially correct"
71     And I should see "First hint"
73     When I press "Try again"
74     And I set space "3" to "table" in the select missing words question
75     And I press "Check"
76     Then I should see "Your answer is partially correct"
77     And I should see "Second hint"
79     When I press "Try again"
80     And I set space "3" to "mat" in the select missing words question
81     And I press "Check"
82     Then I should see "Your answer is correct"
83     And I should see "The cat sat on the mat"
84     And I should see "The correct answer is: The [cat] [sat] on the [mat]."
86     # Set behaviour options
87     And I set the following fields to these values:
88       | behaviour | immediatefeedback |
89     And I press "Start again with these options"
91     # Answer question correctly
92     When I press "Check"
93     Then I should see "Please put an answer in each box."
94     And I set space "1" to "cat" in the select missing words question
95     And I set space "2" to "sat" in the select missing words question
96     And I set space "3" to "mat" in the select missing words question
97     And I press "Check"
98     Then I should see "Your answer is correct"
99     And I should see "The cat sat on the mat"
100     And I should see "The correct answer is: The [cat] [sat] on the [mat]."
101     And I press "Start again"
103     # Answer question partially correct
104     And I set space "1" to "dog" in the select missing words question
105     And I set space "2" to "sat" in the select missing words question
106     And I set space "3" to "cat" in the select missing words question
107     And I press "Check"
108     Then I should see "Your answer is partially correct"
109     And I should see "You have correctly selected 1."
110     And I should see "The cat sat on the mat"
111     And I should see "The correct answer is: The [cat] [sat] on the [mat]."
112     And I press "Start again"
114     # Answer question incorrectly
115     And I set space "1" to "mat" in the select missing words question
116     And I set space "2" to "cat" in the select missing words question
117     And I set space "3" to "sat" in the select missing words question
118     And I press "Check"
119     Then I should see "Your answer is incorrect"
120     And I should see "The cat sat on the mat"
121     And I should see "The correct answer is: The [cat] [sat] on the [mat]."
122     And I switch to the main window
124     # Backup the course and restore it.
125     When I log out
126     And I log in as "admin"
127     When I backup "Course 1" course using this options:
128       | Confirmation | Filename | test_backup.mbz |
129     When I restore "test_backup.mbz" backup into a new course using this options:
130       | Schema | Course name | Course 2 |
131     Then I should see "Course 2"
132     When I navigate to "Question bank" in current page administration
133     Then I should see "Select missing words 001"
135     # Edit the copy and verify the form field contents.
136     When I click on "Edit" "link" in the "Select missing words 001" "table_row"
137     Then the following fields match these values:
138       | Question name             | Select missing words 001      |
139       | Question text             | The [[1]] [[2]] on the [[3]]. |
140       | General feedback          | The cat sat on the mat.       |
141       | id_choices_0_answer       | cat                           |
142       | id_choices_1_answer       | sat                           |
143       | id_choices_2_answer       | mat                           |
144       | id_choices_3_answer       | dog                           |
145       | id_choices_4_answer       | table                         |
146       | Hint 1                    | First hint                    |
147       | Hint 2                    | Second hint                   |
148     And I set the following fields to these values:
149       | Question name | Edited question name |
150     And I press "id_submitbutton"
151     Then I should see "Edited question name"