award_badge.feature 9.42 KB
Newer Older
1
@core @core_badges @_file_upload
2
3
4
5
6
7
Feature: Award badges
  In order to award badges to users for their achievements
  As an admin
  I need to add criteria to badges in the system

  @javascript
8
  Scenario: Award profile badge
9
    Given I log in as "admin"
10
    And I navigate to "Add a new badge" node in "Site administration > Badges"
11
    And I set the following fields to these values:
12
      | Name | Profile Badge |
13
14
15
      | Description | Test badge description |
      | issuername | Test Badge Site |
      | issuercontact | testuser@test-badge-site.com |
16
    And I upload "badges/tests/behat/badge.png" file to "Image" filemanager
17
    And I press "Create badge"
18
19
20
21
    And I set the field "type" to "Profile completion"
    And I set the field "First name" to "1"
    And I set the field "Email address" to "1"
    And I set the field "Phone" to "1"
22
23
24
25
26
    When I press "Save"
    Then I should see "Profile completion"
    And I should see "First name"
    And I should see "Email address"
    And I should not see "Criteria for this badge have not been set up yet."
27
28
29
30
31
    And I press "Enable access"
    And I press "Continue"
    And I expand "My profile settings" node
    And I follow "Edit profile"
    And I expand all fieldsets
32
    And I set the field "Phone" to "123456789"
33
34
35
36
    And I press "Update profile"
    And I follow "My badges"
    Then I should see "Profile Badge"
    And I should not see "There are no badges available."
37
38

  @javascript
39
  Scenario: Award site badge
40
    Given the following "users" exist:
41
42
43
      | username | firstname | lastname | email |
      | teacher | teacher | 1 | teacher1@asd.com |
      | student | student | 1 | student1@asd.com |
44
    And I log in as "admin"
45
    And I navigate to "Add a new badge" node in "Site administration > Badges"
46
    And I set the following fields to these values:
47
48
49
      | Name | Site Badge |
      | Description | Site badge description |
      | issuername | Tester of site badge |
50
    And I upload "badges/tests/behat/badge.png" file to "Image" filemanager
51
    And I press "Create badge"
52
53
    And I set the field "type" to "Manual issue by role"
    And I set the field "Teacher" to "1"
54
55
56
    And I press "Save"
    And I press "Enable access"
    And I press "Continue"
57
58
    And I follow "Recipients (0)"
    And I press "Award badge"
59
    And I set the field "potentialrecipients[]" to "teacher 1 (teacher1@asd.com)"
60
    And I press "Award badge"
61
    And I set the field "potentialrecipients[]" to "student 1 (student1@asd.com)"
62
63
64
65
66
67
68
69
    And I press "Award badge"
    When I follow "Site Badge"
    Then I should see "Recipients (2)"
    And I log out
    And I log in as "student"
    And I expand "My profile" node
    And I follow "My badges"
    Then I should see "Site Badge"
70
71
72

  @javascript
  Scenario: Award course badge
73
    Given the following "users" exist:
74
75
76
77
      | username | firstname | lastname | email |
      | teacher1 | Teacher | 1 | teacher1@asd.com |
      | student1 | Student | 1 | student1@asd.com |
      | student2 | Student | 2 | student2@asd.com |
78
    And the following "courses" exist:
79
80
      | fullname | shortname | category | groupmode |
      | Course 1 | C1 | 0 | 1 |
81
    And the following "course enrolments" exist:
82
83
84
85
86
87
88
89
      | user | course | role |
      | teacher1 | C1 | editingteacher |
      | student1 | C1 | student |
      | student2 | C1 | student |
    And I log in as "teacher1"
    And I follow "Course 1"
    And I click on "//span[text()='Badges']" "xpath_element" in the "Administration" "block"
    And I follow "Add a new badge"
90
    And I set the following fields to these values:
91
92
93
      | Name | Course Badge |
      | Description | Course badge description |
      | issuername | Tester of course badge |
94
    And I upload "badges/tests/behat/badge.png" file to "Image" filemanager
95
    And I press "Create badge"
96
97
    And I set the field "type" to "Manual issue by role"
    And I set the field "Teacher" to "1"
98
99
100
101
102
    And I press "Save"
    And I press "Enable access"
    And I press "Continue"
    And I follow "Recipients (0)"
    And I press "Award badge"
103
    And I set the field "potentialrecipients[]" to "Student 2 (student2@asd.com)"
104
    And I press "Award badge"
105
    And I set the field "potentialrecipients[]" to "Student 1 (student1@asd.com)"
106
107
108
109
110
111
112
113
    When I press "Award badge"
    And I follow "Course Badge"
    Then I should see "Recipients (2)"
    And I log out
    And I log in as "student1"
    And I follow "Course 1"
    And I expand "My profile" node
    And I follow "My badges"
114
115
116
117
    Then I should see "Course Badge"

  @javascript
  Scenario: Award badge on activity completion
118
    Given the following "courses" exist:
119
120
      | fullname | shortname | category |
      | Course 1 | C1 | 0 |
121
    And the following "users" exist:
122
123
124
      | username | firstname | lastname | email |
      | teacher1 | Teacher | Frist | teacher1@asd.com |
      | student1 | Student | First | student1@asd.com |
125
    And the following "course enrolments" exist:
126
127
128
129
130
131
132
133
134
      | user | course | role |
      | teacher1 | C1 | editingteacher |
      | student1 | C1 | student |
    And I log in as "admin"
    And I set the following administration settings values:
      | Enable completion tracking | 1 |
    And I follow "Home"
    And I follow "Course 1"
    And I follow "Edit settings"
135
    And I set the following fields to these values:
136
137
138
139
140
141
142
143
144
145
146
      | Enable completion tracking | Yes |
    And I press "Save changes"
    And I turn editing mode on
    And I add a "Assignment" to section "1" and I fill the form with:
      | Assignment name | Test assignment name |
      | Description | Submit your online text |
    And I log out
    And I log in as "teacher1"
    And I follow "Course 1"
    And I click on "//span[text()='Badges']" "xpath_element" in the "Administration" "block"
    And I follow "Add a new badge"
147
    And I set the following fields to these values:
148
149
150
      | Name | Course Badge |
      | Description | Course badge description |
      | issuername | Tester of course badge |
151
    And I upload "badges/tests/behat/badge.png" file to "Image" filemanager
152
    And I press "Create badge"
153
154
    And I set the field "type" to "Activity completion"
    And I set the field "Test assignment name" to "1"
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
    And I press "Save"
    And I press "Enable access"
    When I press "Continue"
    And I log out
    And I log in as "student1"
    And I follow "Course 1"
    And I expand "My profile" node
    And I follow "My badges"
    Then I should see "There are no badges available."
    And I follow "Home"
    And I follow "Course 1"
    And I press "Mark as complete: Test assignment name"
    And I expand "My profile" node
    And I follow "My badges"
    Then I should see "Course Badge"

  @javascript
  Scenario: Award badge on course completion
173
    Given the following "courses" exist:
174
175
      | fullname | shortname | category |
      | Course 1 | C1 | 0 |
176
    And the following "users" exist:
177
178
179
      | username | firstname | lastname | email |
      | teacher1 | Teacher | Frist | teacher1@asd.com |
      | student1 | Student | First | student1@asd.com |
180
    And the following "course enrolments" exist:
181
182
183
184
185
186
187
188
189
      | user | course | role |
      | teacher1 | C1 | editingteacher |
      | student1 | C1 | student |
    And I log in as "admin"
    And I set the following administration settings values:
      | Enable completion tracking | 1 |
    And I follow "Home"
    And I follow "Course 1"
    And I follow "Edit settings"
190
    And I set the following fields to these values:
191
192
193
194
195
196
197
198
      | Enable completion tracking | Yes |
    And I press "Save changes"
    And I turn editing mode on
    And I add a "Assignment" to section "1" and I fill the form with:
      | Assignment name | Test assignment name |
      | Description | Submit your online text |
      | assignsubmission_onlinetext_enabled | 1 |
    And I follow "Course completion"
199
    And I set the field "id_overall_aggregation" to "2"
200
    And I click on "Condition: Activity completion" "link"
201
    And I set the field "Assign - Test assignment name" to "1"
202
203
204
205
206
207
    And I press "Save changes"
    And I log out
    And I log in as "teacher1"
    And I follow "Course 1"
    And I click on "//span[text()='Badges']" "xpath_element" in the "Administration" "block"
    And I follow "Add a new badge"
208
    And I set the following fields to these values:
209
210
211
      | Name | Course Badge |
      | Description | Course badge description |
      | issuername | Tester of course badge |
212
    And I upload "badges/tests/behat/badge.png" file to "Image" filemanager
213
    And I press "Create badge"
214
    And I set the field "type" to "Course completion"
215
    And I set the field with xpath "//fieldset/input[1]" to "0"
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
    And I press "Save"
    And I press "Enable access"
    When I press "Continue"
    And I log out
    And I log in as "student1"
    And I follow "Course 1"
    And I expand "My profile" node
    And I follow "My badges"
    Then I should see "There are no badges available."
    And I follow "Home"
    And I follow "Course 1"
    And I press "Mark as complete: Test assignment name"
    And I log out
    And I log in as "admin"
    # We can't wait for cron to happen, so the admin manually triggers it.
    And I trigger cron
    # The admin needs to trigger cron twice to see the completion status as completed.
233
234
    # We wait more than 1 minute because of the next cron run scheduled time.
    And I wait "61" seconds
235
236
237
238
239
240
241
    And I trigger cron
    # Finally the admin goes back to homepage to continue the user story.
    And I am on homepage
    And I log out
    And I log in as "student1"
    And I expand "My profile" node
    And I follow "My badges"
242
    Then I should see "Course Badge"