ENV["RAILS_ENV"] ||= 'test' require 'engine_cart' EngineCart.load_application! require 'mida' require 'rspec/rails' require 'rspec/its' require 'rspec/matchers' require 'rspec/active_model/mocks' require 'factory_girl_rails' require 'capybara/poltergeist' require 'capybara/rspec' require 'capybara/rails' require 'equivalent-xml' require 'equivalent-xml/rspec_matchers' require 'database_cleaner' require 'support/features' if ENV['COVERAGE'] require 'simplecov' SimpleCov.start 'rails' SimpleCov.command_name "spec" end Capybara.javascript_driver = :poltergeist Capybara.default_wait_time = ENV['TRAVIS'] ? 30 : 15 $in_travis = !ENV['TRAVIS'].nil? && ENV['TRAVIS'] == 'true' if $in_travis # Monkey-patches the FITS runner to return the PDF FITS fixture module Hydra module Derivatives module ExtractMetadata def extract_metadata return unless has_content? Hydra::FileCharacterization.characterize(content, filename_for_characterization, :fits) do |config| config[:fits] = lambda { |filename| filename = File.expand_path("../fixtures/pdf_fits.xml", __FILE__) File.read(filename) } end end end end end end if defined?(ClamAV) ClamAV.instance.loaddb else class ClamAV include Singleton def scanfile(f) 0 end def loaddb nil end end end Resque.inline = Rails.env.test? module EngineRoutes def self.included(base) base.routes { Sufia::Engine.routes } end def main_app Rails.application.class.routes.url_helpers end end RSpec.configure do |config| config.expect_with :rspec do |c| c.syntax = :expect end # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures config.fixture_path = File.expand_path("../fixtures", __FILE__) config.use_transactional_fixtures = false config.before :each do if Capybara.current_driver == :rack_test DatabaseCleaner.strategy = :transaction else DatabaseCleaner.strategy = :truncation end DatabaseCleaner.start end config.after do DatabaseCleaner.clean end # If true, the base class of anonymous controllers will be inferred # automatically. This will be the default behavior in future versions of # rspec-rails. config.infer_base_class_for_anonymous_controllers = false config.include Devise::TestHelpers, type: :controller config.include EngineRoutes, type: :controller config.include Warden::Test::Helpers, type: :feature config.after(:each, type: :feature) { Warden.test_reset! } config.infer_spec_type_from_file_location! end module FactoryGirl def self.find_or_create(handle, by=:email) tmpl = FactoryGirl.build(handle) tmpl.class.send("find_by_#{by}".to_sym, tmpl.send(by)) || FactoryGirl.create(handle) end end