MDL-71162 mod_forum: Add behat testing for completion conditions

This commit is contained in:
Michael Hawkins 2021-04-19 17:36:27 +08:00
parent 8970651506
commit 3b715af830
2 changed files with 115 additions and 48 deletions

View File

@ -1,48 +0,0 @@
@mod @mod_forum
Feature: Set a certain number of discussions as a completion condition for a forum
In order to ensure students are participating on forums
As a teacher
I need to set a minimum number of discussions to mark the forum activity as completed
Scenario: Set X number of discussions as a condition
Given the following "users" exist:
| username | firstname | lastname | email |
| student1 | Student | 1 | student1@example.com |
| teacher1 | Teacher | 1 | teacher1@example.com |
And the following "courses" exist:
| fullname | shortname | category |
| Course 1 | C1 | 0 |
And the following "course enrolments" exist:
| user | course | role |
| teacher1 | C1 | editingteacher |
| student1 | C1 | student |
And I log in as "teacher1"
And I am on "Course 1" course homepage with editing mode on
And I navigate to "Edit settings" in current page administration
And I set the following fields to these values:
| Enable completion tracking | Yes |
And I press "Save and display"
When I add a "Forum" to section "1" and I fill the form with:
| Forum name | Test forum name |
| Description | Test forum description |
| Completion tracking | Show activity as complete when conditions are met |
| completionview | 0 |
| completionpostsenabled | 0 |
| completiondiscussionsenabled | 1 |
| completiondiscussions | 2 |
And I log out
And I log in as "student1"
And I am on "Course 1" course homepage
And the "Start discussions: 2" completion condition of "Test forum name" is displayed as "todo"
And I add a new discussion to "Test forum name" forum with:
| Subject | Post 1 subject |
| Message | Body 1 content |
And I add a new discussion to "Test forum name" forum with:
| Subject | Post 2 subject |
| Message | Body 2 content |
And I am on "Course 1" course homepage
Then the "Start discussions: 2" completion condition of "Test forum name" is displayed as "done"
And I log out
And I log in as "teacher1"
And I am on "Course 1" course homepage
And "Student 1" user has completed "Test forum name" activity

View File

@ -0,0 +1,115 @@
@mod @mod_forum @core_completion
Feature: View activity completion in the forum activity
In order to have visibility of forum completion requirements
As a student
I need to be able to view my forum completion progress
Background:
Given the following "users" exist:
| username | firstname | lastname | email |
| student1 | Vinnie | Student1 | student1@example.com |
| teacher1 | Darrell | Teacher1 | teacher1@example.com |
And the following "courses" exist:
| fullname | shortname | category |
| Course 1 | C1 | 0 |
And the following "course enrolments" exist:
| user | course | role |
| student1 | C1 | student |
| teacher1 | C1 | editingteacher |
And I log in as "teacher1"
And I am on "Course 1" course homepage
And I navigate to "Edit settings" in current page administration
And I expand all fieldsets
And I set the following fields to these values:
| Enable completion tracking | Yes |
| Show completion conditions | Yes |
And I press "Save and display"
And the following "activity" exists:
| activity | forum |
| course | C1 |
| idnumber | mh1 |
| name | Music history |
| section | 1 |
And I am on "Course 1" course homepage
And I follow "Music history"
And I navigate to "Edit settings" in current page administration
And I expand all fieldsets
And I set the following fields to these values:
| Whole forum grading > Type | Point |
| Completion tracking | Show activity as complete when conditions are met |
| Require view | 1 |
| Require grade | Whole forum |
| completionpostsenabled | 1 |
| completionposts | 2 |
| completiondiscussionsenabled | 1 |
| completiondiscussions | 1 |
| completionrepliesenabled | 1 |
| completionreplies | 1 |
And I press "Save and display"
And I log out
Scenario: View automatic completion items as a teacher
Given I log in as "teacher1"
And I am on "Course 1" course homepage
When I follow "Music history"
Then "Music history" should have the "View" completion condition
And "Music history" should have the "Start discussions: 1" completion condition
And "Music history" should have the "Make forum posts: 2" completion condition
And "Music history" should have the "Post replies: 1" completion condition
And "Music history" should have the "Receive a grade" completion condition
@javascript
Scenario: View automatic completion items as a student
Given I log in as "student1"
And I am on "Course 1" course homepage
And I follow "Music history"
And the "View" completion condition of "Music history" is displayed as "done"
And the "Start discussions: 1" completion condition of "Music history" is displayed as "todo"
And the "Make forum posts: 2" completion condition of "Music history" is displayed as "todo"
And the "Post replies: 1" completion condition of "Music history" is displayed as "todo"
And the "Receive a grade" completion condition of "Music history" is displayed as "todo"
And I add a new discussion to "Music history" forum with:
| Subject | Fun instruments |
| Message | I like drums |
And I reply "Fun instruments" post from "Music history" forum with:
| Subject | Reply 1 to Fun instruments |
| Message | Guitar is also Fun |
And I log out
# Grade the student
And I log in as "teacher1"
And I am on "Course 1" course homepage
And I follow "Music history"
And I press "Grade users"
And I set the field "grade" to "33"
And I press "Save"
And I press "Close grader"
And I log out
# All conditions should now be completed.
When I log in as "student1"
And I am on "Course 1" course homepage
And I follow "Music history"
Then the "View" completion condition of "Music history" is displayed as "done"
And the "Start discussions: 1" completion condition of "Music history" is displayed as "done"
And the "Make forum posts: 2" completion condition of "Music history" is displayed as "done"
And the "Post replies: 1" completion condition of "Music history" is displayed as "done"
And the "Receive a grade" completion condition of "Music history" is displayed as "done"
@javascript
Scenario: Use manual completion
Given I log in as "teacher1"
And I am on "Course 1" course homepage
And I follow "Music history"
And I navigate to "Edit settings" in current page administration
And I expand all fieldsets
And I set the field "Completion tracking" to "Students can manually mark the activity as completed"
And I press "Save and display"
# Teacher view.
And the manual completion button for "Music history" should be disabled
And I log out
# Student view.
When I log in as "student1"
And I am on "Course 1" course homepage
And I follow "Music history"
Then the manual completion button of "Music history" is displayed as "Mark as done"
And I toggle the manual completion state of "Music history"
And the manual completion button of "Music history" is displayed as "Done"