71 lines
2.9 KiB
Ruby
71 lines
2.9 KiB
Ruby
require 'spec_helper'
|
|
describe "Music session video button", :js => true, :type => :feature, :capybara_feature => true do
|
|
subject { page }
|
|
let(:user) { FactoryGirl.create(:user, subscription_plan_code: 'jamsubplatinum') }
|
|
let(:connection) { FactoryGirl.create(:connection, :user => user, addr: "1.1.1.1") }
|
|
let(:music_session) {
|
|
ms = FactoryGirl.create(:active_music_session, :creator => user, :musician_access => true)
|
|
ms.save!
|
|
ms
|
|
}
|
|
before(:each) do
|
|
MusicSession.delete_all
|
|
ActiveMusicSession.delete_all
|
|
@url = "/client#/session/#{music_session.id}"
|
|
Gon.global.use_video_conferencing_server = false
|
|
end
|
|
|
|
describe "user has opted for video conferencing server" do
|
|
before do
|
|
user.use_video_conferencing_server = true
|
|
user.save!
|
|
end
|
|
|
|
it "opens video conferencing server page" do
|
|
fast_signin(user, @url)
|
|
# give the web page a little time to connect; sometimes in firefox this needs some time to connect
|
|
page.should_not have_selector('span.disconnected-msg', text: 'DISCONNECTED FROM SERVER')
|
|
execute_script("window.VideoActions.setVideoEnabled(true)") #force video capability of the browser
|
|
# this should open a new window/tab to a different site, as configured by the new
|
|
# Rails.configuration.video_conferencing_host parameter.
|
|
|
|
temp_tokens_count = JamRuby::TempToken.count
|
|
|
|
vid_btn = find(".session-video-btn")
|
|
|
|
new_window = window_opened_by { find(".session-video-btn").click() } #assure a new popup window is opened by clicking video button
|
|
|
|
within_window new_window do
|
|
expect(TempToken.count).to eq(temp_tokens_count + 1)
|
|
end
|
|
|
|
# We only need to verify that secondary window opens up. We should probably also test that a new TempToken record
|
|
# was created as a result of clicking the video button .I wouldn't bother testing anything else in this particular
|
|
# test.
|
|
#
|
|
# It's true that this secondary window (in staging/production) will load a site that will then in turn call the
|
|
# new controller token auth method.. but we can test the correctness of the new controller method in a much
|
|
# simpler web/spec/controller spec
|
|
end
|
|
|
|
end
|
|
|
|
describe "user has NOT opted for video conferencing server" do
|
|
before do
|
|
user.use_video_conferencing_server = false
|
|
user.save!
|
|
end
|
|
|
|
it "does not open video conferencing server" do
|
|
fast_signin(user, @url)
|
|
# give the web page a little time to connect; sometimes in firefox this needs some time to connect
|
|
page.should_not have_selector('span.disconnected-msg', text: 'DISCONNECTED FROM SERVER')
|
|
execute_script("window.VideoActions.setVideoEnabled(true)") #force video capability of the browser
|
|
|
|
#assert it does not create new window
|
|
expect { window_opened_by { find(".session-video-btn").click() } }.to raise_error(Capybara::WindowError)
|
|
|
|
|
|
end
|
|
end
|
|
end |