bigbluebutton_rails 1.4.0 → 2.0.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 +7 -0
- data/.ruby-version +1 -1
- data/.travis.yml +10 -1
- data/CHANGELOG.md +259 -0
- data/Gemfile +14 -19
- data/Gemfile.lock +194 -188
- data/README.md +416 -0
- data/Rakefile +12 -12
- data/TODO.md +13 -0
- data/app/controllers/bigbluebutton/playback_types_controller.rb +44 -0
- data/app/controllers/bigbluebutton/recordings_controller.rb +17 -10
- data/app/controllers/bigbluebutton/rooms_controller.rb +65 -36
- data/app/controllers/bigbluebutton/servers_controller.rb +12 -8
- data/app/models/bigbluebutton_metadata.rb +1 -1
- data/app/models/bigbluebutton_playback_format.rb +22 -1
- data/app/models/bigbluebutton_playback_type.rb +29 -0
- data/app/models/bigbluebutton_recording.rb +38 -19
- data/app/models/bigbluebutton_room.rb +150 -73
- data/app/models/bigbluebutton_room_options.rb +10 -7
- data/app/models/bigbluebutton_server.rb +69 -13
- data/app/models/bigbluebutton_server_config.rb +49 -0
- data/app/views/bigbluebutton/recordings/_form.html.erb +4 -0
- data/app/views/bigbluebutton/recordings/_recordings.html.erb +10 -3
- data/app/views/bigbluebutton/rooms/_form.html.erb +18 -6
- data/app/views/bigbluebutton/rooms/_rooms.html.erb +6 -3
- data/app/views/bigbluebutton/rooms/invite.html.erb +5 -5
- data/app/views/bigbluebutton/rooms/show.html.erb +18 -6
- data/app/views/bigbluebutton/servers/_form.html.erb +1 -1
- data/app/views/bigbluebutton/servers/show.html.erb +5 -0
- data/app/workers/bigbluebutton_finish_meetings.rb +11 -0
- data/app/workers/bigbluebutton_update_recordings.rb +11 -0
- data/app/workers/bigbluebutton_update_server_configs.rb +18 -0
- data/bigbluebutton_rails.gemspec +8 -7
- data/config/locales/en.yml +52 -7
- data/config/locales/pt-br.yml +162 -0
- data/config/resque/resque.rake +27 -0
- data/config/resque/workers_schedule.yml +17 -0
- data/lib/bigbluebutton_rails.rb +30 -2
- data/lib/bigbluebutton_rails/background_tasks.rb +31 -0
- data/lib/bigbluebutton_rails/controller_methods.rb +12 -8
- data/lib/bigbluebutton_rails/dial_number.rb +48 -0
- data/lib/bigbluebutton_rails/rails/routes.rb +9 -2
- data/lib/bigbluebutton_rails/utils.rb +9 -2
- data/lib/bigbluebutton_rails/version.rb +1 -1
- data/lib/generators/bigbluebutton_rails/install_generator.rb +0 -8
- data/lib/generators/bigbluebutton_rails/templates/migration.rb +28 -6
- data/lib/generators/bigbluebutton_rails/templates/migration_2_0_0.rb +56 -0
- data/lib/tasks/bigbluebutton_rails/meetings.rake +1 -13
- data/lib/tasks/bigbluebutton_rails/recordings.rake +1 -12
- data/lib/tasks/bigbluebutton_rails/server_configs.rake +10 -0
- data/spec/bigbluebutton_rails_spec.rb +0 -13
- data/spec/controllers/bigbluebutton/playback_types_controller_spec.rb +76 -0
- data/spec/controllers/bigbluebutton/recordings_controller_spec.rb +109 -37
- data/spec/controllers/bigbluebutton/rooms_controller_exception_handling_spec.rb +1 -0
- data/spec/controllers/bigbluebutton/rooms_controller_json_responses_spec.rb +27 -3
- data/spec/controllers/bigbluebutton/rooms_controller_spec.rb +338 -77
- data/spec/controllers/bigbluebutton/servers_controller_json_responses_spec.rb +8 -0
- data/spec/controllers/bigbluebutton/servers_controller_spec.rb +182 -47
- data/spec/factories/bigbluebutton_meeting.rb +2 -2
- data/spec/factories/bigbluebutton_playback_format.rb +2 -2
- data/spec/factories/bigbluebutton_playback_type.rb +7 -0
- data/spec/factories/bigbluebutton_recording.rb +8 -0
- data/spec/factories/bigbluebutton_room.rb +10 -3
- data/spec/factories/bigbluebutton_server.rb +6 -1
- data/spec/factories/bigbluebutton_server_config.rb +6 -0
- data/spec/generators/install_generator_spec.rb +0 -16
- data/spec/lib/bigbluebutton_rails/background_tasks_spec.rb +61 -0
- data/spec/lib/bigbluebutton_rails/dial_number_spec.rb +78 -0
- data/spec/lib/bigbluebutton_rails/utils_spec.rb +56 -0
- data/spec/lib/tasks/meetings_rake_spec.rb +14 -1
- data/spec/lib/tasks/recordings_rake_spec.rb +14 -1
- data/spec/models/bigbluebutton_meeting_db_spec.rb +3 -3
- data/spec/models/bigbluebutton_meeting_spec.rb +4 -4
- data/spec/models/bigbluebutton_playback_format_db_spec.rb +0 -1
- data/spec/models/bigbluebutton_playback_format_spec.rb +75 -4
- data/spec/models/bigbluebutton_playback_type_db_spec.rb +14 -0
- data/spec/models/bigbluebutton_playback_type_spec.rb +76 -0
- data/spec/models/bigbluebutton_recording_db_spec.rb +3 -1
- data/spec/models/bigbluebutton_recording_spec.rb +234 -58
- data/spec/models/bigbluebutton_room_db_spec.rb +8 -6
- data/spec/models/bigbluebutton_room_options_db_spec.rb +1 -0
- data/spec/models/bigbluebutton_room_options_spec.rb +137 -38
- data/spec/models/bigbluebutton_room_spec.rb +540 -153
- data/spec/models/bigbluebutton_server_config_spec.rb +115 -0
- data/spec/models/bigbluebutton_server_spec.rb +180 -23
- data/spec/rails_app/app/controllers/my_playback_types_controller.rb +7 -0
- data/spec/rails_app/app/views/frontpage/show.html.erb +1 -0
- data/spec/rails_app/app/views/my_playback_types/index.html.erb +33 -0
- data/spec/rails_app/config/application.rb +0 -3
- data/spec/rails_app/config/database.yml.travis +10 -0
- data/spec/rails_app/config/environments/development.rb +1 -6
- data/spec/rails_app/config/environments/production.rb +2 -0
- data/spec/rails_app/config/environments/test.rb +2 -0
- data/spec/rails_app/config/routes.rb +5 -2
- data/spec/rails_app/db/seeds.rb +1 -1
- data/spec/rails_app/features/config.yml.example +3 -4
- data/spec/rails_app/features/join_rooms.feature +14 -14
- data/spec/rails_app/features/step_definitions/activity_monitor_servers_step.rb +2 -2
- data/spec/rails_app/features/step_definitions/create_rooms_steps.rb +4 -4
- data/spec/rails_app/features/step_definitions/destroy_rooms_steps.rb +2 -2
- data/spec/rails_app/features/step_definitions/join_rooms_steps.rb +10 -10
- data/spec/rails_app/features/step_definitions/web_steps.rb +2 -2
- data/spec/rails_app/features/support/configurations.rb +1 -1
- data/spec/rails_app/features/support/templates.rb +12 -12
- data/spec/rails_app/lib/tasks/db/populate.rake +19 -6
- data/spec/routing/bigbluebutton/custom_controllers_routing_spec.rb +1 -1
- data/spec/routing/bigbluebutton/recordings_only_routing_spec.rb +2 -2
- data/spec/routing/bigbluebutton/recordings_routing_spec.rb +2 -2
- data/spec/routing/bigbluebutton/rooms_only_routing_spec.rb +1 -1
- data/spec/routing/bigbluebutton/rooms_routing_spec.rb +15 -1
- data/spec/routing/bigbluebutton/servers_only_routing_spec.rb +1 -1
- data/spec/routing/bigbluebutton/servers_routing_spec.rb +1 -1
- data/spec/spec_helper.rb +23 -31
- data/spec/support/matchers/delegate_matcher.rb +8 -1
- data/spec/support/matchers/shoulda/respond_with_json_matcher.rb +2 -2
- data/spec/support/mocked_server.rb +2 -0
- data/spec/support/shared_contexts/rake.rb +23 -0
- data/spec/workers/bigbluebutton_finish_meetings_spec.rb +14 -0
- data/spec/workers/bigbluebutton_update_recordings_spec.rb +14 -0
- data/spec/workers/bigbluebutton_update_server_configs_spec.rb +47 -0
- metadata +70 -59
- data/CHANGELOG.rdoc +0 -111
- data/README.rdoc +0 -319
- data/TODO.rdoc +0 -16
- data/config/schedule.rb +0 -7
|
@@ -35,6 +35,13 @@ describe Bigbluebutton::ServersController do
|
|
|
35
35
|
let(:new_server) { FactoryGirl.build(:bigbluebutton_server) }
|
|
36
36
|
|
|
37
37
|
context "on success" do
|
|
38
|
+
before {
|
|
39
|
+
api_mock = double(BigBlueButton::BigBlueButtonApi)
|
|
40
|
+
api_mock.stub(:version).and_return("0.9")
|
|
41
|
+
api_mock.stub(:get_default_config_xml)
|
|
42
|
+
api_mock.stub(:get_available_layouts)
|
|
43
|
+
BigBlueButton::BigBlueButtonApi.stub(:new).and_return(api_mock)
|
|
44
|
+
}
|
|
38
45
|
before(:each) {
|
|
39
46
|
post :create, :bigbluebutton_server => new_server.attributes, :format => 'json'
|
|
40
47
|
}
|
|
@@ -63,6 +70,7 @@ describe Bigbluebutton::ServersController do
|
|
|
63
70
|
|
|
64
71
|
context "on success" do
|
|
65
72
|
before(:each) {
|
|
73
|
+
BigbluebuttonServer.any_instance.stub(:set_api_version_from_server)
|
|
66
74
|
put :update, :id => @server.to_param, :bigbluebutton_server => new_server.attributes, :format => 'json'
|
|
67
75
|
}
|
|
68
76
|
it { should respond_with(:success) }
|
|
@@ -2,21 +2,42 @@ require 'spec_helper'
|
|
|
2
2
|
|
|
3
3
|
describe Bigbluebutton::ServersController do
|
|
4
4
|
render_views
|
|
5
|
-
let(:server) { FactoryGirl.create(:bigbluebutton_server) }
|
|
5
|
+
let!(:server) { FactoryGirl.create(:bigbluebutton_server) }
|
|
6
6
|
|
|
7
7
|
describe "#index" do
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
8
|
+
context "basic" do
|
|
9
|
+
before { 3.times { FactoryGirl.create(:bigbluebutton_server) } }
|
|
10
|
+
before(:each) { get :index }
|
|
11
|
+
it { should respond_with(:success) }
|
|
12
|
+
it { should assign_to(:servers).with(BigbluebuttonServer.all) }
|
|
13
|
+
it { should render_template(:index) }
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
context "doesn't override @servers" do
|
|
17
|
+
let!(:my_servers) { [ FactoryGirl.create(:bigbluebutton_server), FactoryGirl.create(:bigbluebutton_server) ] }
|
|
18
|
+
before {
|
|
19
|
+
3.times { FactoryGirl.create(:bigbluebutton_server) }
|
|
20
|
+
controller.instance_variable_set(:@servers, my_servers)
|
|
21
|
+
}
|
|
22
|
+
before(:each) { get :index }
|
|
23
|
+
it { should assign_to(:servers).with(my_servers) }
|
|
24
|
+
end
|
|
13
25
|
end
|
|
14
26
|
|
|
15
27
|
describe "#show" do
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
28
|
+
context "basic" do
|
|
29
|
+
before(:each) { get :show, :id => server.to_param }
|
|
30
|
+
it { should respond_with(:success) }
|
|
31
|
+
it { should assign_to(:server).with(server) }
|
|
32
|
+
it { should render_template(:show) }
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
context "doesn't override @server" do
|
|
36
|
+
let!(:other_server) { FactoryGirl.create(:bigbluebutton_server) }
|
|
37
|
+
before { controller.instance_variable_set(:@server, other_server) }
|
|
38
|
+
before(:each) { get :show, :id => server.to_param }
|
|
39
|
+
it { should assign_to(:server).with(other_server) }
|
|
40
|
+
end
|
|
20
41
|
end
|
|
21
42
|
|
|
22
43
|
describe "#new" do
|
|
@@ -27,10 +48,19 @@ describe Bigbluebutton::ServersController do
|
|
|
27
48
|
end
|
|
28
49
|
|
|
29
50
|
describe "#edit" do
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
51
|
+
context "basic" do
|
|
52
|
+
before(:each) { get :edit, :id => server.to_param }
|
|
53
|
+
it { should respond_with(:success) }
|
|
54
|
+
it { should assign_to(:server).with(server) }
|
|
55
|
+
it { should render_template(:edit) }
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
context "doesn't override @server" do
|
|
59
|
+
let!(:other_server) { FactoryGirl.create(:bigbluebutton_server) }
|
|
60
|
+
before { controller.instance_variable_set(:@server, other_server) }
|
|
61
|
+
before(:each) { get :edit, :id => server.to_param }
|
|
62
|
+
it { should assign_to(:server).with(other_server) }
|
|
63
|
+
end
|
|
34
64
|
end
|
|
35
65
|
|
|
36
66
|
describe "#create" do
|
|
@@ -58,7 +88,7 @@ describe Bigbluebutton::ServersController do
|
|
|
58
88
|
let(:attrs) { FactoryGirl.attributes_for(:bigbluebutton_server) }
|
|
59
89
|
let(:params) { { :bigbluebutton_server => attrs } }
|
|
60
90
|
let(:allowed_params) {
|
|
61
|
-
[ :name, :url, :
|
|
91
|
+
[ :name, :url, :salt, :param ]
|
|
62
92
|
}
|
|
63
93
|
|
|
64
94
|
it {
|
|
@@ -102,6 +132,12 @@ describe Bigbluebutton::ServersController do
|
|
|
102
132
|
end
|
|
103
133
|
end
|
|
104
134
|
|
|
135
|
+
context "doesn't override @server" do
|
|
136
|
+
let!(:other_server) { FactoryGirl.create(:bigbluebutton_server) }
|
|
137
|
+
before { controller.instance_variable_set(:@server, other_server) }
|
|
138
|
+
before(:each) { post :create, :bigbluebutton_server => FactoryGirl.attributes_for(:bigbluebutton_server) }
|
|
139
|
+
it { should assign_to(:server).with(other_server) }
|
|
140
|
+
end
|
|
105
141
|
end
|
|
106
142
|
|
|
107
143
|
describe "#update" do
|
|
@@ -109,11 +145,14 @@ describe Bigbluebutton::ServersController do
|
|
|
109
145
|
before { @server = server } # need this to trigger let(:server) and actually create the object
|
|
110
146
|
|
|
111
147
|
context "on success" do
|
|
112
|
-
|
|
148
|
+
let(:new_server) { FactoryGirl.build(:bigbluebutton_server, version: "") }
|
|
149
|
+
|
|
150
|
+
before {
|
|
151
|
+
BigBlueButton::BigBlueButtonApi.any_instance.should_receive(:get_api_version).and_return("0.9")
|
|
113
152
|
expect {
|
|
114
|
-
put :update, :
|
|
115
|
-
}.not_to change{ BigbluebuttonServer.count }
|
|
116
|
-
|
|
153
|
+
put :update, id: @server.to_param, bigbluebutton_server: new_server.attributes
|
|
154
|
+
}.not_to change { BigbluebuttonServer.count }
|
|
155
|
+
}
|
|
117
156
|
it {
|
|
118
157
|
saved = BigbluebuttonServer.find(@server)
|
|
119
158
|
should respond_with(:redirect)
|
|
@@ -121,7 +160,8 @@ describe Bigbluebutton::ServersController do
|
|
|
121
160
|
}
|
|
122
161
|
it {
|
|
123
162
|
saved = BigbluebuttonServer.find(@server)
|
|
124
|
-
saved.
|
|
163
|
+
saved.should_not have_same_attributes_as(new_server)
|
|
164
|
+
saved.version.should == "0.9"
|
|
125
165
|
}
|
|
126
166
|
it { should set_the_flash.to(I18n.t('bigbluebutton_rails.servers.notice.update.success')) }
|
|
127
167
|
end
|
|
@@ -139,7 +179,7 @@ describe Bigbluebutton::ServersController do
|
|
|
139
179
|
let(:attrs) { FactoryGirl.attributes_for(:bigbluebutton_server) }
|
|
140
180
|
let(:params) { { :bigbluebutton_server => attrs } }
|
|
141
181
|
let(:allowed_params) {
|
|
142
|
-
[ :name, :url, :
|
|
182
|
+
[ :name, :url, :salt, :param ]
|
|
143
183
|
}
|
|
144
184
|
|
|
145
185
|
it {
|
|
@@ -166,6 +206,7 @@ describe Bigbluebutton::ServersController do
|
|
|
166
206
|
context "with :redir_url" do
|
|
167
207
|
context "on success" do
|
|
168
208
|
before(:each) {
|
|
209
|
+
BigbluebuttonServer.any_instance.should_receive(:set_api_version_from_server).and_return(anything)
|
|
169
210
|
put :update, :id => @server.to_param, :bigbluebutton_server => new_server.attributes, :redir_url => '/any'
|
|
170
211
|
}
|
|
171
212
|
it { should respond_with(:redirect) }
|
|
@@ -182,14 +223,22 @@ describe Bigbluebutton::ServersController do
|
|
|
182
223
|
end
|
|
183
224
|
end
|
|
184
225
|
|
|
226
|
+
context "doesn't override @server" do
|
|
227
|
+
let!(:other_server) { FactoryGirl.create(:bigbluebutton_server) }
|
|
228
|
+
before { controller.instance_variable_set(:@server, other_server) }
|
|
229
|
+
before(:each) {
|
|
230
|
+
BigbluebuttonServer.any_instance.should_receive(:set_api_version_from_server).and_return(anything)
|
|
231
|
+
put :update, :id => @server.to_param, :bigbluebutton_server => new_server.attributes
|
|
232
|
+
}
|
|
233
|
+
it { should assign_to(:server).with(other_server) }
|
|
234
|
+
end
|
|
185
235
|
end
|
|
186
236
|
|
|
187
237
|
describe "#destroy" do
|
|
188
238
|
context "on success" do
|
|
189
239
|
before(:each) {
|
|
190
|
-
@server = server
|
|
191
240
|
expect {
|
|
192
|
-
delete :destroy, :id =>
|
|
241
|
+
delete :destroy, :id => server.to_param
|
|
193
242
|
}.to change{ BigbluebuttonServer.count }.by(-1)
|
|
194
243
|
}
|
|
195
244
|
it {
|
|
@@ -201,13 +250,19 @@ describe Bigbluebutton::ServersController do
|
|
|
201
250
|
context "with :redir_url" do
|
|
202
251
|
context "on success" do
|
|
203
252
|
before(:each) {
|
|
204
|
-
|
|
205
|
-
delete :destroy, :id => @server.to_param, :redir_url => '/any'
|
|
253
|
+
delete :destroy, :id => server.to_param, :redir_url => '/any'
|
|
206
254
|
}
|
|
207
255
|
it { should respond_with(:redirect) }
|
|
208
256
|
it { should redirect_to "/any" }
|
|
209
257
|
end
|
|
210
258
|
end
|
|
259
|
+
|
|
260
|
+
context "doesn't override @server" do
|
|
261
|
+
let!(:other_server) { FactoryGirl.create(:bigbluebutton_server) }
|
|
262
|
+
before { controller.instance_variable_set(:@server, other_server) }
|
|
263
|
+
before(:each) { delete :destroy, :id => server.to_param }
|
|
264
|
+
it { should assign_to(:server).with(other_server) }
|
|
265
|
+
end
|
|
211
266
|
end
|
|
212
267
|
|
|
213
268
|
describe "#activity" do
|
|
@@ -239,14 +294,13 @@ describe Bigbluebutton::ServersController do
|
|
|
239
294
|
context "with params[:update_list]" do
|
|
240
295
|
context "and :format nil" do
|
|
241
296
|
before(:each) { get :activity, :id => server.to_param, :update_list => true }
|
|
242
|
-
it { should render_template(
|
|
297
|
+
it { should render_template('bigbluebutton/servers/_activity_list') }
|
|
243
298
|
end
|
|
244
299
|
context "and :format = 'html'" do
|
|
245
300
|
before(:each) { get :activity, :id => server.to_param, :update_list => true, :format => "html" }
|
|
246
|
-
it { should render_template(
|
|
301
|
+
it { should render_template('bigbluebutton/servers/_activity_list') }
|
|
247
302
|
end
|
|
248
303
|
end
|
|
249
|
-
|
|
250
304
|
end
|
|
251
305
|
|
|
252
306
|
context "exception handling" do
|
|
@@ -270,18 +324,49 @@ describe Bigbluebutton::ServersController do
|
|
|
270
324
|
end
|
|
271
325
|
end
|
|
272
326
|
|
|
327
|
+
context "doesn't override @server" do
|
|
328
|
+
let!(:other_server) { FactoryGirl.create(:bigbluebutton_server) }
|
|
329
|
+
before {
|
|
330
|
+
controller.instance_variable_set(:@server, other_server)
|
|
331
|
+
other_server.stub(:fetch_meetings)
|
|
332
|
+
}
|
|
333
|
+
before(:each) { get :activity, :id => server.to_param }
|
|
334
|
+
it { should assign_to(:server).with(other_server) }
|
|
335
|
+
end
|
|
273
336
|
end # #activity
|
|
274
337
|
|
|
275
338
|
describe "#rooms" do
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
339
|
+
context "basic" do
|
|
340
|
+
before do
|
|
341
|
+
@room1 = FactoryGirl.create(:bigbluebutton_room, :server => server)
|
|
342
|
+
@room2 = FactoryGirl.create(:bigbluebutton_room, :server => server)
|
|
343
|
+
FactoryGirl.create(:bigbluebutton_room)
|
|
344
|
+
end
|
|
345
|
+
before(:each) { get :rooms, :id => server.to_param }
|
|
346
|
+
it { should respond_with(:success) }
|
|
347
|
+
it { should render_template(:rooms) }
|
|
348
|
+
it { should assign_to(:rooms).with([@room1, @room2]) }
|
|
349
|
+
end
|
|
350
|
+
|
|
351
|
+
context "doesn't override @server" do
|
|
352
|
+
let!(:other_server) { FactoryGirl.create(:bigbluebutton_server) }
|
|
353
|
+
before { controller.instance_variable_set(:@server, other_server) }
|
|
354
|
+
before(:each) { get :rooms, :id => server.to_param }
|
|
355
|
+
it { should assign_to(:server).with(other_server) }
|
|
356
|
+
end
|
|
357
|
+
|
|
358
|
+
context "doesn't override @rooms" do
|
|
359
|
+
let!(:my_rooms) {
|
|
360
|
+
[ FactoryGirl.create(:bigbluebutton_room, server: server),
|
|
361
|
+
FactoryGirl.create(:bigbluebutton_room, server: server) ]
|
|
362
|
+
}
|
|
363
|
+
before {
|
|
364
|
+
3.times { FactoryGirl.create(:bigbluebutton_room, server: server) }
|
|
365
|
+
controller.instance_variable_set(:@rooms, my_rooms)
|
|
366
|
+
}
|
|
367
|
+
before(:each) { get :rooms, :id => server.to_param }
|
|
368
|
+
it { should assign_to(:rooms).with(my_rooms) }
|
|
280
369
|
end
|
|
281
|
-
before(:each) { get :rooms, :id => server.to_param }
|
|
282
|
-
it { should respond_with(:success) }
|
|
283
|
-
it { should render_template(:rooms) }
|
|
284
|
-
it { should assign_to(:rooms).with([@room1, @room2]) }
|
|
285
370
|
end
|
|
286
371
|
|
|
287
372
|
describe "#publish_recordings" do
|
|
@@ -333,6 +418,15 @@ describe Bigbluebutton::ServersController do
|
|
|
333
418
|
end
|
|
334
419
|
end
|
|
335
420
|
|
|
421
|
+
context "doesn't override @server" do
|
|
422
|
+
let!(:other_server) { FactoryGirl.create(:bigbluebutton_server) }
|
|
423
|
+
before {
|
|
424
|
+
controller.instance_variable_set(:@server, other_server)
|
|
425
|
+
other_server.stub(:send_publish_recordings)
|
|
426
|
+
}
|
|
427
|
+
before(:each) { post :publish_recordings, :id => server.to_param, :recordings => recording_ids }
|
|
428
|
+
it { should assign_to(:server).with(other_server) }
|
|
429
|
+
end
|
|
336
430
|
end
|
|
337
431
|
|
|
338
432
|
describe "#unpublish_recordings" do
|
|
@@ -383,6 +477,15 @@ describe Bigbluebutton::ServersController do
|
|
|
383
477
|
end
|
|
384
478
|
end
|
|
385
479
|
|
|
480
|
+
context "doesn't override @server" do
|
|
481
|
+
let!(:other_server) { FactoryGirl.create(:bigbluebutton_server) }
|
|
482
|
+
before {
|
|
483
|
+
controller.instance_variable_set(:@server, other_server)
|
|
484
|
+
other_server.stub(:send_publish_recordings)
|
|
485
|
+
}
|
|
486
|
+
before(:each) { post :unpublish_recordings, :id => server.to_param, :recordings => recording_ids }
|
|
487
|
+
it { should assign_to(:server).with(other_server) }
|
|
488
|
+
end
|
|
386
489
|
end
|
|
387
490
|
|
|
388
491
|
describe "#fetch_recordings" do
|
|
@@ -430,22 +533,54 @@ describe Bigbluebutton::ServersController do
|
|
|
430
533
|
post :fetch_recordings, :id => server.to_param, :meta_first => "first-value", :meta_second => "second-value"
|
|
431
534
|
}
|
|
432
535
|
end
|
|
536
|
+
|
|
537
|
+
context "doesn't override @server" do
|
|
538
|
+
let!(:other_server) { FactoryGirl.create(:bigbluebutton_server) }
|
|
539
|
+
before {
|
|
540
|
+
controller.instance_variable_set(:@server, other_server)
|
|
541
|
+
other_server.stub(:fetch_recordings)
|
|
542
|
+
}
|
|
543
|
+
before(:each) { post :fetch_recordings, :id => server.to_param }
|
|
544
|
+
it { should assign_to(:server).with(other_server) }
|
|
545
|
+
end
|
|
433
546
|
end
|
|
434
547
|
|
|
435
548
|
describe "#recordings" do
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
549
|
+
context "basic" do
|
|
550
|
+
before do
|
|
551
|
+
@recording1 = FactoryGirl.create(:bigbluebutton_recording, :server => server)
|
|
552
|
+
@recording2 = FactoryGirl.create(:bigbluebutton_recording, :server => server)
|
|
553
|
+
FactoryGirl.create(:bigbluebutton_recording)
|
|
554
|
+
|
|
555
|
+
# one that belongs to another server but to a room that's in the target server
|
|
556
|
+
room = FactoryGirl.create(:bigbluebutton_room, :server => server)
|
|
557
|
+
FactoryGirl.create(:bigbluebutton_recording, :room => room)
|
|
558
|
+
end
|
|
559
|
+
before(:each) { get :recordings, :id => server.to_param }
|
|
560
|
+
it { should respond_with(:success) }
|
|
561
|
+
it { should render_template(:recordings) }
|
|
562
|
+
it { should assign_to(:recordings).with([@recording1, @recording2]) }
|
|
563
|
+
end
|
|
440
564
|
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
565
|
+
context "doesn't override @server" do
|
|
566
|
+
let!(:other_server) { FactoryGirl.create(:bigbluebutton_server) }
|
|
567
|
+
before { controller.instance_variable_set(:@server, other_server) }
|
|
568
|
+
before(:each) { get :recordings, :id => server.to_param }
|
|
569
|
+
it { should assign_to(:server).with(other_server) }
|
|
570
|
+
end
|
|
571
|
+
|
|
572
|
+
context "doesn't override @recordings" do
|
|
573
|
+
let!(:my_recordings) {
|
|
574
|
+
[ FactoryGirl.create(:bigbluebutton_recording, server: server),
|
|
575
|
+
FactoryGirl.create(:bigbluebutton_recording, server: server) ]
|
|
576
|
+
}
|
|
577
|
+
before {
|
|
578
|
+
3.times { FactoryGirl.create(:bigbluebutton_recording, server: server) }
|
|
579
|
+
controller.instance_variable_set(:@recordings, my_recordings)
|
|
580
|
+
}
|
|
581
|
+
before(:each) { get :recordings, :id => server.to_param }
|
|
582
|
+
it { should assign_to(:recordings).with(my_recordings) }
|
|
444
583
|
end
|
|
445
|
-
before(:each) { get :recordings, :id => server.to_param }
|
|
446
|
-
it { should respond_with(:success) }
|
|
447
|
-
it { should render_template(:recordings) }
|
|
448
|
-
it { should assign_to(:recordings).with([@recording1, @recording2]) }
|
|
449
584
|
end
|
|
450
585
|
|
|
451
586
|
end
|
|
@@ -4,9 +4,9 @@ FactoryGirl.define do
|
|
|
4
4
|
m.association :server, :factory => :bigbluebutton_server
|
|
5
5
|
m.association :room, :factory => :bigbluebutton_room
|
|
6
6
|
m.sequence(:name) { |n| "Name#{n}" }
|
|
7
|
-
m.
|
|
7
|
+
m.recorded false
|
|
8
8
|
m.running false
|
|
9
|
-
m.start_time { Time.now
|
|
9
|
+
m.start_time { Time.at(Time.now.to_i + rand(999999)) }
|
|
10
10
|
# m.creator_id
|
|
11
11
|
# m.creator_name
|
|
12
12
|
end
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
FactoryGirl.define do
|
|
2
|
-
factory
|
|
2
|
+
factory :bigbluebutton_playback_format do |r|
|
|
3
3
|
r.association :recording, :factory => :bigbluebutton_recording
|
|
4
|
-
r.
|
|
4
|
+
r.association :playback_type, :factory => :bigbluebutton_playback_type
|
|
5
5
|
r.url { "http://" + Forgery(:internet).domain_name + "/playback" }
|
|
6
6
|
r.length { Forgery(:basic).number }
|
|
7
7
|
end
|
|
@@ -10,6 +10,14 @@ FactoryGirl.define do
|
|
|
10
10
|
r.end_time { Time.now + rand(5).hours }
|
|
11
11
|
# TODO: should contain the meeting's start_time at the end
|
|
12
12
|
r.sequence(:recordid) { |n| "rec#{n}-#{SecureRandom.uuid}-#{DateTime.now.to_i}" }
|
|
13
|
+
r.size { rand((20*1024**2)..(500*1024**2)) } # size ranging from 20Mb to 500Mb
|
|
13
14
|
r.available true
|
|
15
|
+
|
|
16
|
+
after(:create) do |r|
|
|
17
|
+
r.updated_at = r.updated_at.change(:usec => 0)
|
|
18
|
+
r.created_at = r.created_at.change(:usec => 0)
|
|
19
|
+
r.start_time = r.start_time.change(:usec => 0)
|
|
20
|
+
r.end_time = r.end_time.change(:usec => 0)
|
|
21
|
+
end
|
|
14
22
|
end
|
|
15
23
|
end
|
|
@@ -5,17 +5,24 @@ FactoryGirl.define do
|
|
|
5
5
|
|
|
6
6
|
r.association :server, :factory => :bigbluebutton_server
|
|
7
7
|
r.sequence(:name) { |n| "Name#{n}" }
|
|
8
|
-
r.
|
|
9
|
-
r.
|
|
8
|
+
r.attendee_key { Forgery(:basic).password :at_least => 10, :at_most => 16 }
|
|
9
|
+
r.moderator_key { Forgery(:basic).password :at_least => 10, :at_most => 16 }
|
|
10
|
+
r.attendee_api_password { SecureRandom.uuid }
|
|
11
|
+
r.moderator_api_password { SecureRandom.uuid }
|
|
10
12
|
r.welcome_msg { Forgery(:lorem_ipsum).sentences(2) }
|
|
11
13
|
r.private false
|
|
12
14
|
r.sequence(:param) { |n| "meeting-#{n}" }
|
|
13
15
|
r.external false
|
|
14
|
-
r.
|
|
16
|
+
r.record_meeting false
|
|
15
17
|
r.duration 0
|
|
16
18
|
r.sequence(:voice_bridge) { |n| "7#{n.to_s.rjust(4, '0')}" }
|
|
17
19
|
r.dial_number { SecureRandom.random_number(9999999).to_s }
|
|
18
20
|
r.sequence(:logout_url) { |n| "http://bigbluebutton#{n}.test.com/logout" }
|
|
19
21
|
r.sequence(:max_participants) { |n| n }
|
|
22
|
+
|
|
23
|
+
after(:create) do |r|
|
|
24
|
+
r.updated_at = r.updated_at.change(:usec => 0)
|
|
25
|
+
r.created_at = r.created_at.change(:usec => 0)
|
|
26
|
+
end
|
|
20
27
|
end
|
|
21
28
|
end
|