From e6c49a18b2192ccbff9355e5e68b3d355abab214 Mon Sep 17 00:00:00 2001 From: Steven Miers Date: Thu, 26 Feb 2015 17:01:44 -0600 Subject: [PATCH] VRFS-2782 : Add a jam tracks builder spec to more directly exercise building, in addition to specific tests for 48kHz vs 44kHz --- .../resque/jam_tracks_builder_spec.rb | 83 +++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 ruby/spec/jam_ruby/resque/jam_tracks_builder_spec.rb diff --git a/ruby/spec/jam_ruby/resque/jam_tracks_builder_spec.rb b/ruby/spec/jam_ruby/resque/jam_tracks_builder_spec.rb new file mode 100644 index 000000000..bf72bd00d --- /dev/null +++ b/ruby/spec/jam_ruby/resque/jam_tracks_builder_spec.rb @@ -0,0 +1,83 @@ +require 'spec_helper' + +describe JamTracksBuilder do + include UsesTempFiles + include CarrierWave::Test::Matchers + + before (:all) do + @user = FactoryGirl.create(:user) + @jam_track = FactoryGirl.create(:jam_track) + original_storage = JamTrackTrackUploader.storage = :fog + original_storage = JamTrackRightUploader.storage = :fog + @s3 = S3Manager.new(APP_CONFIG.aws_bucket, APP_CONFIG.aws_access_key_id, APP_CONFIG.aws_secret_access_key) + end + + after(:all) do + JamTrackRightUploader.storage = @original_storage + JamTrackTrackUploader.storage = @original_storage + end + + before(:each) do + @s3.delete_folder('jam_tracks') + end + + it "should build" do + ogg_path = File.join('spec', 'files', 'on.ogg') + user = FactoryGirl.create(:user) + jam_track_track = FactoryGirl.create(:jam_track_track) + jam_track = jam_track_track.jam_track + + #uploader = JamTrackTrackUploader.new(jam_track_track, :url_48) + jam_track_track.url_48.store!(File.open(ogg_path, 'rb')) + jam_track_track.save! + + jam_track_track[:url_48].should == jam_track_track.store_dir + '/' + jam_track_track.filename + + # verify it's on S3 + @s3.exists?(jam_track_track[:url_48]).should be_true + @s3.length(jam_track_track[:url_48]).should == File.size?(ogg_path) + @s3.exists?(jam_track_track[:url_44]).should be_false + + # Check right + jam_track_right = JamTrackRight.create(:user=>user, :jam_track=>jam_track) + jam_track_right[:url_48].should be_nil + jam_track_right[:url_44].should be_nil + JamTracksBuilder.perform(jam_track_right.id, 48) + jam_track_right.reload + jam_track_right[:url_48].should == jam_track_right.store_dir + '/' + jam_track_right.filename + @s3.exists?(jam_track_track[:url_44]).should be_false + end + + describe "with bitrate 44" do + it "should build" do + ogg_path = File.join('spec', 'files', 'on.ogg') + user = FactoryGirl.create(:user) + + # Should build bitrate 44 and only bitrate 44: + jam_track_track = FactoryGirl.create(:jam_track_track) + jam_track = jam_track_track.jam_track + + # uploader = JamTrackTrackUploader.new(jam_track_track, :url_44) + # uploader.store!(File.open(ogg_path, 'rb')) + jam_track_track.url_44.store!(File.open(ogg_path, 'rb')) + jam_track_track.save! + + jam_track_track[:url_44].should == jam_track_track.store_dir + '/url_44/' + jam_track_track.filename + + # verify it's on S3 + @s3.exists?(jam_track_track[:url_44]).should be_true + @s3.length(jam_track_track[:url_44]).should == File.size?(ogg_path) + @s3.exists?(jam_track_track[:url_48]).should be_false + + # Check right + jam_track_right = JamTrackRight.create(:user=>user, :jam_track=>jam_track) + jam_track_right[:url_44].should be_nil + jam_track_right[:url_48].should be_nil + JamTracksBuilder.perform(jam_track_right.id, 44) + jam_track_right.reload + jam_track_right[:url_44].should == jam_track_right.store_dir + '/' + jam_track_right.filename + jam_track_right.url_44.should_not be_nil + @s3.exists?(jam_track_track[:url_48]).should be_false + end + end +end \ No newline at end of file