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.
Files changed (125) hide show
  1. checksums.yaml +7 -0
  2. data/.ruby-version +1 -1
  3. data/.travis.yml +10 -1
  4. data/CHANGELOG.md +259 -0
  5. data/Gemfile +14 -19
  6. data/Gemfile.lock +194 -188
  7. data/README.md +416 -0
  8. data/Rakefile +12 -12
  9. data/TODO.md +13 -0
  10. data/app/controllers/bigbluebutton/playback_types_controller.rb +44 -0
  11. data/app/controllers/bigbluebutton/recordings_controller.rb +17 -10
  12. data/app/controllers/bigbluebutton/rooms_controller.rb +65 -36
  13. data/app/controllers/bigbluebutton/servers_controller.rb +12 -8
  14. data/app/models/bigbluebutton_metadata.rb +1 -1
  15. data/app/models/bigbluebutton_playback_format.rb +22 -1
  16. data/app/models/bigbluebutton_playback_type.rb +29 -0
  17. data/app/models/bigbluebutton_recording.rb +38 -19
  18. data/app/models/bigbluebutton_room.rb +150 -73
  19. data/app/models/bigbluebutton_room_options.rb +10 -7
  20. data/app/models/bigbluebutton_server.rb +69 -13
  21. data/app/models/bigbluebutton_server_config.rb +49 -0
  22. data/app/views/bigbluebutton/recordings/_form.html.erb +4 -0
  23. data/app/views/bigbluebutton/recordings/_recordings.html.erb +10 -3
  24. data/app/views/bigbluebutton/rooms/_form.html.erb +18 -6
  25. data/app/views/bigbluebutton/rooms/_rooms.html.erb +6 -3
  26. data/app/views/bigbluebutton/rooms/invite.html.erb +5 -5
  27. data/app/views/bigbluebutton/rooms/show.html.erb +18 -6
  28. data/app/views/bigbluebutton/servers/_form.html.erb +1 -1
  29. data/app/views/bigbluebutton/servers/show.html.erb +5 -0
  30. data/app/workers/bigbluebutton_finish_meetings.rb +11 -0
  31. data/app/workers/bigbluebutton_update_recordings.rb +11 -0
  32. data/app/workers/bigbluebutton_update_server_configs.rb +18 -0
  33. data/bigbluebutton_rails.gemspec +8 -7
  34. data/config/locales/en.yml +52 -7
  35. data/config/locales/pt-br.yml +162 -0
  36. data/config/resque/resque.rake +27 -0
  37. data/config/resque/workers_schedule.yml +17 -0
  38. data/lib/bigbluebutton_rails.rb +30 -2
  39. data/lib/bigbluebutton_rails/background_tasks.rb +31 -0
  40. data/lib/bigbluebutton_rails/controller_methods.rb +12 -8
  41. data/lib/bigbluebutton_rails/dial_number.rb +48 -0
  42. data/lib/bigbluebutton_rails/rails/routes.rb +9 -2
  43. data/lib/bigbluebutton_rails/utils.rb +9 -2
  44. data/lib/bigbluebutton_rails/version.rb +1 -1
  45. data/lib/generators/bigbluebutton_rails/install_generator.rb +0 -8
  46. data/lib/generators/bigbluebutton_rails/templates/migration.rb +28 -6
  47. data/lib/generators/bigbluebutton_rails/templates/migration_2_0_0.rb +56 -0
  48. data/lib/tasks/bigbluebutton_rails/meetings.rake +1 -13
  49. data/lib/tasks/bigbluebutton_rails/recordings.rake +1 -12
  50. data/lib/tasks/bigbluebutton_rails/server_configs.rake +10 -0
  51. data/spec/bigbluebutton_rails_spec.rb +0 -13
  52. data/spec/controllers/bigbluebutton/playback_types_controller_spec.rb +76 -0
  53. data/spec/controllers/bigbluebutton/recordings_controller_spec.rb +109 -37
  54. data/spec/controllers/bigbluebutton/rooms_controller_exception_handling_spec.rb +1 -0
  55. data/spec/controllers/bigbluebutton/rooms_controller_json_responses_spec.rb +27 -3
  56. data/spec/controllers/bigbluebutton/rooms_controller_spec.rb +338 -77
  57. data/spec/controllers/bigbluebutton/servers_controller_json_responses_spec.rb +8 -0
  58. data/spec/controllers/bigbluebutton/servers_controller_spec.rb +182 -47
  59. data/spec/factories/bigbluebutton_meeting.rb +2 -2
  60. data/spec/factories/bigbluebutton_playback_format.rb +2 -2
  61. data/spec/factories/bigbluebutton_playback_type.rb +7 -0
  62. data/spec/factories/bigbluebutton_recording.rb +8 -0
  63. data/spec/factories/bigbluebutton_room.rb +10 -3
  64. data/spec/factories/bigbluebutton_server.rb +6 -1
  65. data/spec/factories/bigbluebutton_server_config.rb +6 -0
  66. data/spec/generators/install_generator_spec.rb +0 -16
  67. data/spec/lib/bigbluebutton_rails/background_tasks_spec.rb +61 -0
  68. data/spec/lib/bigbluebutton_rails/dial_number_spec.rb +78 -0
  69. data/spec/lib/bigbluebutton_rails/utils_spec.rb +56 -0
  70. data/spec/lib/tasks/meetings_rake_spec.rb +14 -1
  71. data/spec/lib/tasks/recordings_rake_spec.rb +14 -1
  72. data/spec/models/bigbluebutton_meeting_db_spec.rb +3 -3
  73. data/spec/models/bigbluebutton_meeting_spec.rb +4 -4
  74. data/spec/models/bigbluebutton_playback_format_db_spec.rb +0 -1
  75. data/spec/models/bigbluebutton_playback_format_spec.rb +75 -4
  76. data/spec/models/bigbluebutton_playback_type_db_spec.rb +14 -0
  77. data/spec/models/bigbluebutton_playback_type_spec.rb +76 -0
  78. data/spec/models/bigbluebutton_recording_db_spec.rb +3 -1
  79. data/spec/models/bigbluebutton_recording_spec.rb +234 -58
  80. data/spec/models/bigbluebutton_room_db_spec.rb +8 -6
  81. data/spec/models/bigbluebutton_room_options_db_spec.rb +1 -0
  82. data/spec/models/bigbluebutton_room_options_spec.rb +137 -38
  83. data/spec/models/bigbluebutton_room_spec.rb +540 -153
  84. data/spec/models/bigbluebutton_server_config_spec.rb +115 -0
  85. data/spec/models/bigbluebutton_server_spec.rb +180 -23
  86. data/spec/rails_app/app/controllers/my_playback_types_controller.rb +7 -0
  87. data/spec/rails_app/app/views/frontpage/show.html.erb +1 -0
  88. data/spec/rails_app/app/views/my_playback_types/index.html.erb +33 -0
  89. data/spec/rails_app/config/application.rb +0 -3
  90. data/spec/rails_app/config/database.yml.travis +10 -0
  91. data/spec/rails_app/config/environments/development.rb +1 -6
  92. data/spec/rails_app/config/environments/production.rb +2 -0
  93. data/spec/rails_app/config/environments/test.rb +2 -0
  94. data/spec/rails_app/config/routes.rb +5 -2
  95. data/spec/rails_app/db/seeds.rb +1 -1
  96. data/spec/rails_app/features/config.yml.example +3 -4
  97. data/spec/rails_app/features/join_rooms.feature +14 -14
  98. data/spec/rails_app/features/step_definitions/activity_monitor_servers_step.rb +2 -2
  99. data/spec/rails_app/features/step_definitions/create_rooms_steps.rb +4 -4
  100. data/spec/rails_app/features/step_definitions/destroy_rooms_steps.rb +2 -2
  101. data/spec/rails_app/features/step_definitions/join_rooms_steps.rb +10 -10
  102. data/spec/rails_app/features/step_definitions/web_steps.rb +2 -2
  103. data/spec/rails_app/features/support/configurations.rb +1 -1
  104. data/spec/rails_app/features/support/templates.rb +12 -12
  105. data/spec/rails_app/lib/tasks/db/populate.rake +19 -6
  106. data/spec/routing/bigbluebutton/custom_controllers_routing_spec.rb +1 -1
  107. data/spec/routing/bigbluebutton/recordings_only_routing_spec.rb +2 -2
  108. data/spec/routing/bigbluebutton/recordings_routing_spec.rb +2 -2
  109. data/spec/routing/bigbluebutton/rooms_only_routing_spec.rb +1 -1
  110. data/spec/routing/bigbluebutton/rooms_routing_spec.rb +15 -1
  111. data/spec/routing/bigbluebutton/servers_only_routing_spec.rb +1 -1
  112. data/spec/routing/bigbluebutton/servers_routing_spec.rb +1 -1
  113. data/spec/spec_helper.rb +23 -31
  114. data/spec/support/matchers/delegate_matcher.rb +8 -1
  115. data/spec/support/matchers/shoulda/respond_with_json_matcher.rb +2 -2
  116. data/spec/support/mocked_server.rb +2 -0
  117. data/spec/support/shared_contexts/rake.rb +23 -0
  118. data/spec/workers/bigbluebutton_finish_meetings_spec.rb +14 -0
  119. data/spec/workers/bigbluebutton_update_recordings_spec.rb +14 -0
  120. data/spec/workers/bigbluebutton_update_server_configs_spec.rb +47 -0
  121. metadata +70 -59
  122. data/CHANGELOG.rdoc +0 -111
  123. data/README.rdoc +0 -319
  124. data/TODO.rdoc +0 -16
  125. 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
- before { 3.times { FactoryGirl.create(:bigbluebutton_server) } }
9
- before(:each) { get :index }
10
- it { should respond_with(:success) }
11
- it { should assign_to(:servers).with(BigbluebuttonServer.all) }
12
- it { should render_template(:index) }
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
- before(:each) { get :show, :id => server.to_param }
17
- it { should respond_with(:success) }
18
- it { should assign_to(:server).with(server) }
19
- it { should render_template(:show) }
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
- before(:each) { get :edit, :id => server.to_param }
31
- it { should respond_with(:success) }
32
- it { should assign_to(:server).with(server) }
33
- it { should render_template(:edit) }
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, :version, :salt, :param ]
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
- before :each do
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, :id => @server.to_param, :bigbluebutton_server => new_server.attributes
115
- }.not_to change{ BigbluebuttonServer.count }
116
- end
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.should have_same_attributes_as(new_server)
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, :version, :salt, :param ]
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 => @server.to_param
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
- @server = server
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(:activity_list) }
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(:activity_list) }
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
- before do
277
- @room1 = FactoryGirl.create(:bigbluebutton_room, :server => server)
278
- @room2 = FactoryGirl.create(:bigbluebutton_room, :server => server)
279
- FactoryGirl.create(:bigbluebutton_room)
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
- before do
437
- @recording1 = FactoryGirl.create(:bigbluebutton_recording, :server => server)
438
- @recording2 = FactoryGirl.create(:bigbluebutton_recording, :server => server)
439
- FactoryGirl.create(:bigbluebutton_recording)
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
- # one that belongs to another server but to a room that's in the target server
442
- room = FactoryGirl.create(:bigbluebutton_room, :server => server)
443
- FactoryGirl.create(:bigbluebutton_recording, :room => room)
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.record false
7
+ m.recorded false
8
8
  m.running false
9
- m.start_time { Time.now - rand(5).hours }
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 :bigbluebutton_playback_format do |r|
2
+ factory :bigbluebutton_playback_format do |r|
3
3
  r.association :recording, :factory => :bigbluebutton_recording
4
- r.sequence(:format_type) { |n| "#{Forgery(:name).first_name.downcase}-#{n}" }
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
@@ -0,0 +1,7 @@
1
+ FactoryGirl.define do
2
+ factory :bigbluebutton_playback_type do |pbt|
3
+ pbt.sequence(:identifier) { |n| "#{Forgery(:name).first_name.downcase}-#{n}" }
4
+ pbt.visible true
5
+ pbt.default false
6
+ end
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.attendee_password { Forgery(:basic).password :at_least => 10, :at_most => 16 }
9
- r.moderator_password { Forgery(:basic).password :at_least => 10, :at_most => 16 }
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.record false
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