bigbluebutton_rails 2.3.0 → 3.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 (62) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +20 -2
  3. data/Gemfile +0 -1
  4. data/Gemfile.lock +27 -27
  5. data/Rakefile +15 -14
  6. data/app/controllers/bigbluebutton/api/rooms_controller.rb +2 -2
  7. data/app/controllers/bigbluebutton/meetings_controller.rb +69 -0
  8. data/app/controllers/bigbluebutton/recordings_controller.rb +2 -8
  9. data/app/controllers/bigbluebutton/rooms_controller.rb +5 -4
  10. data/app/controllers/bigbluebutton/servers_controller.rb +2 -2
  11. data/app/models/bigbluebutton_meeting.rb +1 -1
  12. data/app/models/bigbluebutton_recording.rb +15 -3
  13. data/app/models/bigbluebutton_room.rb +28 -18
  14. data/app/models/bigbluebutton_server.rb +9 -9
  15. data/app/views/bigbluebutton/meetings/_form.html.erb +30 -0
  16. data/app/views/bigbluebutton/meetings/edit.html.erb +5 -0
  17. data/app/views/bigbluebutton/recordings/_form.html.erb +0 -4
  18. data/app/views/bigbluebutton/recordings/_recordings.html.erb +0 -1
  19. data/app/views/bigbluebutton/recordings/show.html.erb +0 -5
  20. data/app/views/bigbluebutton/rooms/_form.html.erb +2 -2
  21. data/app/views/bigbluebutton/rooms/_rooms.html.erb +1 -1
  22. data/app/views/bigbluebutton/rooms/show.html.erb +2 -2
  23. data/app/views/bigbluebutton/servers/_form.html.erb +2 -2
  24. data/app/views/bigbluebutton/servers/index.html.erb +1 -1
  25. data/app/views/bigbluebutton/servers/show.html.erb +2 -2
  26. data/app/workers/bigbluebutton_recordings_for_room_worker.rb +1 -1
  27. data/config/locales/en.yml +37 -24
  28. data/config/locales/pt-br.yml +37 -24
  29. data/lib/bigbluebutton_rails/configuration.rb +3 -0
  30. data/lib/bigbluebutton_rails/rails/routes.rb +6 -1
  31. data/lib/bigbluebutton_rails/version.rb +1 -1
  32. data/lib/generators/bigbluebutton_rails/templates/migration.rb +3 -3
  33. data/lib/generators/bigbluebutton_rails/templates/migration_2_4_0.rb +18 -0
  34. data/lib/generators/bigbluebutton_rails/templates/migration_2_5_0.rb +9 -0
  35. data/spec/controllers/bigbluebutton/api/rooms_controller_spec.rb +3 -3
  36. data/spec/controllers/bigbluebutton/meetings_controller_spec.rb +199 -0
  37. data/spec/controllers/bigbluebutton/recordings_controller_spec.rb +3 -3
  38. data/spec/controllers/bigbluebutton/rooms_controller_exception_handling_spec.rb +4 -2
  39. data/spec/controllers/bigbluebutton/rooms_controller_spec.rb +12 -6
  40. data/spec/controllers/bigbluebutton/servers_controller_spec.rb +8 -8
  41. data/spec/factories/bigbluebutton_meeting.rb +1 -0
  42. data/spec/factories/bigbluebutton_recording.rb +0 -1
  43. data/spec/factories/bigbluebutton_room.rb +1 -1
  44. data/spec/factories/bigbluebutton_server.rb +1 -1
  45. data/spec/models/bigbluebutton_meeting_db_spec.rb +2 -0
  46. data/spec/models/bigbluebutton_meeting_spec.rb +1 -1
  47. data/spec/models/bigbluebutton_recording_db_spec.rb +0 -1
  48. data/spec/models/bigbluebutton_recording_spec.rb +0 -4
  49. data/spec/models/bigbluebutton_room_db_spec.rb +1 -1
  50. data/spec/models/bigbluebutton_room_spec.rb +58 -69
  51. data/spec/models/bigbluebutton_server_db_spec.rb +1 -1
  52. data/spec/models/bigbluebutton_server_spec.rb +26 -26
  53. data/spec/rails_app/features/step_definitions/create_rooms_steps.rb +2 -2
  54. data/spec/rails_app/features/step_definitions/create_servers_steps.rb +2 -2
  55. data/spec/rails_app/features/step_definitions/destroy_rooms_steps.rb +1 -1
  56. data/spec/rails_app/features/step_definitions/destroy_servers_steps.rb +1 -1
  57. data/spec/rails_app/features/support/templates.rb +10 -10
  58. data/spec/rails_app/lib/tasks/db/populate.rake +0 -1
  59. data/spec/routing/bigbluebutton/meetings_routing_spec.rb +14 -0
  60. data/spec/support/controllers/bigbluebutton/rooms_controller.rb +6 -2
  61. data/spec/support/mocked_server.rb +2 -2
  62. metadata +8 -1
@@ -15,6 +15,7 @@ module BigbluebuttonRails
15
15
  attr_accessor :playback_url_authentication
16
16
  attr_accessor :playback_iframe
17
17
  attr_accessor :downloadable_playback_types
18
+ attr_accessor :debug
18
19
 
19
20
  # methods
20
21
  attr_accessor :select_server
@@ -32,6 +33,8 @@ module BigbluebuttonRails
32
33
  }
33
34
  @routing_scope = 'bigbluebutton'
34
35
 
36
+ @debug = false
37
+
35
38
  @metadata_room_id = :'bbbrails-room-id'
36
39
  @metadata_user_id = :'bbbrails-user-id'
37
40
  @metadata_user_name = :'bbbrails-user-name'
@@ -99,7 +99,7 @@ module ActionDispatch::Routing
99
99
  options = params.extract_options!
100
100
  options_scope = options.has_key?(:scope) ? options[:scope] : BigbluebuttonRails.configuration.routing_scope
101
101
  options_as = options.has_key?(:as) ? options[:as] : options_scope
102
- options_only = options.has_key?(:only) ? options[:only] : ["servers", "rooms", "recordings", "playback_types"]
102
+ options_only = options.has_key?(:only) ? options[:only] : ["servers", "rooms", "recordings", "playback_types", "meetings"]
103
103
  BigbluebuttonRails.configuration.set_controllers(options[:controllers])
104
104
 
105
105
  scope options_scope, :as => options_as do
@@ -107,6 +107,7 @@ module ActionDispatch::Routing
107
107
  add_routes_for_rooms if options_only.include?("rooms")
108
108
  add_routes_for_recordings if options_only.include?("recordings")
109
109
  add_routes_for_playback_types if options_only.include?("playback_types")
110
+ add_routes_for_meetings if options_only.include?("meetings")
110
111
  end
111
112
  end
112
113
 
@@ -159,5 +160,9 @@ module ActionDispatch::Routing
159
160
  resources :playback_types, :only => [:update],
160
161
  :controller => BigbluebuttonRails.configuration.controllers[:playback_types]
161
162
  end
163
+
164
+ def add_routes_for_meetings #:nodoc:
165
+ resources :meetings, :controller => 'bigbluebutton/meetings', :only => [:destroy, :update, :edit]
166
+ end
162
167
  end
163
168
  end
@@ -1,3 +1,3 @@
1
1
  module BigbluebuttonRails
2
- VERSION = "2.3.0".freeze
2
+ VERSION = "3.0.0".freeze
3
3
  end
@@ -6,7 +6,7 @@ class CreateBigbluebuttonRails < ActiveRecord::Migration
6
6
  t.string :url
7
7
  t.string :secret
8
8
  t.string :version
9
- t.string :param
9
+ t.string :slug
10
10
  t.timestamps
11
11
  end
12
12
 
@@ -24,7 +24,7 @@ class CreateBigbluebuttonRails < ActiveRecord::Migration
24
24
  t.integer :max_participants
25
25
  t.boolean :private, :default => false
26
26
  t.boolean :external, :default => false
27
- t.string :param
27
+ t.string :slug
28
28
  t.boolean :record_meeting, :default => false
29
29
  t.integer :duration, :default => 0
30
30
  t.string :attendee_api_password
@@ -59,7 +59,6 @@ class CreateBigbluebuttonRails < ActiveRecord::Migration
59
59
  t.decimal :start_time, precision: 14, scale: 0
60
60
  t.decimal :end_time, precision: 14, scale: 0
61
61
  t.boolean :available, :default => true
62
- t.string :description
63
62
  t.integer :size, limit: 8, default: 0
64
63
  t.text :recording_users
65
64
  t.timestamps
@@ -105,6 +104,7 @@ class CreateBigbluebuttonRails < ActiveRecord::Migration
105
104
  t.string :creator_name
106
105
  t.boolean :ended, :default => false
107
106
  t.string :got_stats
107
+ t.string :title, limit: 80
108
108
  t.timestamps
109
109
  end
110
110
  add_index :bigbluebutton_meetings, [:meetingid, :create_time], :unique => true
@@ -0,0 +1,18 @@
1
+ class BigbluebuttonRailsTo240 < ActiveRecord::Migration
2
+ def self.up
3
+ add_column :bigbluebutton_meetings, :title, :string, limit: 80
4
+
5
+ BigbluebuttonMeeting.find_each do |meeting|
6
+ if meeting.recording.present?
7
+ meeting.update_attributes(title: meeting.recording.description)
8
+ end
9
+ end
10
+
11
+ remove_column :bigbluebutton_recordings, :description
12
+ end
13
+
14
+ def self.down
15
+ add_column :bigbluebutton_recordings, :description, :string
16
+ remove_column :bigbluebutton_meetings, :title
17
+ end
18
+ end
@@ -0,0 +1,9 @@
1
+ class BigbluebuttonRailsTo250 < ActiveRecord::Migration
2
+ def self.up
3
+ add_column :bigbluebutton_recordings, :state, :string
4
+ end
5
+
6
+ def self.down
7
+ remove_column :bigbluebutton_recordings, :state
8
+ end
9
+ end
@@ -142,9 +142,9 @@ describe Bigbluebutton::Api::RoomsController do
142
142
  end
143
143
 
144
144
  context "filtering" do
145
- before { room.update_attributes(name: "La Lo", param: "lalo-1") }
146
- let!(:room2) { FactoryGirl.create(:bigbluebutton_room, name: "La Le", param: "lale-2") }
147
- let!(:room3) { FactoryGirl.create(:bigbluebutton_room, name: "Li Lo", param: "lilo") }
145
+ before { room.update_attributes(name: "La Lo", slug: "lalo-1") }
146
+ let!(:room2) { FactoryGirl.create(:bigbluebutton_room, name: "La Le", slug: "lale-2") }
147
+ let!(:room3) { FactoryGirl.create(:bigbluebutton_room, name: "Li Lo", slug: "lilo") }
148
148
 
149
149
  context "filters by terms" do
150
150
  before(:each) { get :index, filter: { terms: 'la' }, format: :json }
@@ -0,0 +1,199 @@
1
+ require 'spec_helper'
2
+ require 'bigbluebutton_api'
3
+
4
+ # Some tests mock the server and its API object
5
+ # We don't want to trigger real API calls here (this is done in the integration tests)
6
+
7
+ describe Bigbluebutton::MeetingsController do
8
+ render_views
9
+ let!(:server) { FactoryGirl.create(:bigbluebutton_server) }
10
+ let!(:meeting) { FactoryGirl.create(:bigbluebutton_meeting) }
11
+ let!(:rec){ FactoryGirl.create(:bigbluebutton_recording, :published => false, :meeting => meeting) }
12
+
13
+ describe '#destroy' do
14
+ context "when meeting_ended == true" do
15
+ context "when meeting has no recordings" do
16
+ let!(:meeting) { FactoryGirl.create(:bigbluebutton_meeting, ended: true) }
17
+
18
+ context "when meeting.destroy == true" do
19
+ before {
20
+ request.env["HTTP_REFERER"] = '/any'
21
+ BigbluebuttonServer.any_instance.stub(:send_delete_recordings).and_return(true)
22
+ expect {
23
+ delete :destroy, :id => meeting.to_param
24
+ }.to change{ BigbluebuttonMeeting.count }.by(-1)
25
+ }
26
+ it("should decrease meetings count by -1") { }
27
+ it { should redirect_to '/any' }
28
+ it { should set_the_flash.to(I18n.t('bigbluebutton_rails.meetings.delete.success')) }
29
+ end
30
+
31
+ context "when meeting.destroy == false" do
32
+ before {
33
+ request.env["HTTP_REFERER"] = '/any'
34
+ BigbluebuttonMeeting.any_instance.stub(:destroy).and_return(false)
35
+ expect {
36
+ delete :destroy, :id => meeting.to_param
37
+ }.to change{ BigbluebuttonMeeting.count }.by(0)
38
+ }
39
+ it("should not decrease meetings count") { }
40
+ it { should redirect_to '/any' }
41
+ it { should set_the_flash.to(I18n.t('bigbluebutton_rails.meetings.notice.destroy.error_destroy')) }
42
+ end
43
+ end
44
+ context "when meeting has recordings" do
45
+ let!(:meeting) { FactoryGirl.create(:bigbluebutton_meeting, ended: true) }
46
+
47
+ context "when meeting.destroy == true" do
48
+ before {
49
+ BigbluebuttonServer.any_instance.stub(:send_delete_recordings).and_return(true)
50
+ request.env["HTTP_REFERER"] = '/any'
51
+ expect {
52
+ delete :destroy, :id => meeting.to_param
53
+ }.to change{ BigbluebuttonRecording.count }.by(-1)
54
+ }
55
+ it("should decrease recordings count by -1") { }
56
+ it { should redirect_to '/any' }
57
+ it { should set_the_flash.to(I18n.t('bigbluebutton_rails.meetings.delete.success')) }
58
+ end
59
+
60
+ context "when meeting.destroy == false" do
61
+ before {
62
+ request.env["HTTP_REFERER"] = '/any'
63
+ BigbluebuttonMeeting.any_instance.stub(:destroy).and_return(false)
64
+ expect {
65
+ delete :destroy, :id => meeting.to_param
66
+ }.to change{ BigbluebuttonRecording.count }.by(0)
67
+ }
68
+ it("should not decrease Recordings count") { }
69
+ it { should redirect_to '/any' }
70
+ it { should set_the_flash.to(I18n.t('bigbluebutton_rails.meetings.notice.destroy.error_destroy')) }
71
+ end
72
+ end
73
+ end
74
+
75
+ context "When meeting_ended == false" do
76
+ let!(:meeting) { FactoryGirl.create(:bigbluebutton_meeting, ended: false) }
77
+
78
+ before {
79
+ request.env["HTTP_REFERER"] = '/any'
80
+ BigbluebuttonMeeting.any_instance.stub(:destroy).and_return(false)
81
+ expect {
82
+ delete :destroy, :id => meeting.to_param
83
+ }.to change{ BigbluebuttonMeeting.count }.by(0)
84
+ }
85
+ it("should not decrease meetings count") { }
86
+ it { should redirect_to '/any' }
87
+ it { should set_the_flash.to(I18n.t('bigbluebutton_rails.meetings.notice.destroy.running.not_ended')) }
88
+ end
89
+
90
+ end
91
+
92
+ describe "#edit" do
93
+ context "basic" do
94
+ before(:each) { get :edit, :id => meeting.to_param }
95
+ it { should respond_with(:success) }
96
+ it { should assign_to(:meeting).with(meeting) }
97
+ it { should render_template(:edit) }
98
+ end
99
+
100
+ context "doesn't override @meeting" do
101
+ let!(:other_meeting) { FactoryGirl.create(:bigbluebutton_meeting) }
102
+ before { controller.instance_variable_set(:@meeting, other_meeting) }
103
+ before(:each) { get :edit, :id => meeting.to_param }
104
+ it { should assign_to(:meeting).with(other_meeting) }
105
+ end
106
+ end
107
+
108
+ describe "#update" do
109
+ let!(:new_meeting) { FactoryGirl.build(:bigbluebutton_meeting) }
110
+
111
+ context "on success" do
112
+ before(:each) {
113
+ expect {
114
+ put :update, :id => meeting.to_param, :bigbluebutton_meeting => new_meeting.attributes
115
+ }.not_to change{ BigbluebuttonMeeting.count }
116
+ }
117
+ it { should respond_with(:redirect) }
118
+ it {
119
+ saved = BigbluebuttonMeeting.find(meeting)
120
+ should redirect_to(bigbluebutton_meeting_path(saved))
121
+ }
122
+ it {
123
+ saved = BigbluebuttonMeeting.find(meeting)
124
+ ignored = new_meeting.attributes.keys - ['title'] # only description is editable
125
+ saved.should have_same_attributes_as(new_meeting, ignored)
126
+ }
127
+ it { should set_the_flash.to(I18n.t('bigbluebutton_rails.meetings.notice.update.success')) }
128
+ end
129
+
130
+ context "on failure" do
131
+ before(:each) {
132
+ BigbluebuttonMeeting.should_receive(:find_by).and_return(meeting)
133
+ meeting.should_receive(:update_attributes).and_return(false)
134
+ put :update, :id => meeting.to_param, :bigbluebutton_meeting => new_meeting.attributes
135
+ }
136
+ it { should render_template(:edit) }
137
+ it { should assign_to(:meeting).with(meeting) }
138
+ end
139
+
140
+ describe "params handling" do
141
+ let(:attrs) { FactoryGirl.attributes_for(:bigbluebutton_meeting) }
142
+ let(:params) { { :bigbluebutton_meeting => attrs } }
143
+ let(:allowed_params) {
144
+ [:title]
145
+ }
146
+ it {
147
+ # we just check that the rails method 'permit' is being called on the hash with the
148
+ # correct parameters
149
+ BigbluebuttonMeeting.stub(:find_by).and_return(meeting)
150
+ meeting.stub(:update_attributes).and_return(true)
151
+ attrs.stub(:permit).and_return(attrs)
152
+ controller.stub(:params).and_return(params)
153
+
154
+ put :update, :id => meeting.to_param, :bigbluebutton_meeting => attrs
155
+ # puts attrs.inspect
156
+ attrs.should have_received(:permit).with(*allowed_params)
157
+ }
158
+ end
159
+
160
+ # to make sure it doesn't break if the hash informed doesn't have the key :bigbluebutton_meeting
161
+ describe "if parameters are not informed" do
162
+ it {
163
+ put :update, :id => meeting.to_param
164
+ should redirect_to(bigbluebutton_meeting_path(meeting))
165
+ }
166
+ end
167
+
168
+ context "with :redir_url" do
169
+ context "on success" do
170
+ before(:each) {
171
+ put :update, :id => meeting.to_param, :bigbluebutton_meeting => new_meeting.attributes, :redir_url => '/any'
172
+ }
173
+ it { should respond_with(:redirect) }
174
+ it { should redirect_to "/any" }
175
+ end
176
+
177
+ context "on failure" do
178
+ before(:each) {
179
+ BigbluebuttonMeeting.should_receive(:find_by).and_return(meeting)
180
+ meeting.should_receive(:update_attributes).and_return(false)
181
+ put :update, :id => meeting.to_param, :bigbluebutton_meeting => new_meeting.attributes, :redir_url => '/any'
182
+ }
183
+ it { should respond_with(:redirect) }
184
+ it { should redirect_to "/any" }
185
+ end
186
+ end
187
+
188
+ context "doesn't override @meeting" do
189
+ let!(:other_meeting) { FactoryGirl.create(:bigbluebutton_meeting) }
190
+ before { controller.instance_variable_set(:@meeting, other_meeting) }
191
+ before(:each) { put :update, :id => meeting.to_param, :bigbluebutton_meeting => new_meeting.attributes }
192
+ it { should assign_to(:meeting).with(other_meeting) }
193
+ end
194
+ end
195
+
196
+
197
+
198
+
199
+ end
@@ -92,7 +92,7 @@ describe Bigbluebutton::RecordingsController do
92
92
  let(:attrs) { FactoryGirl.attributes_for(:bigbluebutton_recording) }
93
93
  let(:params) { { :bigbluebutton_recording => attrs } }
94
94
  let(:allowed_params) {
95
- [ :description ]
95
+ []
96
96
  }
97
97
  it {
98
98
  # we just check that the rails method 'permit' is being called on the hash with the
@@ -165,7 +165,7 @@ describe Bigbluebutton::RecordingsController do
165
165
  before(:each) {
166
166
  expect {
167
167
  delete :destroy, :id => recording.to_param
168
- }.to change{ BigbluebuttonRecording.count }.by(-1)
168
+ }.to change{ BigbluebuttonRecording.count }.by(0)
169
169
  }
170
170
  it { should respond_with(:redirect) }
171
171
  it { should redirect_to bigbluebutton_recordings_url }
@@ -202,7 +202,7 @@ describe Bigbluebutton::RecordingsController do
202
202
  mocked_server.should_not_receive(:send_delete_recordings)
203
203
  expect {
204
204
  delete :destroy, :id => recording.to_param
205
- }.to change{ BigbluebuttonRecording.count }.by(-1)
205
+ }.to change{ BigbluebuttonRecording.count }.by(0)
206
206
  }
207
207
  it { should respond_with(:redirect) }
208
208
  it { should redirect_to bigbluebutton_recordings_url }
@@ -37,10 +37,12 @@ describe Bigbluebutton::RoomsController do
37
37
  end
38
38
 
39
39
  describe "#running" do
40
- before { mocked_api.should_receive(:is_meeting_running?) { raise bbb_error } }
40
+ before {
41
+ mocked_api.should_receive(:is_meeting_running?) { raise bbb_error }
42
+ }
41
43
  before(:each) { get :running, :id => room.to_param }
42
44
  it { should respond_with(:success) }
43
- it { response.body.should == build_running_json(false, bbb_error_msg[0..200]) }
45
+ it { response.body.should == build_running_json(false,{}, bbb_error_msg[0..200]) }
44
46
  it { should set_the_flash.to(bbb_error_msg[0..200]) }
45
47
  end
46
48
 
@@ -207,7 +207,7 @@ describe Bigbluebutton::RoomsController do
207
207
  let(:allowed_params) {
208
208
  [ :name, :meetingid, :attendee_key, :moderator_key, :welcome_msg,
209
209
  :private, :logout_url, :dial_number, :voice_bridge, :max_participants, :owner_id,
210
- :owner_type, :external, :param, :record_meeting, :duration, :default_layout, :presenter_share_only,
210
+ :owner_type, :external, :slug, :record_meeting, :duration, :default_layout, :presenter_share_only,
211
211
  :auto_start_video, :auto_start_audio, :background,
212
212
  :moderator_only_message, :auto_start_recording, :allow_start_stop_recording,
213
213
  :metadata_attributes => [ :id, :name, :content, :_destroy, :owner_id ] ]
@@ -299,7 +299,7 @@ describe Bigbluebutton::RoomsController do
299
299
  let(:allowed_params) {
300
300
  [ :name, :meetingid, :attendee_key, :moderator_key, :welcome_msg,
301
301
  :private, :logout_url, :dial_number, :voice_bridge, :max_participants, :owner_id,
302
- :owner_type, :external, :param, :record_meeting, :duration, :default_layout, :presenter_share_only,
302
+ :owner_type, :external, :slug, :record_meeting, :duration, :default_layout, :presenter_share_only,
303
303
  :auto_start_video, :auto_start_audio, :background,
304
304
  :moderator_only_message, :auto_start_recording, :allow_start_stop_recording,
305
305
  :metadata_attributes => [ :id, :name, :content, :_destroy, :owner_id ] ]
@@ -408,18 +408,24 @@ describe Bigbluebutton::RoomsController do
408
408
  }
409
409
 
410
410
  context "room is running" do
411
- before { @api_mock.should_receive(:is_meeting_running?).and_return(true) }
411
+ before {
412
+ @api_mock.should_receive(:is_meeting_running?).and_return(true)
413
+ @api_mock.should_receive(:get_meeting_info).and_return({running: true, participantCount: 12})
414
+ }
412
415
  before(:each) { get :running, :id => room.to_param }
413
416
  it { should respond_with(:success) }
414
417
  it { should respond_with_content_type('application/json') }
415
418
  it { should assign_to(:room).with(room) }
416
- it { response.body.should == build_running_json(true) }
419
+ it { response.body.should == build_running_json(true,{running: true, participantCount: 12}) }
417
420
  end
418
421
 
419
422
  context "room is not running" do
420
- before { mocked_api.should_receive(:is_meeting_running?).and_return(false) }
423
+ before {
424
+ mocked_api.should_receive(:is_meeting_running?).and_return(false)
425
+ @api_mock.should_receive(:get_meeting_info).and_return({running: false})
426
+ }
421
427
  before(:each) { get :running, :id => room.to_param }
422
- it { response.body.should == build_running_json(false) }
428
+ it { response.body.should == build_running_json(false,{running: false}) }
423
429
  end
424
430
 
425
431
  context "on failure" do
@@ -88,7 +88,7 @@ describe Bigbluebutton::ServersController do
88
88
  let(:attrs) { FactoryGirl.attributes_for(:bigbluebutton_server) }
89
89
  let(:params) { { :bigbluebutton_server => attrs } }
90
90
  let(:allowed_params) {
91
- [ :name, :url, :secret, :param ]
91
+ [ :name, :url, :secret, :slug ]
92
92
  }
93
93
 
94
94
  it {
@@ -178,13 +178,13 @@ describe Bigbluebutton::ServersController do
178
178
  let(:attrs) { FactoryGirl.attributes_for(:bigbluebutton_server) }
179
179
  let(:params) { { :bigbluebutton_server => attrs } }
180
180
  let(:allowed_params) {
181
- [ :name, :url, :secret, :param ]
181
+ [ :name, :url, :secret, :slug ]
182
182
  }
183
183
 
184
184
  it {
185
185
  # we just check that the rails method 'permit' is being called on the hash with the
186
186
  # correct parameters
187
- BigbluebuttonServer.stub(:find_by_param).and_return(server)
187
+ BigbluebuttonServer.stub(:find_by).and_return(server)
188
188
  server.stub(:update_attributes).and_return(true)
189
189
  attrs.stub(:permit).and_return(attrs)
190
190
  controller.stub(:params).and_return(params)
@@ -269,7 +269,7 @@ describe Bigbluebutton::ServersController do
269
269
  let(:room2) { FactoryGirl.create(:bigbluebutton_room) }
270
270
  before do
271
271
  # return our mocked server
272
- BigbluebuttonServer.stub(:find_by_param).with(server.to_param).
272
+ BigbluebuttonServer.stub(:find_by).with(slug: server.to_param).
273
273
  and_return(server)
274
274
  end
275
275
 
@@ -338,7 +338,7 @@ describe Bigbluebutton::ServersController do
338
338
  let(:recording_ids) { "id1,id2,id3" }
339
339
  before do
340
340
  # return our mocked server
341
- BigbluebuttonServer.stub(:find_by_param).with(server.to_param).and_return(server)
341
+ BigbluebuttonServer.stub(:find_by).with(slug: server.to_param).and_return(server)
342
342
  end
343
343
 
344
344
  context "on success" do
@@ -398,7 +398,7 @@ describe Bigbluebutton::ServersController do
398
398
  let(:recording_ids) { "id1,id2,id3" }
399
399
  before do
400
400
  # return our mocked server
401
- BigbluebuttonServer.stub(:find_by_param).with(server.to_param).and_return(server)
401
+ BigbluebuttonServer.stub(:find_by).with(slug: server.to_param).and_return(server)
402
402
  end
403
403
 
404
404
  context "on success" do
@@ -456,7 +456,7 @@ describe Bigbluebutton::ServersController do
456
456
  describe "#fetch_recordings" do
457
457
  before do
458
458
  # return our mocked server
459
- BigbluebuttonServer.stub(:find_by_param).with(server.to_param).and_return(server)
459
+ BigbluebuttonServer.stub(:find_by).with(slug: server.to_param).and_return(server)
460
460
  end
461
461
 
462
462
  context "on success" do
@@ -560,7 +560,7 @@ describe Bigbluebutton::ServersController do
560
560
  describe "#check" do
561
561
  before do
562
562
  # return our mocked server
563
- BigbluebuttonServer.stub(:find_by_param).with(server.to_param).and_return(server)
563
+ BigbluebuttonServer.stub(:find_by).with(slug: server.to_param).and_return(server)
564
564
  end
565
565
 
566
566
  context "on success" do