MDL-57961 course: change wording of module availability
[moodle.git] / course / tests / behat / activities_visibility_icons.feature
1 @core @core_course @_cross_browser
2 Feature: Toggle activities visibility from the course page
3   In order to delay activities availability
4   As a teacher
5   I need to quickly change the visibility of an activity
7   @javascript
8   Scenario: Hide/Show toggle with javascript enabled
9     Given the following "users" exist:
10       | username | firstname | lastname | email |
11       | teacher1 | Teacher | 1 | teacher1@example.com |
12       | student1 | Student | 1 | student1@example.com |
13     And the following "courses" exist:
14       | fullname | shortname | format |
15       | Course 1 | C1 | topics |
16     And the following "course enrolments" exist:
17       | user | course | role |
18       | teacher1 | C1 | editingteacher |
19       | student1 | C1 | student |
20     And I log in as "teacher1"
21     And I follow "Course 1"
22     And I turn editing mode on
23     And I add a "Forum" to section "1" and I fill the form with:
24       | Forum name | Test forum name |
25       | Description | Test forum description |
26       | Availability | Show on course page |
27     When I open "Test forum name" actions menu
28     Then "Test forum name" actions menu should not have "Show" item
29     And "Test forum name" actions menu should not have "Make available" item
30     And "Test forum name" actions menu should not have "Make unavailable" item
31     And I click on "Hide" "link" in the "Test forum name" activity
32     And "Test forum name" activity should be hidden
33     And I open "Test forum name" actions menu
34     And "Test forum name" actions menu should not have "Hide" item
35     # Stealth behaviour is not available by default:
36     And "Test forum name" actions menu should not have "Make available" item
37     And "Test forum name" actions menu should not have "Make unavailable" item
38     And I click on "Show" "link" in the "Test forum name" activity
39     And "Test forum name" activity should be visible
40     And I open "Test forum name" actions menu
41     And "Test forum name" actions menu should not have "Show" item
42     And "Test forum name" actions menu should not have "Make available" item
43     And "Test forum name" actions menu should not have "Make unavailable" item
44     And I click on "Hide" "link" in the "Test forum name" activity
45     And "Test forum name" activity should be hidden
46     And I reload the page
47     And "Test forum name" activity should be hidden
48     # Make sure that "Availability" dropdown in the edit menu has two options: Show/Hide.
49     And I open "Test forum name" actions menu
50     And I click on "Edit settings" "link" in the "Test forum name" activity
51     And I expand all fieldsets
52     And the "Availability" select box should contain "Show on course page"
53     And the "Availability" select box should not contain "Make available but not shown on course page"
54     And the field "Availability" matches value "Hide from students"
55     And I press "Save and return to course"
56     And "Test forum name" activity should be hidden
57     And I turn editing mode off
58     And "Test forum name" activity should be hidden
59     And I log out
60     # Student should not see this activity.
61     And I log in as "student1"
62     And I follow "Course 1"
63     And I should not see "Test forum name"
64     And I log out
66   @javascript
67   Scenario: Activities can be made available and unavailable inside a hidden section
68     Given the following "users" exist:
69       | username | firstname | lastname | email |
70       | teacher1 | Teacher | 1 | teacher1@example.com |
71       | student1 | Student | 1 | student1@example.com |
72     And the following "courses" exist:
73       | fullname | shortname | format | numsections |
74       | Course 1 | C1 | topics | 2 |
75     And the following "course enrolments" exist:
76       | user | course | role |
77       | teacher1 | C1 | editingteacher |
78       | student1 | C1 | student |
79     And I log in as "teacher1"
80     And I follow "Course 1"
81     And I turn editing mode on
82     And I add the "Recent activity" block
83     And I add a "Forum" to section "2" and I fill the form with:
84       | Forum name | Test forum name |
85       | Description | Test forum description |
86       | Availability | Show on course page |
87     When I hide section "2"
88     Then "Test forum name" activity should be hidden
89     And I open "Test forum name" actions menu
90     And "Test forum name" actions menu should not have "Show" item
91     And "Test forum name" actions menu should not have "Hide" item
92     And "Test forum name" actions menu should not have "Make unavailable" item
93     And I click on "Make available" "link" in the "Test forum name" activity
94     And "Test forum name" activity should be available but hidden from course page
95     And I open "Test forum name" actions menu
96     And "Test forum name" actions menu should not have "Show" item
97     And "Test forum name" actions menu should not have "Hide" item
98     And "Test forum name" actions menu should not have "Make available" item
99     And I click on "Make unavailable" "link" in the "Test forum name" activity
100     And "Test forum name" activity should be hidden
101     # Make sure that "Availability" dropdown in the edit menu has three options.
102     And I open "Test forum name" actions menu
103     And I click on "Edit settings" "link" in the "Test forum name" activity
104     And I expand all fieldsets
105     And the "Availability" select box should contain "Hide from students"
106     And the "Availability" select box should contain "Make available but not shown on course page"
107     And the "Availability" select box should not contain "Show on course page"
108     And I set the field "Availability" to "Make available but not shown on course page"
109     And I press "Save and return to course"
110     And "Test forum name" activity should be available but hidden from course page
111     And I turn editing mode off
112     And "Test forum name" activity should be available but hidden from course page
113     And I log out
114     # Student will not see the module on the course page but can access it from other reports and blocks:
115     And I log in as "student1"
116     And I follow "Course 1"
117     And "Test forum name" activity should be hidden
118     And I click on "Test forum name" "link" in the "Recent activity" "block"
119     And I should see "Test forum name"
120     And I should see "(There are no discussion topics yet in this forum)"
121     And I log out
123   @javascript
124   Scenario: Activities can be shown and hidden inside an orphaned section
125     Given the following "users" exist:
126       | username | firstname | lastname | email |
127       | teacher1 | Teacher | 1 | teacher1@example.com |
128     And the following "courses" exist:
129       | fullname | shortname | format | numsections |
130       | Course 1 | C1 | topics | 2 |
131     And the following "course enrolments" exist:
132       | user | course | role |
133       | teacher1 | C1 | editingteacher |
134     And I log in as "teacher1"
135     And I follow "Course 1"
136     And I turn editing mode on
137     And I add a "Forum" to section "2" and I fill the form with:
138       | Forum name | Test forum name |
139       | Description | Test forum description |
140       | Availability | Show on course page |
141     When I click on ".reduce-sections" "css_element"
142     Then "Test forum name" activity should be visible
143     And I open "Test forum name" actions menu
144     And "Test forum name" actions menu should not have "Show" item
145     And "Test forum name" actions menu should not have "Make available" item
146     And "Test forum name" actions menu should not have "Make unavailable" item
147     And I click on "Hide" "link" in the "Test forum name" activity
148     And "Test forum name" activity should be hidden
149     And I open "Test forum name" actions menu
150     And "Test forum name" actions menu should not have "Hide" item
151     And "Test forum name" actions menu should not have "Make available" item
152     And "Test forum name" actions menu should not have "Make unavailable" item
153     And I click on "Show" "link" in the "Test forum name" activity
154     And "Test forum name" activity should be visible
156   @javascript
157   Scenario: Activities can be made available but not visible on a course page
158     Given the following "users" exist:
159       | username | firstname | lastname | email |
160       | teacher1 | Teacher | 1 | teacher1@example.com |
161       | student1 | Student | 1 | student1@example.com |
162     And the following "courses" exist:
163       | fullname | shortname | format | numsections |
164       | Course 1 | C1        | topics | 2           |
165     And the following "course enrolments" exist:
166       | user | course | role |
167       | teacher1 | C1 | editingteacher |
168       | student1 | C1 | student |
169     And I log in as "admin"
170     And I set the following administration settings values:
171       | allowstealth | 1 |
172     And I log out
173     And I log in as "teacher1"
174     And I follow "Course 1"
175     And I turn editing mode on
176     And I add the "Recent activity" block
177     And I add a "Assignment" to section "2" and I fill the form with:
178       | Assignment name | Test assignment name |
179       | Description | Test assignment description |
180       | Availability | Show on course page |
181     When I open "Test assignment name" actions menu
182     Then "Test assignment name" actions menu should not have "Show" item
183     And "Test assignment name" actions menu should have "Hide" item
184     And "Test assignment name" actions menu should not have "Make available" item
185     And "Test assignment name" actions menu should not have "Make unavailable" item
186     And I click on "Hide" "link" in the "Test assignment name" activity
187     And "Test assignment name" activity should be hidden
188     And I open "Test assignment name" actions menu
189     And "Test assignment name" actions menu should have "Show" item
190     And "Test assignment name" actions menu should not have "Hide" item
191     And "Test assignment name" actions menu should not have "Make unavailable" item
192     And I click on "Make available" "link" in the "Test assignment name" activity
193     And "Test assignment name" activity should be available but hidden from course page
194     # Make sure that "Availability" dropdown in the edit menu has three options.
195     And I open "Test assignment name" actions menu
196     And I click on "Edit settings" "link" in the "Test assignment name" activity
197     And I expand all fieldsets
198     And the "Availability" select box should contain "Show on course page"
199     And the "Availability" select box should contain "Hide from students"
200     And the field "Availability" matches value "Make available but not shown on course page"
201     And I press "Save and return to course"
202     And "Test assignment name" activity should be available but hidden from course page
203     And I turn editing mode off
204     And "Test assignment name" activity should be available but hidden from course page
205     And I log out
206     # Student will not see the module on the course page but can access it from other reports and blocks:
207     And I log in as "student1"
208     And I follow "Course 1"
209     And "Test assignment name" activity should be hidden
210     And I click on "Test assignment name" "link" in the "Recent activity" "block"
211     And I should see "Test assignment name"
212     And I should see "Submission status"
213     And I log out