bigbluebutton_rails 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
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) }