mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
52 lines
1.4 KiB
Ruby
52 lines
1.4 KiB
Ruby
# This is a test helper file that simulates a rails application being
|
|
# boot from scratch in vendored mode. This file should really only be
|
|
# required in test cases that use the isolation helper so that requires
|
|
# can be reset correctly.
|
|
RAILS_ROOT = "#{File.dirname(__FILE__)}/root"
|
|
RAILS_FRAMEWORK_ROOT = File.expand_path("#{File.dirname(__FILE__)}/../../..")
|
|
|
|
require 'rubygems'
|
|
gem 'rack', '~> 1.0.0'
|
|
|
|
require "test/unit"
|
|
# We are purposely avoiding adding things to the load path to catch bugs that only happen in the genuine article
|
|
require "#{RAILS_FRAMEWORK_ROOT}/activesupport/lib/active_support/testing/isolation"
|
|
require "#{RAILS_FRAMEWORK_ROOT}/activesupport/lib/active_support/testing/declarative"
|
|
|
|
class Test::Unit::TestCase
|
|
extend ActiveSupport::Testing::Declarative
|
|
|
|
def assert_stderr(match)
|
|
$stderr = StringIO.new
|
|
yield
|
|
$stderr.rewind
|
|
err = $stderr.read
|
|
assert_match match, err
|
|
ensure
|
|
$stderr = STDERR
|
|
end
|
|
end
|
|
|
|
# Fake boot.rb
|
|
module Rails
|
|
class << self
|
|
attr_accessor :vendor_rails
|
|
|
|
def vendor_rails?
|
|
@vendor_rails
|
|
end
|
|
|
|
def boot!
|
|
# Require the initializer
|
|
$:.unshift "#{RAILS_FRAMEWORK_ROOT}/railties/lib"
|
|
require "rails/initializer"
|
|
# Run the initializer the same way boot.rb does it
|
|
Rails::Initializer.run(:install_gem_spec_stubs)
|
|
Rails::GemDependency.add_frozen_gem_path
|
|
Rails::Initializer.run(:set_load_path)
|
|
end
|
|
end
|
|
end
|
|
|
|
# All that for this:
|
|
Rails.boot!
|