forked from EVOgeek/Vmeda.Online
Tags have been changed to reflect the namespace in the app folder structure, rather than trying to find an equivalent in the LMS codebase
172 lines
8.9 KiB
Gherkin
Executable File
172 lines
8.9 KiB
Gherkin
Executable File
@addon_mod_bigbluebuttonbn @app @javascript @lms_from4.0
|
|
Feature: Test basic usage of BBB activity in app
|
|
In order to join a BBB meeting while using the mobile app
|
|
As a student
|
|
I need basic BBB functionality to work
|
|
|
|
Background:
|
|
Given the Moodle site is compatible with this feature
|
|
And I enable "bigbluebuttonbn" "mod" plugin
|
|
And the following "users" exist:
|
|
| username | firstname | lastname | email |
|
|
| teacher1 | Teacher | teacher | teacher1@example.com |
|
|
| student1 | Student | student | student1@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 |
|
|
|
|
Scenario: Open and closed dates
|
|
Given the following "activities" exist:
|
|
| activity | name | intro | course | idnumber | wait | openingtime | closingtime |
|
|
| bigbluebuttonbn | BBB 1 | Test BBB description | C1 | bbb1 | 0 | ## 1 January 2050 00:00 ## | 0 |
|
|
| bigbluebuttonbn | BBB 2 | Test BBB description | C1 | bbb2 | 0 | 0 | ## 1 January 2000 00:00 ## |
|
|
| bigbluebuttonbn | BBB 3 | Test BBB description | C1 | bbb3 | 0 | ## 1 January 2000 00:00 ## | ## 1 January 2050 00:00 ## |
|
|
And I entered the bigbluebuttonbn activity "BBB 1" on course "Course 1" as "student1" in the app
|
|
Then I should find "The session has not started yet." in the app
|
|
And I should find "Saturday, 1 January 2050, 12:00 AM" within "Open" "ion-item" in the app
|
|
|
|
When I press the back button in the app
|
|
And I press "BBB 2" in the app
|
|
Then I should find "The session has ended." in the app
|
|
And I should find "Saturday, 1 January 2000, 12:00 AM" within "Close" "ion-item" in the app
|
|
|
|
When I press the back button in the app
|
|
And I press "BBB 3" in the app
|
|
Then I should find "This room is ready. You can join the session now." in the app
|
|
And I should find "Saturday, 1 January 2000, 12:00 AM" within "Open" "ion-item" in the app
|
|
And I should find "Saturday, 1 January 2050, 12:00 AM" within "Close" "ion-item" in the app
|
|
|
|
Scenario: Join meeting (student)
|
|
Given the following "activities" exist:
|
|
| activity | name | intro | course | idnumber | wait |
|
|
| bigbluebuttonbn | Test BBB | Test BBB description | C1 | bbb1 | 0 |
|
|
And I entered the bigbluebuttonbn activity "Test BBB" on course "Course 1" as "student1" in the app
|
|
Then I should find "This room is ready. You can join the session now." in the app
|
|
And I should be able to press "Join session" in the app
|
|
|
|
When I press "Join session" in the app
|
|
And I wait for the BigBlueButton room to start
|
|
And I switch back to the app
|
|
Then I should find "The session is in progress." in the app
|
|
And I should find "1" near "Viewer" in the app
|
|
And I should find "0" near "Moderator" in the app
|
|
|
|
Scenario: Join meeting (moderator)
|
|
Given the following "activities" exist:
|
|
| activity | name | intro | course | idnumber | wait | moderators |
|
|
| bigbluebuttonbn | Test BBB | Test BBB description | C1 | bbb1 | 1 | role:editingteacher |
|
|
And I entered the bigbluebuttonbn activity "Test BBB" on course "Course 1" as "teacher1" in the app
|
|
Then I should find "This room is ready. You can join the session now." in the app
|
|
And I should be able to press "Join session" in the app
|
|
|
|
When I press "Join session" in the app
|
|
And I wait for the BigBlueButton room to start
|
|
And I switch back to the app
|
|
Then I should find "The session is in progress." in the app
|
|
And I should find "1" near "Moderator" in the app
|
|
And I should find "0" near "Viewer" in the app
|
|
|
|
Scenario: Wait for moderator
|
|
Given the following "activities" exist:
|
|
| activity | name | intro | course | idnumber | wait | moderators |
|
|
| bigbluebuttonbn | Test BBB | Test BBB description | C1 | bbb1 | 1 | role:editingteacher |
|
|
And I entered the bigbluebuttonbn activity "Test BBB" on course "Course 1" as "student1" in the app
|
|
Then I should find "Waiting for a moderator to join." in the app
|
|
And I should not be able to press "Join session" in the app
|
|
|
|
# Join the session as moderator in a browser.
|
|
When I press "Information" in the app
|
|
And I press "Open in browser" in the app
|
|
And I switch to the browser tab opened by the app
|
|
And I log in as "teacher1"
|
|
And I click on "Join session" "link"
|
|
And I wait for the BigBlueButton room to start
|
|
And I switch back to the app
|
|
And I press "Close" in the app
|
|
And I pull to refresh until I find "The session is in progress" in the app
|
|
Then I should find "1" near "Moderator" in the app
|
|
And I should find "0" near "Viewer" in the app
|
|
And I should be able to press "Join session" in the app
|
|
|
|
When I close all opened windows
|
|
And I press "Join session" in the app
|
|
Then the app should have opened a browser tab with url "blindsidenetworks.com"
|
|
|
|
@lms_from4.1
|
|
Scenario: Display right info based on instance type
|
|
Given the following "activities" exist:
|
|
| activity | name | course | idnumber | type |
|
|
| bigbluebuttonbn | Room & recordings | C1 | bbb1 | 0 |
|
|
| bigbluebuttonbn | Room only | C1 | bbb2 | 1 |
|
|
| bigbluebuttonbn | Recordings only | C1 | bbb3 | 2 |
|
|
And I entered the bigbluebuttonbn activity "Room & recordings" on course "Course 1" as "student1" in the app
|
|
Then I should find "This room is ready. You can join the session now." in the app
|
|
And I should be able to press "Join session" in the app
|
|
And I should find "Recordings" in the app
|
|
And I should find "There are no recordings available." in the app
|
|
|
|
When I press the back button in the app
|
|
And I press "Room only" in the app
|
|
Then I should find "This room is ready. You can join the session now." in the app
|
|
And I should be able to press "Join session" in the app
|
|
But I should not find "Recordings" in the app
|
|
|
|
When I press the back button in the app
|
|
And I press "Recordings only" in the app
|
|
Then I should find "Recordings" in the app
|
|
But I should not find "This room is ready. You can join the session now." in the app
|
|
And I should not be able to press "Join session" in the app
|
|
|
|
# Test recordings requires a BBB mock server. If you're using docker, you can run the BBB mock server with this command:
|
|
#
|
|
# docker run --name bbbmockserver -p 8001:80 moodlehq/bigbluebutton_mock:latest
|
|
#
|
|
# You also need to edit the config.php of your Moodle site to add this line:
|
|
#
|
|
# define('TEST_MOD_BIGBLUEBUTTONBN_MOCK_SERVER', 'http://bbbmockserver:8001/hash' . sha1($CFG->behat_wwwroot));
|
|
Scenario: View recordings
|
|
Given a BigBlueButton mock server is configured
|
|
And the following "activities" exist:
|
|
| activity | name | course | idnumber | type | recordings_imported |
|
|
| bigbluebuttonbn | BBB | C1 | bbb1 | 0 | 0 |
|
|
And the following "mod_bigbluebuttonbn > meeting" exists:
|
|
| activity | BBB |
|
|
And the following "mod_bigbluebuttonbn > recordings" exist:
|
|
| bigbluebuttonbn | name | description | status |
|
|
| BBB | Recording 1 | Description 1 | 3 |
|
|
| BBB | Recording 2 | Description 2 | 3 |
|
|
And I entered the bigbluebuttonbn activity "BBB" on course "Course 1" as "student1" in the app
|
|
Then I should find "Recording 1" in the app
|
|
And I should find "Recording 2" in the app
|
|
But I should not find "Description 1" in the app
|
|
And I should not find "Description 2" in the app
|
|
And I should not find "Presentation" in the app
|
|
|
|
When I press "Recording 1" in the app
|
|
Then I should find "Description 1" in the app
|
|
And I should find "Presentation" in the app
|
|
And I should find "Recording 1" within "Name" "ion-item" in the app
|
|
And I should find "Date" in the app
|
|
And I should find "3600" within "Duration" "ion-item" in the app
|
|
But I should not find "Description 2" in the app
|
|
|
|
When I press "Recording 1" in the app
|
|
Then I should not find "Description 1" in the app
|
|
|
|
When I press "Recording 2" in the app
|
|
Then I should find "Description 2" in the app
|
|
And I should find "Presentation" in the app
|
|
And I should find "Recording 2" within "Name" "ion-item" in the app
|
|
But I should not find "Description 1" in the app
|
|
|
|
# Test play button, but the mock server doesn't support viewing recordings.
|
|
When I press "Presentation" in the app
|
|
And I press "OK" in the app
|
|
And I switch to the browser tab opened by the app
|
|
And I log in as "student1"
|
|
Then I should see "The recording URL is invalid"
|