bigbluebutton_rails 0.0.6 → 0.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 (69) hide show
  1. data/.gitignore +1 -1
  2. data/CHANGELOG.rdoc +8 -0
  3. data/Gemfile +13 -7
  4. data/Gemfile.lock +112 -86
  5. data/README.rdoc +26 -80
  6. data/Rakefile +2 -1
  7. data/TODO_08 +13 -0
  8. data/app/controllers/bigbluebutton/rooms_controller.rb +9 -9
  9. data/app/controllers/bigbluebutton/servers_controller.rb +1 -1
  10. data/app/models/bigbluebutton_room.rb +16 -14
  11. data/app/models/bigbluebutton_server.rb +1 -1
  12. data/app/views/bigbluebutton/rooms/_form.html.erb +1 -1
  13. data/app/views/bigbluebutton/rooms/external.html.erb +3 -3
  14. data/app/views/bigbluebutton/rooms/invite.html.erb +3 -3
  15. data/app/views/bigbluebutton/servers/_form.html.erb +1 -1
  16. data/bigbluebutton_rails.gemspec +2 -2
  17. data/lib/bigbluebutton_rails/version.rb +1 -1
  18. data/spec/controllers/bigbluebutton/rooms_controller_spec.rb +42 -37
  19. data/spec/factories/bigbluebutton_room.rb +3 -1
  20. data/spec/models/bigbluebutton_room_db_spec.rb +34 -0
  21. data/spec/models/bigbluebutton_room_spec.rb +452 -457
  22. data/spec/models/bigbluebutton_server_db_spec.rb +14 -0
  23. data/spec/models/bigbluebutton_server_spec.rb +162 -176
  24. data/spec/rails_app/.gitignore +2 -1
  25. data/spec/rails_app/db/seeds.rb +16 -4
  26. data/spec/rails_app/features/activity_monitor_servers.feature +53 -0
  27. data/spec/rails_app/features/config.yml.example +13 -0
  28. data/spec/rails_app/features/create_rooms.feature +17 -0
  29. data/spec/rails_app/features/create_servers.feature +17 -0
  30. data/spec/rails_app/features/destroy_rooms.feature +12 -0
  31. data/spec/rails_app/features/destroy_servers.feature +11 -0
  32. data/spec/rails_app/features/edit_rooms.feature +26 -0
  33. data/spec/rails_app/features/edit_servers.feature +24 -0
  34. data/spec/rails_app/features/join_external_rooms.feature +61 -0
  35. data/spec/rails_app/features/join_mobile.feature +10 -0
  36. data/spec/rails_app/features/join_rooms.feature +117 -0
  37. data/spec/rails_app/features/list_and_show_rooms.feature +18 -0
  38. data/spec/rails_app/features/list_and_show_servers.feature +16 -0
  39. data/spec/rails_app/features/step_definitions/activity_monitor_servers_step.rb +102 -0
  40. data/spec/rails_app/features/step_definitions/common_steps.rb +99 -3
  41. data/spec/rails_app/features/step_definitions/create_rooms_steps.rb +38 -0
  42. data/spec/rails_app/features/step_definitions/{bigbluebutton_server_steps.rb → create_servers_steps.rb} +11 -6
  43. data/spec/rails_app/features/step_definitions/destroy_rooms_steps.rb +17 -0
  44. data/spec/rails_app/features/step_definitions/destroy_servers_steps.rb +15 -0
  45. data/spec/rails_app/features/step_definitions/edit_rooms_steps.rb +15 -0
  46. data/spec/rails_app/features/step_definitions/edit_servers_steps.rb +15 -0
  47. data/spec/rails_app/features/step_definitions/join_mobile_steps.rb +5 -0
  48. data/spec/rails_app/features/step_definitions/join_rooms_steps.rb +49 -0
  49. data/spec/rails_app/features/step_definitions/list_and_show_rooms_steps.rb +11 -0
  50. data/spec/rails_app/features/step_definitions/list_and_show_servers_steps.rb +11 -0
  51. data/spec/rails_app/features/support/configurations.rb +34 -0
  52. data/spec/rails_app/features/support/content.rb +27 -7
  53. data/spec/rails_app/features/support/env_custom.rb +21 -0
  54. data/spec/rails_app/features/support/factories/bigbluebutton_server_integration.rb +5 -0
  55. data/spec/rails_app/features/support/hooks.rb +14 -0
  56. data/spec/rails_app/features/support/locales.rb +18 -0
  57. data/spec/rails_app/features/support/paths.rb +25 -10
  58. data/spec/rails_app/features/support/selectors.rb +26 -0
  59. data/spec/rails_app/features/support/templates.rb +241 -0
  60. metadata +43 -20
  61. data/spec/factories/integration/bigbluebutton_server_integration.rb +0 -8
  62. data/spec/integration_conf.yml.example +0 -5
  63. data/spec/rails_app/features/join_external_bigbluebutton_rooms.feature +0 -19
  64. data/spec/rails_app/features/manage_bigbluebutton_rooms.feature +0 -9
  65. data/spec/rails_app/features/manage_bigbluebutton_servers.feature +0 -9
  66. data/spec/rails_app/features/step_definitions/bigbluebutton_room_steps.rb +0 -64
  67. data/spec/rails_app/features/support/env_gem.rb +0 -10
  68. data/spec/rails_app/features/support/forms.rb +0 -12
  69. data/spec/support/integration/integration_conf.rb +0 -16
@@ -1,8 +0,0 @@
1
- IntegrationConf.load
2
- config = IntegrationConf.config["server"]
3
-
4
- Factory.define :bigbluebutton_server_integration, :parent => :bigbluebutton_server do |s|
5
- s.url { config["url"] }
6
- s.salt { config["salt"] }
7
- s.version { config["version"] }
8
- end
@@ -1,5 +0,0 @@
1
- server:
2
- name: 'Default'
3
- url: 'http://myserver/bigbluebutton/api'
4
- salt: 'mysalt'
5
- version: '0.7'
@@ -1,19 +0,0 @@
1
- Feature: Join External BigBlueButton Rooms
2
- In order to join webconferences that were created from another application
3
- One needs to enter his name and a password
4
-
5
- Scenario: Joining an external BigBlueButton room
6
- Given a user named "test user"
7
- And a server
8
- And an external room
9
- When the user goes to the join external room page for this room
10
- Then he should see a form to join the external room
11
- And be able to join the room
12
-
13
- Scenario: Uses the user name as the default to join a room
14
- Given a user named "test user"
15
- And a server
16
- And an external room
17
- When the user goes to the join external room page for this room
18
- Then he should see a form to join the external room
19
- And his name should be in the appropriate input
@@ -1,9 +0,0 @@
1
- Feature: Manage BigBlueButton rooms
2
- In order to held webconferences
3
- One needs to be able to create and manage BigBlueButton rooms
4
-
5
- Scenario: Register a new BigBlueButton room
6
- Given a server
7
- When the user goes to the new room page
8
- And registers a new room
9
- Then he should see the information about this room
@@ -1,9 +0,0 @@
1
- Feature: Manage BigBlueButton servers
2
- In order to held webconferences
3
- One needs to be able to create and manage BigBlueButton servers
4
-
5
- Scenario: Register a new BigBlueButton server
6
- Given a user named "test user"
7
- When he goes to the new server page
8
- And registers a new server
9
- Then he should see the information about this server
@@ -1,64 +0,0 @@
1
- When /a server/i do
2
- @server = Factory.create(:bigbluebutton_server_integration)
3
- end
4
-
5
- When /^registers a new room$/i do
6
- attrs = Factory.attributes_for(:bigbluebutton_room, :server => @server)
7
- fill_in("bigbluebutton_room[name]", :with => attrs[:name])
8
- fill_in("bigbluebutton_room[meetingid]", :with => attrs[:meetingid])
9
- check("bigbluebutton_room[randomize_meetingid]") if attrs[:randomize_meetingid]
10
- check("bigbluebutton_room[private]") if attrs[:private]
11
- fill_in("bigbluebutton_room[attendee_password]", :with => attrs[:attendee_password])
12
- fill_in("bigbluebutton_room[moderator_password]", :with => attrs[:moderator_password])
13
- fill_in("bigbluebutton_room[welcome_msg]", :with => attrs[:welcome_msg])
14
- fill_in("bigbluebutton_room[logout_url]", :with => attrs[:logout_url])
15
- fill_in("bigbluebutton_room[dial_number]", :with => attrs[:dial_number])
16
- fill_in("bigbluebutton_room[max_participants]", :with => attrs[:max_participants])
17
- check("bigbluebutton_room[external]") if attrs[:external]
18
- fill_in("bigbluebutton_room[param]", :with => attrs[:param])
19
- # Note: voice_bridge is generated when the BigbluebuttonRoom is created
20
- click_button("Create")
21
- end
22
-
23
- When /(?:|I ) should see the information about this room/i do
24
- room = BigbluebuttonRoom.last
25
- page_has_content(room.name)
26
- page_has_content(room.meetingid)
27
- page_has_content(room.randomize_meetingid)
28
- page_has_content(room.private)
29
- page_has_content(room.attendee_password)
30
- page_has_content(room.moderator_password)
31
- page_has_content(room.welcome_msg)
32
- page_has_content(room.logout_url)
33
- page_has_content(room.dial_number)
34
- page_has_content(room.voice_bridge)
35
- page_has_content(room.max_participants)
36
- page_has_content(room.external)
37
- page_has_content(room.param)
38
- end
39
-
40
- When /^an external room$/i do
41
- @room = Factory.build(:bigbluebutton_room, :server => @server, :external => true)
42
- @room.send_create
43
- end
44
-
45
- When /(?:|I ) should see a form to join the external room$/i do
46
- within(form_selector(external_bigbluebutton_server_rooms_path(@server), 'post')) do
47
- has_element("input", { :name => 'meeting', :type => 'hidden', :value => @room.meetingid })
48
- has_element("input", { :name => 'user[name]', :type => 'text' })
49
- has_element("input", { :name => 'user[password]', :type => 'password' })
50
- end
51
- end
52
-
53
- When /his name should be in the appropriate input$/i do
54
- within(form_selector(external_bigbluebutton_server_rooms_path(@server), 'post')) do
55
- has_element("input", { :name => 'user[name]', :type => 'text', :value => @user.name })
56
- end
57
- end
58
-
59
- When /^be able to join the room$/i do
60
- fill_in("user[name]", :with => @user.name)
61
- fill_in("user[password]", :with => @room.moderator_password)
62
- click_button("Submit")
63
- # TODO: check current_url to ensure it is inside the conference
64
- end
@@ -1,10 +0,0 @@
1
- # Load the environment to test the gem bigbluebutton_rails using cucumber
2
-
3
- # Load support files
4
- Dir["#{File.dirname(__FILE__)}/../../../support/integration/**/*.rb"].each { |f| require f }
5
-
6
- # Load the factories in the gem spec/factories folder
7
- require 'factory_girl'
8
- require 'forgery'
9
- Dir["#{ File.dirname(__FILE__)}/../../../factories/*.rb"].each { |f| require f }
10
- Dir["#{ File.dirname(__FILE__)}/../../../factories/integration/*.rb"].each { |f| require f }
@@ -1,12 +0,0 @@
1
- module FormsHelpers
2
-
3
- # Creates a css selector to match a form with certain action, method and possibly other attribues
4
- def form_selector(action, method='post', attrs={})
5
- attrs[:action] = action
6
- attrs[:method] = method
7
- make_selector("form", attrs)
8
- end
9
-
10
- end
11
-
12
- World(FormsHelpers)
@@ -1,16 +0,0 @@
1
- class IntegrationConf
2
-
3
- cattr_accessor :config
4
-
5
- def self.load
6
- @@config = nil
7
- file = File.join(File.dirname(__FILE__), "..", "..", "integration_conf.yml")
8
- if File.exists? file
9
- @@config = YAML.load_file(file)
10
- else
11
- puts "* Could not load #{file}. Please create it to be able to run the integration tests."
12
- exit
13
- end
14
- end
15
-
16
- end