393 lines
12 KiB
Ruby
393 lines
12 KiB
Ruby
include ActionDispatch::TestProcess # added for artifact_update http://stackoverflow.com/questions/5990835/factory-with-carrierwave-upload-field
|
|
|
|
FactoryGirl.define do
|
|
factory :user, :class => JamRuby::User do
|
|
sequence(:email) { |n| "person_#{n}@example.com"}
|
|
sequence(:first_name) { |n| "Person" }
|
|
sequence(:last_name) { |n| "#{n}" }
|
|
password "foobar"
|
|
password_confirmation "foobar"
|
|
email_confirmed true
|
|
show_whats_next = false #annoying for testing, usually
|
|
musician true
|
|
city "Apex"
|
|
state "NC"
|
|
country "US"
|
|
terms_of_service true
|
|
subscribe_email true
|
|
|
|
factory :fan do
|
|
musician false
|
|
end
|
|
|
|
factory :admin do
|
|
admin true
|
|
end
|
|
|
|
before(:create) do |user|
|
|
user.musician_instruments << FactoryGirl.build(:musician_instrument, user: user)
|
|
end
|
|
|
|
factory :single_user_session do
|
|
after(:create) do |user, evaluator|
|
|
music_session = FactoryGirl.create(:music_session, :creator => user)
|
|
connection = FactoryGirl.create(:connection, :user => user, :music_session => music_session)
|
|
end
|
|
end
|
|
end
|
|
|
|
factory :invited_user, :class => JamRuby::InvitedUser do
|
|
sequence(:email) { |n| "user#{n}@someservice.com" }
|
|
autofriend false
|
|
end
|
|
|
|
factory :music_session, :class => JamRuby::MusicSession do
|
|
sequence(:description) { |n| "Music Session #{n}" }
|
|
fan_chat true
|
|
fan_access true
|
|
approval_required false
|
|
musician_access true
|
|
legal_terms true
|
|
genres [JamRuby::Genre.first]
|
|
association :creator, :factory => :user
|
|
|
|
after(:create) { |session|
|
|
FactoryGirl.create(:music_session_user_history, :history => session.music_session_history, :user => session.creator)
|
|
}
|
|
end
|
|
|
|
|
|
factory :music_session_user_history, :class => JamRuby::MusicSessionUserHistory do
|
|
ignore do
|
|
history nil
|
|
user nil
|
|
end
|
|
|
|
music_session_id { history.music_session_id }
|
|
user_id { user.id }
|
|
sequence(:client_id) { |n| "Connection #{n}" }
|
|
end
|
|
|
|
|
|
factory :connection, :class => JamRuby::Connection do
|
|
sequence(:client_id) { |n| "client_id#{n}"}
|
|
ip_address "1.1.1.1"
|
|
as_musician true
|
|
addr 0
|
|
locidispid 0
|
|
latitude 0.0
|
|
longitude 0.0
|
|
countrycode 'US'
|
|
region 'TX'
|
|
city 'Austin'
|
|
end
|
|
|
|
factory :friendship, :class => JamRuby::Friendship do
|
|
|
|
end
|
|
|
|
factory :invitation, :class => JamRuby::Invitation do
|
|
|
|
end
|
|
|
|
factory :band, :class => JamRuby::Band do
|
|
sequence(:name) { |n| "Band" }
|
|
biography "Established 1978"
|
|
city "Apex"
|
|
state "NC"
|
|
country "US"
|
|
before(:create) { |band|
|
|
band.genres << Genre.first
|
|
}
|
|
end
|
|
|
|
factory :join_request, :class => JamRuby::JoinRequest do
|
|
text 'let me in to the session!'
|
|
end
|
|
|
|
factory :genre, :class => JamRuby::Genre do
|
|
description { |n| "Genre #{n}" }
|
|
end
|
|
|
|
factory :instrument, :class => JamRuby::Instrument do
|
|
description { |n| "Instrument #{n}" }
|
|
end
|
|
|
|
factory :artifact_update, :class => JamRuby::ArtifactUpdate do
|
|
sequence(:version) { |n| "0.1.#{n}" }
|
|
uri { fixture_file_upload("#{Rails.root.to_s}/spec/fixtures/files/jkclient.exe", "application/x-msdownload") }
|
|
product { "JamClient/Win32" }
|
|
environment { "public" }
|
|
sha1 { "blurp" }
|
|
size { 20 }
|
|
end
|
|
|
|
factory :musician_instrument, :class=> JamRuby::MusicianInstrument do
|
|
instrument { Instrument.find('electric guitar') }
|
|
proficiency_level 1
|
|
priority 0
|
|
end
|
|
|
|
factory :track, :class => JamRuby::Track do
|
|
sound "mono"
|
|
sequence(:client_track_id) { |n| "client_track_id_seq_#{n}"}
|
|
|
|
end
|
|
|
|
|
|
factory :recorded_track, :class => JamRuby::RecordedTrack do
|
|
instrument JamRuby::Instrument.first
|
|
sound 'stereo'
|
|
sequence(:client_id) { |n| "client_id-#{n}"}
|
|
sequence(:track_id) { |n| "track_id-#{n}"}
|
|
sequence(:client_track_id) { |n| "client_track_id-#{n}"}
|
|
md5 'abc'
|
|
length 1
|
|
fully_uploaded true
|
|
association :user, factory: :user
|
|
association :recording, factory: :recording
|
|
end
|
|
|
|
factory :recording, :class => JamRuby::Recording do
|
|
|
|
association :owner, factory: :user
|
|
association :music_session, factory: :music_session
|
|
|
|
factory :recording_with_track do
|
|
before(:create) { |recording|
|
|
recording.recorded_tracks << FactoryGirl.create(:recorded_track, recording: recording, user: recording.owner)
|
|
}
|
|
end
|
|
end
|
|
|
|
factory :claimed_recording, :class => JamRuby::ClaimedRecording do
|
|
sequence(:name) { |n| "name-#{n}" }
|
|
sequence(:description) { |n| "description-#{n}" }
|
|
is_public true
|
|
association :genre, factory: :genre
|
|
association :user, factory: :user
|
|
|
|
before(:create) { |claimed_recording|
|
|
claimed_recording.recording = FactoryGirl.create(:recording_with_track, owner: claimed_recording.user)
|
|
}
|
|
|
|
end
|
|
|
|
factory :geocoder, :class => JamRuby::MaxMindGeo do
|
|
country 'US'
|
|
sequence(:region) { |n| ['NC', 'CA'][(n-1).modulo(2)] }
|
|
sequence(:city) { |n| ['Apex', 'San Francisco'][(n-1).modulo(2)] }
|
|
sequence(:ip_start) { |n| ['1.1.0.0', '1.1.255.255'][(n-1).modulo(2)] }
|
|
sequence(:ip_end) { |n| ['1.2.0.0', '1.2.255.255'][(n-1).modulo(2)] }
|
|
sequence(:lat) { |n| [35.73265, 37.7742075][(n-1).modulo(2)] }
|
|
sequence(:lng) { |n| [-78.85029, -122.4155311][(n-1).modulo(2)] }
|
|
end
|
|
|
|
factory :icecast_limit, :class => JamRuby::IcecastLimit do
|
|
clients 5
|
|
sources 1
|
|
queue_size 102400
|
|
client_timeout 30
|
|
header_timeout 15
|
|
source_timeout 10
|
|
burst_size 65536
|
|
end
|
|
|
|
factory :icecast_admin_authentication, :class => JamRuby::IcecastAdminAuthentication do
|
|
source_pass Faker::Lorem.characters(10)
|
|
admin_user Faker::Lorem.characters(10)
|
|
admin_pass Faker::Lorem.characters(10)
|
|
relay_user Faker::Lorem.characters(10)
|
|
relay_pass Faker::Lorem.characters(10)
|
|
end
|
|
|
|
factory :icecast_directory, :class => JamRuby::IcecastDirectory do
|
|
yp_url_timeout 15
|
|
yp_url Faker::Lorem.characters(10)
|
|
end
|
|
|
|
factory :icecast_master_server_relay, :class => JamRuby::IcecastMasterServerRelay do
|
|
master_server Faker::Lorem.characters(10)
|
|
master_server_port 8000
|
|
master_update_interval 120
|
|
master_username Faker::Lorem.characters(10)
|
|
master_pass Faker::Lorem.characters(10)
|
|
relays_on_demand 1
|
|
end
|
|
|
|
factory :icecast_path, :class => JamRuby::IcecastPath do
|
|
base_dir Faker::Lorem.characters(10)
|
|
log_dir Faker::Lorem.characters(10)
|
|
pid_file Faker::Lorem.characters(10)
|
|
web_root Faker::Lorem.characters(10)
|
|
admin_root Faker::Lorem.characters(10)
|
|
end
|
|
|
|
factory :icecast_logging, :class => JamRuby::IcecastLogging do
|
|
access_log Faker::Lorem.characters(10)
|
|
error_log Faker::Lorem.characters(10)
|
|
log_level 3
|
|
log_archive nil
|
|
log_size 10000
|
|
end
|
|
|
|
factory :icecast_security, :class => JamRuby::IcecastSecurity do
|
|
chroot 0
|
|
end
|
|
|
|
factory :icecast_mount, :class => JamRuby::IcecastMount do
|
|
name "/" + Faker::Lorem.characters(10)
|
|
source_username Faker::Lorem.characters(10)
|
|
source_pass Faker::Lorem.characters(10)
|
|
max_listeners 100
|
|
max_listener_duration 3600
|
|
fallback_mount Faker::Lorem.characters(10)
|
|
fallback_override 1
|
|
fallback_when_full 1
|
|
is_public -1
|
|
stream_name Faker::Lorem.characters(10)
|
|
stream_description Faker::Lorem.characters(10)
|
|
stream_url Faker::Lorem.characters(10)
|
|
genre Faker::Lorem.characters(10)
|
|
hidden 0
|
|
association :server, factory: :icecast_server_with_overrides
|
|
|
|
factory :icecast_mount_with_auth do
|
|
association :authentication, :factory => :icecast_user_authentication
|
|
|
|
factory :iceast_mount_with_template do
|
|
association :mount_template, :factory => :icecast_mount_template
|
|
|
|
factory :iceast_mount_with_music_session do
|
|
association :music_session, :factory => :music_session
|
|
end
|
|
end
|
|
end
|
|
|
|
|
|
end
|
|
|
|
factory :icecast_listen_socket, :class => JamRuby::IcecastListenSocket do
|
|
port 8000
|
|
end
|
|
|
|
factory :icecast_relay, :class => JamRuby::IcecastRelay do
|
|
port 8000
|
|
mount Faker::Lorem.characters(10)
|
|
server Faker::Lorem.characters(10)
|
|
on_demand 1
|
|
end
|
|
|
|
factory :icecast_user_authentication, :class => JamRuby::IcecastUserAuthentication do
|
|
authentication_type 'url'
|
|
unused_username Faker::Lorem.characters(10)
|
|
unused_pass Faker::Lorem.characters(10)
|
|
mount_add Faker::Lorem.characters(10)
|
|
mount_remove Faker::Lorem.characters(10)
|
|
listener_add Faker::Lorem.characters(10)
|
|
listener_remove Faker::Lorem.characters(10)
|
|
auth_header 'icecast-auth-user: 1'
|
|
timelimit_header 'icecast-auth-timelimit:'
|
|
end
|
|
|
|
factory :icecast_server, :class => JamRuby::IcecastServer do
|
|
sequence(:hostname) { |n| "hostname-#{n}"}
|
|
sequence(:server_id) { |n| "server-#{n}"}
|
|
|
|
factory :icecast_server_minimal do
|
|
association :template, :factory => :icecast_template_minimal
|
|
association :mount_template, :factory => :icecast_mount_template
|
|
|
|
factory :icecast_server_with_overrides do
|
|
association :limit, :factory => :icecast_limit
|
|
association :admin_auth, :factory => :icecast_admin_authentication
|
|
association :path, :factory => :icecast_path
|
|
association :logging, :factory => :icecast_logging
|
|
association :security, :factory => :icecast_security
|
|
|
|
before(:create) do |server|
|
|
server.listen_sockets << FactoryGirl.build(:icecast_listen_socket)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
factory :icecast_template, :class => JamRuby::IcecastTemplate do
|
|
|
|
sequence(:name) { |n| "name-#{n}"}
|
|
sequence(:location) { |n| "location-#{n}"}
|
|
|
|
factory :icecast_template_minimal do
|
|
association :limit, :factory => :icecast_limit
|
|
association :admin_auth, :factory => :icecast_admin_authentication
|
|
association :path, :factory => :icecast_path
|
|
association :logging, :factory => :icecast_logging
|
|
association :security, :factory => :icecast_security
|
|
|
|
before(:create) do |template|
|
|
template.listen_sockets << FactoryGirl.build(:icecast_listen_socket)
|
|
end
|
|
end
|
|
end
|
|
|
|
factory :icecast_mount_template, :class => JamRuby::IcecastMountTemplate do
|
|
sequence(:name) { |n| "name-#{n}"}
|
|
source_username Faker::Lorem.characters(10)
|
|
source_pass Faker::Lorem.characters(10)
|
|
max_listeners 100
|
|
max_listener_duration 3600
|
|
fallback_mount Faker::Lorem.characters(10)
|
|
fallback_override 1
|
|
fallback_when_full 1
|
|
is_public -1
|
|
stream_name Faker::Lorem.characters(10)
|
|
stream_description Faker::Lorem.characters(10)
|
|
stream_url Faker::Lorem.characters(10)
|
|
genre Faker::Lorem.characters(10)
|
|
hidden 0
|
|
association :authentication, :factory => :icecast_user_authentication
|
|
end
|
|
|
|
factory :facebook_signup, :class => JamRuby::FacebookSignup do
|
|
sequence(:lookup_id) { |n| "lookup-#{n}"}
|
|
sequence(:first_name) { |n| "first-#{n}"}
|
|
sequence(:last_name) { |n| "last-#{n}"}
|
|
gender 'M'
|
|
sequence(:email) { |n| "jammin-#{n}@jamkazam.com"}
|
|
sequence(:uid) { |n| "uid-#{n}"}
|
|
sequence(:token) { |n| "token-#{n}"}
|
|
token_expires_at Time.now
|
|
end
|
|
|
|
factory :playable_play, :class => JamRuby::PlayablePlay do
|
|
|
|
end
|
|
|
|
factory :recording_like, :class => JamRuby::RecordingLiker do
|
|
|
|
end
|
|
|
|
factory :music_session_like, :class => JamRuby::MusicSessionLiker do
|
|
|
|
end
|
|
|
|
|
|
factory :mix, :class => JamRuby::Mix do
|
|
started_at Time.now
|
|
completed_at Time.now
|
|
ogg_md5 'abc'
|
|
ogg_length 1
|
|
sequence(:ogg_url) { |n| "recordings/ogg/#{n}" }
|
|
mp3_md5 'abc'
|
|
mp3_length 1
|
|
sequence(:mp3_url) { |n| "recordings/mp3/#{n}" }
|
|
completed true
|
|
|
|
before(:create) {|mix|
|
|
user = FactoryGirl.create(:user)
|
|
mix.recording = FactoryGirl.create(:recording_with_track, owner: user)
|
|
mix.recording.claimed_recordings << FactoryGirl.create(:claimed_recording, user: user, recording: mix.recording)
|
|
}
|
|
end
|
|
end
|