forked from External/greenlight
Merge branch 'v2.2.1-alpha' into master
This commit is contained in:
@ -20,6 +20,8 @@ require "rails_helper"
|
||||
|
||||
describe AdminsController, type: :controller do
|
||||
before do
|
||||
allow_any_instance_of(ApplicationController).to receive(:set_user_domain).and_return("provider1")
|
||||
controller.instance_variable_set(:@user_domain, "provider1")
|
||||
@user = create(:user, provider: "provider1")
|
||||
@admin = create(:user, provider: "provider1")
|
||||
@admin.add_role :admin
|
||||
@ -52,7 +54,7 @@ describe AdminsController, type: :controller do
|
||||
|
||||
get :edit_user, params: { user_uid: @user.uid }
|
||||
|
||||
expect(response).to render_template(:index)
|
||||
expect(response).to render_template(:edit_user)
|
||||
end
|
||||
end
|
||||
|
||||
@ -144,7 +146,7 @@ describe AdminsController, type: :controller do
|
||||
email = Faker::Internet.email
|
||||
post :invite, params: { invite_user: { email: email } }
|
||||
|
||||
invite = Invitation.find_by(email: email, provider: "greenlight")
|
||||
invite = Invitation.find_by(email: email, provider: "provider1")
|
||||
|
||||
expect(invite.present?).to eq(true)
|
||||
expect(flash[:success]).to be_present
|
||||
@ -197,7 +199,7 @@ describe AdminsController, type: :controller do
|
||||
feature = Setting.find_by(provider: "provider1").features.find_by(name: "Branding Image")
|
||||
|
||||
expect(feature[:value]).to eq(fake_image_url)
|
||||
expect(response).to redirect_to(admins_path)
|
||||
expect(response).to redirect_to(admin_site_settings_path)
|
||||
end
|
||||
end
|
||||
|
||||
@ -214,7 +216,7 @@ describe AdminsController, type: :controller do
|
||||
feature = Setting.find_by(provider: "provider1").features.find_by(name: "Primary Color")
|
||||
|
||||
expect(feature[:value]).to eq(primary_color)
|
||||
expect(response).to redirect_to(admins_path)
|
||||
expect(response).to redirect_to(admin_site_settings_path)
|
||||
end
|
||||
|
||||
it "changes the primary-lighten on the page" do
|
||||
@ -229,7 +231,7 @@ describe AdminsController, type: :controller do
|
||||
feature = Setting.find_by(provider: "provider1").features.find_by(name: "Primary Color Lighten")
|
||||
|
||||
expect(feature[:value]).to eq(primary_color)
|
||||
expect(response).to redirect_to(admins_path)
|
||||
expect(response).to redirect_to(admin_site_settings_path)
|
||||
end
|
||||
|
||||
it "changes the primary-darken on the page" do
|
||||
@ -244,7 +246,7 @@ describe AdminsController, type: :controller do
|
||||
feature = Setting.find_by(provider: "provider1").features.find_by(name: "Primary Color Darken")
|
||||
|
||||
expect(feature[:value]).to eq(primary_color)
|
||||
expect(response).to redirect_to(admins_path)
|
||||
expect(response).to redirect_to(admin_site_settings_path)
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -264,7 +266,7 @@ describe AdminsController, type: :controller do
|
||||
|
||||
expect(feature[:value]).to eq(Rails.configuration.registration_methods[:invite])
|
||||
expect(flash[:success]).to be_present
|
||||
expect(response).to redirect_to(admins_path)
|
||||
expect(response).to redirect_to(admin_site_settings_path)
|
||||
end
|
||||
|
||||
it "does not allow the user to change to invite if emails are off" do
|
||||
@ -277,7 +279,7 @@ describe AdminsController, type: :controller do
|
||||
post :registration_method, params: { method: "invite" }
|
||||
|
||||
expect(flash[:alert]).to be_present
|
||||
expect(response).to redirect_to(admins_path)
|
||||
expect(response).to redirect_to(admin_site_settings_path)
|
||||
end
|
||||
end
|
||||
|
||||
@ -293,7 +295,7 @@ describe AdminsController, type: :controller do
|
||||
feature = Setting.find_by(provider: "provider1").features.find_by(name: "Room Authentication")
|
||||
|
||||
expect(feature[:value]).to eq("true")
|
||||
expect(response).to redirect_to(admins_path)
|
||||
expect(response).to redirect_to(admin_site_settings_path)
|
||||
end
|
||||
end
|
||||
|
||||
@ -309,6 +311,22 @@ describe AdminsController, type: :controller do
|
||||
feature = Setting.find_by(provider: "provider1").features.find_by(name: "Room Limit")
|
||||
|
||||
expect(feature[:value]).to eq("5")
|
||||
expect(response).to redirect_to(admin_site_settings_path)
|
||||
end
|
||||
end
|
||||
|
||||
context "POST #default_recording_visibility" do
|
||||
it "changes the default recording visibility setting" do
|
||||
allow(Rails.configuration).to receive(:loadbalanced_configuration).and_return(true)
|
||||
allow_any_instance_of(User).to receive(:greenlight_account?).and_return(true)
|
||||
|
||||
@request.session[:user_id] = @admin.id
|
||||
|
||||
post :default_recording_visibility, params: { visibility: "public" }
|
||||
|
||||
feature = Setting.find_by(provider: "provider1").features.find_by(name: "Default Recording Visibility")
|
||||
|
||||
expect(feature[:value]).to eq("public")
|
||||
expect(response).to redirect_to(admins_path)
|
||||
end
|
||||
end
|
||||
|
@ -28,6 +28,8 @@ def random_valid_room_params
|
||||
end
|
||||
|
||||
describe RoomsController, type: :controller do
|
||||
it_behaves_like "recorder"
|
||||
include Recorder
|
||||
describe "GET #show" do
|
||||
before do
|
||||
@user = create(:user)
|
||||
@ -39,7 +41,7 @@ describe RoomsController, type: :controller do
|
||||
|
||||
get :show, params: { room_uid: @owner.main_room }
|
||||
|
||||
expect(assigns(:recordings)).to eql(@owner.main_room.recordings)
|
||||
expect(assigns(:recordings)).to eql(recordings(@owner.main_room.bbb_id, @owner.provider))
|
||||
expect(assigns(:is_running)).to eql(@owner.main_room.running?)
|
||||
end
|
||||
|
||||
@ -117,8 +119,8 @@ describe RoomsController, type: :controller do
|
||||
@request.session[:user_id] = @owner.id
|
||||
name = Faker::Games::Pokemon.name
|
||||
|
||||
room_params = { name: name, "client": "html5", "mute_on_join": "1" }
|
||||
json_room_settings = "{\"muteOnStart\":true,\"joinViaHtml5\":true}"
|
||||
room_params = { name: name, "client": "html5", "mute_on_join": "1", "anyone_can_start": "1" }
|
||||
json_room_settings = "{\"muteOnStart\":true,\"joinViaHtml5\":true,\"anyoneCanStart\":true}"
|
||||
|
||||
post :create, params: { room: room_params }
|
||||
|
||||
@ -201,6 +203,46 @@ describe RoomsController, type: :controller do
|
||||
expect(response).to render_template(:wait)
|
||||
end
|
||||
|
||||
it "should join the room if the room has the anyone_can_start setting" do
|
||||
allow_any_instance_of(BigBlueButton::BigBlueButtonApi).to receive(:is_meeting_running?).and_return(false)
|
||||
|
||||
room = Room.new(name: "test")
|
||||
room.room_settings = "{\"muteOnStart\":false,\"joinViaHtml5\":false,\"anyoneCanStart\":true}"
|
||||
room.owner = @owner
|
||||
room.save
|
||||
|
||||
@request.session[:user_id] = @user.id
|
||||
post :join, params: { room_uid: room, join_name: @user.name }
|
||||
|
||||
expect(response).to redirect_to(room.join_path(@user.name, { user_is_moderator: true }, @user.uid))
|
||||
end
|
||||
|
||||
it "should render wait if the correct access code is supplied" do
|
||||
allow_any_instance_of(BigBlueButton::BigBlueButtonApi).to receive(:is_meeting_running?).and_return(false)
|
||||
|
||||
protected_room = Room.new(name: 'test', access_code: "123456")
|
||||
protected_room.owner = @owner
|
||||
protected_room.save
|
||||
|
||||
@request.session[:user_id] = @user.id
|
||||
post :join, params: { room_uid: protected_room, join_name: @user.name }, session: { access_code: "123456" }
|
||||
|
||||
expect(response).to render_template(:wait)
|
||||
end
|
||||
|
||||
it "should redirect to login if the correct access code isn't supplied" do
|
||||
allow_any_instance_of(BigBlueButton::BigBlueButtonApi).to receive(:is_meeting_running?).and_return(false)
|
||||
|
||||
protected_room = Room.new(name: 'test', access_code: "123456")
|
||||
protected_room.owner = @owner
|
||||
protected_room.save
|
||||
|
||||
@request.session[:user_id] = @user.id
|
||||
post :join, params: { room_uid: protected_room, join_name: @user.name }, session: { access_code: "123455" }
|
||||
|
||||
expect(response).to redirect_to room_path(protected_room.uid)
|
||||
end
|
||||
|
||||
it "should join owner as moderator if meeting running" do
|
||||
allow_any_instance_of(BigBlueButton::BigBlueButtonApi).to receive(:is_meeting_running?).and_return(true)
|
||||
|
||||
@ -315,7 +357,8 @@ describe RoomsController, type: :controller do
|
||||
@request.session[:user_id] = @user.id
|
||||
|
||||
room_params = { "client": "html5", "mute_on_join": "1", "name": @secondary_room.name }
|
||||
formatted_room_params = "{\"muteOnStart\":true,\"joinViaHtml5\":true}" # JSON string format
|
||||
formatted_room_params = "{\"muteOnStart\":true,\"joinViaHtml5\":true,\"anyoneCanStart\":false}"
|
||||
# JSON string format
|
||||
|
||||
expect { post :update_settings, params: { room_uid: @secondary_room.uid, room: room_params } }
|
||||
.to change { @secondary_room.reload.room_settings }
|
||||
@ -372,4 +415,27 @@ describe RoomsController, type: :controller do
|
||||
expect(response).to redirect_to(@room)
|
||||
end
|
||||
end
|
||||
|
||||
describe "POST #login" do
|
||||
before do
|
||||
@user = create(:user)
|
||||
@room = @user.main_room
|
||||
@room.access_code = "123456"
|
||||
@room.save
|
||||
end
|
||||
|
||||
it "should redirect to show with valid access code" do
|
||||
post :login, params: { room_uid: @room.uid, room: { access_code: "123456" } }
|
||||
|
||||
expect(response).to redirect_to room_path(@room.uid)
|
||||
expect(flash[:alert]).to be_nil
|
||||
end
|
||||
|
||||
it "should redirect to show with and notify user of invalid access code" do
|
||||
post :login, params: { room_uid: @room.uid, room: { access_code: "123455" } }
|
||||
|
||||
expect(response).to redirect_to room_path(@room.uid)
|
||||
expect(flash[:alert]).to eq(I18n.t("room.access_code_required"))
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -42,9 +42,13 @@ describe ThemesController, type: :controller do
|
||||
it "returns the correct color based on provider" do
|
||||
allow(Rails.configuration).to receive(:loadbalanced_configuration).and_return(true)
|
||||
allow_any_instance_of(User).to receive(:greenlight_account?).and_return(true)
|
||||
allow_any_instance_of(ApplicationController).to receive(:set_user_domain).and_return("provider1")
|
||||
|
||||
color1 = Faker::Color.hex_color
|
||||
provider1 = Faker::Company.name
|
||||
|
||||
controller.instance_variable_set(:@user_domain, provider1)
|
||||
|
||||
Setting.create(provider: provider1).features.create(name: "Primary Color", value: color1, enabled: true)
|
||||
user1 = create(:user, provider: provider1)
|
||||
|
||||
|
@ -87,6 +87,8 @@ describe UsersController, type: :controller do
|
||||
it "allows admins to edit other users" do
|
||||
allow(Rails.configuration).to receive(:loadbalanced_configuration).and_return(true)
|
||||
allow_any_instance_of(User).to receive(:greenlight_account?).and_return(true)
|
||||
allow_any_instance_of(ApplicationController).to receive(:set_user_domain).and_return("provider1")
|
||||
controller.instance_variable_set(:@user_domain, "provider1")
|
||||
|
||||
user = create(:user, provider: "provider1")
|
||||
user.add_role :admin
|
||||
@ -302,6 +304,7 @@ describe UsersController, type: :controller do
|
||||
describe "PATCH #update" do
|
||||
it "properly updates user attributes" do
|
||||
user = create(:user)
|
||||
@request.session[:user_id] = user.id
|
||||
|
||||
params = random_valid_user_params
|
||||
patch :update, params: params.merge!(user_uid: user)
|
||||
@ -315,6 +318,7 @@ describe UsersController, type: :controller do
|
||||
|
||||
it "renders #edit on unsuccessful save" do
|
||||
@user = create(:user)
|
||||
@request.session[:user_id] = @user.id
|
||||
|
||||
patch :update, params: invalid_params.merge!(user_uid: @user)
|
||||
expect(response).to render_template(:edit)
|
||||
@ -337,6 +341,8 @@ describe UsersController, type: :controller do
|
||||
allow(Rails.configuration).to receive(:loadbalanced_configuration).and_return(true)
|
||||
allow_any_instance_of(User).to receive(:greenlight_account?).and_return(true)
|
||||
allow_any_instance_of(Room).to receive(:delete_all_recordings).and_return('')
|
||||
allow_any_instance_of(ApplicationController).to receive(:set_user_domain).and_return("provider1")
|
||||
controller.instance_variable_set(:@user_domain, "provider1")
|
||||
|
||||
user = create(:user, provider: "provider1")
|
||||
admin = create(:user, provider: "provider1")
|
||||
@ -352,6 +358,8 @@ describe UsersController, type: :controller do
|
||||
it "doesn't allow admins of other providers to delete users" do
|
||||
allow(Rails.configuration).to receive(:loadbalanced_configuration).and_return(true)
|
||||
allow_any_instance_of(User).to receive(:greenlight_account?).and_return(true)
|
||||
allow_any_instance_of(ApplicationController).to receive(:set_user_domain).and_return("provider2")
|
||||
controller.instance_variable_set(:@user_domain, "provider2")
|
||||
|
||||
user = create(:user, provider: "provider1")
|
||||
admin = create(:user, provider: "provider2")
|
||||
|
Reference in New Issue
Block a user