bigbluebutton_rails 2.1.0 → 2.2.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.
- checksums.yaml +4 -4
- data/.travis.yml +3 -0
- data/CHANGELOG.md +21 -0
- data/Gemfile +2 -1
- data/Gemfile.lock +4 -11
- data/Rakefile +15 -15
- data/app/controllers/bigbluebutton/recordings_controller.rb +1 -1
- data/app/controllers/bigbluebutton/rooms_controller.rb +10 -12
- data/app/controllers/bigbluebutton/servers_controller.rb +4 -5
- data/app/models/bigbluebutton_meeting.rb +1 -2
- data/app/models/bigbluebutton_metadata.rb +2 -2
- data/app/models/bigbluebutton_recording.rb +20 -5
- data/app/models/bigbluebutton_room.rb +80 -102
- data/app/models/bigbluebutton_server.rb +31 -17
- data/app/views/bigbluebutton/recordings/_form.html.erb +13 -13
- data/app/views/bigbluebutton/rooms/_form.html.erb +0 -4
- data/app/views/bigbluebutton/rooms/_rooms.html.erb +0 -4
- data/app/views/bigbluebutton/rooms/show.html.erb +0 -4
- data/app/workers/bigbluebutton_update_recordings.rb +2 -2
- data/config/locales/en.yml +1 -2
- data/config/locales/pt-br.yml +1 -2
- data/lib/bigbluebutton_rails.rb +22 -108
- data/lib/bigbluebutton_rails/background_tasks.rb +7 -3
- data/lib/bigbluebutton_rails/configuration.rb +80 -0
- data/lib/bigbluebutton_rails/rails/routes.rb +7 -6
- data/lib/bigbluebutton_rails/version.rb +1 -1
- data/lib/generators/bigbluebutton_rails/install_generator.rb +10 -1
- data/lib/generators/bigbluebutton_rails/templates/migration.rb +0 -3
- data/lib/generators/bigbluebutton_rails/templates/migration_2_2_0.rb +13 -0
- data/spec/controllers/bigbluebutton/recordings_controller_json_responses_spec.rb +4 -5
- data/spec/controllers/bigbluebutton/recordings_controller_spec.rb +3 -2
- data/spec/controllers/bigbluebutton/rooms_controller_exception_handling_spec.rb +1 -1
- data/spec/controllers/bigbluebutton/rooms_controller_json_responses_spec.rb +4 -4
- data/spec/controllers/bigbluebutton/rooms_controller_spec.rb +53 -38
- data/spec/controllers/bigbluebutton/servers_controller_json_responses_spec.rb +7 -19
- data/spec/controllers/bigbluebutton/servers_controller_spec.rb +32 -51
- data/spec/factories/bigbluebutton_meeting.rb +0 -1
- data/spec/factories/bigbluebutton_recording.rb +1 -0
- data/spec/factories/bigbluebutton_room.rb +0 -1
- data/spec/models/bigbluebutton_meeting_db_spec.rb +0 -1
- data/spec/models/bigbluebutton_meeting_spec.rb +0 -3
- data/spec/models/bigbluebutton_metadata_spec.rb +4 -4
- data/spec/models/bigbluebutton_recording_spec.rb +32 -0
- data/spec/models/bigbluebutton_room_db_spec.rb +0 -2
- data/spec/models/bigbluebutton_room_spec.rb +138 -244
- data/spec/models/bigbluebutton_server_spec.rb +40 -21
- data/spec/rails_app/db/seeds.rb +1 -1
- data/spec/rails_app/features/config.yml.example +4 -4
- data/spec/rails_app/features/step_definitions/create_rooms_steps.rb +0 -1
- data/spec/rails_app/features/support/templates.rb +0 -4
- data/spec/rails_app/lib/tasks/db/populate.rake +2 -2
- data/spec/routing/bigbluebutton/servers_only_routing_spec.rb +4 -1
- data/spec/routing/bigbluebutton/servers_routing_spec.rb +4 -0
- data/spec/spec_helper.rb +4 -0
- data/spec/support/mocked_server.rb +1 -1
- data/spec/workers/bigbluebutton_meeting_updater_spec.rb +3 -3
- metadata +4 -2
@@ -6,9 +6,7 @@ describe BigbluebuttonServer do
|
|
6
6
|
BigbluebuttonServer.new.should be_a_kind_of(ActiveRecord::Base)
|
7
7
|
end
|
8
8
|
|
9
|
-
it { should have_many(:
|
10
|
-
|
11
|
-
it { should have_many(:recordings).dependent(:nullify) }
|
9
|
+
it { should have_many(:recordings).dependent(:destroy) }
|
12
10
|
|
13
11
|
it { should have_one(:config).dependent(:destroy) }
|
14
12
|
it { should delegate(:update_config).to(:config) }
|
@@ -24,27 +22,31 @@ describe BigbluebuttonServer do
|
|
24
22
|
|
25
23
|
context "uniqueness of" do
|
26
24
|
before(:each) { FactoryGirl.create(:bigbluebutton_server) }
|
27
|
-
it { should validate_uniqueness_of(:url) }
|
28
|
-
it { should validate_uniqueness_of(:name) }
|
29
25
|
it { should validate_uniqueness_of(:param) }
|
30
26
|
end
|
31
27
|
|
32
|
-
it "has associated
|
28
|
+
it "has associated recordings" do
|
33
29
|
server = FactoryGirl.create(:bigbluebutton_server)
|
34
|
-
server.
|
30
|
+
server.recordings.should be_empty
|
35
31
|
|
36
|
-
r = FactoryGirl.create(:
|
32
|
+
r = FactoryGirl.create(:bigbluebutton_recording, server: server)
|
37
33
|
server = BigbluebuttonServer.find(server.id)
|
38
|
-
server.
|
34
|
+
server.recordings.should == [r]
|
39
35
|
end
|
40
36
|
|
41
|
-
|
42
|
-
server
|
43
|
-
|
37
|
+
context "destroys associated recordings when destroyed" do
|
38
|
+
let!(:server) { FactoryGirl.create(:bigbluebutton_server) }
|
39
|
+
let!(:rec1) { FactoryGirl.create(:bigbluebutton_recording, server: server) }
|
40
|
+
let!(:rec2) { FactoryGirl.create(:bigbluebutton_recording, server: server) }
|
41
|
+
let!(:rec3) { FactoryGirl.create(:bigbluebutton_recording) }
|
44
42
|
|
45
|
-
|
46
|
-
|
47
|
-
|
43
|
+
it {
|
44
|
+
server.recordings.count.should eql(2)
|
45
|
+
server.destroy
|
46
|
+
BigbluebuttonRecording.find_by(recordid: rec1.recordid).should be_nil
|
47
|
+
BigbluebuttonRecording.find_by(recordid: rec2.recordid).should be_nil
|
48
|
+
BigbluebuttonRecording.find_by(recordid: rec3.recordid).should_not be_nil
|
49
|
+
}
|
48
50
|
end
|
49
51
|
|
50
52
|
it { should ensure_length_of(:name).is_at_least(1).is_at_most(500) }
|
@@ -170,8 +172,9 @@ describe BigbluebuttonServer do
|
|
170
172
|
|
171
173
|
describe "#fetch_meetings" do
|
172
174
|
let(:server) { FactoryGirl.create(:bigbluebutton_server) }
|
173
|
-
let(:room1) { FactoryGirl.create(:bigbluebutton_room, :
|
174
|
-
let(:room2) { FactoryGirl.create(:bigbluebutton_room, :
|
175
|
+
let(:room1) { FactoryGirl.create(:bigbluebutton_room, :meetingid => "room1") }
|
176
|
+
let(:room2) { FactoryGirl.create(:bigbluebutton_room, :meetingid => "room2") }
|
177
|
+
let!(:api) { double(BigBlueButton::BigBlueButtonApi) }
|
175
178
|
|
176
179
|
# the hashes should be exactly as returned by bigbluebutton-api-ruby to be sure we are testing it right
|
177
180
|
let(:meetings) {
|
@@ -188,9 +191,9 @@ describe BigbluebuttonServer do
|
|
188
191
|
}
|
189
192
|
|
190
193
|
before {
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
+
server.stub(:api).and_return(api)
|
195
|
+
BigbluebuttonServer.any_instance.stub(:api).and_return(api)
|
196
|
+
api.should_receive(:get_meetings).and_return(hash)
|
194
197
|
server.fetch_meetings
|
195
198
|
|
196
199
|
# the keys are updated during fetch_meetings
|
@@ -205,7 +208,6 @@ describe BigbluebuttonServer do
|
|
205
208
|
it { server.meetings[1].should have_same_attributes_as(room2) }
|
206
209
|
it { server.meetings[2].meetingid.should == "im not in the db" }
|
207
210
|
it { server.meetings[2].name.should == "im not in the db" }
|
208
|
-
it { server.meetings[2].server.should == server }
|
209
211
|
it { server.meetings[2].attendee_api_password.should == "pass" }
|
210
212
|
it { server.meetings[2].moderator_api_password.should == "pass" }
|
211
213
|
it { server.meetings[2].running.should == true }
|
@@ -332,6 +334,7 @@ describe BigbluebuttonServer do
|
|
332
334
|
@server.config # access it so the new obj is created
|
333
335
|
}
|
334
336
|
it { @server.config.should_not be_nil }
|
337
|
+
it { @server.config.server.should eql(@server) }
|
335
338
|
it("is not promptly saved") {
|
336
339
|
@server.config.new_record?.should be(true)
|
337
340
|
}
|
@@ -447,4 +450,20 @@ describe BigbluebuttonServer do
|
|
447
450
|
end
|
448
451
|
end
|
449
452
|
|
453
|
+
describe "#check_url" do
|
454
|
+
let(:server) { FactoryGirl.create(:bigbluebutton_server) }
|
455
|
+
|
456
|
+
it { should respond_to(:check_url) }
|
457
|
+
|
458
|
+
context "returns what api.check_url returns" do
|
459
|
+
before do
|
460
|
+
@api_mock = double(BigBlueButton::BigBlueButtonApi)
|
461
|
+
server.stub(:api).and_return(@api_mock)
|
462
|
+
@api_mock.should_receive(:check_url).
|
463
|
+
and_return('http://test-server.com/check')
|
464
|
+
end
|
465
|
+
it { server.check_url.should eql('http://test-server.com/check') }
|
466
|
+
end
|
467
|
+
end
|
468
|
+
|
450
469
|
end
|
data/spec/rails_app/db/seeds.rb
CHANGED
@@ -13,7 +13,7 @@ if File.exists?(file)
|
|
13
13
|
else
|
14
14
|
server = config['servers'][config['servers'].keys.first]
|
15
15
|
end
|
16
|
-
server['version'] = '0
|
16
|
+
server['version'] = '1.0' unless server.has_key?('version')
|
17
17
|
server['name'] = URI.parse(server['url']).host
|
18
18
|
|
19
19
|
BigbluebuttonServer.create!(server)
|
@@ -2,9 +2,9 @@
|
|
2
2
|
timeout_bot_start: 60
|
3
3
|
|
4
4
|
servers:
|
5
|
-
|
6
|
-
secret: 'your-secret'
|
7
|
-
url: 'http://your-server/bigbluebutton/api'
|
8
|
-
test-install-09:
|
5
|
+
test-install-10:
|
9
6
|
secret: '8cd8ef52e8e101574e400365b55e11a6'
|
10
7
|
url: 'http://test-install.blindsidenetworks.com/bigbluebutton/api'
|
8
|
+
bbb-dev-110:
|
9
|
+
secret: 'your-secret'
|
10
|
+
url: 'http://your-server/bigbluebutton/api'
|
@@ -1,6 +1,5 @@
|
|
1
1
|
When /^registers a new room$/i do
|
2
2
|
attrs = FactoryGirl.attributes_for(:bigbluebutton_room, :server => @server)
|
3
|
-
fill_in("bigbluebutton_room[server_id]", :with => attrs[:server_id])
|
4
3
|
fill_in("bigbluebutton_room[name]", :with => attrs[:name])
|
5
4
|
fill_in("bigbluebutton_room[meetingid]", :with => attrs[:meetingid])
|
6
5
|
check("bigbluebutton_room[private]") if attrs[:private]
|
@@ -129,8 +129,6 @@ module TemplateHelpers
|
|
129
129
|
|
130
130
|
# internal form in rooms/new and room/:id/edit
|
131
131
|
def check_room_form
|
132
|
-
has_element("input#bigbluebutton_room_server_id",
|
133
|
-
{ :name => 'bigbluebutton_room[server_id]', :type => 'text' })
|
134
132
|
has_element("input#bigbluebutton_room_name",
|
135
133
|
{ :name => 'bigbluebutton_room[name]', :type => 'text' })
|
136
134
|
has_element("input#bigbluebutton_room_meetingid",
|
@@ -174,7 +172,6 @@ module TemplateHelpers
|
|
174
172
|
def check_show_room(options)
|
175
173
|
room = options[:room] || BigbluebuttonRoom.last
|
176
174
|
|
177
|
-
page_has_content(room.server_id)
|
178
175
|
page_has_content(room.name)
|
179
176
|
page_has_content(room.meetingid)
|
180
177
|
page_has_content(room.private)
|
@@ -220,7 +217,6 @@ module TemplateHelpers
|
|
220
217
|
rooms.each do |room|
|
221
218
|
within(make_selector("ul#bbbrails_list>li:nth(#{n})")) do
|
222
219
|
# room data
|
223
|
-
has_content(room.server_id) unless room.server.nil?
|
224
220
|
has_content(room.name)
|
225
221
|
has_content(room.meetingid)
|
226
222
|
has_content(room.attendee_key)
|
@@ -86,10 +86,10 @@ namespace :db do
|
|
86
86
|
# Basic metadata the gem always adds and should always be there
|
87
87
|
basic_metadata =
|
88
88
|
[{
|
89
|
-
:name => BigbluebuttonRails.metadata_user_id,
|
89
|
+
:name => BigbluebuttonRails.configuration.metadata_user_id,
|
90
90
|
:content => Forgery(:basic).number(:at_most => 1000)
|
91
91
|
}, {
|
92
|
-
:name => BigbluebuttonRails.metadata_user_name,
|
92
|
+
:name => BigbluebuttonRails.configuration.metadata_user_name,
|
93
93
|
:content => Forgery(:name).full_name
|
94
94
|
}]
|
95
95
|
basic_metadata.each do |meta_params|
|
@@ -37,7 +37,10 @@ describe ActionController do
|
|
37
37
|
{:get => "/only-servers/bigbluebutton/servers/1/activity"}.
|
38
38
|
should route_to(:controller => "bigbluebutton/servers", :action => "activity", :id => "1")
|
39
39
|
}
|
40
|
-
|
40
|
+
it {
|
41
|
+
{:get => "/only-servers/bigbluebutton/servers/1/check"}.
|
42
|
+
should route_to(:controller => "bigbluebutton/servers", :action => "check", :id => "1")
|
43
|
+
}
|
41
44
|
end
|
42
45
|
|
43
46
|
end
|
@@ -59,6 +59,10 @@ describe Bigbluebutton::ServersController do
|
|
59
59
|
{:post => "/#{prefix}/servers/server-1/fetch_recordings"}.
|
60
60
|
should route_to(:controller => "bigbluebutton/servers", :action => "fetch_recordings", :id => "server-1")
|
61
61
|
}
|
62
|
+
it {
|
63
|
+
{:get => "/#{prefix}/servers/server-1/check"}.
|
64
|
+
should route_to(:controller => "bigbluebutton/servers", :action => "check", :id => "server-1")
|
65
|
+
}
|
62
66
|
end
|
63
67
|
|
64
68
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -10,7 +10,7 @@ def mock_server_and_api
|
|
10
10
|
|
11
11
|
# when testing rooms
|
12
12
|
if defined?(room) and not room.nil?
|
13
|
-
room.stub(:
|
13
|
+
room.stub(:select_server) { @server_mock }
|
14
14
|
BigbluebuttonRoom.stub(:find_by_param) { room }
|
15
15
|
BigbluebuttonRoom.stub(:find) { room }
|
16
16
|
end
|
@@ -31,7 +31,7 @@ describe BigbluebuttonMeetingUpdater do
|
|
31
31
|
|
32
32
|
before {
|
33
33
|
expect(BigbluebuttonRoom).to receive(:find).with(room.id).and_return(room)
|
34
|
-
|
34
|
+
expect_any_instance_of(BigbluebuttonServer).to receive(:api).and_return(api)
|
35
35
|
expect(api).to receive(:get_meeting_info).once { raise exception }
|
36
36
|
expect(room).to receive(:finish_meetings).once
|
37
37
|
}
|
@@ -48,7 +48,7 @@ describe BigbluebuttonMeetingUpdater do
|
|
48
48
|
|
49
49
|
before {
|
50
50
|
expect(BigbluebuttonRoom).to receive(:find).with(room.id).and_return(room)
|
51
|
-
|
51
|
+
expect_any_instance_of(BigbluebuttonServer).to receive(:api).and_return(api)
|
52
52
|
expect(api).to receive(:get_meeting_info).once { raise exception }
|
53
53
|
expect(room).to receive(:finish_meetings)
|
54
54
|
}
|
@@ -65,7 +65,7 @@ describe BigbluebuttonMeetingUpdater do
|
|
65
65
|
|
66
66
|
before {
|
67
67
|
expect(BigbluebuttonRoom).to receive(:find).with(room.id).and_return(room)
|
68
|
-
|
68
|
+
expect_any_instance_of(BigbluebuttonServer).to receive(:api).and_return(api)
|
69
69
|
expect(api).to receive(:get_meeting_info).once { raise exception }
|
70
70
|
expect(room).to receive(:finish_meetings)
|
71
71
|
}
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bigbluebutton_rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mconf
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2019-11-18 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
@@ -155,6 +155,7 @@ files:
|
|
155
155
|
- config/resque/workers_schedule.yml
|
156
156
|
- lib/bigbluebutton_rails.rb
|
157
157
|
- lib/bigbluebutton_rails/background_tasks.rb
|
158
|
+
- lib/bigbluebutton_rails/configuration.rb
|
158
159
|
- lib/bigbluebutton_rails/controller_methods.rb
|
159
160
|
- lib/bigbluebutton_rails/dial_number.rb
|
160
161
|
- lib/bigbluebutton_rails/exceptions.rb
|
@@ -173,6 +174,7 @@ files:
|
|
173
174
|
- lib/generators/bigbluebutton_rails/templates/migration_1_4_0.rb
|
174
175
|
- lib/generators/bigbluebutton_rails/templates/migration_2_0_0.rb
|
175
176
|
- lib/generators/bigbluebutton_rails/templates/migration_2_1_0.rb
|
177
|
+
- lib/generators/bigbluebutton_rails/templates/migration_2_2_0.rb
|
176
178
|
- lib/generators/bigbluebutton_rails/views_generator.rb
|
177
179
|
- lib/tasks/bigbluebutton_rails/meetings.rake
|
178
180
|
- lib/tasks/bigbluebutton_rails/recordings.rake
|