VRFS-2782 : Add api controller test for multiple bitrates. Fix bug found as a result.
This commit is contained in:
parent
f935b8c7e9
commit
ead2921e84
|
|
@ -102,7 +102,7 @@ module JamRuby
|
||||||
def enqueue(bitrate=48)
|
def enqueue(bitrate=48)
|
||||||
begin
|
begin
|
||||||
JamTrackRight.where(:id => self.id).update_all(:signing_queued_at => Time.now, :signing_started_at => nil, :last_signed_at => nil)
|
JamTrackRight.where(:id => self.id).update_all(:signing_queued_at => Time.now, :signing_started_at => nil, :last_signed_at => nil)
|
||||||
Resque.enqueue(JamTracksBuilder, self.id, bitrate: bitrate)
|
Resque.enqueue(JamTracksBuilder, self.id, bitrate)
|
||||||
true
|
true
|
||||||
rescue Exception => e
|
rescue Exception => e
|
||||||
puts "e: #{e}"
|
puts "e: #{e}"
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -6,6 +6,7 @@ describe ApiJamTracksController do
|
||||||
before(:all) do
|
before(:all) do
|
||||||
@original_storage = JamTrackTrackUploader.storage = :fog
|
@original_storage = JamTrackTrackUploader.storage = :fog
|
||||||
@original_storage_right = JamTrackRightUploader.storage = :fog
|
@original_storage_right = JamTrackRightUploader.storage = :fog
|
||||||
|
@s3 = S3Manager.new(APP_CONFIG.aws_bucket, APP_CONFIG.aws_access_key_id, APP_CONFIG.aws_secret_access_key)
|
||||||
end
|
end
|
||||||
|
|
||||||
after(:all) do
|
after(:all) do
|
||||||
|
|
@ -76,7 +77,7 @@ describe ApiJamTracksController do
|
||||||
it "finds a download" do
|
it "finds a download" do
|
||||||
#get "/download/#{right.id}/"
|
#get "/download/#{right.id}/"
|
||||||
right = JamTrackRight.create(:user=>@user, :jam_track=>@jam_track)
|
right = JamTrackRight.create(:user=>@user, :jam_track=>@jam_track)
|
||||||
get :download, { :format => 'json', :id => @jam_track.id }
|
get :download, { :format=>'json', :id=>@jam_track.id }
|
||||||
|
|
||||||
response.should be_success
|
response.should be_success
|
||||||
response.status.should == 202
|
response.status.should == 202
|
||||||
|
|
@ -115,8 +116,14 @@ describe ApiJamTracksController do
|
||||||
@jam_track = FactoryGirl.create(:jam_track) #jam_track_track.jam_track
|
@jam_track = FactoryGirl.create(:jam_track) #jam_track_track.jam_track
|
||||||
jam_track_track = @jam_track.jam_track_tracks.first
|
jam_track_track = @jam_track.jam_track_tracks.first
|
||||||
|
|
||||||
|
# 48 kHz:
|
||||||
uploader = JamTrackTrackUploader.new(jam_track_track, :url_48)
|
uploader = JamTrackTrackUploader.new(jam_track_track, :url_48)
|
||||||
uploader.store!(File.open(@ogg_path, 'rb'))
|
uploader.store!(File.open(@ogg_path, 'rb'))
|
||||||
|
|
||||||
|
# 44 kHz:
|
||||||
|
uploader = JamTrackTrackUploader.new(jam_track_track, :url_44)
|
||||||
|
uploader.store!(File.open(File.join('spec', 'files', 'off.ogg'), 'rb'))
|
||||||
|
|
||||||
#jam_track_track.url.store!(File.open(ogg_path, "rb"))
|
#jam_track_track.url.store!(File.open(ogg_path, "rb"))
|
||||||
jam_track_track.save!
|
jam_track_track.save!
|
||||||
jam_track_track.reload
|
jam_track_track.reload
|
||||||
|
|
@ -124,34 +131,66 @@ describe ApiJamTracksController do
|
||||||
end
|
end
|
||||||
|
|
||||||
it "download depends on rights" do
|
it "download depends on rights" do
|
||||||
s3 = S3Manager.new(APP_CONFIG.aws_bucket, APP_CONFIG.aws_access_key_id, APP_CONFIG.aws_secret_access_key)
|
get :download, :id=>@jam_track.id
|
||||||
get :download, :id => @jam_track.id
|
|
||||||
response.status.should == 403
|
response.status.should == 403
|
||||||
|
|
||||||
right = JamTrackRight.create(:user=>@user, :jam_track=>@jam_track)
|
right = JamTrackRight.create(:user=>@user, :jam_track=>@jam_track)
|
||||||
get :download, :id => @jam_track.id
|
get :download, :id=>@jam_track.id
|
||||||
response.status.should == 202
|
response.status.should == 202
|
||||||
right.download_count.should eq(0)
|
right.download_count.should eq(0)
|
||||||
right.private_key.should be_nil
|
right.private_key.should be_nil
|
||||||
|
|
||||||
JamTracksBuilder.should have_queued(right.id).in(:jam_tracks_builder)
|
|
||||||
|
|
||||||
qname = "#{ResqueSpec.queue_name(JamRuby::JamTracksBuilder)}"
|
qname = "#{ResqueSpec.queue_name(JamRuby::JamTracksBuilder)}"
|
||||||
|
#puts "ResqueSpec.peek(qname)#{ResqueSpec.peek(qname)}"
|
||||||
|
JamTracksBuilder.should have_queued(right.id,nil).in(:jam_tracks_builder)
|
||||||
|
|
||||||
expect(ResqueSpec.peek(qname).present?).to eq(true)
|
expect(ResqueSpec.peek(qname).present?).to eq(true)
|
||||||
ResqueSpec.perform_next(qname)
|
ResqueSpec.perform_next(qname)
|
||||||
|
|
||||||
JamTracksBuilder.should_not have_queued(right.id).in(:jam_tracks_builder)
|
JamTracksBuilder.should_not have_queued(right.id,nil).in(:jam_tracks_builder)
|
||||||
right.reload
|
right.reload
|
||||||
right.private_key.should_not be_nil
|
right.private_key.should_not be_nil
|
||||||
right.download_count.should eq(0)
|
right.download_count.should eq(0)
|
||||||
|
|
||||||
get :download, :id => @jam_track.id
|
get :download, :id=>@jam_track.id
|
||||||
response.status.should == 302
|
response.status.should == 302
|
||||||
response.location.should =~ /.*#{Regexp.escape(right.filename)}.*/
|
response.location.should =~ /.*#{Regexp.escape(right.filename)}.*/
|
||||||
right.reload
|
right.reload
|
||||||
right.download_count.should eq(1)
|
right.download_count.should eq(1)
|
||||||
|
|
||||||
notifications = Notification.where(:jam_track_right_id => right.id)
|
notifications = Notification.where(:jam_track_right_id=>right.id)
|
||||||
|
notifications.count.should == 1
|
||||||
|
end
|
||||||
|
|
||||||
|
it "supports multiple bitrates" do
|
||||||
|
get :download, :id=>@jam_track.id, :bitrate=>44
|
||||||
|
response.status.should == 403
|
||||||
|
|
||||||
|
right = JamTrackRight.create(:user=>@user, :jam_track=>@jam_track)
|
||||||
|
get :download, :id=>@jam_track.id, :bitrate=>44
|
||||||
|
response.status.should == 202
|
||||||
|
right.download_count.should eq(0)
|
||||||
|
right.private_key.should be_nil
|
||||||
|
|
||||||
|
qname = "#{ResqueSpec.queue_name(JamRuby::JamTracksBuilder)}"
|
||||||
|
#puts "ResqueSpec.peek(qname)#{ResqueSpec.peek(qname)}"
|
||||||
|
JamTracksBuilder.should have_queued(right.id,"44").in(:jam_tracks_builder)
|
||||||
|
|
||||||
|
expect(ResqueSpec.peek(qname).present?).to eq(true)
|
||||||
|
ResqueSpec.perform_next(qname)
|
||||||
|
|
||||||
|
JamTracksBuilder.should_not have_queued(right.id,"44").in(:jam_tracks_builder)
|
||||||
|
right.reload
|
||||||
|
right.private_key.should_not be_nil
|
||||||
|
right.download_count.should eq(0)
|
||||||
|
|
||||||
|
get :download, :id=>@jam_track.id, :bitrate=>44
|
||||||
|
response.status.should == 302
|
||||||
|
response.location.should =~ /.*#{Regexp.escape(right.filename)}.*/
|
||||||
|
right.reload
|
||||||
|
right.download_count.should eq(1)
|
||||||
|
|
||||||
|
notifications = Notification.where(:jam_track_right_id=>right.id)
|
||||||
notifications.count.should == 1
|
notifications.count.should == 1
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
@ -213,7 +252,7 @@ describe ApiJamTracksController do
|
||||||
it "success" do
|
it "success" do
|
||||||
right = FactoryGirl.create(:jam_track_right, user: @user, signed: false)
|
right = FactoryGirl.create(:jam_track_right, user: @user, signed: false)
|
||||||
right.signing_queued_at.should be_nil
|
right.signing_queued_at.should be_nil
|
||||||
post :enqueue, {:format => 'json', :id => right.jam_track.id}
|
post :enqueue, {:format=>'json', :id=>right.jam_track.id}
|
||||||
response.should be_success
|
response.should be_success
|
||||||
|
|
||||||
right.reload
|
right.reload
|
||||||
|
|
@ -225,7 +264,7 @@ describe ApiJamTracksController do
|
||||||
it "success" do
|
it "success" do
|
||||||
right = FactoryGirl.create(:jam_track_right, user: @user)
|
right = FactoryGirl.create(:jam_track_right, user: @user)
|
||||||
|
|
||||||
get :show_jam_track_right, {:id => right.jam_track.id}
|
get :show_jam_track_right, {:id=>right.jam_track.id}
|
||||||
response.should be_success
|
response.should be_success
|
||||||
json = JSON.parse(response.body)
|
json = JSON.parse(response.body)
|
||||||
json['signing_state'].should eq('QUIET')
|
json['signing_state'].should eq('QUIET')
|
||||||
|
|
|
||||||
Binary file not shown.
Loading…
Reference in New Issue