mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
783763bde9
The current code base is not uniform. After some discussion, we have chosen to go with double quotes by default.
71 lines
1.7 KiB
Ruby
71 lines
1.7 KiB
Ruby
require "abstract_unit"
|
|
|
|
unless defined?(Rails) && defined?(Rails::Info)
|
|
module Rails
|
|
class Info; end
|
|
end
|
|
end
|
|
|
|
require "active_support/core_ext/kernel/reporting"
|
|
|
|
class InfoTest < ActiveSupport::TestCase
|
|
def setup
|
|
Rails.send :remove_const, :Info
|
|
silence_warnings { load "rails/info.rb" }
|
|
end
|
|
|
|
def test_property_with_block_swallows_exceptions_and_ignores_property
|
|
assert_nothing_raised do
|
|
Rails::Info.module_eval do
|
|
property("Bogus") {raise}
|
|
end
|
|
end
|
|
assert !property_defined?("Bogus")
|
|
end
|
|
|
|
def test_property_with_string
|
|
Rails::Info.module_eval do
|
|
property "Hello", "World"
|
|
end
|
|
assert_property "Hello", "World"
|
|
end
|
|
|
|
def test_property_with_block
|
|
Rails::Info.module_eval do
|
|
property("Goodbye") {"World"}
|
|
end
|
|
assert_property "Goodbye", "World"
|
|
end
|
|
|
|
def test_rails_version
|
|
assert_property "Rails version",
|
|
File.read(File.realpath("../../../RAILS_VERSION", __FILE__)).chomp
|
|
end
|
|
|
|
def test_html_includes_middleware
|
|
Rails::Info.module_eval do
|
|
property "Middleware", ["Rack::Lock", "Rack::Static"]
|
|
end
|
|
|
|
html = Rails::Info.to_html
|
|
assert html.include?('<tr><td class="name">Middleware</td>')
|
|
properties.value_for("Middleware").each do |value|
|
|
assert html.include?("<li>#{CGI.escapeHTML(value)}</li>")
|
|
end
|
|
end
|
|
|
|
protected
|
|
def properties
|
|
Rails::Info.properties
|
|
end
|
|
|
|
def property_defined?(property_name)
|
|
properties.names.include? property_name
|
|
end
|
|
|
|
def assert_property(property_name, value)
|
|
raise "Property #{property_name.inspect} not defined" unless
|
|
property_defined? property_name
|
|
assert_equal value, properties.value_for(property_name)
|
|
end
|
|
end
|