From 3b715af830b3bc4b0b1b2e6db579a8ab63dbac41 Mon Sep 17 00:00:00 2001 From: Michael Hawkins Date: Mon, 19 Apr 2021 17:36:27 +0800 Subject: [PATCH] MDL-71162 mod_forum: Add behat testing for completion conditions --- ...etion_condition_number_discussions.feature | 48 -------- .../behat/forum_activity_completion.feature | 115 ++++++++++++++++++ 2 files changed, 115 insertions(+), 48 deletions(-) delete mode 100644 mod/forum/tests/behat/completion_condition_number_discussions.feature create mode 100644 mod/forum/tests/behat/forum_activity_completion.feature diff --git a/mod/forum/tests/behat/completion_condition_number_discussions.feature b/mod/forum/tests/behat/completion_condition_number_discussions.feature deleted file mode 100644 index 94c84f17f0d..00000000000 --- a/mod/forum/tests/behat/completion_condition_number_discussions.feature +++ /dev/null @@ -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 diff --git a/mod/forum/tests/behat/forum_activity_completion.feature b/mod/forum/tests/behat/forum_activity_completion.feature new file mode 100644 index 00000000000..478e5354e4e --- /dev/null +++ b/mod/forum/tests/behat/forum_activity_completion.feature @@ -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"