bigbluebutton_rails 1.0.0 → 1.1.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 (55) hide show
  1. data/CHANGELOG.rdoc +11 -0
  2. data/Gemfile.lock +1 -1
  3. data/README.rdoc +46 -32
  4. data/Rakefile +0 -1
  5. data/app/controllers/bigbluebutton/rooms_controller.rb +17 -16
  6. data/app/controllers/bigbluebutton/servers_controller.rb +6 -2
  7. data/app/models/bigbluebutton_room.rb +35 -1
  8. data/app/models/bigbluebutton_server.rb +1 -1
  9. data/app/views/bigbluebutton/rooms/_form.html.erb +7 -3
  10. data/app/views/bigbluebutton/rooms/_rooms.html.erb +37 -0
  11. data/app/views/bigbluebutton/rooms/edit.html.erb +2 -2
  12. data/app/views/bigbluebutton/rooms/external.html.erb +2 -1
  13. data/app/views/bigbluebutton/rooms/index.html.erb +2 -37
  14. data/app/views/bigbluebutton/rooms/invite.html.erb +2 -2
  15. data/app/views/bigbluebutton/rooms/join.html.erb +1 -1
  16. data/app/views/bigbluebutton/rooms/new.html.erb +1 -1
  17. data/app/views/bigbluebutton/rooms/show.html.erb +10 -4
  18. data/app/views/bigbluebutton/servers/_activity_list.html.erb +6 -6
  19. data/app/views/bigbluebutton/servers/index.html.erb +4 -3
  20. data/app/views/bigbluebutton/servers/rooms.html.erb +2 -0
  21. data/app/views/bigbluebutton/servers/show.html.erb +3 -4
  22. data/config/locales/en.yml +7 -3
  23. data/lib/bigbluebutton_rails/exceptions.rb +4 -0
  24. data/lib/bigbluebutton_rails/rails/routes.rb +28 -35
  25. data/lib/bigbluebutton_rails/version.rb +1 -1
  26. data/spec/controllers/bigbluebutton/rooms_controller_exception_handling_spec.rb +13 -10
  27. data/spec/controllers/bigbluebutton/rooms_controller_json_responses_spec.rb +13 -13
  28. data/spec/controllers/bigbluebutton/rooms_controller_spec.rb +114 -115
  29. data/spec/controllers/bigbluebutton/servers_controller_json_responses_spec.rb +12 -1
  30. data/spec/controllers/bigbluebutton/servers_controller_spec.rb +11 -0
  31. data/spec/generators/install_generator_spec.rb +1 -1
  32. data/spec/models/bigbluebutton_room_spec.rb +166 -80
  33. data/spec/models/bigbluebutton_server_spec.rb +4 -4
  34. data/spec/rails_app/features/activity_monitor_servers.feature +6 -0
  35. data/spec/rails_app/features/create_rooms.feature +5 -0
  36. data/spec/rails_app/features/create_servers.feature +7 -2
  37. data/spec/rails_app/features/edit_rooms.feature +7 -0
  38. data/spec/rails_app/features/edit_servers.feature +8 -2
  39. data/spec/rails_app/features/join_rooms.feature +1 -0
  40. data/spec/rails_app/features/list_and_show_rooms.feature +10 -2
  41. data/spec/rails_app/features/step_definitions/activity_monitor_servers_step.rb +10 -10
  42. data/spec/rails_app/features/step_definitions/common_steps.rb +6 -4
  43. data/spec/rails_app/features/step_definitions/create_rooms_steps.rb +1 -0
  44. data/spec/rails_app/features/step_definitions/join_mobile_steps.rb +1 -3
  45. data/spec/rails_app/features/step_definitions/join_rooms_steps.rb +3 -7
  46. data/spec/rails_app/features/step_definitions/list_and_show_rooms_steps.rb +12 -5
  47. data/spec/rails_app/features/step_definitions/list_and_show_servers_steps.rb +1 -5
  48. data/spec/rails_app/features/support/{application_controller.rb → patches/application_controller.rb} +0 -0
  49. data/spec/rails_app/features/support/patches/bigbluebutton_room.rb +9 -0
  50. data/spec/rails_app/features/support/paths.rb +12 -10
  51. data/spec/rails_app/features/support/templates.rb +90 -46
  52. data/spec/routing/bigbluebutton/custom_controllers_routing_spec.rb +38 -22
  53. data/spec/routing/bigbluebutton/rooms_routing_spec.rb +142 -58
  54. data/spec/routing/bigbluebutton/servers_routing_spec.rb +9 -1
  55. metadata +11 -8
@@ -1,6 +1,6 @@
1
1
  <h1>Edit <%= BigbluebuttonRoom.model_name.human %>:</h1>
2
2
  <%= render 'form' %>
3
3
 
4
- <%= link_to 'Show', bigbluebutton_server_room_path(@server, @room) %> |
5
- <%= link_to 'Back', bigbluebutton_server_rooms_path %>
4
+ <%= link_to 'Show', bigbluebutton_room_path(@room) %> |
5
+ <%= link_to 'Back', bigbluebutton_rooms_path %>
6
6
 
@@ -4,7 +4,8 @@
4
4
 
5
5
  <p>This meeting was created from another application.<br/>You must provide a name and a password to join:</p>
6
6
 
7
- <%= form_tag external_bigbluebutton_server_rooms_path(@server) do %>
7
+ <%= form_tag external_bigbluebutton_rooms_path do %>
8
+ <%= hidden_field_tag "server_id", params[:server_id] %>
8
9
  <%= hidden_field_tag "meeting", params[:meeting] %>
9
10
 
10
11
  <div class="field">
@@ -1,37 +1,2 @@
1
- <h1>Listing <%= BigbluebuttonRoom.model_name.human %>:</h1>
2
-
3
- <div id="bbbrails_rooms_links">
4
- <%= link_to 'Back to server', bigbluebutton_server_path(@server) %> |
5
- <%= link_to 'Back to server list', bigbluebutton_servers_path %><br/>
6
- <%= link_to 'New room', new_bigbluebutton_server_room_path %>
7
- </div>
8
-
9
- <ul id="bbbrails_rooms_list">
10
- <% @rooms.each do |room| %>
11
- <li>
12
- <div class="field"><label><%= BigbluebuttonRoom.human_attribute_name(:server_id) %></label> <%= room.server_id %></div>
13
- <div class="field"><label><%= BigbluebuttonRoom.human_attribute_name(:meetingid) %></label> <%= room.meetingid %></div>
14
- <div class="field"><label><%= BigbluebuttonRoom.human_attribute_name(:randomize_meetingid) %></label> <%= room.randomize_meetingid %></div>
15
- <div class="field"><label><%= BigbluebuttonRoom.human_attribute_name(:name) %></label> <%= room.name %></div>
16
- <div class="field"><label><%= BigbluebuttonRoom.human_attribute_name(:private) %></label> <%= room.private %></div>
17
- <div class="field"><label><%= BigbluebuttonRoom.human_attribute_name(:attendee_password) %></label> <%= room.attendee_password %></div>
18
- <div class="field"><label><%= BigbluebuttonRoom.human_attribute_name(:moderator_password) %></label> <%= room.moderator_password %></div>
19
- <div class="field"><label><%= BigbluebuttonRoom.human_attribute_name(:welcome_msg) %></label> <%= room.welcome_msg %></div>
20
- <div class="field"><label><%= BigbluebuttonRoom.human_attribute_name(:logout_url) %></label> <%= room.logout_url %></div>
21
- <div class="field"><label><%= BigbluebuttonRoom.human_attribute_name(:dial_number) %></label> <%= room.dial_number %></div>
22
- <div class="field"><label><%= BigbluebuttonRoom.human_attribute_name(:voice_bridge) %></label> <%= room.voice_bridge %></div>
23
- <div class="field"><label><%= BigbluebuttonRoom.human_attribute_name(:max_participants) %></label> <%= room.max_participants %></div>
24
- <div class="field"><label><%= BigbluebuttonRoom.human_attribute_name(:external) %></label> <%= room.external %></div>
25
- <div class="field"><label><%= BigbluebuttonRoom.human_attribute_name(:param) %></label> <%= room.param %></div>
26
- <div class="field"><label>Access</label>
27
- <%= link_to 'Show', bigbluebutton_server_room_path(@server, room) %> |
28
- <%= link_to 'Join', join_bigbluebutton_server_room_path(@server, room) %> |
29
- <%= link_to 'Invite', invite_bigbluebutton_server_room_path(@server, room) %> |
30
- <%= link_to 'Mobile Join', join_mobile_bigbluebutton_server_room_path(@server, room) %> |
31
- <%= link_to 'Edit', edit_bigbluebutton_server_room_path(@server, room) %> |
32
- <%= link_to 'End', end_bigbluebutton_server_room_path(@server, room), :confirm => 'Are you sure?' %> |
33
- <%= link_to 'Destroy', bigbluebutton_server_room_path(@server, room), :confirm => 'Are you sure?', :method => :delete %>
34
- </div>
35
- </li>
36
- <% end %>
37
- </ul>
1
+ <h1>Listing rooms:</h1>
2
+ <%= render 'rooms' %>
@@ -2,7 +2,7 @@
2
2
 
3
3
  function ajax_request() {
4
4
  $.ajax({
5
- url: "<%= running_bigbluebutton_server_room_url(@server, @room, :format => 'json') %>",
5
+ url: "<%= running_bigbluebutton_room_url(@room, :format => 'json') %>",
6
6
  dataType: 'json',
7
7
  error: function(xhr_data) {
8
8
  $("#meeting_status").html("<request error>.");
@@ -33,7 +33,7 @@ $(document).ready(function(){
33
33
  <p>Meeting status: <span id="meeting_status">-</span> (<a href="javascript:ajax_request();">refresh</a>)</p>
34
34
  <p><%= @room.name %> requires a name and/or password to join:</p>
35
35
 
36
- <%= form_tag join_bigbluebutton_server_room_path(@server, @room) do %>
36
+ <%= form_tag join_bigbluebutton_room_path(@room) do %>
37
37
 
38
38
  <div class="field">
39
39
  <label for="user_name">Name:</label><br />
@@ -2,7 +2,7 @@
2
2
 
3
3
  function ajax_request() {
4
4
  $.ajax({
5
- url: "<%= running_bigbluebutton_server_room_url(@server, @room, :format => 'json') %>",
5
+ url: "<%= running_bigbluebutton_room_url(@room, :format => 'json') %>",
6
6
  dataType: 'json',
7
7
  error: function(xhr_data) {
8
8
  //
@@ -2,4 +2,4 @@
2
2
 
3
3
  <%= render 'form' %>
4
4
 
5
- <%= link_to 'Back', bigbluebutton_server_rooms_path %>
5
+ <%= link_to 'Back', bigbluebutton_rooms_path %>
@@ -8,7 +8,7 @@
8
8
  </p>
9
9
  <p>
10
10
  <b><%= BigbluebuttonRoom.human_attribute_name(:server_id) %>:</b>
11
- <%= @room.server.id %>
11
+ <%= @room.server_id %>
12
12
  </p>
13
13
  <p>
14
14
  <b><%= BigbluebuttonRoom.human_attribute_name(:meetingid) %>:</b>
@@ -59,9 +59,15 @@
59
59
  <%= @room.param %>
60
60
  </p>
61
61
 
62
- <%= link_to 'Edit', edit_bigbluebutton_server_room_path(@room.server, @room) %> |
63
- <%= link_to 'Back', bigbluebutton_server_rooms_path(@room.server) %>
62
+ <%= link_to 'Edit', edit_bigbluebutton_room_path(@room) %> |
63
+ <%= link_to 'Back', bigbluebutton_rooms_path %>
64
64
 
65
65
  <br/>
66
66
 
67
- <%= link_to 'Join', join_bigbluebutton_server_room_path(@room.server, @room) %>
67
+ <span>Access:</span>
68
+ <%= link_to 'Show', bigbluebutton_room_path(@room) %> |
69
+ <%= link_to 'Join', join_bigbluebutton_room_path(@room) %> |
70
+ <%= link_to 'Invite', invite_bigbluebutton_room_path(@room) %> |
71
+ <%= link_to 'Mobile Join', join_mobile_bigbluebutton_room_path(@room) %> |
72
+ <%= link_to 'End', end_bigbluebutton_room_path(@room), :confirm => 'Are you sure?' %> |
73
+ <%= link_to 'Destroy', bigbluebutton_room_path(@room), :confirm => 'Are you sure?', :method => :delete %>
@@ -3,14 +3,14 @@
3
3
  <div class="title_bar">
4
4
  <% unless room.new_record? %>
5
5
  <div class="button_bar">
6
- <%= link_to 'Show', bigbluebutton_server_room_path(server, room) %>
7
- <%= link_to 'Edit', edit_bigbluebutton_server_room_path(server, room) %>
8
- <%= link_to 'Destroy', bigbluebutton_server_room_path(server, room), :confirm => 'Are you sure?', :method => :delete %>
6
+ <%= link_to 'Show', bigbluebutton_room_path(room) %>
7
+ <%= link_to 'Edit', edit_bigbluebutton_room_path(room) %>
8
+ <%= link_to 'Destroy', bigbluebutton_room_path(room), :confirm => 'Are you sure?', :method => :delete %>
9
9
  </div>
10
10
  <div class="button_bar">
11
- <%= link_to 'Join', join_bigbluebutton_server_room_path(server, room) %>
12
- <%= link_to 'Mobile Join', join_mobile_bigbluebutton_server_room_path(server, room) %>
13
- <%= link_to 'End', end_bigbluebutton_server_room_path(server, room), :confirm => 'Are you sure?' %>
11
+ <%= link_to 'Join', join_bigbluebutton_room_path(room) %>
12
+ <%= link_to 'Mobile Join', join_mobile_bigbluebutton_room_path(room) %>
13
+ <%= link_to 'End', end_bigbluebutton_room_path(room), :confirm => 'Are you sure?' %>
14
14
  </div>
15
15
  <% end %>
16
16
  <b><%= room.name %></b> (ID: <%= room.meetingid %>) -
@@ -1,7 +1,8 @@
1
1
  <h1>Listing <%= BigbluebuttonServer.model_name.human %>:</h1>
2
2
 
3
3
  <div id="bbbrails_servers_links">
4
- <%= link_to 'New server', new_bigbluebutton_server_path %>
4
+ <%= link_to('View rooms list', bigbluebutton_rooms_path) %><br/>
5
+ <%= link_to('New server', new_bigbluebutton_server_path) %>
5
6
  </div>
6
7
 
7
8
  <ul id="bbbrails_servers_list">
@@ -14,10 +15,10 @@
14
15
  <div><label><%= BigbluebuttonServer.human_attribute_name(:param) %></label> <%= server.param %></div>
15
16
  <div><label>Access</label>
16
17
  <%= link_to 'Show', server %> |
17
- <%= link_to 'View rooms', bigbluebutton_server_rooms_path(server) %> |
18
+ <%= link_to 'View rooms', rooms_bigbluebutton_server_path(server) %> |
18
19
  <%= link_to 'Activity monitor', activity_bigbluebutton_server_path(server) %> |
19
20
  <%= link_to 'Edit', edit_bigbluebutton_server_path(server) %> |
20
- <%= link_to 'Destroy', server, :confirm => 'Are you sure?', :method => :delete %>
21
+ <%= link_to 'Destroy', bigbluebutton_server_path(server), :confirm => 'Are you sure?', :method => :delete %>
21
22
  </div>
22
23
  </li>
23
24
  <% end %>
@@ -0,0 +1,2 @@
1
+ <h1>Listing rooms for the server <%= @server.name %>:</h1>
2
+ <%= render 'bigbluebutton/rooms/rooms' %>
@@ -29,8 +29,7 @@
29
29
 
30
30
 
31
31
  <%= link_to 'Edit', edit_bigbluebutton_server_path(@server) %> |
32
+ <%= link_to 'View rooms', rooms_bigbluebutton_server_path(@server) %> |
33
+ <%= link_to 'Activity monitor', activity_bigbluebutton_server_path(@server) %> |
34
+ <%= link_to 'Destroy', bigbluebutton_server_path(@server), :confirm => 'Are you sure?', :method => :delete %> |
32
35
  <%= link_to 'Back', bigbluebutton_servers_path %>
33
-
34
- <br/>
35
-
36
- <%= link_to 'New room', new_bigbluebutton_server_room_path(@server) %>
@@ -27,10 +27,14 @@ en:
27
27
  auth:
28
28
  failure: "Authentication failure."
29
29
  not_running: "The meeting is not running. You must wait for a moderator to join."
30
- wrong_params: "Wrong params in your request."
30
+ wrong_params: "Wrong parameters in your request."
31
31
  external:
32
- blank_meetingid: "You must specify the meetingid of the meeting you want to join"
33
- param_format: 'you can only use letters, numbers and the symbols "-" or "_" (not at the begin or end)'
32
+ blank_meetingid: "You must specify the meetingid of the meeting you want to join."
33
+ inexistent_meeting: "The meeting informed does not exists in the server."
34
+ wrong_params: "Wrong parameters in your request."
35
+ param_format: 'you can only use letters, numbers and the symbols "-" or "_" (not at the begin or end).'
36
+ server:
37
+ not_set: "Your room must be associated to a server to execute this operation."
34
38
 
35
39
  activerecord:
36
40
  models:
@@ -3,4 +3,8 @@ module BigbluebuttonRails
3
3
  # Raised when the user is not authorized to join a room
4
4
  class RoomAccessDenied < StandardError; end
5
5
 
6
+ # Raised when an action that requires a server is called for a
7
+ # room that does not have a server associated
8
+ class ServerRequired < StandardError; end
9
+
6
10
  end
@@ -13,23 +13,23 @@ module ActionDispatch::Routing
13
13
  #
14
14
  # Passing the option :default, it will generate the default routes to access
15
15
  # bigbluebutton servers and rooms. These routes are the resourceful routes generated
16
- # by rails to a resource, plus two new actions for the rooms.
16
+ # by rails to a resource, plus the other available actions for servers and rooms.
17
17
  #
18
18
  # bigbluebutton_routes :default
19
19
  #
20
- # Some routes generated:
20
+ # Examples of some routes generated:
21
21
  #
22
22
  # bigbluebutton_server GET /bigbluebutton/servers/:id(.:format)
23
23
  # { :action=>"show", :controller=>"bigbluebutton/servers" }
24
24
  # POST /bigbluebutton/servers/:id(.:format)
25
25
  # { :action=>"update", :controller=>"bigbluebutton/servers" }
26
- # join_bigbluebutton_server_room GET /bigbluebutton/servers/:server_id/rooms/:id/join(.:format)
26
+ # join_bigbluebutton_room GET /bigbluebutton/rooms/:id/join(.:format)
27
27
  # { :action=>"join", :controller=>"bigbluebutton/rooms" }
28
- # running_bigbluebutton_server_room GET /bigbluebutton/servers/:server_id/rooms/:id/running(.:format)
28
+ # running_bigbluebutton_room GET /bigbluebutton/rooms/:id/running(.:format)
29
29
  # { :action=>"running", :controller=>"bigbluebutton/rooms" }
30
30
  #
31
31
  # The routes point by default to the controllers Bigbluebutton::ServersController and Bigbluebutton::RoomsController
32
- # and the the routes are scoped (namespaced) with 'bigbluebutton'. You can change the namespace with:
32
+ # and they are scoped (namespaced) with 'bigbluebutton'. You can change the namespace with:
33
33
  #
34
34
  # bigbluebutton_routes :default, :scope => "webconference"
35
35
  #
@@ -40,7 +40,8 @@ module ActionDispatch::Routing
40
40
  # ==== Room matchers
41
41
  #
42
42
  # Generates matchers to access a room from a different url or inside another resource.
43
- # It creates routes to the actions #show, #join, #running, #end, #invite, and #auth.
43
+ # Rooms can belong to users, communities or any other type of "entity" in an aplication.
44
+ # This helper creates routes to the all the actions available in Bigbluebutton::RoomsController.
44
45
  #
45
46
  # bigbluebutton_routes :room_matchers
46
47
  #
@@ -50,18 +51,12 @@ module ActionDispatch::Routing
50
51
  # bigbluebutton_routes :room_matchers
51
52
  # end
52
53
  #
53
- # The routes generated are:
54
+ # Examples of some routes generated:
54
55
  #
55
56
  # user_room GET /users/:user_id/room/:id(.:format)
56
57
  # { :controller=>"bigbluebutton/rooms", :action=>"show" }
57
58
  # user_join_room GET /users/:user_id/room/:id/join(.:format)
58
59
  # { :controller=>"bigbluebutton/rooms", :action=>"join" }
59
- # user_join_mobile_room GET /users/:user_id/room/:id/invite(.:format)
60
- # { :controller=>"bigbluebutton/rooms", :action=>"invite" }
61
- # user_auth_room POST /users/:user_id/room/:id/join(.:format)
62
- # { :controller=>"bigbluebutton/rooms", :action=>"auth" }
63
- # user_running_room GET /users/:user_id/room/:id/running(.:format)
64
- # { :controller=>"bigbluebutton/rooms", :action=>"running" }
65
60
  # user_end_room GET /users/:user_id/room/:id/end(.:format)
66
61
  # { :controller=>"bigbluebutton/rooms", :action=>"end" }
67
62
  # user_invite_room GET /users/:user_id/room/:id/invite(.:format)
@@ -82,33 +77,31 @@ module ActionDispatch::Routing
82
77
  scope options_scope, :as => options_scope do
83
78
  resources :servers, :controller => BigbluebuttonRails.controllers[:servers] do
84
79
  get :activity, :on => :member
85
- resources :rooms, :controller => BigbluebuttonRails.controllers[:rooms] do
86
- collection do
87
- get :external
88
- post :external, :action => :external_auth
89
- end
90
- member do
91
- get :join
92
- get :running
93
- get :end
94
- get :invite
95
- get :join_mobile
96
- post :join, :action => :auth
97
- end
98
- end
80
+ get :rooms, :on => :member
99
81
  end
82
+ add_routes_for_rooms
100
83
  end
101
84
  end
102
85
 
103
86
  def bigbluebutton_routes_room_matchers(*params) #:nodoc:
104
- # TODO This is generating helpers like "user_running_room" instead of "running_user_room"
105
- get 'room/:id' => "#{BigbluebuttonRails.controllers[:rooms]}#show", :as => 'room'
106
- get 'room/:id/join' => "#{BigbluebuttonRails.controllers[:rooms]}#join", :as => 'join_room'
107
- get 'room/:id/join_mobile' => "#{BigbluebuttonRails.controllers[:rooms]}#join_mobile", :as => 'join_mobile_room'
108
- post 'room/:id/join' => "#{BigbluebuttonRails.controllers[:rooms]}#auth", :as => 'join_room'
109
- get 'room/:id/running' => "#{BigbluebuttonRails.controllers[:rooms]}#running", :as => 'running_room'
110
- get 'room/:id/end' => "#{BigbluebuttonRails.controllers[:rooms]}#end", :as => 'end_room'
111
- get 'room/:id/invite' => "#{BigbluebuttonRails.controllers[:rooms]}#invite", :as => 'invite_room'
87
+ add_routes_for_rooms
88
+ end
89
+
90
+ def add_routes_for_rooms
91
+ resources :rooms, :controller => BigbluebuttonRails.controllers[:rooms] do
92
+ collection do
93
+ get :external
94
+ post :external, :action => :external_auth
95
+ end
96
+ member do
97
+ get :join
98
+ get :running
99
+ get :end
100
+ get :invite
101
+ get :join_mobile
102
+ post :join, :action => :auth
103
+ end
104
+ end
112
105
  end
113
106
 
114
107
  end
@@ -1,3 +1,3 @@
1
1
  module BigbluebuttonRails
2
- VERSION = "1.0.0".freeze
2
+ VERSION = "1.1.0".freeze
3
3
  end
@@ -2,14 +2,13 @@ require 'spec_helper'
2
2
 
3
3
  describe Bigbluebutton::RoomsController do
4
4
  render_views
5
- let(:server) { Factory.create(:bigbluebutton_server) }
6
- let(:room) { Factory.create(:bigbluebutton_room, :server => server) }
7
5
 
8
6
  # make sure that the exceptions thrown by bigbluebutton-api-ruby are treated by the controller
9
7
  context "exception handling" do
10
8
  let(:bbb_error_msg) { "err msg" }
11
9
  let(:bbb_error) { BigBlueButton::BigBlueButtonException.new(bbb_error_msg) }
12
10
  let(:http_referer) { bigbluebutton_server_path(mocked_server) }
11
+ let(:room) { Factory.create(:bigbluebutton_room, :server => mocked_server) }
13
12
  before {
14
13
  mock_server_and_api
15
14
  request.env["HTTP_REFERER"] = http_referer
@@ -26,16 +25,16 @@ describe Bigbluebutton::RoomsController do
26
25
  end
27
26
 
28
27
  after :each do
29
- delete :destroy, :server_id => mocked_server.to_param, :id => room.to_param
28
+ delete :destroy, :id => room.to_param
30
29
  should respond_with(:redirect)
31
- should redirect_to bigbluebutton_server_rooms_url
30
+ should redirect_to bigbluebutton_rooms_url
32
31
  should set_the_flash.to(bbb_error_msg)
33
32
  end
34
33
  end
35
34
 
36
35
  describe "#running" do
37
36
  before { mocked_api.should_receive(:is_meeting_running?) { raise bbb_error } }
38
- before(:each) { get :running, :server_id => mocked_server.to_param, :id => room.to_param }
37
+ before(:each) { get :running, :id => room.to_param }
39
38
  it { should respond_with(:success) }
40
39
  it { response.body.should == build_running_json(false, bbb_error_msg) }
41
40
  it { should set_the_flash.to(bbb_error_msg) }
@@ -52,7 +51,7 @@ describe Bigbluebutton::RoomsController do
52
51
  end
53
52
 
54
53
  after :each do
55
- get :end, :server_id => mocked_server.to_param, :id => room.to_param
54
+ get :end, :id => room.to_param
56
55
  should respond_with(:redirect)
57
56
  should redirect_to(http_referer)
58
57
  should set_the_flash.to(bbb_error_msg)
@@ -63,7 +62,11 @@ describe Bigbluebutton::RoomsController do
63
62
  before { controller.stub(:bigbluebutton_user) { Factory.build(:user) } }
64
63
 
65
64
  context "as moderator" do
66
- before { controller.should_receive(:bigbluebutton_role).with(room).and_return(:moderator) }
65
+ before {
66
+ controller.should_receive(:bigbluebutton_role).with(room).and_return(:moderator)
67
+ room.stub(:select_server).and_return(mocked_server)
68
+ BigbluebuttonRoom.stub(:find_by_param).and_return(room)
69
+ }
67
70
 
68
71
  it "catches exception on is_meeting_running" do
69
72
  mocked_api.should_receive(:is_meeting_running?) { raise bbb_error }
@@ -80,7 +83,7 @@ describe Bigbluebutton::RoomsController do
80
83
  end
81
84
 
82
85
  after :each do
83
- get :join, :server_id => mocked_server.to_param, :id => room.to_param
86
+ get :join, :id => room.to_param
84
87
  should respond_with(:redirect)
85
88
  should redirect_to(http_referer)
86
89
  should set_the_flash.to(bbb_error_msg)
@@ -88,7 +91,7 @@ describe Bigbluebutton::RoomsController do
88
91
 
89
92
  end
90
93
 
91
- context "as moderator" do
94
+ context "as attendee" do
92
95
  before { controller.should_receive(:bigbluebutton_role).with(room).and_return(:attendee) }
93
96
 
94
97
  it "catches exception on is_meeting_running" do
@@ -101,7 +104,7 @@ describe Bigbluebutton::RoomsController do
101
104
  end
102
105
 
103
106
  after :each do
104
- get :join, :server_id => mocked_server.to_param, :id => room.to_param
107
+ get :join, :id => room.to_param
105
108
  should respond_with(:redirect)
106
109
  should redirect_to(http_referer)
107
110
  should set_the_flash.to(bbb_error_msg)
@@ -5,21 +5,21 @@ describe Bigbluebutton::RoomsController do
5
5
  let(:server) { Factory.create(:bigbluebutton_server) }
6
6
  let(:room) { Factory.create(:bigbluebutton_room, :server => server) }
7
7
 
8
- context "json responses for " do
8
+ context "json responses for" do
9
9
 
10
10
  describe "#index" do
11
11
  before do
12
12
  @room1 = Factory.create(:bigbluebutton_room, :server => server)
13
13
  @room2 = Factory.create(:bigbluebutton_room, :server => server)
14
14
  end
15
- before(:each) { get :index, :server_id => server.to_param, :format => 'json' }
15
+ before(:each) { get :index, :format => 'json' }
16
16
  it { should respond_with(:success) }
17
17
  it { should respond_with_content_type(:json) }
18
18
  it { should respond_with_json([@room1, @room2].to_json) }
19
19
  end
20
20
 
21
21
  describe "#new" do
22
- before(:each) { get :new, :server_id => server.to_param, :format => 'json' }
22
+ before(:each) { get :new, :format => 'json' }
23
23
  it { should respond_with(:success) }
24
24
  it { should respond_with_content_type(:json) }
25
25
  it {
@@ -30,7 +30,7 @@ describe Bigbluebutton::RoomsController do
30
30
  end
31
31
 
32
32
  describe "#show" do
33
- before(:each) { get :show, :server_id => server.to_param, :id => room.to_param, :format => 'json' }
33
+ before(:each) { get :show, :id => room.to_param, :format => 'json' }
34
34
  it { should respond_with(:success) }
35
35
  it { should respond_with_content_type(:json) }
36
36
  it { should respond_with_json(room.to_json) }
@@ -41,7 +41,7 @@ describe Bigbluebutton::RoomsController do
41
41
 
42
42
  context "on success" do
43
43
  before(:each) {
44
- post :create, :server_id => server.to_param, :bigbluebutton_room => new_room.attributes, :format => 'json'
44
+ post :create, :bigbluebutton_room => new_room.attributes, :format => 'json'
45
45
  }
46
46
  it { should respond_with(:created) }
47
47
  it { should respond_with_content_type(:json) }
@@ -54,7 +54,7 @@ describe Bigbluebutton::RoomsController do
54
54
  context "on failure" do
55
55
  before(:each) {
56
56
  new_room.name = nil # invalid
57
- post :create, :server_id => server.to_param, :bigbluebutton_room => new_room.attributes, :format => 'json'
57
+ post :create, :bigbluebutton_room => new_room.attributes, :format => 'json'
58
58
  }
59
59
  it { should respond_with(:unprocessable_entity) }
60
60
  it { should respond_with_content_type(:json) }
@@ -71,7 +71,7 @@ describe Bigbluebutton::RoomsController do
71
71
 
72
72
  context "on success" do
73
73
  before(:each) {
74
- put :update, :server_id => server.to_param, :id => @room.to_param, :bigbluebutton_room => new_room.attributes, :format => 'json'
74
+ put :update, :id => @room.to_param, :bigbluebutton_room => new_room.attributes, :format => 'json'
75
75
  }
76
76
  it { should respond_with(:success) }
77
77
  it { should respond_with_content_type(:json) }
@@ -84,7 +84,7 @@ describe Bigbluebutton::RoomsController do
84
84
  context "on failure" do
85
85
  before(:each) {
86
86
  new_room.name = nil # invalid
87
- put :update, :server_id => server.to_param, :id => @room.to_param, :bigbluebutton_room => new_room.attributes, :format => 'json'
87
+ put :update, :id => @room.to_param, :bigbluebutton_room => new_room.attributes, :format => 'json'
88
88
  }
89
89
  it { should respond_with(:unprocessable_entity) }
90
90
  it { should respond_with_content_type(:json) }
@@ -103,7 +103,7 @@ describe Bigbluebutton::RoomsController do
103
103
  mocked_api.should_receive(:is_meeting_running?).and_return(true)
104
104
  mocked_api.should_receive(:end_meeting).with(room.meetingid, room.moderator_password)
105
105
  }
106
- before(:each) { get :end, :server_id => mocked_server.to_param, :id => room.to_param, :format => 'json' }
106
+ before(:each) { get :end, :id => room.to_param, :format => 'json' }
107
107
  it { should respond_with(:success) }
108
108
  it { should respond_with_content_type(:json) }
109
109
  it { should respond_with_json(I18n.t('bigbluebutton_rails.rooms.notice.end.success')) }
@@ -111,7 +111,7 @@ describe Bigbluebutton::RoomsController do
111
111
 
112
112
  context "room is not running" do
113
113
  before { mocked_api.should_receive(:is_meeting_running?).and_return(false) }
114
- before(:each) { get :end, :server_id => mocked_server.to_param, :id => room.to_param, :format => 'json' }
114
+ before(:each) { get :end, :id => room.to_param, :format => 'json' }
115
115
  it { should respond_with(:error) }
116
116
  it { should respond_with_content_type(:json) }
117
117
  it { should respond_with_json(I18n.t('bigbluebutton_rails.rooms.notice.end.not_running')) }
@@ -122,7 +122,7 @@ describe Bigbluebutton::RoomsController do
122
122
  before {
123
123
  mocked_api.should_receive(:is_meeting_running?).and_return{ raise BigBlueButton::BigBlueButtonException.new(msg) }
124
124
  }
125
- before(:each) { get :end, :server_id => mocked_server.to_param, :id => room.to_param, :format => 'json' }
125
+ before(:each) { get :end, :id => room.to_param, :format => 'json' }
126
126
  it { should respond_with(:error) }
127
127
  it { should respond_with_content_type(:json) }
128
128
  it { should respond_with_json(msg) }
@@ -139,7 +139,7 @@ describe Bigbluebutton::RoomsController do
139
139
  mocked_api.should_receive(:end_meeting)
140
140
  }
141
141
  before(:each) {
142
- delete :destroy, :server_id => mocked_server.to_param, :id => room.to_param, :format => 'json'
142
+ delete :destroy, :id => room.to_param, :format => 'json'
143
143
  }
144
144
  it { should respond_with(:success) }
145
145
  it { should respond_with_content_type(:json) }
@@ -155,7 +155,7 @@ describe Bigbluebutton::RoomsController do
155
155
  mocked_api.should_receive(:is_meeting_running?).and_return{ raise BigBlueButton::BigBlueButtonException.new(msg) }
156
156
  }
157
157
  before(:each) {
158
- delete :destroy, :server_id => mocked_server.to_param, :id => room.to_param, :format => 'json'
158
+ delete :destroy, :id => room.to_param, :format => 'json'
159
159
  }
160
160
  it { should respond_with(:error) }
161
161
  it { should respond_with_content_type(:json) }