# require File.dirname(__FILE__) + '/../spec_helper'
# 
# describe "script/spec_server file", :shared => true do
#   attr_accessor :tmbundle_install_directory
#   attr_reader :animals_yml_path, :original_animals_content
# 
#   before do
#     @animals_yml_path = File.expand_path("#{RAILS_ROOT}/spec/fixtures/animals.yml")
#     @original_animals_content = File.read(animals_yml_path)
#   end
# 
#   after do
#     File.open(animals_yml_path, "w") do |f|
#       f.write original_animals_content
#     end
#   end
# 
#   after(:each) do
#     system "lsof -i tcp:8989 | sed /COMMAND/d | awk '{print $2}' | xargs kill"
#   end
# 
#   it "runs a spec" do
#     dir = File.dirname(__FILE__)
#     output = ""
#     Timeout.timeout(10) do
#       loop do
#         output = `#{RAILS_ROOT}/script/spec #{dir}/sample_spec.rb --drb 2>&1`
#         break unless output.include?("No server is running")
#       end
#     end
# 
#     if $?.exitstatus != 0 || output !~ /0 failures/
#       flunk "command 'script/spec spec/sample_spec' failed\n#{output}"
#     end
# 
#     fixtures = YAML.load(@original_animals_content)
#     fixtures['pig']['name'] = "Piggy"
# 
#     File.open(animals_yml_path, "w") do |f|
#       f.write YAML.dump(fixtures)
#     end
# 
#     Timeout.timeout(10) do
#       loop do
#         output = `#{RAILS_ROOT}/script/spec #{dir}/sample_modified_fixture.rb --drb 2>&1`
#         break unless output.include?("No server is running")
#       end
#     end
# 
#     if $?.exitstatus != 0 || output !~ /0 failures/
#       flunk "command 'script/spec spec/sample_modified_fixture' failed\n#{output}"
#     end
#   end
# 
#   def start_spec_server
#     dir = File.dirname(__FILE__)
#     Thread.start do
#       system "cd #{RAILS_ROOT}; script/spec_server"
#     end
# 
#     file_content = ""
#   end
# end
# 
# describe "script/spec_server file without TextMate bundle" do
#   it_should_behave_like "script/spec_server file"
#   before(:each) do
#     start_spec_server
#   end
# end
# 
# describe "script/spec_server file with TextMate bundle" do
#   it_should_behave_like "script/spec_server file"
#   before(:each) do
#     dir = File.dirname(__FILE__)
#     @tmbundle_install_directory = File.expand_path("#{Dir.tmpdir}/Library/Application Support/TextMate/Bundles")
#     @bundle_name = "RSpec.tmbundle"
#     FileUtils.mkdir_p(tmbundle_install_directory)
#     bundle_dir = File.expand_path("#{dir}/../../../../../../#{@bundle_name}")
#     File.directory?(bundle_dir).should be_true
#     unless system(%Q|ln -s #{bundle_dir} "#{tmbundle_install_directory}"|)
#       raise "Creating link to Textmate Bundle"
#     end
#     start_spec_server
#   end
# 
#   after(:each) do
#     bundle_file_to_remove = "#{tmbundle_install_directory}/#{@bundle_name}"
#     if bundle_file_to_remove == "/"
#       raise "bundle file path resolved to '/' - could not call rm"
#     end
#     unless system(%Q|rm "#{bundle_file_to_remove}"|)
#       raise "Removing Textmate bundle link failed"
#     end
#   end
# end
