Merge branch 'MDL-31500_master-revert-ui-changes' of git://github.com/dmonllao/moodle
[moodle.git] / mod / lesson / tests / behat / lesson_navigation.feature
1 @mod @mod_lesson
2 Feature: In a lesson activity, students can navigate through a series of pages in various ways depending upon their answers to questions
3   In order to create a lesson with conditional paths
4   As a teacher
5   I need to add pages and questions with links between them
7   Background:
8     Given the following "users" exist:
9       | username | firstname | lastname | email |
10       | teacher1 | Teacher | 1 | teacher1@asd.com |
11       | student1 | Student | 1 | student1@asd.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 follow "Course 1"
21     And I turn editing mode on
23   @javascript
24   Scenario: Student navigation with pages and questions
25     Given I add a "Lesson" to section "1" and I fill the form with:
26       | Name | Test lesson name |
27       | Description | Test lesson description |
28     And I follow "Test lesson name"
29     And I follow "Add a content page"
30     And I set the following fields to these values:
31       | Page title | First page name |
32       | Page contents | First page contents |
33       | id_answer_editor_0 | Next page |
34       | id_jumpto_0 | Next page |
35     And I press "Save page"
36     And I set the field "qtype" to "Add a content page"
37     And I set the following fields to these values:
38       | Page title | Second page name |
39       | Page contents | Second page contents |
40       | id_answer_editor_0 | Previous page |
41       | id_jumpto_0 | Previous page |
42       | id_answer_editor_1 | Next page |
43       | id_jumpto_1 | Next page |
44     And I press "Save page"
45     And I follow "Expanded"
46     And I click on "Add a question page here" "link" in the "//div[contains(concat(' ', normalize-space(@class), ' '), ' addlinks ')][3]" "xpath_element"
47     And I set the field "Select a question type" to "Numerical"
48     And I press "Add a question page"
49     And I set the following fields to these values:
50       | Page title | Hardest question ever |
51       | Page contents | 1 + 1? |
52       | id_answer_editor_0 | 2 |
53       | id_response_editor_0 | Correct answer |
54       | id_jumpto_0 | End of lesson |
55       | id_score_0 | 1 |
56       | id_answer_editor_1 | 1 |
57       | id_response_editor_1 | Incorrect answer |
58       | id_jumpto_1 | Second page name |
59       | id_score_1 | 0 |
60     And I press "Save page"
61     And I log out
62     And I log in as "student1"
63     And I follow "Course 1"
64     When I follow "Test lesson name"
65     Then I should see "First page contents"
66     And I press "Next page"
67     And I should see "Second page contents"
68     And I should not see "First page contents"
69     And I press "Previous page"
70     And I should see "First page contents"
71     And I should not see "Second page contents"
72     And I press "Next page"
73     And I should see "Second page contents"
74     And I press "Next page"
75     And I should see "1 + 1?"
76     And I set the following fields to these values:
77       | Your answer | 1 |
78     And I press "Submit"
79     And I should see "Incorrect answer"
80     And I press "Continue"
81     And I should see "Second page name"
82     And I press "Next page"
83     And I should see "1 + 1?"
84     And I set the following fields to these values:
85       | Your answer | 2 |
86     And I press "Submit"
87     And I should see "Correct answer"
88     And I should not see "Incorrect answer"
89     And I press "Continue"
90     And I should see "Congratulations - end of lesson reached"
91     And I should see "Your score is 0 (out of 1)."
93   @javascript
94   Scenario: Student reattempts a question until out of attempts
95     Given I add a "Lesson" to section "1" and I fill the form with:
96       | Name | Test lesson name |
97       | Description | Test lesson description |
98       | id_review | Yes |
99       | id_maxattempts | 3 |
100     And I follow "Test lesson name"
101     And I follow "Add a question page"
102     And I set the following fields to these values:
103       | id_qtype | True/false |
104     And I press "Add a question page"
105     And I set the following fields to these values:
106       | Page title | Test question |
107       | Page contents | Test content |
108       | id_answer_editor_0 | right |
109       | id_answer_editor_1 | wrong |
110     And I press "Save page"
111     And I log out
112     And I log in as "student1"
113     And I follow "Course 1"
114     When I follow "Test lesson name"
115     Then I should see "Test content"
116     And I set the following fields to these values:
117       | wrong | 1 |
118     And I press "Submit"
119     And I should see "You have 2 attempt(s) remaining"
120     And I press "Yes, I'd like to try again"
121     And I should see "Test content"
122     And I set the following fields to these values:
123       | wrong | 1 |
124     And I press "Submit"
125     And I should see "You have 1 attempt(s) remaining"
126     And I press "Yes, I'd like to try again"
127     And I should see "Test content"
128     And I set the following fields to these values:
129       | wrong | 1 |
130     And I press "Submit"
131     And I should see "(Maximum number of attempts reached - Moving to next page)"
132     And I press "Continue"
133     And I should see "Congratulations - end of lesson reached"