spec/spec_helper.rb in aviglitch-0.1.6 vs spec/spec_helper.rb in aviglitch-0.2.0
- old
+ new
@@ -1,14 +1,55 @@
require 'rspec'
require 'aviglitch'
require 'pathname'
require 'fileutils'
+require 'net/http'
FILES_DIR = Pathname.new(File.dirname(__FILE__)).realpath + 'files'
OUTPUT_DIR = FILES_DIR + 'output'
RSpec.configure do |config|
config.filter_run_excluding :skip => true
config.expect_with :rspec do |c|
c.syntax = [:should, :expect]
+ end
+
+ config.before(:all) do
+ FileUtils.mkdir FILES_DIR unless File.exist? FILES_DIR
+ FileUtils.mkdir OUTPUT_DIR unless File.exist? OUTPUT_DIR
+ @in = FILES_DIR + 'sample1.avi'
+ @in2 = FILES_DIR + 'sample2.avi'
+ @out = OUTPUT_DIR + 'out.avi'
+ [
+ [@in2, 'http://a.ucnv.org/sample2.avi'], [@in, 'http://a.ucnv.org/sample1.avi']
+ ].each do |file, url|
+ unless File.exist? file
+ if file == @in2
+ puts 'At first test it needs to download a file over 1GB. It will take a while.'
+ end
+ puts 'Downloading ' + url
+ $stdout.sync = true
+ u = URI.parse url
+ Net::HTTP.start(u.host, u.port) do |http|
+ res = http.request_head u.path
+ max = res['content-length'].to_i
+ len = 0
+ bl = 75
+ File.open(file, 'w') do |file|
+ http.get(u.path) do |chunk|
+ file.write chunk
+ len += chunk.length
+ pct = '%3.1f' % (100.0 * len / max)
+ bar = ('#' * (bl * len / max)).ljust(bl)
+ print "\r#{bar} #{'%5s' % pct}%" unless ENV['CI']
+ end
+ end
+ end
+ puts
+ end
+ end
+ end
+
+ config.after(:each) do
+ FileUtils.rm Dir.glob((OUTPUT_DIR + '*').to_s)
end
end