a89880c5a3a29154c10c167fbe06c80099bff36b
[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       | Visible | Show |
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 "Visible" 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 "Visible" select box should not contain "Hidden from students"
53     And the "Visible" select box should not contain "Available but not displayed on course page"
54     And the "Visible" select box should contain "Show"
55     And the field "Visible" matches value "Hide"
56     And I press "Save and return to course"
57     And "Test forum name" activity should be hidden
58     And I turn editing mode off
59     And "Test forum name" activity should be hidden
60     And I log out
61     # Student should not see this activity.
62     And I log in as "student1"
63     And I follow "Course 1"
64     And I should not see "Test forum name"
65     And I log out
67   @javascript
68   Scenario: Activities can be made available and unavailable inside a hidden section
69     Given the following "users" exist:
70       | username | firstname | lastname | email |
71       | teacher1 | Teacher | 1 | teacher1@example.com |
72       | student1 | Student | 1 | student1@example.com |
73     And the following "courses" exist:
74       | fullname | shortname | format | numsections |
75       | Course 1 | C1 | topics | 2 |
76     And the following "course enrolments" exist:
77       | user | course | role |
78       | teacher1 | C1 | editingteacher |
79       | student1 | C1 | student |
80     And I log in as "teacher1"
81     And I follow "Course 1"
82     And I turn editing mode on
83     And I add the "Recent activity" block
84     And I add a "Forum" to section "2" and I fill the form with:
85       | Forum name | Test forum name |
86       | Description | Test forum description |
87       | Visible | Show |
88     When I hide section "2"
89     Then "Test forum name" activity should be hidden
90     And I open "Test forum name" actions menu
91     And "Test forum name" actions menu should not have "Show" item
92     And "Test forum name" actions menu should not have "Hide" item
93     And "Test forum name" actions menu should not have "Make unavailable" item
94     And I click on "Make available" "link" in the "Test forum name" activity
95     And "Test forum name" activity should be available but hidden from course page
96     And I open "Test forum name" actions menu
97     And "Test forum name" actions menu should not have "Show" item
98     And "Test forum name" actions menu should not have "Hide" item
99     And "Test forum name" actions menu should not have "Make available" item
100     And I click on "Make unavailable" "link" in the "Test forum name" activity
101     And "Test forum name" activity should be hidden
102     # Make sure that "Visible" dropdown in the edit menu has three options.
103     And I open "Test forum name" actions menu
104     And I click on "Edit settings" "link" in the "Test forum name" activity
105     And I expand all fieldsets
106     And the "Visible" select box should contain "Hidden from students"
107     And the "Visible" select box should contain "Available but not displayed on course page"
108     And the "Visible" select box should not contain "Hide"
109     And the "Visible" select box should not contain "Show"
110     And I set the field "Visible" to "Available but not displayed on course page"
111     And I press "Save and return to course"
112     And "Test forum name" activity should be available but hidden from course page
113     And I turn editing mode off
114     And "Test forum name" activity should be available but hidden from course page
115     And I log out
116     # Student will not see the module on the course page but can access it from other reports and blocks:
117     And I log in as "student1"
118     And I follow "Course 1"
119     And "Test forum name" activity should be hidden
120     And I click on "Test forum name" "link" in the "Recent activity" "block"
121     And I should see "Test forum name"
122     And I should see "(There are no discussion topics yet in this forum)"
123     And I log out
125   @javascript
126   Scenario: Activities can be shown and hidden inside an orphaned section
127     Given the following "users" exist:
128       | username | firstname | lastname | email |
129       | teacher1 | Teacher | 1 | teacher1@example.com |
130     And the following "courses" exist:
131       | fullname | shortname | format | numsections |
132       | Course 1 | C1 | topics | 2 |
133     And the following "course enrolments" exist:
134       | user | course | role |
135       | teacher1 | C1 | editingteacher |
136     And I log in as "teacher1"
137     And I follow "Course 1"
138     And I turn editing mode on
139     And I add a "Forum" to section "2" and I fill the form with:
140       | Forum name | Test forum name |
141       | Description | Test forum description |
142       | Visible | Show |
143     When I click on ".reduce-sections" "css_element"
144     Then "Test forum name" activity should be visible
145     And I open "Test forum name" actions menu
146     And "Test forum name" actions menu should not have "Show" item
147     And "Test forum name" actions menu should not have "Make available" item
148     And "Test forum name" actions menu should not have "Make unavailable" item
149     And I click on "Hide" "link" in the "Test forum name" activity
150     And "Test forum name" activity should be hidden
151     And I open "Test forum name" actions menu
152     And "Test forum name" actions menu should not have "Hide" item
153     And "Test forum name" actions menu should not have "Make available" item
154     And "Test forum name" actions menu should not have "Make unavailable" item
155     And I click on "Show" "link" in the "Test forum name" activity
156     And "Test forum name" activity should be visible
158   @javascript
159   Scenario: Activities can be made available but not visible on a course page
160     Given the following "users" exist:
161       | username | firstname | lastname | email |
162       | teacher1 | Teacher | 1 | teacher1@example.com |
163       | student1 | Student | 1 | student1@example.com |
164     And the following "courses" exist:
165       | fullname | shortname | format | numsections |
166       | Course 1 | C1        | topics | 2           |
167     And the following "course enrolments" exist:
168       | user | course | role |
169       | teacher1 | C1 | editingteacher |
170       | student1 | C1 | student |
171     And I log in as "admin"
172     And I set the following administration settings values:
173       | allowstealth | 1 |
174     And I log out
175     And I log in as "teacher1"
176     And I follow "Course 1"
177     And I turn editing mode on
178     And I add the "Recent activity" block
179     And I add a "Assignment" to section "2" and I fill the form with:
180       | Assignment name | Test assignment name |
181       | Description | Test assignment description |
182       | Visible | Show |
183     When I open "Test assignment name" actions menu
184     Then "Test assignment name" actions menu should not have "Show" item
185     And "Test assignment name" actions menu should have "Hide" item
186     And "Test assignment name" actions menu should not have "Make available" item
187     And "Test assignment name" actions menu should not have "Make unavailable" item
188     And I click on "Hide" "link" in the "Test assignment name" activity
189     And "Test assignment name" activity should be hidden
190     And I open "Test assignment name" actions menu
191     And "Test assignment name" actions menu should have "Show" item
192     And "Test assignment name" actions menu should not have "Hide" item
193     And "Test assignment name" actions menu should not have "Make unavailable" item
194     And I click on "Make available" "link" in the "Test assignment name" activity
195     And "Test assignment name" activity should be available but hidden from course page
196     # Make sure that "Visible" dropdown in the edit menu has three options.
197     And I open "Test assignment name" actions menu
198     And I click on "Edit settings" "link" in the "Test assignment name" activity
199     And I expand all fieldsets
200     And the "Visible" select box should contain "Show"
201     And the "Visible" select box should contain "Hidden from students"
202     And the "Visible" select box should not contain "Hide"
203     And the field "Visible" matches value "Available but not displayed on course page"
204     And I press "Save and return to course"
205     And "Test assignment name" activity should be available but hidden from course page
206     And I turn editing mode off
207     And "Test assignment name" activity should be available but hidden from course page
208     And I log out
209     # Student will not see the module on the course page but can access it from other reports and blocks:
210     And I log in as "student1"
211     And I follow "Course 1"
212     And "Test assignment name" activity should be hidden
213     And I click on "Test assignment name" "link" in the "Recent activity" "block"
214     And I should see "Test assignment name"
215     And I should see "Submission status"
216     And I log out