bigbluebutton_rails 0.0.6 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|