From 195c2af178c0722bc22c7dea6c6cb1c8e1577bae Mon Sep 17 00:00:00 2001 From: Dani Palou Date: Tue, 31 May 2022 09:27:50 +0200 Subject: [PATCH] MOBILE-4031 forum: Add behat tests to test groups --- .../tests/behat/behat_app.php | 9 +- .../mod/forum/tests/behat/basic_usage.feature | 11 + .../mod/forum/tests/behat/groups.feature | 369 ++++++++++++++++++ 3 files changed, 388 insertions(+), 1 deletion(-) create mode 100755 src/addons/mod/forum/tests/behat/groups.feature diff --git a/local_moodleappbehat/tests/behat/behat_app.php b/local_moodleappbehat/tests/behat/behat_app.php index befe86f47..0f3b92d5e 100644 --- a/local_moodleappbehat/tests/behat/behat_app.php +++ b/local_moodleappbehat/tests/behat/behat_app.php @@ -37,7 +37,14 @@ class behat_app extends behat_app_helper { protected $ionicurl = ''; /** @var array Config overrides */ - protected $appconfig = ['disableUserTours' => true]; + protected $appconfig = [ + 'disableUserTours' => true, + 'toastDurations' => [ // Extend toast durations in Behat so they don't disappear too soon. + 'short' => 7500, + 'long' => 10000, + 'sticky' => 0, + ], + ]; protected $windowsize = '360x720'; diff --git a/src/addons/mod/forum/tests/behat/basic_usage.feature b/src/addons/mod/forum/tests/behat/basic_usage.feature index c2f3553b4..6c72c18ed 100755 --- a/src/addons/mod/forum/tests/behat/basic_usage.feature +++ b/src/addons/mod/forum/tests/behat/basic_usage.feature @@ -36,6 +36,17 @@ Feature: Test basic usage of forum activity in app When I press "My happy subject" in the app Then I should find "An awesome message" in the app + Scenario: New discussion automatically opened in tablet + Given I entered the forum activity "Test forum name" on course "Course 1" as "student1" in the app + And I change viewport size to "1200x640" + + When I press "Add discussion topic" in the app + And I set the field "Subject" to "My happy subject" in the app + And I set the field "Message" to "An awesome message" in the app + And I press "Post to forum" in the app + Then I should find "My happy subject" in the app + And I should find "An awesome message" inside the split-view content in the app + Scenario: Reply a post Given I entered the forum activity "Test forum name" on course "Course 1" as "student1" in the app When I press "Add discussion topic" in the app diff --git a/src/addons/mod/forum/tests/behat/groups.feature b/src/addons/mod/forum/tests/behat/groups.feature new file mode 100755 index 000000000..1d10056eb --- /dev/null +++ b/src/addons/mod/forum/tests/behat/groups.feature @@ -0,0 +1,369 @@ +@mod @mod_forum @app @javascript +Feature: Test usage of forum activity with groups in app + + Background: + Given the following "courses" exist: + | fullname | shortname | + | Course 1 | C1 | + And the following "users" exist: + | username | + | student1 | + | teacher1 | + And the following "course enrolments" exist: + | user | course | role | + | student1 | C1 | student | + | teacher1 | C1 | editingteacher | + And the following "groups" exist: + | name | course | idnumber | + | Group 1 | C1 | G1 | + | Group 2 | C1 | G2 | + And the following "group members" exist: + | user | group | + | student1 | G1 | + And the following "activities" exist: + | activity | name | intro | course | idnumber | groupmode | assessed | scale | + | forum | Separate groups forum | Test forum | C1 | forum | 1 | 1 | 1 | + | forum | Visible groups forum | Test forum | C1 | forum2 | 2 | 1 | 1 | + And the following "mod_forum > discussions" exist: + | forum | name | subject | message | group | + | forum | Disc sep G1 | Disc sep G1 | Disc sep G1 content | G1 | + | forum | Disc sep G2 | Disc sep G2 | Disc sep G2 content | G2 | + | forum | Disc sep ALL | Disc sep ALL | Disc sep ALL content | All participants | + | forum2 | Disc vis G1 | Disc vis G1 | Disc vis G1 content | G1 | + | forum2 | Disc vis G2 | Disc vis G2 | Disc vis G2 content | G2 | + | forum2 | Disc vis ALL | Disc vis ALL | Disc vis ALL content | All participants | + + Scenario: Student can only see the right groups + Given I entered the forum activity "Separate groups forum" on course "Course 1" as "student1" in the app + Then I should find "Disc sep G1" in the app + And I should find "Disc sep ALL" in the app + But I should not find "Disc sep G2" in the app + + When I press "Separate groups" in the app + Then I should find "Group 1" in the app + But I should not find "All participants" in the app + And I should not find "Group 2" in the app + + When I press "Group 1" in the app + And I press the back button in the app + And I press "Visible groups forum" in the app + And I press "Visible groups" in the app + Then I should find "All participants" in the app + And I should find "Group 1" in the app + And I should find "Group 2" in the app + + When I press "All participants" in the app + Then I should find "Disc vis G1" in the app + And I should find "Disc vis ALL" in the app + And I should find "Disc vis G2" in the app + + When I press "Visible groups" in the app + And I press "Group 1" in the app + Then I should find "Disc vis G1" in the app + And I should find "Disc vis ALL" in the app + But I should not find "Disc vis G2" in the app + + Scenario: Teacher can see all groups + Given I entered the forum activity "Separate groups forum" on course "Course 1" as "teacher1" in the app + When I press "Separate groups" in the app + Then I should find "All participants" in the app + And I should find "Group 1" in the app + And I should find "Group 2" in the app + + When I press "All participants" in the app + Then I should find "Disc sep G1" in the app + And I should find "Disc sep ALL" in the app + And I should find "Disc sep G2" in the app + + When I press "Separate groups" in the app + And I press "Group 1" in the app + Then I should find "Disc sep G1" in the app + And I should find "Disc sep ALL" in the app + But I should not find "Disc sep G2" in the app + + When I press "Separate groups" in the app + And I press "Group 2" in the app + Then I should find "Disc sep G2" in the app + And I should find "Disc sep ALL" in the app + But I should not find "Disc sep G1" in the app + + When I press the back button in the app + And I press "Visible groups forum" in the app + And I press "Visible groups" in the app + Then I should find "All participants" in the app + And I should find "Group 1" in the app + And I should find "Group 2" in the app + + When I press "All participants" in the app + Then I should find "Disc vis G1" in the app + And I should find "Disc vis ALL" in the app + And I should find "Disc vis G2" in the app + + When I press "Visible groups" in the app + And I press "Group 1" in the app + Then I should find "Disc vis G1" in the app + And I should find "Disc vis ALL" in the app + But I should not find "Disc vis G2" in the app + + Scenario: Student can only add discussions in his groups + Given I entered the forum activity "Separate groups forum" on course "Course 1" as "student1" in the app + When I press "Add discussion topic" in the app + And I press "Advanced" in the app + Then I should not find "Post a copy to all groups" in the app + And I should find "Posting in group \"Group 1\"" in the app + + When I press "Group" in the app + Then I should find "Group 1" in the app + But I should not find "All participants" in the app + And I should not find "Group 2" in the app + + When I press "Group 1" in the app + And I set the field "Subject" to "My happy subject" in the app + And I set the field "Message" to "An awesome message" in the app + And I press "Post to forum" in the app + Then I should find "Your post was successfully added" in the app + And I should find "My happy subject" in the app + + When I press the back button in the app + And I press "Visible groups forum" in the app + And I press "Visible groups" in the app + And I press "All participants" in the app + Then I should not find "Add discussion topic" in the app + But I should find "You do not have permission to add a new discussion topic for all participants" in the app + + When I press "Visible groups" in the app + And I press "Group 2" in the app + Then I should not find "Add discussion topic" in the app + But I should find "Adding discussions to this forum requires group membership" in the app + + When I press "Visible groups" in the app + And I press "Group 1" in the app + And I press "Add discussion topic" in the app + And I press "Advanced" in the app + Then I should not find "Post a copy to all groups" in the app + And I should find "Posting in group \"Group 1\"" in the app + + When I press "Group" in the app + Then I should find "Group 1" in the app + But I should not find "All participants" in the app + And I should not find "Group 2" in the app + + When I press "Group 1" in the app + And I set the field "Subject" to "My happy subject" in the app + And I set the field "Message" to "An awesome message" in the app + And I press "Post to forum" in the app + Then I should find "Your post was successfully added" in the app + And I should find "My happy subject" in the app + + When I press "Visible groups" in the app + And I press "Group 2" in the app + Then I should not find "My happy subject" in the app + + When I press "Visible groups" in the app + And I press "All participants" in the app + Then I should find "My happy subject" in the app + + Scenario: Teacher can add discussion to any group + Given I entered the forum activity "Separate groups forum" on course "Course 1" as "teacher1" in the app + And I press "Separate groups" in the app + And I press "All participants" in the app + And I press "Add discussion topic" in the app + And I press "Advanced" in the app + Then I should find "Post a copy to all groups" in the app + And I should find "All participants" in the app + But I should not find "Posting in group" in the app + + When I set the field "Subject" to "My first subject" in the app + And I set the field "Message" to "An awesome message" in the app + And I press "Post to forum" in the app + Then I should find "Your post was successfully added" in the app + And I should find "My first subject" in the app + + When I press "Separate groups" in the app + And I press "Group 1" in the app + Then I should find "My first subject" in the app + + When I press "Separate groups" in the app + And I press "Group 2" in the app + Then I should find "My first subject" in the app + + When I press "Add discussion topic" in the app + And I press "Advanced" in the app + Then I should find "Post a copy to all groups" in the app + And I should find "Posting in group \"Group 2\"" in the app + + When I set the field "Subject" to "My second subject" in the app + And I set the field "Message" to "An awesome message" in the app + And I press "Post to forum" in the app + Then I should find "Your post was successfully added" in the app + And I should find "My second subject" in the app + + When I press "Separate groups" in the app + And I press "Group 1" in the app + Then I should not find "My second subject" in the app + + When I press "Add discussion topic" in the app + Then I should find "Posting in group \"Group 1\"" in the app + + When I press "Advanced" in the app + And I press "Group" in the app + And I press "Group 2" in the app + Then I should find "Posting in group \"Group 2\"" in the app + + When I set the field "Subject" to "My third subject" in the app + And I set the field "Message" to "An awesome message" in the app + And I press "Post to forum" in the app + Then I should find "Your post was successfully added" in the app + But I should not find "My third subject" in the app + + When I press "Separate groups" in the app + And I press "Group 2" in the app + Then I should find "My third subject" in the app + + When I press the back button in the app + And I press "Visible groups forum" in the app + And I press "Visible groups" in the app + And I press "All participants" in the app + And I press "Add discussion topic" in the app + And I press "Advanced" in the app + Then I should find "Post a copy to all groups" in the app + And I should find "All participants" in the app + But I should not find "Posting in group" in the app + + When I set the field "Subject" to "My first subject" in the app + And I set the field "Message" to "An awesome message" in the app + And I press "Post to forum" in the app + Then I should find "Your post was successfully added" in the app + And I should find "My first subject" in the app + + When I press "Visible groups" in the app + And I press "Group 1" in the app + Then I should find "My first subject" in the app + + When I press "Visible groups" in the app + And I press "Group 2" in the app + Then I should find "My first subject" in the app + + When I press "Add discussion topic" in the app + And I press "Advanced" in the app + Then I should find "Post a copy to all groups" in the app + And I should find "Posting in group \"Group 2\"" in the app + + When I set the field "Subject" to "My second subject" in the app + And I set the field "Message" to "An awesome message" in the app + And I press "Post to forum" in the app + Then I should find "Your post was successfully added" in the app + And I should find "My second subject" in the app + + When I press "Visible groups" in the app + And I press "Group 1" in the app + Then I should not find "My second subject" in the app + + When I press "Add discussion topic" in the app + Then I should find "Posting in group \"Group 1\"" in the app + + When I press "Advanced" in the app + And I press "Group" in the app + And I press "Group 2" in the app + Then I should find "Posting in group \"Group 2\"" in the app + + When I set the field "Subject" to "My third subject" in the app + And I set the field "Message" to "An awesome message" in the app + And I press "Post to forum" in the app + Then I should find "Your post was successfully added" in the app + But I should not find "My third subject" in the app + + When I press "Visible groups" in the app + And I press "Group 2" in the app + Then I should find "My third subject" in the app + + Scenario: Teacher can post a copy in all groups + Given I entered the forum activity "Separate groups forum" on course "Course 1" as "teacher1" in the app + And I press "Separate groups" in the app + And I press "Group 1" in the app + And I press "Add discussion topic" in the app + And I press "Advanced" in the app + Then I should find "Post a copy to all groups" in the app + And I should find "Posting in group \"Group 1\"" in the app + + When I press "Post a copy to all groups" in the app + Then I should not find "Posting in group \"Group 1\"" in the app + + When I set the field "Subject" to "My happy subject" in the app + And I set the field "Message" to "An awesome message" in the app + And I press "Post to forum" in the app + Then I should find "Your post was successfully added" in the app + And I should find "My happy subject" in the app + + When I press "Separate groups" in the app + And I press "Group 2" in the app + Then I should find "My happy subject" in the app + + When I press the back button in the app + And I press "Visible groups forum" in the app + And I press "Visible groups" in the app + And I press "Group 1" in the app + And I press "Add discussion topic" in the app + And I press "Advanced" in the app + Then I should find "Post a copy to all groups" in the app + And I should find "Posting in group \"Group 1\"" in the app + + When I press "Post a copy to all groups" in the app + Then I should not find "Posting in group \"Group 1\"" in the app + + When I set the field "Subject" to "My happy subject" in the app + And I set the field "Message" to "An awesome message" in the app + And I press "Post to forum" in the app + Then I should find "Your post was successfully added" in the app + And I should find "My happy subject" in the app + + When I press "Visible groups" in the app + And I press "Group 2" in the app + Then I should find "My happy subject" in the app + + Scenario: New discussion not opened in tablet if not visible + Given I entered the forum activity "Separate groups forum" on course "Course 1" as "teacher1" in the app + And I change viewport size to "1200x640" + + When I press "Separate groups" in the app + And I press "Group 1" in the app + And I press "Add discussion topic" in the app + And I set the field "Subject" to "My happy subject" in the app + And I set the field "Message" to "An awesome message" in the app + And I press "Advanced" in the app + And I press "Group" near "Advanced" in the app + And I press "Group 2" in the app + And I press "Post to forum" in the app + Then I should not find "My happy subject" in the app + And I should not find "An awesome message" inside the split-view content in the app + + Scenario: Prefetch + Given I entered the course "Course 1" as "student1" in the app + When I press "Course downloads" in the app + And I press "Download" within "Separate groups" "ion-item" in the app + And I press "Download" within "Visible groups" "ion-item" in the app + Then I should find "Downloaded" within "Separate groups" "ion-item" in the app + And I should find "Downloaded" within "Visible groups" "ion-item" in the app + + When I press the back button in the app + And I switch offline mode to "true" + And I press "Separate groups forum" in the app + Then I should find "Disc sep G1" in the app + And I should be able to press "Add discussion topic" in the app + + When I press "Disc sep G1" in the app + Then I should find "Disc sep G1" in the app + And I should find "Disc sep G1 content" in the app + + When I press the back button in the app + And I press the back button in the app + And I press "Visible groups forum" in the app + Then I should find "Disc vis ALL" in the app + And I should find "Disc vis G1" in the app + And I should find "Disc vis G2" in the app + And I should not be able to press "Add discussion topic" in the app + And I should find "You do not have permission to add a new discussion topic for all participants." in the app + + When I press "Visible groups" in the app + And I press "Group 1" in the app + Then I should find "There was a problem connecting to the site. Please check your connection and try again." in the app