Merge branch 'MDL-43479-master' of https://github.com/jamiepratt/moodle
[moodle.git] / course / tests / behat / course_controls.feature
1 @core @core_course @_alert
2 Feature: Course activity controls works as expected
3   In order to manage my course's activities
4   As a teacher
5   I need to edit, hide, show and indent activities inside course sections
7   # The difference between these two scenario outlines is that one is with
8   # JS enabled and the other one with JS disabled, also with JS disabled we
9   # add the delete activity checking; we can not use Background sections
10   # when using Scenario Outlines because of Behat framework restrictions.
12   # We are testing:
13   # * Javascript on and off
14   # * Topics and weeks course formats
15   # * Course controls without paged mode
16   # * Course controls with paged mode in the course home page
17   # * Course controls with paged mode in a section's page
19   @javascript @_cross_browser
20   Scenario Outline: General activities course controls using topics and weeks formats, and paged mode and not paged mode works as expected
21     Given the following "users" exists:
22       | username | firstname | lastname | email |
23       | teacher1 | Teacher | 1 | teacher1@asd.com |
24     And the following "courses" exists:
25       | fullname | shortname | format | coursedisplay | numsections |
26       | Course 1 | C1 | <courseformat> | <coursedisplay> | 5 |
27     And the following "course enrolments" exists:
28       | user | course | role |
29       | teacher1 | C1 | editingteacher |
30     And I log in as "teacher1"
31     And I follow "Course 1"
32     When I follow <targetpage>
33     And I press "Turn editing on"
34     Then I should see "Turn editing off"
35     And I press "Turn editing off"
36     And "Turn editing on" "button" should exists
37     And I follow "Turn editing on"
38     And "Turn editing off" "button" should exists
39     And I follow "Turn editing off"
40     And I should see "Turn editing on"
41     And "Turn editing on" "button" should exists
42     And I turn editing mode on
43     And I click on "Actions" "link" in the "Recent activity" "block"
44     And I click on "Delete Recent activity block" "link"
45     And I press "Yes"
46     And "#section-2" "css_element" <should_see_other_sections> exists
47     And I add a "Forum" to section "1" and I fill the form with:
48       | Forum name | Test forum name 1 |
49       | Description | Test forum description 1 |
50     And I add a "Forum" to section "1" and I fill the form with:
51       | Forum name | Test forum name 2 |
52       | Description | Test forum description 2 |
53     And "#section-2" "css_element" <should_see_other_sections> exists
54     And I indent right "Test forum name 1" activity
55     And "#section-2" "css_element" <should_see_other_sections> exists
56     And I indent left "Test forum name 1" activity
57     And "#section-2" "css_element" <should_see_other_sections> exists
58     And I open "Test forum name 1" actions menu
59     And I click on "Edit settings" "link" in the "Test forum name 1" activity
60     And I should see "Updating Forum"
61     And I should see "Display description on course page"
62     And I fill the moodle form with:
63       | Forum name | Just to check that I can edit the name |
64       | Description | Just to check that I can edit the description |
65       | Display description on course page | 1 |
66     And I click on "Cancel" "button"
67     And "#section-2" "css_element" <should_see_other_sections> exists
68     And I open "Test forum name 1" actions menu
69     And I click on "Hide" "link" in the "Test forum name 1" activity
70     And "#section-2" "css_element" <should_see_other_sections> exists
71     And I close "Test forum name 1" actions menu
72     And I duplicate "Test forum name 2" activity editing the new copy with:
73       | Forum name | Edited test forum name 2 |
74     And "#section-2" "css_element" <should_see_other_sections> exists
75     And I should see "Test forum name 2"
76     And I should see "Edited test forum name 2"
77     And I hide section "1"
78     And "#section-2" "css_element" <should_see_other_sections> exists
79     And section "1" should be hidden
80     And all activities in section "1" should be hidden
81     And I show section "1"
82     And "#section-2" "css_element" <should_see_other_sections> exists
83     And section "1" should be visible
84     And I add the "Section links" block
85     And "#section-2" "css_element" <should_see_other_sections> exists
86     And I should see "1 2 3 4 5" in the "Section links" "block"
87     And I click on "2" "link" in the "Section links" "block"
88     And I <should_see_other_sections_following_block_sections_links> see "Test forum name 2"
90     Examples:
91       | courseformat | coursedisplay | targetpage              | should_see_other_sections | should_see_other_sections_following_block_sections_links |
92       | topics       | 0             | "Course 1"              | should                    | should                                                   |
93       | topics       | 1             | "Topic 1"               | should not                | should not                                               |
94       | topics       | 1             | "Course 1"              | should                    | should not                                               |
95       | weeks        | 0             | "Course 1"              | should                    | should                                                   |
96       | weeks        | 1             | "1 January - 7 January" | should not                | should not                                               |
97       | weeks        | 1             | "Course 1"              | should                    | should not                                               |
99   Scenario Outline: General activities course controls using topics and weeks formats, and paged mode and not paged mode works as expected
100     Given the following "users" exists:
101       | username | firstname | lastname | email |
102       | teacher1 | Teacher | 1 | teacher1@asd.com |
103     And the following "courses" exists:
104       | fullname | shortname | format | coursedisplay | numsections |
105       | Course 1 | C1 | <courseformat> | <coursedisplay> | 5 |
106     And the following "course enrolments" exists:
107       | user | course | role |
108       | teacher1 | C1 | editingteacher |
109     And I log in as "teacher1"
110     And I follow "Course 1"
111     When I follow <targetpage>
112     And I press "Turn editing on"
113     Then I should see "Turn editing off"
114     And I press "Turn editing off"
115     And "Turn editing on" "button" should exists
116     And I follow "Turn editing on"
117     And "Turn editing off" "button" should exists
118     And I follow "Turn editing off"
119     And I should see "Turn editing on"
120     And "Turn editing on" "button" should exists
121     And I turn editing mode on
122     And I click on "Actions" "link" in the "Recent activity" "block"
123     And I click on "Delete Recent activity block" "link"
124     And I press "Yes"
125     And "#section-2" "css_element" <should_see_other_sections> exists
126     And I add a "Forum" to section "1" and I fill the form with:
127       | Forum name | Test forum name 1 |
128       | Description | Test forum description 1 |
129     And I add a "Forum" to section "1" and I fill the form with:
130       | Forum name | Test forum name 2 |
131       | Description | Test forum description 2 |
132     And "#section-2" "css_element" <should_see_other_sections> exists
133     And I indent right "Test forum name 1" activity
134     And "#section-2" "css_element" <should_see_other_sections> exists
135     And I indent left "Test forum name 1" activity
136     And "#section-2" "css_element" <should_see_other_sections> exists
137     And I click on "Edit settings" "link" in the "Test forum name 1" activity
138     And I should see "Updating Forum"
139     And I should see "Display description on course page"
140     And I press "Save and return to course"
141     And "#section-2" "css_element" <should_see_other_sections> exists
142     And I click on "Hide" "link" in the "Test forum name 1" activity
143     And "#section-2" "css_element" <should_see_other_sections> exists
144     And I delete "Test forum name 1" activity
145     And "#section-2" "css_element" <should_see_other_sections> exists
146     And I should not see "Test forum name 1" in the "#region-main" "css_element"
147     And I duplicate "Test forum name 2" activity editing the new copy with:
148       | Forum name | Edited test forum name 2 |
149     And "#section-2" "css_element" <should_see_other_sections> exists
150     And I should see "Test forum name 2"
151     And I should see "Edited test forum name 2"
152     And I hide section "1"
153     And "#section-2" "css_element" <should_see_other_sections> exists
154     And section "1" should be hidden
155     And all activities in section "1" should be hidden
156     And I show section "1"
157     And "#section-2" "css_element" <should_see_other_sections> exists
158     And section "1" should be visible
159     And I add the "Section links" block
160     And "#section-2" "css_element" <should_see_other_sections> exists
161     And I should see "1 2 3 4 5" in the "Section links" "block"
162     And I click on "2" "link" in the "Section links" "block"
163     And I <should_see_other_sections_following_block_sections_links> see "Test forum name 2"
165     Examples:
166       | courseformat | coursedisplay | targetpage              | should_see_other_sections | should_see_other_sections_following_block_sections_links |
167       | topics       | 0             | "Course 1"              | should                    | should                                                   |
168       | topics       | 1             | "Topic 1"               | should not                | should not                                               |
169       | topics       | 1             | "Course 1"              | should                    | should not                                               |
170       | weeks        | 0             | "Course 1"              | should                    | should                                                   |
171       | weeks        | 1             | "1 January - 7 January" | should not                | should not                                               |
172       | weeks        | 1             | "Course 1"              | should                    | should not                                               |