@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"