bigbluebutton_rails 0.0.6 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +1 -1
- data/CHANGELOG.rdoc +8 -0
- data/Gemfile +13 -7
- data/Gemfile.lock +112 -86
- data/README.rdoc +26 -80
- data/Rakefile +2 -1
- data/TODO_08 +13 -0
- data/app/controllers/bigbluebutton/rooms_controller.rb +9 -9
- data/app/controllers/bigbluebutton/servers_controller.rb +1 -1
- data/app/models/bigbluebutton_room.rb +16 -14
- data/app/models/bigbluebutton_server.rb +1 -1
- data/app/views/bigbluebutton/rooms/_form.html.erb +1 -1
- data/app/views/bigbluebutton/rooms/external.html.erb +3 -3
- data/app/views/bigbluebutton/rooms/invite.html.erb +3 -3
- data/app/views/bigbluebutton/servers/_form.html.erb +1 -1
- data/bigbluebutton_rails.gemspec +2 -2
- data/lib/bigbluebutton_rails/version.rb +1 -1
- data/spec/controllers/bigbluebutton/rooms_controller_spec.rb +42 -37
- data/spec/factories/bigbluebutton_room.rb +3 -1
- data/spec/models/bigbluebutton_room_db_spec.rb +34 -0
- data/spec/models/bigbluebutton_room_spec.rb +452 -457
- data/spec/models/bigbluebutton_server_db_spec.rb +14 -0
- data/spec/models/bigbluebutton_server_spec.rb +162 -176
- data/spec/rails_app/.gitignore +2 -1
- data/spec/rails_app/db/seeds.rb +16 -4
- data/spec/rails_app/features/activity_monitor_servers.feature +53 -0
- data/spec/rails_app/features/config.yml.example +13 -0
- data/spec/rails_app/features/create_rooms.feature +17 -0
- data/spec/rails_app/features/create_servers.feature +17 -0
- data/spec/rails_app/features/destroy_rooms.feature +12 -0
- data/spec/rails_app/features/destroy_servers.feature +11 -0
- data/spec/rails_app/features/edit_rooms.feature +26 -0
- data/spec/rails_app/features/edit_servers.feature +24 -0
- data/spec/rails_app/features/join_external_rooms.feature +61 -0
- data/spec/rails_app/features/join_mobile.feature +10 -0
- data/spec/rails_app/features/join_rooms.feature +117 -0
- data/spec/rails_app/features/list_and_show_rooms.feature +18 -0
- data/spec/rails_app/features/list_and_show_servers.feature +16 -0
- data/spec/rails_app/features/step_definitions/activity_monitor_servers_step.rb +102 -0
- data/spec/rails_app/features/step_definitions/common_steps.rb +99 -3
- data/spec/rails_app/features/step_definitions/create_rooms_steps.rb +38 -0
- data/spec/rails_app/features/step_definitions/{bigbluebutton_server_steps.rb → create_servers_steps.rb} +11 -6
- data/spec/rails_app/features/step_definitions/destroy_rooms_steps.rb +17 -0
- data/spec/rails_app/features/step_definitions/destroy_servers_steps.rb +15 -0
- data/spec/rails_app/features/step_definitions/edit_rooms_steps.rb +15 -0
- data/spec/rails_app/features/step_definitions/edit_servers_steps.rb +15 -0
- data/spec/rails_app/features/step_definitions/join_mobile_steps.rb +5 -0
- data/spec/rails_app/features/step_definitions/join_rooms_steps.rb +49 -0
- data/spec/rails_app/features/step_definitions/list_and_show_rooms_steps.rb +11 -0
- data/spec/rails_app/features/step_definitions/list_and_show_servers_steps.rb +11 -0
- data/spec/rails_app/features/support/configurations.rb +34 -0
- data/spec/rails_app/features/support/content.rb +27 -7
- data/spec/rails_app/features/support/env_custom.rb +21 -0
- data/spec/rails_app/features/support/factories/bigbluebutton_server_integration.rb +5 -0
- data/spec/rails_app/features/support/hooks.rb +14 -0
- data/spec/rails_app/features/support/locales.rb +18 -0
- data/spec/rails_app/features/support/paths.rb +25 -10
- data/spec/rails_app/features/support/selectors.rb +26 -0
- data/spec/rails_app/features/support/templates.rb +241 -0
- metadata +43 -20
- data/spec/factories/integration/bigbluebutton_server_integration.rb +0 -8
- data/spec/integration_conf.yml.example +0 -5
- data/spec/rails_app/features/join_external_bigbluebutton_rooms.feature +0 -19
- data/spec/rails_app/features/manage_bigbluebutton_rooms.feature +0 -9
- data/spec/rails_app/features/manage_bigbluebutton_servers.feature +0 -9
- data/spec/rails_app/features/step_definitions/bigbluebutton_room_steps.rb +0 -64
- data/spec/rails_app/features/support/env_gem.rb +0 -10
- data/spec/rails_app/features/support/forms.rb +0 -12
- data/spec/support/integration/integration_conf.rb +0 -16
@@ -0,0 +1,13 @@
|
|
1
|
+
# maximum wait until the bot starts (secs)
|
2
|
+
timeout_bot_start: 60
|
3
|
+
|
4
|
+
servers:
|
5
|
+
bbb-dev-07:
|
6
|
+
salt: 'your-salt'
|
7
|
+
url: 'http://your-server/bigbluebutton/api'
|
8
|
+
version: '0.7'
|
9
|
+
test-install-08:
|
10
|
+
salt: '8cd8ef52e8e101574e400365b55e11a6'
|
11
|
+
url: 'http://test-install.blindsidenetworks.com/bigbluebutton/api'
|
12
|
+
version: '0.8'
|
13
|
+
mobile_salt: '03b07' # needed for >= 0.8
|
@@ -0,0 +1,17 @@
|
|
1
|
+
Feature: Create webconference rooms
|
2
|
+
In order to held webconferences
|
3
|
+
One needs to create and configure webconference rooms
|
4
|
+
|
5
|
+
Scenario: Register a new BigBlueButton room
|
6
|
+
Given a real server
|
7
|
+
When the user goes to the new room page
|
8
|
+
And registers a new room
|
9
|
+
Then he should see the information about this room
|
10
|
+
|
11
|
+
Scenario: Try to register a new BigBlueButton room with errors
|
12
|
+
Given a real server
|
13
|
+
When the user goes to the new room page
|
14
|
+
And registers a new room with wrong parameters
|
15
|
+
Then he should be at the create room URL
|
16
|
+
And see the new room page
|
17
|
+
And see 2 errors in the field "bigbluebutton_room[name]"
|
@@ -0,0 +1,17 @@
|
|
1
|
+
Feature: Create webconference servers
|
2
|
+
In order to held webconferences
|
3
|
+
One needs to create and configure webconference servers
|
4
|
+
|
5
|
+
Scenario: Register a new BigBlueButton server
|
6
|
+
Given an anonymous user
|
7
|
+
When he goes to the new server page
|
8
|
+
And registers a new server
|
9
|
+
Then he should see the information about this server
|
10
|
+
|
11
|
+
Scenario: Try to register a BigBlueButton server with errors
|
12
|
+
Given an anonymous user
|
13
|
+
When he goes to the new server page
|
14
|
+
And registers a new server with a wrong URL
|
15
|
+
Then he should be at the create server URL
|
16
|
+
And see the new server page
|
17
|
+
And see 1 error in the field "bigbluebutton_server[url]"
|
@@ -0,0 +1,12 @@
|
|
1
|
+
Feature: Destroy webconference rooms
|
2
|
+
To remove a webconference room from a server
|
3
|
+
One needs to destroy its record
|
4
|
+
|
5
|
+
Scenario: Destroy a stored BigBlueButton server
|
6
|
+
Given an anonymous user
|
7
|
+
And a real server
|
8
|
+
And a room in this server
|
9
|
+
When he goes to the rooms index page
|
10
|
+
And clicks in the link to remove the first room
|
11
|
+
Then he should be at the rooms index URL
|
12
|
+
And the removed room should not be listed
|
@@ -0,0 +1,11 @@
|
|
1
|
+
Feature: Destroy webconference servers
|
2
|
+
To remove a webconference server from the list
|
3
|
+
One needs to destroy its record
|
4
|
+
|
5
|
+
Scenario: Destroy a stored BigBlueButton server
|
6
|
+
Given an anonymous user
|
7
|
+
And a real server
|
8
|
+
When he goes to the servers index page
|
9
|
+
And clicks in the link to remove the first server
|
10
|
+
Then he should be at the servers index URL
|
11
|
+
And the removed server should not be listed
|
@@ -0,0 +1,26 @@
|
|
1
|
+
Feature: Edit webconference rooms
|
2
|
+
To change the information of a webconference rooms
|
3
|
+
One needs to be able to edit and update the room
|
4
|
+
|
5
|
+
Scenario: Edit data in a BigBlueButton room
|
6
|
+
Given an anonymous user
|
7
|
+
And a real server
|
8
|
+
And a room in this server
|
9
|
+
When he goes to the edit room page
|
10
|
+
And change the room name to "Anything different"
|
11
|
+
And click in the button to save the room
|
12
|
+
Then he should be at the show room URL
|
13
|
+
And the room name should be "Anything different"
|
14
|
+
|
15
|
+
Scenario: Try to edit data in a BigBlueButton room with incorrect values
|
16
|
+
Given an anonymous user
|
17
|
+
And a real server
|
18
|
+
And a room in this server
|
19
|
+
When he goes to the edit room page
|
20
|
+
And change the room name to ""
|
21
|
+
And click in the button to save the room
|
22
|
+
Then he should be at the update room URL
|
23
|
+
And see the edit room page
|
24
|
+
And see 2 errors in the field "bigbluebutton_room[name]"
|
25
|
+
And the room name should NOT be "Anything different"
|
26
|
+
|
@@ -0,0 +1,24 @@
|
|
1
|
+
Feature: Edit webconference servers
|
2
|
+
To change the information of a webconference server
|
3
|
+
One needs to be able to edit and update the server
|
4
|
+
|
5
|
+
Scenario: Edit data in a BigBlueButton server
|
6
|
+
Given an anonymous user
|
7
|
+
And a real server
|
8
|
+
When he goes to the edit server page
|
9
|
+
And change the server URL to "http://test.com/bigbluebutton/api"
|
10
|
+
And click in the button to save the server
|
11
|
+
Then he should be at the show server URL
|
12
|
+
And the server URL should be "http://test.com/bigbluebutton/api"
|
13
|
+
|
14
|
+
Scenario: Try to edit data in a BigBlueButton server with incorrect values
|
15
|
+
Given an anonymous user
|
16
|
+
And a real server
|
17
|
+
When he goes to the edit server page
|
18
|
+
And change the server URL to "http://test.com/"
|
19
|
+
And click in the button to save the server
|
20
|
+
Then he should be at the update server URL
|
21
|
+
And see the edit server page
|
22
|
+
And see 1 errors in the field "bigbluebutton_server[url]"
|
23
|
+
And the server URL should NOT be "http://test.com/"
|
24
|
+
|
@@ -0,0 +1,61 @@
|
|
1
|
+
Feature: Join external webconference rooms
|
2
|
+
In order to join webconferences that were created from another application
|
3
|
+
One needs to enter his name and a password, that will define his role
|
4
|
+
|
5
|
+
@mechanize
|
6
|
+
Scenario: Joining an external room as moderator (a room that is not in the database)
|
7
|
+
Given an anonymous user
|
8
|
+
And a real server
|
9
|
+
And an external room in this server
|
10
|
+
When the user goes to the join external room page
|
11
|
+
And enters his name and the moderator password
|
12
|
+
And clicks in the button "Submit"
|
13
|
+
Then he should join the conference room
|
14
|
+
|
15
|
+
Scenario: Joining an external room that is NOT running as attendee
|
16
|
+
Given an anonymous user
|
17
|
+
And a real server
|
18
|
+
And an external room in this server
|
19
|
+
When the user goes to the join external room page
|
20
|
+
And enters his name and the attendee password
|
21
|
+
And clicks in the button "Submit"
|
22
|
+
Then he should NOT join the conference room
|
23
|
+
And should see an error message with the message "The meeting is not running"
|
24
|
+
|
25
|
+
@mechanize @need-bot
|
26
|
+
Scenario: Joining an external room that is running as attendee
|
27
|
+
Given an anonymous user
|
28
|
+
And a real server
|
29
|
+
And an external room in this server
|
30
|
+
And a meeting is running in this room
|
31
|
+
When the user goes to the join external room page
|
32
|
+
And enters his name and the attendee password
|
33
|
+
And clicks in the button "Submit"
|
34
|
+
Then he should join the conference room
|
35
|
+
|
36
|
+
Scenario: Joining an external room without entering a user name
|
37
|
+
Given an anonymous user
|
38
|
+
And a real server
|
39
|
+
And an external room in this server
|
40
|
+
When the user goes to the join external room page
|
41
|
+
And enters only the moderator password
|
42
|
+
And clicks in the button "Submit"
|
43
|
+
Then he should NOT join the conference room
|
44
|
+
And should see an error message with the message "Authentication failure"
|
45
|
+
|
46
|
+
Scenario: Joining an external room without entering a password (wrong password)
|
47
|
+
Given an anonymous user
|
48
|
+
And a real server
|
49
|
+
And an external room in this server
|
50
|
+
When the user goes to the join external room page
|
51
|
+
And enters only the user name
|
52
|
+
And clicks in the button "Submit"
|
53
|
+
Then he should NOT join the conference room
|
54
|
+
And should see an error message with the message "Authentication failure"
|
55
|
+
|
56
|
+
Scenario: Uses the current user's name as the default name to join an external room
|
57
|
+
Given a user named "test user"
|
58
|
+
And a real server
|
59
|
+
And an external room in this server
|
60
|
+
When the user goes to the join external room page
|
61
|
+
Then he should see his name in the user name input
|
@@ -0,0 +1,10 @@
|
|
1
|
+
Feature: Join a webconference using a mobile device
|
2
|
+
In order to participate in webconference using a mobile device
|
3
|
+
One needs to access the page with the mobile link and QR code
|
4
|
+
|
5
|
+
Scenario: Accessing the mobile join page
|
6
|
+
Given a user named "test user"
|
7
|
+
And a real server
|
8
|
+
And a public room in this server
|
9
|
+
When the user goes to the mobile join page
|
10
|
+
Then he should see the QR code and a link to join using a mobile device
|
@@ -0,0 +1,117 @@
|
|
1
|
+
Feature: Join webconference rooms
|
2
|
+
In order to participate in webconferences
|
3
|
+
One needs to join webconference rooms
|
4
|
+
|
5
|
+
# These scenarios are based in the permission defined in the default
|
6
|
+
# bigbluebutton_role method:
|
7
|
+
# if room.private or bigbluebutton_user.nil?
|
8
|
+
# :password # ask for a password
|
9
|
+
# else
|
10
|
+
# :moderator
|
11
|
+
# end
|
12
|
+
|
13
|
+
# First we check the behaviour of BigbluebuttonRoom#join and the redirects to
|
14
|
+
# BigbluebuttonRoom#invite
|
15
|
+
|
16
|
+
@mechanize
|
17
|
+
Scenario: Joining a public room
|
18
|
+
Given a user named "test user"
|
19
|
+
And a real server
|
20
|
+
And a public room in this server
|
21
|
+
When the user goes to the join room page
|
22
|
+
Then he should join the conference room
|
23
|
+
|
24
|
+
Scenario: Joining a public room as an anonymous user
|
25
|
+
Given an anonymous user
|
26
|
+
And a real server
|
27
|
+
And a public room in this server
|
28
|
+
When the user goes to the join room page
|
29
|
+
Then he should be at the invite room URL
|
30
|
+
And the password field was pre-filled with the attendee password
|
31
|
+
|
32
|
+
Scenario: Joining a private room requires a password
|
33
|
+
Given a user named "test user"
|
34
|
+
And a real server
|
35
|
+
And a private room in this server
|
36
|
+
When the user goes to the join room page
|
37
|
+
Then he should be redirected to the invite room URL
|
38
|
+
|
39
|
+
@mechanize
|
40
|
+
Scenario: Joining a private room as a moderator
|
41
|
+
Given a user named "test user"
|
42
|
+
And a real server
|
43
|
+
And a private room in this server
|
44
|
+
When the user goes to the join room page
|
45
|
+
And enters his name and the moderator password
|
46
|
+
And clicks in the button "Submit"
|
47
|
+
Then he should join the conference room
|
48
|
+
|
49
|
+
Scenario: Joining a private room that is NOT running as attendee
|
50
|
+
Given a user named "test user"
|
51
|
+
And a real server
|
52
|
+
And a private room in this server
|
53
|
+
When the user goes to the join room page
|
54
|
+
And enters his name and the attendee password
|
55
|
+
And clicks in the button "Submit"
|
56
|
+
Then he should NOT join the conference room
|
57
|
+
And should see an error message with the message "The meeting is not running"
|
58
|
+
|
59
|
+
@mechanize @need-bot
|
60
|
+
Scenario: Joining a private room that is running as attendee
|
61
|
+
Given a user named "test user"
|
62
|
+
And a real server
|
63
|
+
And a private room in this server
|
64
|
+
And a meeting is running in this room
|
65
|
+
When the user goes to the join room page
|
66
|
+
And enters his name and the attendee password
|
67
|
+
And clicks in the button "Submit"
|
68
|
+
Then he should join the conference room
|
69
|
+
|
70
|
+
Scenario: Joining a private room without entering a user name
|
71
|
+
Given an anonymous user
|
72
|
+
And a real server
|
73
|
+
And a private room in this server
|
74
|
+
When the user goes to the join room page
|
75
|
+
And enters only the moderator password
|
76
|
+
And clicks in the button "Submit"
|
77
|
+
Then he should NOT join the conference room
|
78
|
+
And should see an error message with the message "Authentication failure"
|
79
|
+
|
80
|
+
Scenario: Joining a private room without entering a password (wrong password)
|
81
|
+
Given an anonymous user
|
82
|
+
And a real server
|
83
|
+
And a private room in this server
|
84
|
+
When the user goes to the join room page
|
85
|
+
And enters only the user name
|
86
|
+
And clicks in the button "Submit"
|
87
|
+
Then he should NOT join the conference room
|
88
|
+
And should see an error message with the message "Authentication failure"
|
89
|
+
|
90
|
+
Scenario: Uses the current user's name as the default name to join a room
|
91
|
+
Given a user named "test user"
|
92
|
+
And a real server
|
93
|
+
And a private room in this server
|
94
|
+
When the user goes to the join room page
|
95
|
+
Then he should see his name in the user name input
|
96
|
+
|
97
|
+
|
98
|
+
# For the BigbluebuttonRoom#invite action we only check that it can be used by logged
|
99
|
+
# or anonymous users. Other cases were already tested above
|
100
|
+
|
101
|
+
@mechanize
|
102
|
+
Scenario: A logged user may join the meeting through the invite page
|
103
|
+
Given a user named "test user"
|
104
|
+
And a real server
|
105
|
+
And a public room in this server
|
106
|
+
When the user goes to the invite room page (no view check)
|
107
|
+
Then he should join the conference room
|
108
|
+
|
109
|
+
@mechanize
|
110
|
+
Scenario: An anonymous user may join the meeting through the invite page
|
111
|
+
Given an anonymous user
|
112
|
+
And a real server
|
113
|
+
And a public room in this server
|
114
|
+
When the user goes to the invite room page
|
115
|
+
And enters his name and the moderator password
|
116
|
+
And clicks in the button "Submit"
|
117
|
+
Then he should join the conference room
|
@@ -0,0 +1,18 @@
|
|
1
|
+
Feature: List and show webconference rooms
|
2
|
+
To view information of a webconference room
|
3
|
+
One needs to see the room in a list of rooms
|
4
|
+
and see all the information it has stored
|
5
|
+
|
6
|
+
Scenario: View the list of BigBlueButton rooms
|
7
|
+
Given an anonymous user
|
8
|
+
And a real server
|
9
|
+
And 3 rooms in this server
|
10
|
+
When he goes to the rooms index page
|
11
|
+
Then he should see all available rooms in the list
|
12
|
+
|
13
|
+
Scenario: View all information of a BigBlueButton room
|
14
|
+
Given an anonymous user
|
15
|
+
And a real server
|
16
|
+
And a room in this server
|
17
|
+
When he goes to the show room page
|
18
|
+
Then he should see all the information available for this room
|
@@ -0,0 +1,16 @@
|
|
1
|
+
Feature: List and show webconference servers
|
2
|
+
To view information of a webconference server
|
3
|
+
One needs to see the server in a list of servers
|
4
|
+
and see all the information it has stored
|
5
|
+
|
6
|
+
Scenario: View the list of BigBlueButton servers
|
7
|
+
Given an anonymous user
|
8
|
+
And 3 servers
|
9
|
+
When he goes to the servers index page
|
10
|
+
Then he should see all available servers in the list
|
11
|
+
|
12
|
+
Scenario: View all information of a BigBlueButton server
|
13
|
+
Given an anonymous user
|
14
|
+
And a real server
|
15
|
+
When he goes to the show server page
|
16
|
+
Then he should see all the information available for this server
|
@@ -0,0 +1,102 @@
|
|
1
|
+
When /^(\d+) meetings running in this server$/ do |count|
|
2
|
+
msalt = FeaturesConfig.server.has_key?('mobile_salt') ? FeaturesConfig.server['mobile_salt'] : ""
|
3
|
+
@rooms = []
|
4
|
+
count.to_i.times do |i|
|
5
|
+
room = Factory.create(:bigbluebutton_room, :server => @server)
|
6
|
+
room.send_create
|
7
|
+
BigBlueButtonBot.new(@server.api, room.meetingid, msalt,
|
8
|
+
1, FeaturesConfig.root['timeout_bot_start'])
|
9
|
+
@rooms << room
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
When /^(\d+) meetings recently ended in this server$/ do |count|
|
14
|
+
msalt = FeaturesConfig.server.has_key?('mobile_salt') ? FeaturesConfig.server['mobile_salt'] : ""
|
15
|
+
@ended_rooms = []
|
16
|
+
count.to_i.times do |i|
|
17
|
+
room = Factory.create(:bigbluebutton_room, :server => @server)
|
18
|
+
room.send_create
|
19
|
+
BigBlueButtonBot.new(@server.api, room.meetingid, msalt,
|
20
|
+
1, FeaturesConfig.root['timeout_bot_start'])
|
21
|
+
BigBlueButtonBot.finalize(room.meetingid)
|
22
|
+
sleep 1
|
23
|
+
@ended_rooms << room
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
When /^he should see the (\d+) meetings that are running$/ do |count|
|
28
|
+
check_server_activity_monitor_rooms(@rooms)
|
29
|
+
end
|
30
|
+
|
31
|
+
When /^he should see the external room in the list$/ do
|
32
|
+
check_server_activity_monitor_rooms([@room])
|
33
|
+
end
|
34
|
+
|
35
|
+
When /^he should see the (\d+) recently ended meetings$/ do |count|
|
36
|
+
check_server_activity_monitor_rooms(@ended_rooms)
|
37
|
+
end
|
38
|
+
|
39
|
+
When /^the first meeting is ended$/ do
|
40
|
+
@rooms.first.send_end
|
41
|
+
BigBlueButtonBot.finalize(@rooms.first.meetingid)
|
42
|
+
sleep 1 # give the bot some time to finish
|
43
|
+
end
|
44
|
+
|
45
|
+
When /^he clicks in the link to update the meeting list$/ do
|
46
|
+
find(make_selector("a.bbbrails_refresh_now")).click
|
47
|
+
end
|
48
|
+
|
49
|
+
When /^he should see one meeting running and the other meeting not running$/ do
|
50
|
+
# first was ended, second is running
|
51
|
+
@rooms.first.fetch_is_running?
|
52
|
+
@rooms.first.is_running?.should be_false
|
53
|
+
@rooms.last.fetch_is_running?
|
54
|
+
@rooms.last.is_running?.should be_true
|
55
|
+
|
56
|
+
check_server_activity_monitor_rooms(@rooms)
|
57
|
+
end
|
58
|
+
|
59
|
+
When /^after (\d+) seconds$/ do |count|
|
60
|
+
sleep count.to_i
|
61
|
+
end
|
62
|
+
|
63
|
+
# checks the rooms inside the activity monitor
|
64
|
+
def check_server_activity_monitor_rooms(rooms)
|
65
|
+
within(make_selector("div#bbbrails_server_activity_meetings")) do
|
66
|
+
rooms.each do |room|
|
67
|
+
|
68
|
+
# restrict the search to this room's div
|
69
|
+
xpath = ".//div[@class=\"bbbrails_meeting_description\" and contains(., \"#{room.meetingid}\")]"
|
70
|
+
within(find(:xpath, xpath)) do
|
71
|
+
|
72
|
+
# FIXME in bbb 0.7 get_meeting_info didn't return the room's name, only
|
73
|
+
# the meeting_id, so the name in the obj will be == meeting_id
|
74
|
+
# See BigbluebuttonServer#fetch_meetings
|
75
|
+
has_content(room.name) unless room.new_record?
|
76
|
+
has_content(room.meetingid)
|
77
|
+
|
78
|
+
method = room.new_record? ? method(:doesnt_have_element) : method(:has_element)
|
79
|
+
method.call("a", { :href => bigbluebutton_server_room_path(@server, room) })
|
80
|
+
method.call("a", { :href => edit_bigbluebutton_server_room_path(@server, room) })
|
81
|
+
method.call("a", { :href => bigbluebutton_server_room_path(@server, room), :"data-method" => :delete })
|
82
|
+
method.call("a", { :href => join_bigbluebutton_server_room_path(@server, room) })
|
83
|
+
method.call("a", { :href => join_mobile_bigbluebutton_server_room_path(@server, room) })
|
84
|
+
method.call("a", { :href => end_bigbluebutton_server_room_path(@server, room) })
|
85
|
+
|
86
|
+
room.fetch_is_running?
|
87
|
+
if room.is_running?
|
88
|
+
has_content(room.start_time)
|
89
|
+
has_element("span.running")
|
90
|
+
room.participant_count.times do |i|
|
91
|
+
has_content("Bot #{i}") # user name
|
92
|
+
end
|
93
|
+
else
|
94
|
+
has_content(room.start_time)
|
95
|
+
has_content(room.end_time)
|
96
|
+
has_element("span.not_running")
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|