PageRenderTime 26ms CodeModel.GetById 32ms RepoModel.GetById 0ms app.codeStats 0ms

/mod/lesson/tests/behat/lesson_group_override.feature

https://github.com/pauln/moodle
Gherkin Specification | 340 lines | 331 code | 9 blank | 0 comment | 9 complexity | b8396112968b4b540a320fc0adcd9f7e MD5 | raw file
  1. @mod @mod_lesson
  2. Feature: Lesson user override
  3. In order to grant a student special access to a lesson
  4. As a teacher
  5. I need to create an override for that user.
  6. Background:
  7. Given the following "users" exist:
  8. | username | firstname | lastname | email |
  9. | teacher1 | Tina | Teacher1 | teacher1@example.com |
  10. | student1 | Sam1 | Student1 | student1@example.com |
  11. | student2 | Sam2 | Student2 | student2@example.com |
  12. | student3 | Sam3 | Student3 | student3@example.com |
  13. And the following "courses" exist:
  14. | fullname | shortname | category |
  15. | Course 1 | C1 | 0 |
  16. And the following "course enrolments" exist:
  17. | user | course | role |
  18. | teacher1 | C1 | editingteacher |
  19. | student1 | C1 | student |
  20. | student2 | C1 | student |
  21. | student3 | C1 | student |
  22. And the following "groups" exist:
  23. | name | course | idnumber |
  24. | Group 1 | C1 | G1 |
  25. | Group 2 | C1 | G2 |
  26. Given the following "group members" exist:
  27. | user | group |
  28. | student1 | G1 |
  29. | student2 | G2 |
  30. | student3 | G1 |
  31. And the following "activities" exist:
  32. | activity | name | intro | groupmode | course | idnumber |
  33. | lesson | Test lesson name | Test lesson description | 1 | C1 | lesson1 |
  34. And I log in as "teacher1"
  35. And I follow "Course 1"
  36. And I turn editing mode on
  37. And I follow "Test lesson name"
  38. And I follow "Add a question page"
  39. And I set the field "Select a question type" to "True/false"
  40. And I press "Add a question page"
  41. And I set the following fields to these values:
  42. | Page title | True/false question 1 |
  43. | Page contents | Cat is an amphibian |
  44. | id_answer_editor_0 | False |
  45. | id_response_editor_0 | Correct |
  46. | id_jumpto_0 | Next page |
  47. | id_answer_editor_1 | True |
  48. | id_response_editor_1 | Wrong |
  49. | id_jumpto_1 | This page |
  50. And I press "Save page"
  51. Scenario: Add, modify then delete a group override
  52. When I follow "Test lesson name"
  53. And I navigate to "Group overrides" node in "Lesson administration"
  54. And I press "Add group override"
  55. And I set the following fields to these values:
  56. | Override group | Group 1 |
  57. | id_deadline_enabled | 1 |
  58. | deadline[day] | 1 |
  59. | deadline[month] | January |
  60. | deadline[year] | 2020 |
  61. | deadline[hour] | 08 |
  62. | deadline[minute] | 00 |
  63. And I press "Save"
  64. And I should see "Wednesday, 1 January 2020, 8:00"
  65. Then I click on "Edit" "link"
  66. And I set the following fields to these values:
  67. | deadline[year] | 2030 |
  68. And I press "Save"
  69. And I should see "Tuesday, 1 January 2030, 8:00"
  70. And I click on "Delete" "link"
  71. And I press "Continue"
  72. And I should not see "Group 1"
  73. Scenario: Duplicate a user override
  74. When I follow "Test lesson name"
  75. And I navigate to "Group overrides" node in "Lesson administration"
  76. And I press "Add group override"
  77. And I set the following fields to these values:
  78. | Override group | Group 1 |
  79. | id_deadline_enabled | 1 |
  80. | deadline[day] | 1 |
  81. | deadline[month] | January |
  82. | deadline[year] | 2020 |
  83. | deadline[hour] | 08 |
  84. | deadline[minute] | 00 |
  85. And I press "Save"
  86. And I should see "Wednesday, 1 January 2020, 8:00"
  87. Then I click on "copy" "link"
  88. And I set the following fields to these values:
  89. | Override group | Group 2 |
  90. | deadline[year] | 2030 |
  91. And I press "Save"
  92. And I should see "Tuesday, 1 January 2030, 8:00"
  93. And I should see "Group 2"
  94. Scenario: Allow a single group to have re-take the lesson
  95. When I follow "Test lesson name"
  96. And I navigate to "Edit settings" node in "Lesson administration"
  97. And I set the following fields to these values:
  98. | Re-takes allowed | 0 |
  99. And I press "Save and display"
  100. And I navigate to "Group overrides" node in "Lesson administration"
  101. And I press "Add group override"
  102. And I set the following fields to these values:
  103. | Override group | Group 1 |
  104. | Re-takes allowed | 1 |
  105. And I press "Save"
  106. And I should see "Re-takes allowed"
  107. And I log out
  108. And I log in as "student1"
  109. And I follow "Course 1"
  110. And I follow "Test lesson name"
  111. And I should see "Cat is an amphibian"
  112. And I set the following fields to these values:
  113. | False | 1 |
  114. And I press "Submit"
  115. And I press "Continue"
  116. And I should see "Congratulations - end of lesson reached"
  117. And I follow "Test lesson name"
  118. Then I should not see "You are not allowed to retake this lesson."
  119. And I should see "Cat is an amphibian"
  120. And I log out
  121. And I log in as "student2"
  122. And I follow "Course 1"
  123. And I follow "Test lesson name"
  124. And I should see "Cat is an amphibian"
  125. And I set the following fields to these values:
  126. | False | 1 |
  127. And I press "Submit"
  128. And I press "Continue"
  129. And I should see "Congratulations - end of lesson reached"
  130. And I follow "Test lesson name"
  131. And I should see "You are not allowed to retake this lesson."
  132. Scenario: Allow a single group to have a different password
  133. When I follow "Test lesson name"
  134. And I navigate to "Edit settings" node in "Lesson administration"
  135. And I set the following fields to these values:
  136. | Password protected lesson | Yes |
  137. | id_password | moodle_rules |
  138. And I press "Save and display"
  139. And I navigate to "Group overrides" node in "Lesson administration"
  140. And I press "Add group override"
  141. And I set the following fields to these values:
  142. | Override group | Group 1 |
  143. | Password protected lesson | 12345 |
  144. And I press "Save"
  145. And I should see "Password protected lesson"
  146. And I log out
  147. And I log in as "student1"
  148. And I follow "Course 1"
  149. And I follow "Test lesson name"
  150. Then I should see "Test lesson name is a password protected lesson"
  151. And I should not see "Cat is an amphibian"
  152. And I set the field "userpassword" to "moodle_rules"
  153. And I press "Continue"
  154. And I should see "Login failed, please try again..."
  155. And I should see "Test lesson name is a password protected lesson"
  156. And I set the field "userpassword" to "12345"
  157. And I press "Continue"
  158. And I should see "Cat is an amphibian"
  159. And I set the following fields to these values:
  160. | False | 1 |
  161. And I press "Submit"
  162. And I press "Continue"
  163. And I should see "Congratulations - end of lesson reached"
  164. And I log out
  165. And I log in as "student2"
  166. And I follow "Course 1"
  167. And I follow "Test lesson name"
  168. And I should see "Test lesson name is a password protected lesson"
  169. And I should not see "Cat is an amphibian"
  170. And I set the field "userpassword" to "12345"
  171. And I press "Continue"
  172. And I should see "Login failed, please try again..."
  173. And I should see "Test lesson name is a password protected lesson"
  174. And I set the field "userpassword" to "moodle_rules"
  175. And I press "Continue"
  176. Scenario: Allow a group to have a different due date
  177. When I follow "Test lesson name"
  178. And I navigate to "Edit settings" node in "Lesson administration"
  179. And I set the following fields to these values:
  180. | id_deadline_enabled | 1 |
  181. | deadline[day] | 1 |
  182. | deadline[month] | January |
  183. | deadline[year] | 2000 |
  184. | deadline[hour] | 08 |
  185. | deadline[minute] | 00 |
  186. And I press "Save and display"
  187. And I navigate to "Group overrides" node in "Lesson administration"
  188. And I press "Add group override"
  189. And I set the following fields to these values:
  190. | Override group | Group 1 |
  191. | id_deadline_enabled | 1 |
  192. | deadline[day] | 1 |
  193. | deadline[month] | January |
  194. | deadline[year] | 2020 |
  195. | deadline[hour] | 08 |
  196. | deadline[minute] | 00 |
  197. And I press "Save"
  198. And I should see "Lesson closes"
  199. And I log out
  200. And I log in as "student2"
  201. And I follow "Course 1"
  202. And I follow "Test lesson"
  203. Then I should see "This lesson closed on Saturday, 1 January 2000, 8:00"
  204. And I should not see "Cat is an amphibian"
  205. And I log out
  206. And I log in as "student1"
  207. And I follow "Course 1"
  208. And I follow "Test lesson"
  209. And I should see "Cat is an amphibian"
  210. Scenario: Allow a group to have a different start date
  211. When I follow "Test lesson name"
  212. And I navigate to "Edit settings" node in "Lesson administration"
  213. And I set the following fields to these values:
  214. | id_available_enabled | 1 |
  215. | available[day] | 1 |
  216. | available[month] | January |
  217. | available[year] | 2020 |
  218. | available[hour] | 08 |
  219. | available[minute] | 00 |
  220. And I press "Save and display"
  221. And I navigate to "Group overrides" node in "Lesson administration"
  222. And I press "Add group override"
  223. And I set the following fields to these values:
  224. | Override group | Group 1 |
  225. | id_available_enabled | 1 |
  226. | available[day] | 1 |
  227. | available[month] | January |
  228. | available[year] | 2015 |
  229. | available[hour] | 08 |
  230. | available[minute] | 00 |
  231. And I press "Save"
  232. And I should see "Lesson opens"
  233. And I log out
  234. And I log in as "student2"
  235. And I follow "Course 1"
  236. And I follow "Test lesson"
  237. Then I should see "This lesson will be open on Wednesday, 1 January 2020, 8:00"
  238. And I should not see "Cat is an amphibian"
  239. And I log out
  240. And I log in as "student1"
  241. And I follow "Course 1"
  242. And I follow "Test lesson"
  243. And I should see "Cat is an amphibian"
  244. Scenario: Allow a single group to have multiple attempts at each question
  245. When I follow "Test lesson name"
  246. And I navigate to "Edit settings" node in "Lesson administration"
  247. And I set the following fields to these values:
  248. | Re-takes allowed | 1 |
  249. And I press "Save and display"
  250. And I navigate to "Group overrides" node in "Lesson administration"
  251. And I press "Add group override"
  252. And I set the following fields to these values:
  253. | Override group | Group 1 |
  254. | Maximum number of attempts | 2 |
  255. And I press "Save"
  256. And I should see "Maximum number of attempts"
  257. And I log out
  258. And I log in as "student1"
  259. And I follow "Course 1"
  260. And I follow "Test lesson name"
  261. And I should see "Cat is an amphibian"
  262. And I set the following fields to these values:
  263. | True | 1 |
  264. And I press "Submit"
  265. And I press "Continue"
  266. And I should see "Cat is an amphibian"
  267. And I set the following fields to these values:
  268. | True | 1 |
  269. And I press "Submit"
  270. And I press "Continue"
  271. And I should see "Congratulations - end of lesson reached"
  272. And I log out
  273. And I log in as "student2"
  274. And I follow "Course 1"
  275. And I follow "Test lesson name"
  276. And I should see "Cat is an amphibian"
  277. And I set the following fields to these values:
  278. | True | 1 |
  279. And I press "Submit"
  280. Then I press "Continue"
  281. And I should see "Congratulations - end of lesson reached"
  282. Scenario: Add both a user and group override and verify that both are applied correctly
  283. When I follow "Test lesson name"
  284. And I navigate to "Edit settings" node in "Lesson administration"
  285. And I set the following fields to these values:
  286. | id_available_enabled | 1 |
  287. | available[day] | 1 |
  288. | available[month] | January |
  289. | available[year] | 2030 |
  290. | available[hour] | 08 |
  291. | available[minute] | 00 |
  292. And I press "Save and display"
  293. And I navigate to "Group overrides" node in "Lesson administration"
  294. And I press "Add group override"
  295. And I set the following fields to these values:
  296. | Override group | Group 1 |
  297. | id_available_enabled | 1 |
  298. | available[day] | 1 |
  299. | available[month] | January |
  300. | available[year] | 2020 |
  301. | available[hour] | 08 |
  302. | available[minute] | 00 |
  303. And I press "Save"
  304. And I should see "Wednesday, 1 January 2020, 8:00"
  305. And I navigate to "User overrides" node in "Lesson administration"
  306. And I press "Add user override"
  307. And I set the following fields to these values:
  308. | Override user | Student1 |
  309. | id_available_enabled | 1 |
  310. | available[day] | 1 |
  311. | available[month] | January |
  312. | available[year] | 2021 |
  313. | available[hour] | 08 |
  314. | available[minute] | 00 |
  315. And I press "Save"
  316. And I should see "Friday, 1 January 2021, 8:00"
  317. And I log out
  318. Then I log in as "student1"
  319. And I follow "Course 1"
  320. And I follow "Test lesson"
  321. And I should see "This lesson will be open on Friday, 1 January 2021, 8:00"
  322. And I log out
  323. And I log in as "student2"
  324. And I follow "Course 1"
  325. And I follow "Test lesson"
  326. And I should see "This lesson will be open on Tuesday, 1 January 2030, 8:00"
  327. And I log out
  328. And I log in as "student3"
  329. And I follow "Course 1"
  330. And I follow "Test lesson"
  331. And I should see "This lesson will be open on Wednesday, 1 January 2020, 8:00"