spec/spec_helper.rb in pidgin2adium-3.0.1 vs spec/spec_helper.rb in pidgin2adium-3.1.0
- old
+ new
@@ -1,19 +1,72 @@
-$LOAD_PATH.unshift(File.dirname(__FILE__))
-$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
-require 'pidgin2adium'
-begin
- # RSpec 2
- gem 'rspec', '>= 2.0.0.beta.18'
- require 'rspec'
- constant = RSpec
-rescue Gem::LoadError
- # RSpec 1
- gem 'rspec', '~> 1.3'
- require 'spec'
- require 'spec/autorun'
- constant = Spec::Runner
-end
+require 'fileutils'
-constant.configure do |config|
+# Pidgin2Adium.oops and Pidgin2Adium.warn both use warn() to output errors.
+# Setting $-w (the warning level) to nil suppresses them, which makes for
+# much prettier test output.
+$-w=nil # OMGHAX
+# Wrap it in a lambda so that we can pass it to Spork.prefork, if spork is installed.
+prefork_block = lambda do
+ # Loading more in this block will cause your tests to run faster. However,
+ # if you change any configuration or code from libraries loaded here, you'll
+ # need to restart spork for it take effect.
+
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'ext', 'balance_tags_c'))
+
+ require 'pidgin2adium'
+ require 'faker'
+ require 'time' # for Time.zone_offset
+
+ rspec_configure_block = lambda do |config|
+ config.before(:all) do
+ @current_dir = File.dirname(__FILE__)
+ @aliases = %w{gabebw gabeb-w gbw me}.join(',')
+ # -7 => "-0700"
+ @current_tz_offset = sprintf("%+03d00", Time.zone_offset(Time.new.zone) / 3600)
+
+ @logfile_path = File.join(@current_dir, "logfiles/")
+ @text_logfile_path = "#{@logfile_path}/2006-12-21.223606.txt"
+ @htm_logfile_path = "#{@logfile_path}/2008-01-15.071445-0500PST.htm"
+ @html_logfile_path = "#{@logfile_path}/2008-01-15.071445-0500PST.html"
+
+ @nonexistent_output_dir = File.join(@current_dir, "nonexistent_output_dir/")
+ @output_dir = File.join(@current_dir, "output-dir/")
+ FileUtils.rm_r(@nonexistent_output_dir, :force => true)
+ end
+
+ config.after(:all) do
+ # Clean up.
+ FileUtils.rm_r(@nonexistent_output_dir, :force => true)
+ FileUtils.rm_r(@output_dir, :force => true)
+ end
+ end
+
+ begin
+ # RSpec 2
+ gem 'rspec', '>= 2.0.0.beta.18'
+ require 'rspec'
+ RSpec.configure(&rspec_configure_block)
+ rescue Gem::LoadError
+ # RSpec 1
+ gem 'rspec', '~> 1.3'
+ require 'spec'
+ require 'spec/autorun'
+ Spec::Runner.configure(&rspec_configure_block)
+ end
+end
+
+begin
+ require 'rubygems'
+ require 'spork'
+ Spork.prefork(&prefork_block)
+ Spork.each_run do
+ # This code will be run each time you run your specs.
+ end
+rescue LoadError
+ puts 'To make the tests run faster, run "sudo gem install spork" then run "spork"'
+ puts 'from the base pidgin2adium directory.'
+ # Spork isn't installed.
+ prefork_block.call
end