* VRFS-1531, and a fix for feed test having 'dirt' in it from other tests. also reverting batch mailer test
This commit is contained in:
parent
8f18ed09f2
commit
700ef04edf
|
|
@ -88,7 +88,7 @@ FOO
|
|||
|
||||
def send_test_batch
|
||||
self.perform_event('do_test_run!')
|
||||
BatchMailer.send_batch_email_test(self.id).deliver!
|
||||
BatchMailer.send_batch_email_test(self.id).deliver
|
||||
end
|
||||
|
||||
def merged_body(user)
|
||||
|
|
|
|||
|
|
@ -270,6 +270,8 @@ module JamRuby
|
|||
query = query.where(
|
||||
%Q{
|
||||
musician_access = true
|
||||
OR
|
||||
music_sessions.user_id = '#{current_user.id}'
|
||||
OR
|
||||
invitations.id IS NOT NULL
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,6 +8,8 @@ describe BatchMailer do
|
|||
batch = FactoryGirl.create(:email_batch)
|
||||
batch.send_test_batch
|
||||
|
||||
sleep
|
||||
|
||||
mail = BatchMailer.deliveries.detect { |dd| dd['to'].to_s.split(',')[0] == batch.test_emails.split(',')[0]}
|
||||
# let (:mail) { BatchMailer.deliveries[0] }
|
||||
# it { mail['to'].to_s.split(',')[0].should == batch.test_emails.split(',')[0] }
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@
|
|||
$('#band-profile-social').hide();
|
||||
|
||||
$('.band-profile-nav a.active').removeClass('active');
|
||||
$('.band-profile-nav a.#band-profile-about-link').addClass('active');
|
||||
$('.band-profile-nav a#band-profile-about-link').addClass('active');
|
||||
}
|
||||
|
||||
/****************** MAIN PORTION OF SCREEN *****************/
|
||||
|
|
@ -170,7 +170,7 @@
|
|||
$('#band-profile-social').hide();
|
||||
|
||||
$('.band-profile-nav a.active').removeClass('active');
|
||||
$('.band-profile-nav a.#band-profile-about-link').addClass('active');
|
||||
$('.band-profile-nav a#band-profile-about-link').addClass('active');
|
||||
|
||||
bindAbout();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -36,13 +36,13 @@
|
|||
}
|
||||
|
||||
function removeSpinner() {
|
||||
$('<div[layout-id=findSession] .content .spinner').remove();// remove any existing spinners
|
||||
$('div[layout-id=findSession] .content .spinner').remove();// remove any existing spinners
|
||||
|
||||
}
|
||||
|
||||
function addSpinner() {
|
||||
removeSpinner();
|
||||
$('<div[layout-id=findSession] .content').append('<div class="spinner spinner-large"></div>')
|
||||
$('div[layout-id=findSession] .content').append('<div class="spinner spinner-large"></div>')
|
||||
}
|
||||
|
||||
function loadSessionsOriginal() {
|
||||
|
|
|
|||
|
|
@ -67,8 +67,8 @@
|
|||
|
||||
function resultDivVisibility(val, isSidebar) {
|
||||
if (isSidebar) {
|
||||
$('div[layout=sidebar user-id=' + val.id + '].sidebar-search-connected').hide();
|
||||
$('div[layout=sidebar user-id=' + val.id + '].sidebar-search-result').show();
|
||||
$('div[layout="sidebar"][user-id="' + val.id + '"].sidebar-search-connected').hide();
|
||||
$('div[layout="sidebar"][user-id="' + val.id + '"].sidebar-search-result').show();
|
||||
}
|
||||
else {
|
||||
$('div[user-id=' + val.id + '].search-connected').hide();
|
||||
|
|
@ -202,8 +202,8 @@
|
|||
|
||||
function friendRequestCallbackSidebar(userId) {
|
||||
// toggle the pre-click and post-click divs
|
||||
$('div[layout=sidebar] div[user-id=' + userId + '].sidebar-search-connected').show();
|
||||
$('div[layout=sidebar] div[user-id=' + userId + '].sidebar-search-result').hide();
|
||||
$('div[layout=sidebar] div[user-id="' + userId + '"].sidebar-search-connected').show();
|
||||
$('div[layout=sidebar] div[user-id="' + userId + '"].sidebar-search-result').hide();
|
||||
}
|
||||
|
||||
function friendRequestCallbackSearchResults(userId) {
|
||||
|
|
|
|||
|
|
@ -190,7 +190,10 @@
|
|||
openTerms(sessionId);
|
||||
}
|
||||
else {
|
||||
if (session.musician_access) {
|
||||
if(session.user_id == JK.currentUserId) {
|
||||
openTerms(sessionId);
|
||||
}
|
||||
else if (session.musician_access) {
|
||||
if (session.approval_required) {
|
||||
openAlert(sessionId);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,8 @@
|
|||
/**
|
||||
*= require client/ie
|
||||
*= require client/jamkazam
|
||||
*= require client/screen_common
|
||||
*= require client/content
|
||||
*= require client/ftue
|
||||
*= require minimal/minimial_main
|
||||
*/
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
html {
|
||||
height:100%;
|
||||
}
|
||||
|
||||
body {
|
||||
//position:absolute !important;
|
||||
padding:0 !important;
|
||||
overflow: visible !important;
|
||||
height:100%;
|
||||
margin:0 !important;
|
||||
}
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
|
||||
class VideosController < ApplicationController
|
||||
|
||||
def show_dialog
|
||||
@video_id = @params[:video_id]
|
||||
end
|
||||
|
||||
end
|
||||
|
|
@ -0,0 +1,60 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title><%= full_title(yield(:title)) %></title>
|
||||
|
||||
<!--[if IE]>
|
||||
<link rel="stylesheet" type="text/css" href="css/ie.css" media="screen, projection"/>
|
||||
<![endif]-->
|
||||
<script src="//ajax.googleapis.com/ajax/libs/webfont/1.4.7/webfont.js"></script>
|
||||
<script>
|
||||
WebFont.load({
|
||||
google: {
|
||||
families: ['Raleway:100,200,300,400,500,600,700']
|
||||
},
|
||||
timeout :5000
|
||||
});
|
||||
</script>
|
||||
<!--<link href='http://fonts.googleapis.com/css?family=Raleway:100,200,300,400,500,600,700' rel='stylesheet' type='text/css'>-->
|
||||
<%= stylesheet_link_tag "minimal/minimal", media: "all" %>
|
||||
<% if bugsnag? %>
|
||||
<!-- THIS NEEDS TO BE IN FRONT OF ANY OTHER JAVASCRIPT INCLUDES ACCORDING TO BUGSNAG -->
|
||||
<script src="//d2wy8f7a9ursnm.cloudfront.net/bugsnag-1.0.9.min.js" data-apikey="<%= Rails.application.config.bugsnag_key %>"></script>
|
||||
<% end %>
|
||||
<%= include_gon(:init => true) %>
|
||||
<%= csrf_meta_tags %>
|
||||
<% if content_for?(:social_meta) %>
|
||||
<%= yield(:social_meta) %>
|
||||
<% else %>
|
||||
<%= render "layouts/social_meta" %>
|
||||
<% end %>
|
||||
</head>
|
||||
<body class="jam">
|
||||
<div id="minimal-container">
|
||||
<%= javascript_include_tag "minimal/minimal" %>
|
||||
<%= yield %>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
$(function () {
|
||||
JK = JK || {};
|
||||
|
||||
JK.root_url = "<%= root_url %>"
|
||||
|
||||
<% if current_user %>
|
||||
JK.currentUserId = '<%= current_user.id %>';
|
||||
JK.currentUserAvatarUrl = JK.resolveAvatarUrl('<%= current_user.photo_url %>');
|
||||
JK.currentUserName = '<%= current_user.name %>';
|
||||
<% else %>
|
||||
JK.currentUserId = null;
|
||||
JK.currentUserAvatarUrl = null;
|
||||
JK.currentUserName = null;
|
||||
<% end %>
|
||||
})
|
||||
</script>
|
||||
|
||||
<%= render "shared/ga" %>
|
||||
<!-- version info: <%= version %> -->
|
||||
</body>
|
||||
</html>
|
||||
c
|
||||
|
|
@ -83,6 +83,7 @@ if defined?(Bundler)
|
|||
config.assets.precompile += %w( landing/landing.js landing/landing.css )
|
||||
config.assets.precompile += %w( corp/corporate.js corp/corporate.css )
|
||||
config.assets.precompile += %w( web/web.js web/web.css )
|
||||
config.assets.precompile += %w( minimal/minimal.js minimal/minimal.css )
|
||||
|
||||
|
||||
# where is rabbitmq?
|
||||
|
|
|
|||
|
|
@ -63,6 +63,8 @@ SampleApp::Application.routes.draw do
|
|||
|
||||
match '/events/:slug', to: 'events#show', :via => :get, :as => 'event'
|
||||
|
||||
match '/video/dialog/:id', to: 'videos#show', :via => :get
|
||||
|
||||
# temporarily allow for debugging--only allows admini n
|
||||
match '/listen_in', to: 'spikes#listen_in'
|
||||
|
||||
|
|
|
|||
|
|
@ -3,12 +3,17 @@ require 'spec_helper'
|
|||
describe "Feed", :js => true, :type => :feature, :capybara_feature => true do
|
||||
|
||||
let (:user) { FactoryGirl.create(:user) }
|
||||
|
||||
|
||||
before(:all) do
|
||||
MusicSessionHistory.delete_all
|
||||
Recording.delete_all
|
||||
end
|
||||
|
||||
|
||||
describe "sessions" do
|
||||
|
||||
before(:each) do
|
||||
create_session(user)
|
||||
create_session(creator: user)
|
||||
formal_leave_by(user)
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -114,7 +114,7 @@ describe "Home Screen", :js => true, :type => :feature, :capybara_feature => tru
|
|||
describe 'Home Screen while in Native Client' do
|
||||
before(:each) do
|
||||
UserMailer.deliveries.clear
|
||||
page.driver.headers = { 'User-Agent' => ' JamKazam ' }
|
||||
emulate_client
|
||||
sign_in_poltergeist user
|
||||
visit "/client"
|
||||
end
|
||||
|
|
|
|||
|
|
@ -5,8 +5,6 @@ describe "In a Session", :js => true, :type => :feature, :capybara_feature => tr
|
|||
subject { page }
|
||||
|
||||
before(:all) do
|
||||
Capybara.javascript_driver = :poltergeist
|
||||
Capybara.current_driver = Capybara.javascript_driver
|
||||
Capybara.default_wait_time = 15
|
||||
end
|
||||
|
||||
|
|
@ -20,26 +18,29 @@ describe "In a Session", :js => true, :type => :feature, :capybara_feature => tr
|
|||
|
||||
|
||||
it "can't see a private session until it is made public", :slow => true do
|
||||
pending "fails on build server"
|
||||
create_session(user, description = "Public or private, I cant decide!")
|
||||
description = "Public or private, I cant decide!"
|
||||
create_session(creator: user, description: description)
|
||||
in_client(user) do
|
||||
set_session_as_private
|
||||
end
|
||||
in_client(finder) do
|
||||
emulate_client
|
||||
sign_in_poltergeist finder
|
||||
visit "/client#/findSession"
|
||||
expect(page).to have_selector('#sessions-none-found') # verify private session is not found
|
||||
sign_out_poltergeist(validate: true)
|
||||
end
|
||||
in_client(user) do
|
||||
set_session_as_public
|
||||
end
|
||||
join_session(finder, description) # verify the public session is able to be joined
|
||||
join_session(finder, description: description) # verify the public session is able to be joined
|
||||
end
|
||||
|
||||
|
||||
it "can open the Configure Tracks modal, and Add New Audio Gear", :slow => true do
|
||||
create_session(user, description = "I'm gonna bail at some point!")
|
||||
join_session(finder, description)
|
||||
description = "I'm gonna bail at some point!"
|
||||
create_session(creator: user, description: description)
|
||||
join_session(finder, description: description)
|
||||
|
||||
assert_all_tracks_seen(users=[user, finder])
|
||||
|
||||
|
|
@ -72,7 +73,7 @@ describe "In a Session", :js => true, :type => :feature, :capybara_feature => tr
|
|||
end
|
||||
|
||||
it "a user can change the genre and the Find Session screen will be updated" do
|
||||
create_session(user)
|
||||
create_session(creator: user)
|
||||
in_client(finder) { sign_in_poltergeist finder }
|
||||
2.times do
|
||||
in_client(user) do
|
||||
|
|
@ -83,4 +84,16 @@ describe "In a Session", :js => true, :type => :feature, :capybara_feature => tr
|
|||
end
|
||||
end
|
||||
end
|
||||
|
||||
it "can rejoin private session as creator" do
|
||||
creator, description = create_join_session(user, [finder])
|
||||
|
||||
in_client(user) do
|
||||
set_session_as_private
|
||||
formal_leave_by user
|
||||
sign_out_poltergeist user
|
||||
end
|
||||
|
||||
join_session(user, description: description)
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ describe "Welcome", :js => true, :type => :feature, :capybara_feature => true d
|
|||
User.where(email: 'twitter_user1@jamkazam.com').delete_all
|
||||
User.where(email: 'twitter_user2@jamkazam.com').delete_all
|
||||
|
||||
page.driver.headers = { 'User-Agent' => ' JamKazam ' }
|
||||
emulate_client
|
||||
sign_in_poltergeist user
|
||||
visit "/"
|
||||
find('h1', text: 'Play music together over the Internet as if in the same room')
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ describe "Welcome", :js => true, :type => :feature, :capybara_feature => true d
|
|||
MusicSessionHistory.delete_all
|
||||
Recording.delete_all
|
||||
|
||||
page.driver.headers = { 'User-Agent' => ' JamKazam ' }
|
||||
emulate_client
|
||||
visit "/"
|
||||
find('h1', text: 'Play music together over the Internet as if in the same room')
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ describe "Home Screen", :js => true, :type => :feature, :capybara_feature => tru
|
|||
|
||||
before(:each) do
|
||||
sign_in_poltergeist user
|
||||
page.driver.headers = { 'User-Agent' => ' JamKazam ' }
|
||||
emulate_client
|
||||
visit "/client"
|
||||
|
||||
end
|
||||
|
|
@ -62,7 +62,7 @@ describe "Home Screen", :js => true, :type => :feature, :capybara_feature => tru
|
|||
|
||||
# needed because we poke the server with an updateUser call, but their is no indication in the UI that it's done
|
||||
wait_for_ajax
|
||||
page.driver.headers = { 'User-Agent' => ' JamKazam ' }
|
||||
emulate_client
|
||||
sleep 1
|
||||
visit "/client"
|
||||
wait_until_curtain_gone
|
||||
|
|
|
|||
|
|
@ -187,14 +187,17 @@ end
|
|||
|
||||
# takes, or creates, a unique session description which is returned for subsequent calls to join_session to use
|
||||
# in finding this session)
|
||||
def create_session(creator = FactoryGirl.create(:user), unique_session_desc = nil, genre = nil)
|
||||
unique_session_desc ||= "create_join_session #{SecureRandom.urlsafe_base64}"
|
||||
genre ||= 'Rock'
|
||||
def create_session(options={})
|
||||
creator = options[:creator] || FactoryGirl.create(:user)
|
||||
unique_session_desc = options[:description] || "create_join_session #{SecureRandom.urlsafe_base64}"
|
||||
genre = options[:genre] || 'Rock'
|
||||
musician_access = options[:musician_access].nil? ? true : options[:musician_access]
|
||||
fan_access = options[:fan_access].nil? ? true : options[:fan_access]
|
||||
|
||||
# create session in one client
|
||||
in_client(creator) do
|
||||
page.driver.resize(1500, 800) # makes sure all the elements are visible
|
||||
page.driver.headers = { 'User-Agent' => ' JamKazam ' }
|
||||
emulate_client
|
||||
sign_in_poltergeist creator
|
||||
wait_until_curtain_gone
|
||||
visit "/client#/createSession"
|
||||
|
|
@ -204,8 +207,9 @@ def create_session(creator = FactoryGirl.create(:user), unique_session_desc = ni
|
|||
fill_in('description', :with => unique_session_desc)
|
||||
#select(genre, :from => 'genres', :visible => false) # this works, but is 'cheating' because easydropdown hides the native select element
|
||||
jk_select(genre, '#create-session-form select[name="genres"]')
|
||||
jk_select('Public', '#create-session-form select#musician-access')
|
||||
jk_select('Public', '#create-session-form select#fan-access')
|
||||
|
||||
jk_select(musician_access ? 'Public' : 'Private', '#create-session-form select#musician-access')
|
||||
jk_select(fan_access ? 'Public' : 'Private', '#create-session-form select#fan-access')
|
||||
find('#create-session-form div.musician-access-false.iradio_minimal').trigger(:click)
|
||||
find('div.intellectual-property ins').trigger(:click)
|
||||
find('#btn-create-session').trigger(:click) # fails if page width is low
|
||||
|
|
@ -220,18 +224,20 @@ def create_session(creator = FactoryGirl.create(:user), unique_session_desc = ni
|
|||
|
||||
end
|
||||
|
||||
|
||||
# this code assumes that there are no music sessions in the database. it should fail on the
|
||||
# find('.join-link') call if > 1 session exists because capybara will complain of multiple matches
|
||||
def join_session(joiner, unique_session_desc)
|
||||
def join_session(joiner, options)
|
||||
description = options[:description]
|
||||
|
||||
in_client(joiner) do
|
||||
page.driver.resize(1500, 800) # makes sure all the elements are visible
|
||||
emulate_client
|
||||
sign_in_poltergeist joiner
|
||||
wait_until_curtain_gone
|
||||
visit "/client#/findSession"
|
||||
|
||||
# verify the session description is seen by second client
|
||||
expect(page).to have_text(unique_session_desc)
|
||||
expect(page).to have_text(description)
|
||||
find('.join-link').trigger(:click)
|
||||
find('#btn-accept-terms').trigger(:click)
|
||||
expect(page).to have_selector('h2', text: 'my tracks')
|
||||
|
|
@ -240,13 +246,21 @@ def join_session(joiner, unique_session_desc)
|
|||
end
|
||||
|
||||
|
||||
def create_join_session(creator, joiners=[], genre=nil)
|
||||
creator, unique_session_desc = create_session(creator, nil, genre)
|
||||
|
||||
def emulate_client
|
||||
page.driver.headers = { 'User-Agent' => ' JamKazam ' }
|
||||
end
|
||||
|
||||
def create_join_session(creator, joiners=[], options={})
|
||||
options[:creator] = creator
|
||||
creator, unique_session_desc = create_session(options)
|
||||
|
||||
# find session in second client
|
||||
joiners.each do |joiner|
|
||||
join_session(joiner, unique_session_desc)
|
||||
join_session(joiner, description: unique_session_desc)
|
||||
end
|
||||
|
||||
return creator, unique_session_desc
|
||||
end
|
||||
|
||||
def formal_leave_by user
|
||||
|
|
@ -258,7 +272,7 @@ def formal_leave_by user
|
|||
end
|
||||
|
||||
def start_recording_with(creator, joiners=[], genre=nil)
|
||||
create_join_session(creator, joiners, genre)
|
||||
create_join_session(creator, joiners, {genre: genre})
|
||||
in_client(creator) do
|
||||
find('#recording-start-stop').trigger(:click)
|
||||
find('#recording-status').should have_content 'Stop Recording'
|
||||
|
|
@ -299,15 +313,17 @@ end
|
|||
def set_session_as_private()
|
||||
find('#session-settings-button').trigger(:click)
|
||||
within('#session-settings-dialog') do
|
||||
select('Private', :from => 'session-settings-musician-access')
|
||||
find('#session-settings-dialog-submit').trigger(:click)
|
||||
jk_select("Private", '#session-settings-dialog #session-settings-musician-access')
|
||||
#select('Private', :from => 'session-settings-musician-access')
|
||||
find('#session-settings-dialog-submit').trigger(:click)
|
||||
end
|
||||
end
|
||||
|
||||
def set_session_as_public()
|
||||
find('#session-settings-button').trigger(:click)
|
||||
within('#session-settings-dialog') do
|
||||
select('Public', :from => 'session-settings-musician-access')
|
||||
jk_select("Public", '#session-settings-dialog #session-settings-musician-access')
|
||||
# select('Public', :from => 'session-settings-musician-access')
|
||||
find('#session-settings-dialog-submit').trigger(:click)
|
||||
end
|
||||
end
|
||||
|
|
|
|||
Loading…
Reference in New Issue