2014-02-24 16:55:56 +00:00
|
|
|
require 'spec_helper'
|
|
|
|
|
|
2016-07-17 15:16:27 +00:00
|
|
|
describe ApiMixesController, type: :controller do
|
2014-02-24 16:55:56 +00:00
|
|
|
render_views
|
|
|
|
|
|
|
|
|
|
let(:mix) { FactoryGirl.create(:mix) }
|
|
|
|
|
|
|
|
|
|
before(:each) do
|
|
|
|
|
controller.current_user = nil
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
describe "download" do
|
|
|
|
|
|
|
|
|
|
it "is possible" do
|
|
|
|
|
controller.current_user = mix.recording.owner
|
|
|
|
|
get :download, {id: mix.id}
|
|
|
|
|
response.status.should == 302
|
|
|
|
|
|
|
|
|
|
mix.reload
|
|
|
|
|
mix.download_count.should == 1
|
|
|
|
|
|
|
|
|
|
get :download, {id: mix.id}
|
|
|
|
|
response.status.should == 302
|
|
|
|
|
|
|
|
|
|
mix.reload
|
|
|
|
|
mix.download_count.should == 2
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
it "prevents download after limit is reached" do
|
|
|
|
|
mix.download_count = APP_CONFIG.max_audio_downloads
|
|
|
|
|
mix.save!
|
|
|
|
|
controller.current_user = mix.recording.owner
|
|
|
|
|
get :download, {format:'json', id: mix.id}
|
|
|
|
|
response.status.should == 404
|
|
|
|
|
JSON.parse(response.body, symbolize_names: true)[:message].should == "download limit surpassed"
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
it "lets admins surpass limit" do
|
|
|
|
|
mix.download_count = APP_CONFIG.max_audio_downloads
|
|
|
|
|
mix.save!
|
|
|
|
|
mix.recording.owner.admin = true
|
|
|
|
|
mix.recording.owner.save!
|
|
|
|
|
|
|
|
|
|
controller.current_user = mix.recording.owner
|
|
|
|
|
get :download, {format:'json', id: mix.id}
|
|
|
|
|
response.status.should == 302
|
|
|
|
|
mix.reload
|
|
|
|
|
mix.download_count.should == 101
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|