MDL-52989 mod_lesson: Fix cluster_jump returning a cluster page id.
[moodle.git] / mod / lesson / tests / behat / lesson_exit_enter_clusters.feature
1 @mod @mod_lesson
2 Feature: In a lesson activity, students can exit and re-enter
3   the activity when it consists ony of cluster pages.
4   As a student
5   I need to exit and re-enter a lesson out and into clusters.
7   Background:
8     Given the following "users" exist:
9       | username | firstname | lastname | email |
10       | teacher1 | Teacher | 1 | teacher1@example.com |
11       | student1 | Student | 1 | student1@example.com |
12     And the following "courses" exist:
13       | fullname | shortname | category |
14       | Course 1 | C1 | 0 |
15     And the following "course enrolments" exist:
16       | user | course | role |
17       | teacher1 | C1 | editingteacher |
18       | student1 | C1 | student |
19     And I log in as "teacher1"
20     And I am on "Course 1" course homepage with editing mode on
21     And I add a "Lesson" to section "1" and I fill the form with:
22       | Name | Lesson with cluster |
23       | Description | Cluster lesson description |
24     And I follow "Lesson with cluster"
25     And I follow "Add a content page"
26     And I set the following fields to these values:
27       | Page title | First page name |
28       | Page contents | First page contents |
29       | id_answer_editor_0 | Next page |
30       | id_jumpto_0 | Next page |
31     And I press "Save page"
32     And I follow "Expanded"
33     And I click on "Add a cluster" "link" in the "//div[contains(concat(' ', normalize-space(@class), ' '), ' addlinks ')][2]" "xpath_element"
34     And I follow "Update page: Cluster"
35     And I set the following fields to these values:
36       | Page title | C Cluster |
37       | Page contents | C Cluster |
38       | Jump | Unseen question within a cluster |
39     And I press "Save page"
40     And I click on "Add a cluster" "link" in the "//div[contains(concat(' ', normalize-space(@class), ' '), ' addlinks ')][2]" "xpath_element"
41     And I follow "Update page: Cluster"
42     And I set the following fields to these values:
43       | Page title | B Cluster |
44       | Page contents | B Cluster |
45       | Jump | Unseen question within a cluster |
46     And I press "Save page"
47     And I click on "Add a cluster" "link" in the "//div[contains(concat(' ', normalize-space(@class), ' '), ' addlinks ')][2]" "xpath_element"
48     And I follow "Update page: Cluster"
49     And I set the following fields to these values:
50       | Page title | A Cluster |
51       | Page contents | A Cluster |
52       | Jump | Unseen question within a cluster |
53     And I press "Save page"
54     And I click on "Add a question page here" "link" in the "//div[contains(concat(' ', normalize-space(@class), ' '), ' addlinks ')][3]" "xpath_element"
55     And I set the field "Select a question type" to "Multichoice"
56     And I press "Add a question page"
57     And I set the following fields to these values:
58       | Page title | Question 1 A Cluster |
59       | Page contents | Question 1 from A cluster |
60       | id_answer_editor_0 | Correct answer |
61       | id_response_editor_0 | Good |
62       | id_jumpto_0 | B Cluster |
63       | id_score_0 | 1 |
64       | id_answer_editor_1 | Incorrect answer |
65       | id_response_editor_1 | Bad |
66       | id_jumpto_1 | Unseen question within a cluster |
67       | id_score_1 | 0 |
68     And I press "Save page"
69     And I click on "Add a question page here" "link" in the "//div[contains(concat(' ', normalize-space(@class), ' '), ' addlinks ')][4]" "xpath_element"
70     And I set the field "Select a question type" to "Multichoice"
71     And I press "Add a question page"
72     And I set the following fields to these values:
73       | Page title | Question 2 A Cluster |
74       | Page contents | Question 2 from A cluster |
75       | id_answer_editor_0 | Correct answer |
76       | id_response_editor_0 | Good |
77       | id_jumpto_0 | B Cluster |
78       | id_score_0 | 1 |
79       | id_answer_editor_1 | Incorrect answer |
80       | id_response_editor_1 | Bad |
81       | id_jumpto_1 | Unseen question within a cluster |
82       | id_score_1 | 0 |
83     And I press "Save page"
84     And I click on "Add a question page here" "link" in the "//div[contains(concat(' ', normalize-space(@class), ' '), ' addlinks ')][5]" "xpath_element"
85     And I press "Add a question page"
86     And I set the following fields to these values:
87       | Page title | Question 3 A Cluster |
88       | Page contents | Question 3 from A cluster |
89       | id_answer_editor_0 | Correct answer |
90       | id_response_editor_0 | Good |
91       | id_jumpto_0 | B Cluster |
92       | id_score_0 | 1 |
93       | id_answer_editor_1 | Incorrect answer |
94       | id_response_editor_1 | Bad |
95       | id_jumpto_1 | Unseen question within a cluster |
96       | id_score_1 | 0 |
97     And I press "Save page"
98     And I click on "Add an end of cluster" "link" in the "//div[contains(concat(' ', normalize-space(@class), ' '), ' addlinks ')][6]" "xpath_element"
99     And I click on "Add a question page here" "link" in the "//div[contains(concat(' ', normalize-space(@class), ' '), ' addlinks ')][8]" "xpath_element"
100     And I set the field "Select a question type" to "Multichoice"
101     And I press "Add a question page"
102     And I set the following fields to these values:
103       | Page title | Question 1 B Cluster |
104       | Page contents | Question 1 from B cluster |
105       | id_answer_editor_0 | Correct answer |
106       | id_response_editor_0 | Good |
107       | id_jumpto_0 | C Cluster |
108       | id_score_0 | 1 |
109       | id_answer_editor_1 | Incorrect answer |
110       | id_response_editor_1 | Bad |
111       | id_jumpto_1 | Unseen question within a cluster |
112       | id_score_1 | 0 |
113     And I press "Save page"
114     And I click on "Add a question page here" "link" in the "//div[contains(concat(' ', normalize-space(@class), ' '), ' addlinks ')][9]" "xpath_element"
115     And I set the field "Select a question type" to "Multichoice"
116     And I press "Add a question page"
117     And I set the following fields to these values:
118       | Page title | Question 2 B Cluster |
119       | Page contents | Question 2 from B cluster |
120       | id_answer_editor_0 | Correct answer |
121       | id_response_editor_0 | Good |
122       | id_jumpto_0 | C Cluster |
123       | id_score_0 | 1 |
124       | id_answer_editor_1 | Incorrect answer |
125       | id_response_editor_1 | Bad |
126       | id_jumpto_1 | Unseen question within a cluster |
127       | id_score_1 | 0 |
128     And I press "Save page"
129     And I click on "Add a question page here" "link" in the "//div[contains(concat(' ', normalize-space(@class), ' '), ' addlinks ')][10]" "xpath_element"
130     And I press "Add a question page"
131     And I set the following fields to these values:
132       | Page title | Question 3 B Cluster |
133       | Page contents | Question 3 from B cluster |
134       | id_answer_editor_0 | Correct answer |
135       | id_response_editor_0 | Good |
136       | id_jumpto_0 | C Cluster |
137       | id_score_0 | 1 |
138       | id_answer_editor_1 | Incorrect answer |
139       | id_response_editor_1 | Bad |
140       | id_jumpto_1 | Unseen question within a cluster |
141       | id_score_1 | 0 |
142     And I press "Save page"
143     And I click on "Add an end of cluster" "link" in the "//div[contains(concat(' ', normalize-space(@class), ' '), ' addlinks ')][11]" "xpath_element"
144     And I click on "Add a question page here" "link" in the "//div[contains(concat(' ', normalize-space(@class), ' '), ' addlinks ')][13]" "xpath_element"
145     And I set the field "Select a question type" to "Multichoice"
146     And I press "Add a question page"
147     And I set the following fields to these values:
148       | Page title | Question 1 C Cluster |
149       | Page contents | Question 1 from C cluster |
150       | id_answer_editor_0 | Correct answer |
151       | id_response_editor_0 | Good |
152       | id_jumpto_0 | End of lesson |
153       | id_score_0 | 1 |
154       | id_answer_editor_1 | Incorrect answer |
155       | id_response_editor_1 | Bad |
156       | id_jumpto_1 | Unseen question within a cluster |
157       | id_score_1 | 0 |
158     And I press "Save page"
159     And I click on "Add a question page here" "link" in the "//div[contains(concat(' ', normalize-space(@class), ' '), ' addlinks ')][14]" "xpath_element"
160     And I set the field "Select a question type" to "Multichoice"
161     And I press "Add a question page"
162     And I set the following fields to these values:
163       | Page title | Question 2 C Cluster |
164       | Page contents | Question 2 from C cluster |
165       | id_answer_editor_0 | Correct answer |
166       | id_response_editor_0 | Good |
167       | id_jumpto_0 | End of lesson |
168       | id_score_0 | 1 |
169       | id_answer_editor_1 | Incorrect answer |
170       | id_response_editor_1 | Bad |
171       | id_jumpto_1 | Unseen question within a cluster |
172       | id_score_1 | 0 |
173     And I press "Save page"
174     And I click on "Add a question page here" "link" in the "//div[contains(concat(' ', normalize-space(@class), ' '), ' addlinks ')][15]" "xpath_element"
175     And I press "Add a question page"
176     And I set the following fields to these values:
177       | Page title | Question 3 C Cluster |
178       | Page contents | Question 3 from C cluster |
179       | id_answer_editor_0 | Correct answer |
180       | id_response_editor_0 | Good |
181       | id_jumpto_0 | End of lesson |
182       | id_score_0 | 1 |
183       | id_answer_editor_1 | Incorrect answer |
184       | id_response_editor_1 | Bad |
185       | id_jumpto_1 | Unseen question within a cluster |
186       | id_score_1 | 0 |
187     And I press "Save page"
188     And I click on "Add an end of cluster" "link" in the "//div[contains(concat(' ', normalize-space(@class), ' '), ' addlinks ')][16]" "xpath_element"
189     And I log out
191   Scenario: Accessing as student to a cluster only lesson
192     Given I log in as "student1"
193     And I am on "Course 1" course homepage
194     And I follow "Lesson with cluster"
195     And I should see "First page contents"
196     And I press "Next page"
197     And I should see "Correct answer"
198     And I set the following fields to these values:
199       | Incorrect answer | 1 |
200     And I press "Submit"
201     And I should see "Bad"
202     And I press "Continue"
203     And I set the following fields to these values:
204       | Incorrect answer | 1 |
205     And I press "Submit"
206     And I should see "Bad"
207     And I press "Continue"
208     And I set the following fields to these values:
209       | Correct answer | 1 |
210     And I press "Submit"
211     And I should see "Good"
212     And I press "Continue"
213     And I should see "Incorrect answer"
214     And I set the following fields to these values:
215       | Incorrect answer | 1 |
216     And I press "Submit"
217     And I am on "Course 1" course homepage
218     And I follow "Lesson with cluster"
219     And I should see "Do you want to start at the last page you saw?"
220     And I click on "No" "link" in the "#page-content" "css_element"
221     And I should see "First page contents"
222     And I press "Next page"
223     And I should see "Correct answer"
224     And I set the following fields to these values:
225       | Correct answer | 1 |
226     And I press "Submit"
227     And I should see "Good"
228     And I press "Continue"
229     Then I should see "Correct answer"