172 lines
8.9 KiB
Gherkin
Executable File
172 lines
8.9 KiB
Gherkin
Executable File
@addon_mod_bigbluebuttonbn @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"
|